3 puan yazan GN⁺ 2024-09-21 | 1 yorum | WhatsApp'ta paylaş
  • 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.sh
    • source .venv/bin/activate
  • Windows ortamını hazırlama
    • makevenv.bat
    • .venv/Scripts/Activate
  • Görsel üretimini test etme
    • secrets.py içindeki OWM_KEY değişkenine OpenWeather API anahtarı girilmelidir
    • Gerekirse secrets.py iç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örseller tmp klasö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.md dosyası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

 
GN⁺ 2024-09-21
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üm
    Gö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

    • Chrome bu sayfayı phishing olarak işaretliyor
  • 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

    • Fikrin kendisi yaratıcı biçimde genişletilmeye çok açık, ama küçük siyah-beyaz ekran yüzünden kısıtlamalar vardı. Ağaçların rüzgârda eğilmesini ya da bir salyangozun sürünmesini göstermenin yolu yok
      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
    • Büyük ölçüde katılıyorum. Yalnız 4. maddede ev yerine bir hayvan hareket etse sevimli olurdu
      Ayrıca izometrik gibi bir bakış açısı kullanmak rüzgâr yönünü görselleştirmeye yardımcı olabilir
    • Gölgelerden, özellikle de uzunluk ve yönlerinden yararlanmak; gökyüzü ve zeminin tonlarıyla birlikte günün saatini hissettirebilir
  • 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...

    • Bu canlı duvar kâğıdını yıllardır kullanıyorum ve hep beğendim
  • 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

    • Yolculuk sırasında en kötü hava durumundan kaçınmak istediğinizde tahmini hesaplayan bir road trip hava durumu uygulaması yaptım. Akşam mı çıkmalı yoksa ertesi sabah mı çıkmalı karar vermek için iyi
      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
    • Weather Strip(iOS): https://apps.apple.com/us/app/weather-strip/id1528594026
    • Meteoblue’yu çok seviyorum. Çeşitli tahmin ansamblı görselleştirmeleri sunuyor
      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
    • Bu yılın başlarında Texas’ta tam güneş tutulmasını izlemek için yer seçerken windy.com’u kullandım. Tam isabet etti; tutulmayı güzelce izledikten sonra bulutlar geldi
    • Zoom Earth, Windy.com’a benziyor
      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ı