Wettervorhersage als Landschaftsbild visualisieren
(github.com/lds133)- Weather as Landscape ist ein Projekt, das statt eines zahlenzentrierten Wetter-Dashboards die 24-Stunden-Vorhersage und den aktuellen Zustand in einem Landschaftsbild darstellt, damit man sie natürlicher erfassen kann
- Die horizontale Achse des Bildes ist eine 24-Stunden-Zeitleiste von jetzt bis zum nächsten Tag; das Haus markiert den aktuellen Standort, und je weiter das Wetter in der Zukunft liegt, desto weiter rechts wird es platziert
- Landschaftselemente kodieren Sonnenaufgang und Sonnenuntergang, Mittag und Mitternacht, Windrichtung und -stärke, Temperaturverlauf, Höchst- und Tiefsttemperaturen, Wolken, Niederschlag, aktuelle Temperatur und Luftdruck sowie sogar Nicht-Wetter-Ereignisse wie Geburtstage und Feiertage
- Die Implementierung nutzt Python 3.9, Pillow und OpenWeather-Daten; das Bild ist für ein 296x128-E-Ink-Display konzipiert
- ESP32 und ein 2,9-Zoll-E-Ink-Modul sind so aufgebaut, dass sie das Bild aus dem Internet abrufen und alle 15 Minuten aktualisieren; ob sich der Code zur Bilderzeugung an MicroPython auf dem ESP32 anpassen lässt, ist noch unklar
Wetter als Landschaft statt als Zahlen
- Traditionelle Wetterstationen zeigen Sensorwerte oft als Zahlendaten an, wodurch Nutzer bestimmte Parameter suchen, interpretieren und visualisieren müssen
- Landschaftsbilder wirken für das menschliche Auge natürlich, und das Betrachten von Landschaftselementen reduziert Stress und bietet mit minimalem Aufwand ein angenehmeres visuelles Erlebnis
- Weather as Landscape zeigt einen Ansatz, bei dem Wetterinformationen in einem Landschaftsbild kodiert werden, ohne oder nur mit minimaler Abhängigkeit von Zahlen
Kodierungsansatz
- Die Landschaft ist um ein kleines Haus im Wald herum aufgebaut
- Die horizontale Achse des Bildes ist eine 24-Stunden-Zeitleiste
- Das Haus links markiert den aktuellen Zeitpunkt
- Je weiter rechts, desto näher liegen die Bedingungen am nächsten Tag
- Je weiter ein Ereignis von der Gegenwart entfernt ist, desto weiter rechts befindet es sich im Bild
- Mehrere über die vertikale Achse verteilte Landschaftselemente stehen für Wetterereignisse und -bedingungen
Informationen, die in der Landschaft enthalten sein können
- Zeitmarker, die bei der zeitlichen Orientierung helfen
- Sonnenaufgang und Sonnenuntergang
- Mittag und Mitternacht
- Informationen zur Wettervorhersage
- Windrichtung und -stärke
- Temperaturverlauf
- Höchst- und Tiefsttemperaturen
- Bewölkung
- Niederschlag
- Aktuelle Wetterlage
- Temperatur
- Luftdruck
- Nicht-Wetter-Ereignisse
- Geburtstage
- Feiertage
Visuelle Elemente und Bedeutung
- Das Projekt setzt die Landschaft aus mehreren Ereignisbildern zusammen
- Sonne: Sonnenaufgang
- Mond: Sonnenuntergang
- Wolken: Bewölkung
- Haus: Position der aktuellen Zeit
- Blumen: Mitternacht und Mittag
- Baum-Sprites: Südwind, Ostwind, Westwind, Nordwind
- Regen und Schnee: Niederschlagsform
- Luftdruck-Icon: hoher Luftdruck, normaler Luftdruck, niedriger Luftdruck
- Feiertags-Icon: Nicht-Wetter-Ereignis, zum Beispiel der Geburtstag einer Person
- Je größer der Baum ist, desto stärker ist die erwartete Windstärke
- Wenn im Wald unterschiedliche Baumtypen gemischt sind, bedeutet das Wind aus einer Zwischenrichtung
Beispielinterpretation
- Das erste Beispiel liegt etwa um die Mittagszeit; es wird klarer Himmel mit etwas Bewölkung erwartet
- Über Nacht entsteht mäßiger Nordwind
- Die aktuelle Temperatur steigt, beginnt nach Sonnenuntergang aber zu fallen
- Die Tiefsttemperatur wird vor Sonnenaufgang erreicht
- In diesem Zeitraum wird erwartet, dass der Wind auf Nordost dreht
- Das zweite Beispiel zeigt gerade Sonnenaufgang sowie einen heißen, klaren Tag mit schwachem Südostwind
- Die Temperatur bleibt auch nach Sonnenuntergang weiter hoch
- Der Wind dreht nach Osten und wird den ganzen Abend über stärker
- Das dritte Beispiel zeigt kaltes und regnerisches Wetter über Tag und Nacht hinweg
- Südwind dreht über Nacht auf Nordwestwind
- Es weist darauf hin, dass am nächsten Tag jemand Geburtstag hat
Ausführen und erzeugte Bilder
- Linux-Umgebung vorbereiten
./makevenv.shsource .venv/bin/activate
- Windows-Umgebung vorbereiten
makevenv.bat.venv/Scripts/Activate
- Bilderzeugung testen
- In die Variable OWM_KEY in
secrets.pymuss ein OpenWeather-API-Key eingetragen werden - Bei Bedarf können die Koordinaten in
secrets.pyauf den Standort des Nutzers geändert werden - Nach dem Ausführen von
python run_test.pysind die erzeugten Bilder im Ordnertmpzu finden
- In die Variable OWM_KEY in
- Server ausführen
python run_server.py- Wenn man die Server-Seite im Browser aufruft, sieht man die Anzahl der erzeugten Bilder
Nutzung mit E-Ink und Smartphone
- Die Hardware umfasst ein ESP32 development board und ein 2.9inch E-Ink display module
- Die aktuelle E-Ink-Konfiguration zeigt ein aus dem Internet abgerufenes Bild an und aktualisiert es alle 15 Minuten
- Ob sich der Code zur Bilderzeugung so ändern lässt, dass er mit MicroPython auf dem ESP32 genutzt werden kann, ist derzeit unklar
- Weitere Informationen stehen in
esp32/README.md - Während des Tests werden mehrere Bilder erzeugt
- Schwarz-Weiß-Bilder sind für das E-Ink-Modul gedacht
- Farbbilder können auf dem Homescreen eines Smartphones platziert werden
- Unter Android lässt sich mit Web Image Widget ein Widget zur Anzeige von Internetbildern erstellen
- Das Server-Skript des Repositorys ausführen
- Ein Widget hinzufügen, das auf eines der erzeugten Bilder verweist
1 Kommentare
Kommentare auf Hacker News
Vor ein paar Jahren habe ich an einem Projekt herumgebastelt, das Bilder je nach Wetter auswählt: https://bazzargh.github.io/weather/
Wenn man auf
manual filterumstellt und ein paar Filter setzt, sieht man, wie die getaggten Bilder erscheinen. Ich hatte das eher als Stimmungsgeber für einen Bilderrahmen oder Desktop-Hintergrund gedacht, nicht als präzise Wettervorhersage.Alle Bild-Tags sind hier: https://github.com/bazzargh/bazzargh.github.io/blob/master/w...
Die meisten habe ich manuell vergeben: erst ein Bild ausgesucht, das mir gefiel, dann geschaut, wo Lücken in den Tags waren, und Bilder gesucht, die diese füllen.
Spannend. Ich habe einen alten Bilderrahmen mit OpenAIs DALL-E-Bildgenerator verbunden, sodass er anhand der aktuellen Wetterdaten Bilder erzeugt; er wird alle paar Stunden aktualisiert.
Das aktuell angezeigte Bild ist dieses: https://ibb.co/8K5jZ3B
Zusätzlich zur README-Beschreibung möchte ich eine konkrete Nutzung dieses Projekts teilen. Ich habe den Bildschirm auf dem Schreibtisch stehen, und es macht überraschend viel Spaß, zuzusehen, wie sich das Bild im Lauf des Tages ständig verändert.
Zum Beispiel erscheint Regen von rechts und verschwindet ein paar Stunden später wieder, oder ein Baum beginnt zu wachsen. Währenddessen bewegen sich Sonne und Mond stetig vorwärts und zeigen den Übergang zwischen Tag und Nacht an.
Ein weiterer interessanter Punkt ist, dass diese Darstellung wie eine Binäruhr wirkt. Die Leute vermuten, dass etwas Bedeutung hat, können es aber nicht sofort entschlüsseln, und das schlichte Design bringt sie dazu, es selbst herausfinden zu wollen.
Wirklich interessant. Das macht Lust, eine Kamera aufzustellen, die regelmäßig eine Grünfläche in der Nähe meines Hauses fotografiert.
Wenn man zusammen mit dem Bild Bewölkungsdaten und einen Datumsstempel speichert und dann das Bild, das der aktuellen Vorhersage am ähnlichsten ist, als Laptop-Hintergrund zeigt, wäre das wohl schön. Es würde zwar nicht so viele Informationen vermitteln wie dieses Projekt, könnte aber ziemlich befriedigend sein.
Niedlich, und mit ein wenig Anpassung würde ich es wohl tatsächlich nutzen. Es gibt Raum, die Interpretierbarkeit zu verbessern: Die Richtung, in die sich die Bäume biegen, könnte die Windrichtung anzeigen; Nord- und Südwind müsste man kreativ lösen, etwa ob sie nach unten oder nach außen gebogen sind, und die Stärke des Winds könnte über den Grad der Biegung oder über Größe und Dichte der Bäume dargestellt werden.
Sonnenauf- und -untergang würde ich nicht über Sonne und Mond darstellen, sondern buchstäblich über die Sonne am Horizont; der Nachthimmel sollte eine andere Schattierung als der Tag bekommen. Als Startpunkt würde ich nicht „aktuelle Uhrzeit“, sondern einen festen Zeitpunkt wie Morgen oder Mitternacht wählen und die Position des Hauses für „jetzt“ verwenden.
Trotzdem bleibt am Himmel Platz für spaßige Elemente, etwa einen Storch zum Geburtstag oder Santas Schlitten in der Feiertagssaison. Ich warte darauf, dass größere farbige E-Ink-Displays günstiger werden.
Und eine Perspektive wie isometrische Projektion könnte vielleicht helfen, die Windrichtung zu visualisieren.
Ich nutze seit einiger Zeit ein ähnliches Konzept als Android-Hintergrund[1].
Mir gefällt die Idee von Artwork, das tatsächlich nützliche Informationen vermittelt.
[1]: https://play.google.com/store/apps/details?id=kaka.wallpaper...
Das erinnert mich an den Hauptbildschirm der Yr.no-App. Sie visualisiert das Wetter, indem sie wie eine Illustration zeigt, wie es zu verschiedenen Tageszeiten draußen vor dem Fenster aussehen wird.
Schon anhand der Animation lässt sich Niederschlagsmenge und -art sowie Wind recht gut intuitiv erfassen. Allerdings sieht man immer nur einen Moment auf einmal, sodass man horizontal scrollen muss, um den Tag zu sehen, und die Temperatur wird nur als Zahl angezeigt.
https://apps.apple.com/no/app/yr/id490989206?l=nb
https://play.google.com/store/apps/details?id=no.nrk.yr&pcam...
Großartige Arbeit. Wenn der Fokus aber auf User Experience liegt, bietet windy.com aus meiner Sicht die beste Erfahrung bei der Vermittlung von Wetter.
An Vorhersagen wie „30 % Schauerwahrscheinlichkeit um 20 Uhr“ bin ich zum Beispiel kaum interessiert; wichtiger ist, in welchem Muster sich Wolken oder Regen bewegen. So kann man etwa entscheiden, ob man in die Richtung mit dem besten Sonnenlicht fährt.
Ich frage mich, ob es noch andere Anbieter gibt, die ähnlich wie windy.com arbeiten. Meine bisherige Erfahrung ist hervorragend und es gibt kaum dunkle UX-Patterns, aber mehr Wettbewerb in diesem Bereich wäre schön.
Die Zeitstempel basieren auf Google-Routen, daher kommt man damit Stand 2024 einer möglichst genauen Vorhersage ziemlich nahe.
Ich verstehe das Gefühl, dass Vorhersagen wie „30 % Schauerwahrscheinlichkeit um 20 Uhr“ wenig hilfreich sind, aber mittelfristige Vorhersagen liegen derzeit im Wesentlichen auf diesem Niveau.
Android oder iOS: https://weatherthetrip.com/download
In puncto User Experience ist es nicht wie Windy, aber es vermittelt Modellunsicherheit und die Übereinstimmung zwischen Modellen ziemlich gut.
https://zoom.earth/
Eine interessante Idee, aber an einigen Stellen wirkt die Bedeutung der Bilder seltsam verschoben. Vor allem sollte ein Nachthimmel nicht hell sein, und bei Sonnenaufgang sollte die Sonne nicht hoch am Himmel stehen.
Wenn man kontraintuitive Regeln lernen muss wie „Wenn irgendwo am Himmel die Sonne zu sehen ist, bedeutet das Sonnenaufgang“ oder „Nacht wird nicht durch Dunkelheit, sondern durch etwas anderes dargestellt“, dann verfehlt es meiner Ansicht nach den Kernzweck.
Viele Wetter-Apps haben eine Zeitachse von links nach rechts und markieren Sonnenauf- und -untergang mit intuitiven Icons. Die Zeitachsenansicht von Windy.com bringt Himmelszustand, Tag/Nacht, Mondphase, Temperatur, Niederschlag sowie Windgeschwindigkeit und -richtung gut in einer knappen horizontalen Zeitachse unter.
Ich hatte natürlich LLM + bildgenerierende KI erwartet, die die Wettervorhersage in surrealistische Bilder verwandelt, war dann aber angenehm überrascht, dass es ein System ist, in dem echte Menschen Designentscheidungen getroffen und sorgfältig ausgewählte visuelle Elemente deterministisch auf Daten gemappt haben. Auf merkwürdige Weise erfrischend.