bluegreencity-ki

GUI-Technologie-Entscheidung (ADR-2026-07)

Datum: 2026-07-02 Status: Entschieden Betroffen: Issue #108 – „Integriertes Bewässerungs- und Maßnahmen-Entscheidungssystem (Taipy HITL + Grafana + PostGIS)”


Kontext

Für BlueGreenCity-KI wurde eine GUI-Steuerungskomponente diskutiert, die folgende Anforderungen abdeckt:


Evaluierte Optionen

Tool Karten Pipeline-Steuerung Production Multi-User Lernkurve Fazit
Streamlit ✅ (Folium, PyDeck) ⚠️ (kein Background Task) ⚠️ ⚠️ 🟢 Niedrig Gut für Prototyp, skaliert nicht
Shiny for Python ⚠️ (shiny.leaflet, basic) ✅✅ (extended_task) ✅✅ ✅✅ 🟡 Mittel Beste Steuerung, schwache Karten
Dash (Plotly) ✅✅ (dash-leaflet, dash-geo) ✅ (Callbacks) ✅✅ ✅ 🔴 Hoch Professionell, aber komplex
Panel (HoloViz) ✅✅ (DeckGL, Folium, GeoViews, Datashader) ✅ (pn.state, reactive) ✅ (FastAPI) ✅ 🟡 Mittel Beste Karten-Visualisierung
Voilà ⚠️ (ipywidgets + folium) ❌ (Notebook-Kernel blockiert) ⚠️ ⚠️ 🟢 Niedrig Nur für Präsentationen
Taipy ⚠️ (Plotly maps, basic) ✅✅ (Tasks, Scenarios, Submissions) ✅✅ (FastAPI, Docker) ✅✅ 🟡 Mittel Beste Pipeline-Steuerung + Szenarien
CIVITAS/CORE ✅✅ (Superset, Masterportal, GeoServer) ❌ (keine Steuerung) ✅✅ (K8s) ✅✅ 🔴 Hoch Production-UDP, nicht für Prototyp
GeoLibre ✅✅ (MapLibre, deck.gl) ❌ (keine Steuerung) ⚠️ ⚠️ 🟡 Mittel Zu jung (1 Monat), Breaking Changes

Entscheidung

Phase 1: Taipy – jetzt (Juli 2026 – Sept. 2027)

Taipy wurde gewählt, weil es die beste Kombination aus Pipeline-Steuerung, Szenario-Management und ML-Integration bietet:

  1. Pipeline-Steuerung: Eingebaute Tasks, Submissions, Jobs mit asynchroner Ausführung und Notifications – perfekt für Pipeline-Start/Stop/Status
  2. Szenario-Management: Built-in What-If-Analyse für Klimazentren- und Sensitivitätsanalysen (2030, 2050, etc.)
  3. ML-orientiert: Für Data Scientists/ML Engineers gebaut – natürliche Integration mit AutoGluon
  4. UI-Entwicklung: Markdown-basiert (kein HTML/CSS/JS nötig), schnelle MVP-Entwicklung
  5. Production-Ready: FastAPI-Backend, Docker, Gunicorn, Heroku-Deployment
  6. Entwicklungsgeschwindigkeit: MVP in 2–3 Wochen

Kartenvisualisierung (76.000 Bäume):

Architektur:

Taipy-App (ein Prozess, ein Port)
├── Seite 1: Pipeline-Steuerung (Tasks, Feature-Auswahl, Fortschritt, Live-Logs)
├── Seite 2: Dashboard (Statistiken, Risiko-Verteilung, Charts)
├── Seite 3: Ergebnisse (Karte mit Bäumen, Aggregationen)
├── Seite 4: Validierung (AUC, F1, Kalibrierung, SHAP)
└── Seite 5: Szenarien (What-If: Klima 2030/2050, Sensitivität)

Taipy Core (Pipeline-Orchestrierung)
├── Data Nodes: trees, results, model, validation
├── Tasks: compute_risk, train_model, validate, shap_explain
├── Scenarios: baseline, klima_2030, klima_2050
└── Submissions: async Jobs mit Notifications

Phase 1 (Alternative): Panel für Karten-Visualisierung

Panel bleibt eine starke Alternative für die Karten-Seite, weil:

Hybrid-Ansatz möglich:

Phase 2: CIVITAS/CORE – nach Projektende (2027+)

CIVITAS/CORE wird für die Production-Integration bei LHH genutzt, weil:

  1. LHH ist bereits Mitglied von Civitas Connect e.V.
  2. CIVITAS/CORE v2.0 (9. Juli 2026) hat bessere Geodaten-Unterstützung
  3. NGSI-LD API ermöglicht Daten-Integration
  4. Superset + Masterportal + GeoServer für Visualisierung
  5. Civitas Connect e.V. wartet die Plattform (keine Eigenverantwortung)

Migration:


Begründung

Kriterium Taipy (Phase 1) CIVITAS/CORE (Phase 2)
Zeit bis MVP 2–3 Wochen 2–3 Monate
Infrastruktur pip install taipy Kubernetes, Helm, Ansible
Pipeline-Steuerung ✅✅ Eingebaut (Tasks, Submissions, Jobs) ❌ Nicht verfügbar
Szenario-Management ✅✅ Built-in What-If-Analyse ❌ Nicht verfügbar
ML-Integration ✅✅ ML-first Design ❌ Nicht verfügbar
LHH-Integration ❌ Neues Tool ✅ Bereits im Einsatz
Wartung nach Projekt Eigenverantwortung Civitas Connect e.V.
Skalierung Ein Server Kubernetes-Cluster

Taipy jetzt, weil:

CIVITAS/CORE später, weil:


Nachtrag (Stand Oktober 2026)

Die Technologieentscheidung (Taipy) hat sich bestätigt, der Umfang der App hat sich im Lauf von Issue #108 verschoben — die oben skizzierte 5-Seiten-App (Pipeline-Steuerung/Dashboard/Karte/Validierung/Szenarien) wurde nicht so ausgeliefert:

Nächste Schritte (historische Checkliste, Juli 2026)

  1. Taipy in Conda-Umgebung installieren (requirements-taipy.txt)
  2. ✅ Lizenz: Apache 2.0 (kompatibel mit Projekt)
  3. Taipy-MVP-Struktur aufsetzen (docker/taipy/, run_irrigation_review_gui.py)
  4. [~] Pipeline-Steuerung — nicht umgesetzt (siehe Nachtrag)
  5. [~] Karten-Integration — verlagert nach Grafana (siehe Nachtrag)
  6. [~] Charts & Dashboards — verlagert nach Grafana (siehe Nachtrag)
  7. Szenario-Management — als Ressourcenszenario-Seite umgesetzt
  8. Tests schreiben
  9. Dokumentation aktualisieren (docs/data_maintenance/Irrigation_Review_Taipy.md)
  10. CIVITAS/CORE-Integration planen (NGSI-LD API, Addon-Entwicklung)

Referenzen