Manzara Görselleriyle Hava Tahminini Görselleştirme
(github.com/lds133)- Weather as Landscape, sayı odaklı hava durumu panoları yerine manzara görselleri içine 24 saatlik tahmini ve mevcut durumu yerleştirerek daha doğal bir şekilde kontrol etmeyi amaçlayan bir proje
- Görselin yatay ekseni şu andan ertesi güne uzanan 24 saatlik zaman çizelgesidir; ev mevcut konumu gösterir ve gelecekteki hava durumu sağ tarafa yerleştirilir
- Manzara öğeleri; gün doğumu-gün batımı, öğle yarısı-gece yarısı, rüzgar yönü ve şiddeti, sıcaklık değişimi, en yüksek-en düşük sıcaklık, bulutlar, yağış, mevcut sıcaklık-basınç ve doğum günü-tatil gibi hava dışı etkinlikleri bile kodlar
- Uygulama Python 3.9, Pillow ve OpenWeather verilerini kullanır; görseller 296x128 E-Ink ekran için tasarlanmıştır
- ESP32 ve 2.9 inç E-Ink modülü internetten görsel alıp her 15 dakikada bir yenileyecek şekilde yapılandırılmıştır; görsel üretim kodunun ESP32 üzerindeki MicroPython'a uyarlanıp uyarlanamayacağı ise henüz belirsizdir
Sayılar yerine manzara ile hava durumu
- Geleneksel hava istasyonları çoğu zaman sensör değerlerini sayısal veri olarak gösterir; bu da kullanıcının belirli parametreleri bulmak, yorumlamak ve görselleştirmek için çaba harcamasını gerektirir
- Manzara görselleri insan gözüne daha doğaldır ve manzara öğelerine bakma deneyimi stresi azaltarak minimum çabayla daha rahat bir görsel deneyim sunar
- Weather as Landscape, sayılara hiç dayanmadan ya da en aza indirerek hava durumu bilgisini bir manzara görseli içine kodlamanın bir yolunu gösterir
Kodlama yöntemi
- Manzara, ormandaki küçük bir ev etrafında oluşturulur
- Görselin yatay ekseni 24 saatlik bir zaman çizelgesidir
- Soldaki ev mevcut zamanı gösterir
- Sağa gidildikçe ertesi günün koşullarına yaklaşılır
- Şu andan daha uzak olaylar görselin daha sağında yer alır
- Görselin dikey eksenine dağıtılan çeşitli manzara öğeleri hava olaylarını ve koşullarını temsil eder
Manzara içine yerleştirilebilen bilgiler
- Zamanda gezinmeye yardımcı olan zaman işaretleri
- Gün doğumu ve gün batımı
- Öğle yarısı ve gece yarısı
- Hava tahmini bilgileri
- Rüzgar yönü ve şiddeti
- Sıcaklık değişimi
- En yüksek-en düşük sıcaklık
- Bulutluluk
- Yağış
- Mevcut hava durumu
- Sıcaklık
- Basınç
- Hava ile ilgili olmayan olaylar
- Doğum günleri
- Tatiller
Görsel öğeler ve anlamları
- Proje, çeşitli olay görsellerini birleştirerek manzarayı oluşturur
- Güneş: gün doğumu
- Ay: gün batımı
- Bulut: bulutluluk
- Ev: mevcut zaman konumu
- Çiçek: gece yarısı ve öğle yarısı
- Ağaç sprite'ları: güney rüzgarı, doğu rüzgarı, batı rüzgarı, kuzey rüzgarı
- Yağmur ve kar: yağış türü
- Basınç simgesi: yüksek basınç, normal basınç, düşük basınç
- Tatil simgesi: Non-weather event, örneğin birinin doğum günü
- Ağaç ne kadar büyükse beklenen rüzgar şiddeti o kadar güçlüdür
- Ormanda farklı ağaç türleri birlikte görülüyorsa bu, ara yönlerden esen rüzgarı ifade eder
Örneklerin yorumu
- İlk örnek öğle yarısına yakındır ve gökyüzünün açık, az miktarda bulutlu olması beklenir
- Gece boyunca orta kuvvette kuzey rüzgarı oluşur
- Mevcut sıcaklık yükselmektedir ancak gün batımından sonra düşmeye başlar
- En düşük sıcaklığa gün doğumundan önce ulaşılır
- Bu dönemde rüzgarın kuzeydoğuya dönmesi beklenir
- İkinci örnekte güneş doğmaktadır; sıcak ve açık bir gün ile hafif güneydoğu rüzgarı görülür
- Sıcaklık gün batımından sonra da yüksek kalmaya devam eder
- Rüzgar doğuya döner ve akşam boyunca güçlenir
- Üçüncü örnekte gündüz ve gece boyunca soğuk ve yağışlı bir hava vardır
- Güney rüzgarı gece içinde kuzeybatıya döner
- Ertesi gün birinin doğum günü olduğunu bildirir
Çalıştırma ve üretilen görseller
- Linux ortamını hazırlama
./makevenv.shsource .venv/bin/activate
- Windows ortamını hazırlama
makevenv.bat.venv/Scripts/Activate
- Görsel üretimini test etme
secrets.pyiçindeki OWM_KEY değişkenine OpenWeather API anahtarı girilmelidir- Gerekirse
secrets.pyiçindeki koordinatlar kullanıcının konumuna göre değiştirilebilir python run_test.pyçalıştırıldıktan sonra oluşturulan görsellertmpklasöründe görülebilir
- Sunucuyu çalıştırma
python run_server.py- Tarayıcıdan sunucu sayfasına girildiğinde üretilen görsel sayısı görülebilir
E-Ink ve telefon kullanımı
- Donanım kurulumu ESP32 development board ve 2.9inch E-Ink display module içerir
- Mevcut E-Ink yapılandırması internetten alınan görselleri gösterir ve her 15 dakikada bir yenilenir
- Görsel üretim kodunun ESP32'nin MicroPython ortamında kullanılabilecek şekilde dönüştürülüp dönüştürülemeyeceği şu an belirsizdir
- Daha ayrıntılı bilgi
esp32/README.mddosyasında yer alır - Test sırasında birden fazla görsel üretilir
- Siyah-beyaz görseller E-Ink modülü içindir
- Renkli görseller telefon ana ekranına yerleştirilebilir
- Android'de Web Image Widget kullanılarak internet görseli gösteren bir widget oluşturulabilir
- Depodaki sunucu betiği çalıştırılır
- Üretilen görsellerden birini işaret eden widget eklenir
1 yorum
Hacker News yorumları
Birkaç yıl önce, hava durumuna göre tablo seçen bir projeyle uğraşmıştım: https://bazzargh.github.io/weather/
manual filtera geçirip birkaç filtre ayarlarsanız etiketlenmiş görsellerin nasıl çıktığını görebilirsiniz. Bunu doğru bir hava tahmininden çok, fotoğraf çerçevesi ya da masaüstü duvar kâğıdında atmosfer yaratma amaçlı düşünmüştümGörsel etiketlerinin hepsi burada: https://github.com/bazzargh/bazzargh.github.io/blob/master/w...
Çoğunu elle etiketledim; önce hoşuma giden bir tablo seçip sonra etiketlerdeki boşluklara bakarak onları dolduracak tablolar aradım
Eğlenceli. Eski bir fotoğraf çerçevesini OpenAI’ın DALL-E görsel üreticisine bağladım; mevcut hava durumu verilerine göre görsel üretiyor ve birkaç saatte bir yenileniyor
Şu anda gösterilen görsel şu: https://ibb.co/8K5jZ3B
README’deki açıklamaya ek olarak, bu projenin somut kullanım alanını paylaşmak istiyorum. Masamın üstünde bir ekran olarak kullanıyorum ve gün boyunca görselin sürekli değişmesini izlemek şaşırtıcı derecede keyifli
Örneğin yağmur sağdan belirip birkaç saat sonra kayboluyor ya da bir ağaç büyümeye başlıyor. Bu sırada güneş ve ay düzenli olarak öne doğru hareket ederek gündüz/gece geçişini gösteriyor
Bir başka eğlenceli yanı da bu düzenin ikili saat gibi görünmesi. İnsanlar onda bir anlam olduğunu tahmin ediyor ama hemen çözemiyor; sade tasarımı sayesinde kendi kendilerine anlamaya çalışıyorlar
Gerçekten ilginç. Evin yakınındaki yeşil alanı periyodik olarak çekecek bir kamera kurmak istedim
Görselle birlikte bulutluluk verisini ve tarih damgasını kaydedip, mevcut tahmine en çok benzeyen görseli dizüstü bilgisayar duvar kâğıdı olarak göstermek güzel olabilir. Bu proje kadar çok bilgi aktarmasa da oldukça tatmin edici olabilir
Sevimli ve biraz ayarlamayla gerçekten kullanabilirim gibi geliyor. Yorumlama biçimini iyileştirmek için alan var: ağaçların eğildiği yönle rüzgâr yönü gösterilebilir; kuzey/güney rüzgârları yaratıcı şekilde ele alınıp aşağı mı yoksa dışa doğru mu eğildiğiyle, eğilme miktarı ya da ağaçların boyutu/yoğunluğuyla rüzgâr şiddeti anlatılabilir
Gün doğumu/gün batımı güneş ve ayla değil, kelimenin tam anlamıyla ufkun üzerindeki güneşle ifade edilmeli; gece gökyüzü de gündüzden farklı bir tonla işlenmeli. Başlangıç noktasını “şu anki saat” yerine sabah ya da gece yarısı gibi sabit bir zaman yapmak ve evin konumuyla “şimdi”yi göstermek daha iyi görünüyor
Yine de gökyüzünde doğum günü için bir leylek ya da tatil sezonunda Noel Baba’nın kızağı gibi eğlenceli ögelere yer kalıyor. Daha büyük ve renkli E-Ink ekranların ucuzlamasını bekliyorum
Ayrıca izometrik gibi bir bakış açısı kullanmak rüzgâr yönünü görselleştirmeye yardımcı olabilir
Bir süredir Android duvar kâğıdı olarak benzer bir konsept kullanıyorum[1]
Gerçekten faydalı bilgi aktaran artwork fikrini seviyorum
[1]: https://play.google.com/store/apps/details?id=kaka.wallpaper...
Yr.no uygulamasının ana ekranını hatırlattı. Günün farklı saatlerinde pencerenin dışının nasıl görüneceğini resim gibi göstererek hava durumunu görselleştiriyor
Sadece animasyona bakarak yağış miktarı ve yağış türü ile rüzgârı sezgisel olarak epey kolay kavrayabiliyorsunuz. Ancak bir seferde yalnızca tek bir an görülebildiği için günü görmek üzere yatay kaydırmak gerekiyor; sıcaklık ise sadece sayıyla gösteriliyor
https://apps.apple.com/no/app/yr/id490989206?l=nb
https://play.google.com/store/apps/details?id=no.nrk.yr&pcam...
Harika iş. Ancak kullanıcı deneyimine odaklanırsak, hava durumunu aktarma deneyimi açısından windy.com en iyisi
Örneğin “20.00’de sağanak olasılığı %30” gibi tahminlerle pek ilgilenmiyorum; bulutların veya yağmurun nasıl bir akışla hareket ettiği daha önemli. Böylece en iyi güneş ışığı yönüne doğru arabayla gidip gitmemeye karar verebiliyorum
windy.com’a benzer şekilde yapan başka yerler var mı merak ediyorum. Şu ana kadarki deneyim harika ve karanlık kullanıcı deneyimi desenleri de neredeyse yok, ama bu alanda daha fazla rekabet olmasını isterdim
Zaman damgaları Google yol tariflerine dayandığı için, 2024 itibarıyla mümkün olduğunca doğru tahmine yakın görülebiliyor
“20.00’de sağanak olasılığı %30” gibi tahminlerin pek iyi hissettirmediğini anlıyorum, ama orta vadeli tahminler şu anda genel olarak bu seviyede
Android veya iOS: https://weatherthetrip.com/download
Kullanıcı deneyimi açısından windy ile aynı değil, ama model belirsizliğini ve modeller arası uyum düzeyini aktarmakta oldukça iyi
https://zoom.earth/
İlginç bir fikir, ama görselin anlamının tuhaf biçimde kaydığı yerler var. Özellikle gece gökyüzü aydınlık olmamalı ve gün doğumunda güneş yüksekte olmamalı
“Gökyüzünün herhangi bir yerinde güneş görünüyorsa gün doğumu demektir” ya da “gece, karanlıkla değil başka bir şeyle gösterilir” gibi sezgiye aykırı kuralları öğrenmek gerekiyorsa, temel amacında başarısız oluyor gibi geliyor
Pek çok hava durumu uygulaması soldan sağa uzanan bir zaman çizgisi koyup gün doğumu ve gün batımını sezgisel ikonlarla gösteriyor. Windy.com’un zaman çizgisi görünümü gökyüzü durumu, gündüz/gece, ay evresi, sıcaklık, yağış, rüzgâr hızı ve yönünü özlü bir sol-sağ zaman çizgisinde iyi topluyor
Hava tahminini sürreal görsellere dönüştüren bir LLM + görsel üretim yapay zekâsı beklemiştim; ama bunun yerine gerçek bir insanın tasarım kararları verdiği ve özenle seçilmiş görsel ögeleri verilere kararlı biçimde eşleyen bir sistem görmek hoş bir sürpriz oldu. Garip şekilde ferahlatıcı