लैंडस्केप इमेज के ज़रिए मौसम पूर्वानुमान का विज़ुअलाइज़ेशन
(github.com/lds133)- Weather as Landscape एक ऐसा प्रोजेक्ट है जो संख्या-केंद्रित मौसम डैशबोर्ड की जगह लैंडस्केप इमेज के भीतर 24 घंटे का पूर्वानुमान और मौजूदा स्थिति दिखाता है, ताकि मौसम को अधिक स्वाभाविक तरीके से देखा जा सके
- इमेज का क्षैतिज अक्ष वर्तमान समय से अगले दिन तक की 24 घंटे की टाइमलाइन है, और घर वर्तमान स्थान को दर्शाता है; भविष्य का मौसम जितना आगे होगा, वह उतना दाईं ओर रखा जाएगा
- लैंडस्केप के तत्व सूर्योदय·सूर्यास्त, दोपहर·मध्यरात्रि, हवा की दिशा और तीव्रता, तापमान परिवर्तन, उच्चतम·न्यूनतम तापमान, बादल, वर्षा, वर्तमान तापमान·वायुदाब, और जन्मदिन·छुट्टियों जैसे गैर-मौसम इवेंट तक को एन्कोड करते हैं
- इम्प्लीमेंटेशन में Python 3.9, Pillow, और OpenWeather डेटा का उपयोग होता है, और इमेज 296x128 E-Ink डिस्प्ले के लिए डिज़ाइन की गई है
- ESP32 और 2.9 इंच E-Ink मॉड्यूल इंटरनेट से इमेज प्राप्त करके हर 15 मिनट में रिफ्रेश होते हैं, और इमेज जनरेशन कोड को ESP32 के MicroPython के अनुरूप बदला जा सकता है या नहीं, यह अभी स्पष्ट नहीं है
संख्याओं की जगह लैंडस्केप में मौसम
- पारंपरिक मौसम स्टेशन अक्सर सेंसर वैल्यूज़ को संख्यात्मक डेटा के रूप में दिखाते हैं, इसलिए उपयोगकर्ता को किसी खास पैरामीटर को ढूँढने, समझने और विज़ुअलाइज़ करने में मेहनत करनी पड़ती है
- लैंडस्केप इमेज मानव आँख को स्वाभाविक लगती हैं, और लैंडस्केप तत्वों को देखने का अनुभव तनाव कम करता है तथा न्यूनतम प्रयास में अधिक आरामदायक दृश्य अनुभव देता है
- Weather as Landscape दिखाता है कि मौसम जानकारी को लैंडस्केप इमेज में इस तरह एन्कोड किया जा सकता है कि संख्याओं पर निर्भरता कम हो या बिल्कुल न हो
एन्कोडिंग का तरीका
- लैंडस्केप एक जंगल में बने छोटे घर के आसपास रचा गया है
- इमेज का क्षैतिज अक्ष 24 घंटे की टाइमलाइन है
- बाईं ओर का घर वर्तमान समय को दिखाता है
- दाईं ओर जाने पर अगले दिन की स्थितियाँ दिखाई देती हैं
- वर्तमान से जितनी दूर की घटना होगी, वह इमेज में उतनी दाईं ओर होगी
- इमेज के ऊर्ध्वाधर अक्ष पर फैले विभिन्न लैंडस्केप तत्व मौसम घटनाओं और स्थितियों को दर्शाते हैं
लैंडस्केप में शामिल की जा सकने वाली जानकारी
- समय समझने में मदद करने वाले टाइम मार्कर
- सूर्योदय और सूर्यास्त
- दोपहर और मध्यरात्रि
- मौसम पूर्वानुमान जानकारी
- हवा की दिशा और तीव्रता
- तापमान में बदलाव
- उच्चतम·न्यूनतम तापमान
- बादलों की मात्रा
- वर्षा
- वर्तमान मौसम स्थिति
- तापमान
- वायुदाब
- गैर-मौसम इवेंट
- जन्मदिन
- छुट्टियाँ
दृश्य तत्व और उनके अर्थ
- प्रोजेक्ट कई इवेंट इमेज को मिलाकर लैंडस्केप बनाता है
- सूरज: सूर्योदय
- चाँद: सूर्यास्त
- बादल: बादलों की मात्रा
- घर: वर्तमान समय की स्थिति
- फूल: मध्यरात्रि और दोपहर
- पेड़ स्प्राइट: दक्षिणी हवा, पूर्वी हवा, पश्चिमी हवा, उत्तरी हवा
- बारिश और बर्फ: वर्षा का प्रकार
- वायुदाब आइकन: उच्च वायुदाब, सामान्य वायुदाब, निम्न वायुदाब
- छुट्टी आइकन: Non-weather event, उदाहरण के लिए किसी का जन्मदिन
- पेड़ जितना बड़ा होगा, अनुमानित हवा की तीव्रता उतनी अधिक होगी
- जंगल में अलग-अलग प्रकार के पेड़ों का मिश्रण मध्यवर्ती दिशा की हवा को दर्शाता है
उदाहरण की व्याख्या
- पहला उदाहरण दोपहर के आसपास का है, जिसमें साफ आसमान और कुछ बादलों की संभावना है
- रात के दौरान मध्यम उत्तरी हवा बनती है
- वर्तमान तापमान बढ़ रहा है, लेकिन सूर्यास्त के बाद गिरना शुरू होगा
- न्यूनतम तापमान सूर्योदय से पहले पहुँचेगा
- इस अवधि में हवा के उत्तर-पूर्व दिशा में बदलने की उम्मीद है
- दूसरा उदाहरण सूर्योदय के समय का है, जिसमें गर्म और साफ दिन तथा हल्की दक्षिण-पूर्वी हवा दिखाई देती है
- तापमान सूर्यास्त के बाद भी ऊँचा बना रहता है
- हवा पूर्व की ओर मुड़ती है और शाम भर अधिक तेज़ होती जाती है
- तीसरा उदाहरण दिन और रात भर ठंडे और बरसाती मौसम का है
- दक्षिणी हवा रात में उत्तर-पश्चिमी हवा में बदल जाती है
- यह भी बताता है कि अगले दिन किसी का जन्मदिन है
चलाना और इमेज बनाना
- Linux वातावरण की तैयारी
./makevenv.shsource .venv/bin/activate
- Windows वातावरण की तैयारी
makevenv.bat.venv/Scripts/Activate
- इमेज जनरेशन टेस्ट
secrets.pyकी OWM_KEY वैरिएबल में OpenWeather API key डालनी होगी- ज़रूरत पड़ने पर
secrets.pyमें दिए गए coordinates को उपयोगकर्ता की लोकेशन से बदला जा सकता है python run_test.pyचलाने के बाद बनी हुई इमेजtmpफ़ोल्डर में देखी जा सकती है
- सर्वर चलाना
python run_server.py- ब्राउज़र में सर्वर पेज खोलने पर बनी हुई इमेजों की संख्या देखी जा सकती है
E-Ink और मोबाइल उपयोग
- हार्डवेयर कॉन्फ़िगरेशन में ESP32 development board और 2.9inch E-Ink display module शामिल हैं
- मौजूदा E-Ink सेटअप इंटरनेट से लाई गई इमेज दिखाता है और हर 15 मिनट में रिफ्रेश होता है
- इमेज जनरेशन कोड को ESP32 के MicroPython पर चलने लायक बदला जा सकता है या नहीं, यह अभी स्पष्ट नहीं है
- अधिक जानकारी
esp32/README.mdमें है - टेस्ट के दौरान कई इमेज बनती हैं
- श्वेत-श्याम इमेज E-Ink मॉड्यूल के लिए हैं
- रंगीन इमेज मोबाइल होम स्क्रीन पर रखी जा सकती हैं
- Android पर Web Image Widget का उपयोग करके इंटरनेट इमेज दिखाने वाला विजेट बनाया जा सकता है
- रिपॉज़िटरी का सर्वर स्क्रिप्ट चलाएँ
- बनी हुई इमेजों में से किसी एक को दिखाने वाला विजेट जोड़ें
1 टिप्पणियां
Hacker News टिप्पणियाँ
कुछ साल पहले मैंने मौसम के हिसाब से चित्र चुनने वाला एक प्रोजेक्ट आज़माया था: https://bazzargh.github.io/weather/
manual filterपर बदलकर कुछ filters सेट करें, तो देख सकते हैं कि टैग की गई images कैसे निकलती हैं। इसे सटीक weather forecast से ज़्यादा photo frame या desktop wallpaper में माहौल बनाने के लिए सोचा थासभी image tags यहाँ हैं: https://github.com/bazzargh/bazzargh.github.io/blob/master/w...
ज़्यादातर tags मैंने हाथ से लगाए थे; पहले पसंद के चित्र चुने, फिर tags में जो gaps दिखे उन्हें भरने के लिए चित्र ढूँढे
मज़ेदार है। मैंने एक पुराने photo frame को OpenAI के DALL-E image generator से जोड़ दिया है, जो मौजूदा weather data के आधार पर images बनाता है और हर कुछ घंटों में refresh होता है
अभी जो image दिख रही है, वह यह है: https://ibb.co/8K5jZ3B
README के description के अलावा, मैं इस project का एक concrete use case शेयर करना चाहता हूँ। मैं इसे desk पर रखी screen पर इस्तेमाल करता हूँ, और दिन भर image को लगातार बदलते देखना उम्मीद से ज्यादा आनंददायक है
उदाहरण के लिए, बारिश दाईं ओर से दिखाई देती है और कुछ घंटों बाद गायब हो जाती है, या पेड़ उगना शुरू करते हैं। इस दौरान सूरज और चाँद लगातार आगे बढ़ते रहते हैं और दिन-रात का बदलाव दिखाते हैं
एक और मज़ेदार बात यह है कि यह setup binary clock जैसा दिखता है। लोगों को अंदाज़ा होता है कि इसमें कोई अर्थ है, लेकिन वे तुरंत decode नहीं कर पाते, और simple design की वजह से खुद समझने की कोशिश करते हैं
वाकई मज़ेदार। घर के पास की हरियाली की periodic photos लेने वाला camera लगाने का मन हो रहा है
image के साथ cloud cover data और date stamp सेव करके, मौजूदा forecast से सबसे मिलती-जुलती image को laptop wallpaper के रूप में दिखाना अच्छा रहेगा। यह project जितनी जानकारी न दे पाए, फिर भी काफी satisfying हो सकता है
प्यारा है, और थोड़ा tweak किया जाए तो मैं सच में इस्तेमाल करूँगा। interpretation को बेहतर बनाने की गुंजाइश है: पेड़ जिस दिशा में झुकें उससे wind direction दिखाएँ, north wind और south wind को creative तरीके से handle करें, और नीचे की ओर झुकने या बाहर की ओर झुकने, झुकाव की मात्रा या पेड़ों के size/density से wind speed दिखाएँ
sunrise/sunset को सूरज और चाँद से नहीं, बल्कि सचमुच horizon के ऊपर सूरज से दिखाना चाहिए, और night sky को दिन से अलग shading देनी चाहिए। starting point को “current time” की जगह सुबह या midnight जैसे fixed point पर रखना, और house की position से “अभी” दिखाना बेहतर लगता है
फिर भी sky में birthday के लिए stork या holiday season में Santa sleigh जैसे मज़ेदार elements जोड़ने की जगह बची है। बड़ी और color E-Ink screen के सस्ती होने का इंतज़ार कर रहा हूँ
और isometric projection जैसा viewpoint इस्तेमाल करने से wind direction visualize करने में मदद मिल सकती है
कुछ समय से Android wallpaper के रूप में similar concept इस्तेमाल कर रहा हूँ[1]
सच में useful जानकारी देने वाली artwork का idea अच्छा है
[1]: https://play.google.com/store/apps/details?id=kaka.wallpaper...
Yr.no app की main screen याद आती है। यह weather को ऐसे visualize करता है कि दिन के अलग-अलग समय पर खिड़की के बाहर कैसा दिखेगा, चित्र जैसा
सिर्फ animation देखकर भी precipitation amount और precipitation type, तथा wind का अंदाज़ काफी आसानी से लग जाता है। हालांकि एक बार में केवल एक moment दिखता है, इसलिए पूरे दिन को देखने के लिए horizontal scroll करना पड़ता है, और temperature केवल numbers में दिखता है
https://apps.apple.com/no/app/yr/id490989206?l=nb
https://play.google.com/store/apps/details?id=no.nrk.yr&pcam...
शानदार काम है। लेकिन अगर focus user experience पर हो, तो windy.com weather बताने का सबसे अच्छा experience देता है
उदाहरण के लिए, “रात 8 बजे showers की 30% संभावना” जैसे forecast में मेरी रुचि लगभग नहीं होती; बादल या बारिश किस flow में move कर रहे हैं, यह ज़्यादा important है। तभी तय कर सकता हूँ कि सबसे अच्छी sunlight वाली दिशा में drive करना है या नहीं
जानना चाहूँगा कि windy.com जैसा approach कोई और भी अपनाता है या नहीं। अभी तक experience शानदार रहा है और dark UX patterns भी लगभग नहीं हैं, लेकिन इस area में और competition हो तो अच्छा होगा
timestamps Google directions पर आधारित होते हैं, इसलिए 2024 के हिसाब से जितना संभव हो उतना accurate forecast जैसा देख सकते हैं
“रात 8 बजे showers की 30% संभावना” जैसे forecast के बेकार लगने की बात समझता हूँ, लेकिन medium-range forecast अभी मोटे तौर पर इसी स्तर के हैं
Android या iOS: https://weatherthetrip.com/download
user experience में यह windy जैसा नहीं है, लेकिन model की uncertainty और models के बीच agreement बताने में काफी अच्छा है
https://zoom.earth/
दिलचस्प idea है, लेकिन image के meaning में कुछ अजीब mismatch हैं। खासकर night sky bright नहीं होना चाहिए, और sunrise के समय सूरज ऊँचा नहीं होना चाहिए
अगर “sky में कहीं भी सूरज दिखे तो उसका मतलब sunrise है” या “night को darkness से नहीं बल्कि किसी और चीज़ से दिखाया जाता है” जैसे counter-intuitive rules सीखने पड़ें, तो लगता है कि core purpose fail हो रहा है
कई weather apps में left-to-right timeline होती है और sunrise/sunset को intuitive icons से दिखाते हैं। Windy.com का timeline view sky condition, day/night, moon phase, temperature, precipitation, wind speed और direction को concise left-right timeline में अच्छी तरह समेटता है
मैंने स्वाभाविक रूप से उम्मीद की थी कि weather forecast को surreal image में बदलने वाला कोई LLM+image generation AI होगा, लेकिन यह देखकर अच्छा surprise लगा कि यह एक ऐसा system है जिसमें असली इंसान ने design decisions लिए हैं और सोच-समझकर चुने गए visual elements पर data को deterministic तरीके से map किया है। अजीब तरह से fresh लगता है