Skip to content

zeittresor/EuroForecastDesk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EuroForecastDesk v0.4

Python/PyQt6-GUI für eine modulare Europa-/Regionalkarte mit Wetter-, Strömungs-, seismischen und Risiko-Layern.

grafik

Start unter Windows

  1. ZIP entpacken.
  2. install_windows.bat starten.
  3. Danach reicht run_windows.bat.

Die App nutzt eine lokale .venv. Für Live-Wetterdaten und Live-Erdbebendaten wird Internet benötigt. Die Karte selbst wird offline als SVG gerendert. Wiederholte Open-Meteo-Abfragen werden kurzzeitig lokal in app_data/cache/ gecacht.

Enthaltene Kategorien / Plugins

Alle Kategorien liegen als einzelne Module in plugins/:

  • temperature_development.py – Temperatur-/Wetterentwicklung, Druck, Regenwahrscheinlichkeit, Windströmungspfeile und 72h-Chart
  • wind_field.py – Windrichtung/Windstärke als Pfeile; Pfeile zeigen Fließrichtung, Popup nennt Windherkunft
  • precipitation_risk.py – Regen/Niederschlagswahrscheinlichkeit
  • thunderstorm_risk.py – Gewitterindikator
  • hazard_situation.py – kombinierter Wetter-Gefahrenindikator
  • earthquake_activity.py – Erdbebenaktivität aus USGS-Katalogdaten
  • seismic_changes.py – 7/30-Tage-Vergleich seismischer Aktivität
  • volcano_activity.py – lokale Vulkanliste als erweiterbarer Platzhalter
  • ice_melt_proxy.py – Tauwetter-/Eisschmelze-Proxy
  • crime_trends.py – lokale CSV-Kriminalitätsdaten, keine personenbezogene Prognose

LLM-Prompt

Nach einem Abruf erzeugt der Button LLM-Prompt kopieren einen strukturierten Prompt mit Region, Kennzahlen, Bericht, Caveats und verdichteten Rohdaten. Der Text landet direkt in der Zwischenablage. Diesen kann man dann einfach einfügen per STRG + V in einen ChatGPT, Gemini oder Ollama Dialog zb. für weitere Analysen.

Datenquellen

  • Wetter/Geocoding: Open-Meteo API
  • Erdbeben: USGS Earthquake Catalog API
  • Karte: lokales SVG-Rendering mit vereinfachten Europa-Küsten-/Grenzlinien aus data/basemap_segments.json
  • Vulkan/Kriminalität: lokale Beispieldaten im Ordner data/

Plugin-Erweiterung

Ein neues Plugin ist einfach eine neue Datei in plugins/, z. B. my_layer.py:

from datetime import datetime, timezone
from app.core import ForecastPlugin, ForecastContext, PluginResult

class MyLayerPlugin(ForecastPlugin):
    id = "my_layer"
    name = "Mein Layer"
    description = "Beschreibung"
    category = "custom"

    def fetch(self, context: ForecastContext) -> PluginResult:
        region = context.region
        return PluginResult(
            plugin_id=self.id,
            plugin_name=self.name,
            region=region,
            generated_at=datetime.now(timezone.utc),
            summary="Kurzzusammenfassung",
            report="Langer Bericht",
            metrics={"example": 123},
            features=[
                {"kind": "circle", "lat": region.latitude, "lon": region.longitude, "radius": 9, "color": "#88c0d0", "popup": "Beispielpunkt"}
            ],
        )

Für Raster-/Flächen-Layer kann ein Plugin features mit kind="rect" erzeugen:

{"kind": "rect", "bounds": [south, west, north, east], "fillColor": "#fed330", "fillOpacity": 0.45, "popup": "23 °C"}

Für Strömungs-/Vektor-Layer kann ein Plugin kind="arrow" verwenden:

{"kind": "arrow", "lat": 53.55, "lon": 9.99, "direction_deg": 90, "length_km": 40, "color": "#ffffff", "popup": "Strömung nach Osten"}

Beim nächsten Start wird das Plugin automatisch geladen. Die sichtbare Reihenfolge kann in app/plugin_loader.py über PREFERRED_PLUGIN_ORDER festgelegt werden.

Wichtige fachliche Grenzen

  • Erdbeben und Vulkanereignisse werden nicht seriös exakt vorhergesagt; die App zeigt Aktivität, Indikatoren und Datenlagen.
  • Kriminalitätsentwicklung braucht offizielle, normalisierte Daten. Das Plugin verwendet absichtlich nur lokale CSV-Daten und erstellt keine personenbezogenen Bewertungen.
  • Die Wetterkarten sind Stichproben aus Modellpunkten, keine hochauflösenden amtlichen Radarkarten.

Änderungen v0.4

  • Crashfix bei wiederholter Ortssuche/Stadtauswahl: Separator-Zeilen im Region-Dropdown werden jetzt korrekt ignoriert.
  • Doppelklick-/Mehrfachklickschutz beim Aktualisieren: ein laufender Abruf wird nicht parallel erneut gestartet.
  • Robustere Fallback-Auswahl, falls im Dropdown versehentlich eine Separator-Zeile aktiv wird.

About

Simple GUI showing her Weather forcast and some more regional infos..

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors