12 KiB
Session: Satellit-Enhancement Analyse – 2026-06-22
Kontext: Benutzer suchte nach kostengünstiger Strategie für hochauflösende Satellitenkarten (Google-Earth-ähnlich) für private Offline-Nutzung ohne externe Redistribution.
Prompt 1
Ich hätte gerne noch viel höher aufgelöste Sateliten daten für meinen Tile server wie bekomme ich google earth ähnliche karten daten?
Antwort:
Initialer Analyse-Request. Ich habe Projektzustand (z11 Sentinel-2 Basis), bestehende Skripte (download-satellite.py, convert-satellite-to-jpeg.py) und Stack-Architektur (Martin + tileserver-gl) analysiert.
Erkenntnisse:
- Aktuelle Basis: Sentinel-2 cloudless 2021, maxzoom=11 (20 GB JPEG)
- Höhere Zooms (z14+) erfordern kommerzielle Daten oder massive kostenlose Batch-Downloads
- Google Earth direkter Zugriff nicht rechtlich zulässig (ToS-Violation)
- 3 mögliche Wege existieren, unterscheiden sich aber drastisch in Komplexität und Kosten
Nächster Schritt: Nutzer spezifizieren (Gebiet, Budget, Lizenzlevel).
Prompt 2
Wenn wir das mit maptiler machen wollten kann ich von dort die datan laden und für mich lokal ablegen und ab dann nur noch über selfhosted bereitstellen. Was wäre hier die kostengünstigste strategie? Ich möchte dir Karten nur Privat nurtzen und nicht wieder nach extern zur verfügung stellen, beachte das in deiner betrachtung.
Antwort: Entscheidende Klarifikation: Private Nutzung ohne externe Redistribution ändert alles bezüglich Lizenzoptionen.
Analyse:
- Standard-Anbieter (Google Maps API, Mapbox, MapTiler Cloud): ToS verbieten Offline-Speicherung
- MapTiler On-Prem Datasets: Explizit für private Offline-Nutzung lizenziert
- Einmalige Kosten (€500–1.500) statt laufender APIs
Empfehlung: MapTiler On-Prem regional kaufen:
- Central Europe (DE/AT/CH/PL) z0–16: ~€1.500 One-Time
- DACH z0–14: ~€800 One-Time
- Nach Download = permanentes Self-Hosting ohne weitere Kosten
Speichervolumina:
- z14 DE+AT+CH: ~80–100 GB
- z16 DE+AT+CH: ~200–300 GB
Prompt 3
Was ist wenn ich nicht bis z16 brauche und mir z13 oder z14 reicht? gibt es eine möglichkeit für freie quotas und über zeit diese Sets von offentlichen anbietern nachzuladen und die exsisiterenden z11 zu erweitern?
Antwort: z13/z14 ist wesentlich praktikabler als z16+ (Speicher: 30–50 GB statt 200+ GB).
Kostenlose Quellen für Inkrementelle Updates:
| Quelle | Abdeckung | Aktualisierung | Problem |
|---|---|---|---|
| USGS Landsat 8/9 | Global ≥82° | ~16 Tage | 30m Auflösung (z14 zu grob) |
| Sentinel-2 | Global ±60° | ~5 Tage | 10–60m (brauchbar für z14, grainig) |
| Sentinel Hub API | Global | Täglich | 100 PU/Mo kostenlos (sehr limitiert) |
Realistische Hybrid-Strategie:
- Existierende z11 Sentinel-2 beibehalten
- Sentinel Hub kostenlose Quote (100 PU/Mo) nur für wöchentliche POI-Updates nutzen
- Falls Vollabdeckung z13/z14 nötig: Entweder MapTiler kaufen oder inkrementelle Batch-Downloads aus Sentinel Hub (sehr langsam)
Prompt 4
wie lange brauche ich mit Sentinel bis ich deutschland europa oder die welt geladen haben mit diesem ansatz? und gibt es keine andere datenquelle die mehr tile requests zulässt pro monat kostenlos, was ist mit google earth der apple maps?
Antwort:
Realitäts-Check: Sentinel Hub kostenlos (100 PU/Monat)
| Fläche | z14-Tiles | Zeit mit kostenlos | Praktikabel? |
|---|---|---|---|
| Bayern | 150k | 125 Jahre | ❌ Nein |
| Deutschland | 1,6 Mio | 1.333 Jahre | ❌ Nein |
| Europa | 50 Mio | 41.666 Jahre | ❌ Nein |
| Welt | 1 Mrd | 833.333 Jahre | ❌ Nein |
Kostenlose Alternativen (alle nicht brauchbar für Vollabdeckung):
- Google Earth Engine: Unbegrenzt, aber keine Tile-Export-API
- NASA GIBS: Unbegrenzt, aber nur Web-UI Display (kein MBTiles-Export)
- USGS EarthExplorer: Unbegrenzt, aber ~30m Auflösung (Pixel sichtbar bei z14)
Google Earth, Apple Maps, Google Maps:
- Google Earth: Keine offizielle Tile API; Reverse-Engineering nicht empfohlen
- Apple Maps: Keine Developer Tile API (nur Web/iOS SDK)
- Google Maps Tile API: ToS 4.5.5 explizit „prohibited to prefetch, index, store, or cache" für Offline-Nutzung
- Bing Maps: Lizenz unklar; Reverse-Engineering fragil
Fazit: Alle sind lizenzlich unzulässig oder technisch nicht praktikabel für Vollabdeckung.
Prompt 5
halte alle wichtigen Punkte aus dieser ganzen conversation und zusammenfassungen zu den einzelnen Punkten im Project context fest und lass und die sateliten daten erstmal auf eis legen.
Antwort: Zusammenfassung in Session-Memory und Repo-Aktualisierung durchgeführt.
8 Kernpunkte dokumentiert:
- Aktueller Zustand (z11 Sentinel-2)
- Kostenlos-Realität (Sentinel Hub = 1.333+ Jahre für Deutschland z14)
- Paid Options (MapTiler, Google, Mapbox – Vergleiche + Lizenzgrenzen)
- Rechtliche Grenzen (Google Earth/Maps ToS-Violation)
- Speicher-Kostenrechnung (0 EUR z11 vs. 1.500 EUR MapTiler z16)
- Qualitäts-Levels (z11 vs. z13/z14 vs. z16+ visuelle Unterschiede)
- Entscheidungsmatrix (Use-Case-abhängig)
- Nächste Schritte (Phase-basiert: Test z11 → Entscheidung MapTiler)
Status: ✅ AUF EIS
- Umfassende Analyse dokumentiert
- Entscheidung aufgeschoben bis z11-Feasibility-Test durchgeführt
- Implementierung folgt nur bei Bedarf
Prompt 6
schreibe deinen letzten Promt output in die project requirements und ergänze alles in den session history files.
Antwort: Detaillierte Dokumentation in zwei Dateien:
Aktualisiert: docs/requirements/REQUIREMENTS.md
REQ-006 rewritten:
- Status: 🔴 → 🔴 AUF EIS (neu)
- Neue Provider-Matrix (MapTiler, Sentinel-2, Google, Mapbox, Sentinel Hub Free)
- Kostenvergleich-Tabelle (3 Jahre, Private Nutzung)
- Technische Integrations-Skizze (Aufwand: Niedrig)
- Phased Next-Steps (Test z11 → MapTiler → Integration → Doku)
- Tabellen: Tile-Pyramide-Größen, Download-Zeiten
Aktualisiert: docs/history/summary/PROJECT_CONTEXT.md
- Datum: 2026-06-15 → 2026-06-22
- Notiz zur neuen Satellite-Decision + Verweis auf REQ-006 + Session
Erstellt: docs/history/prompts/2026-06-22_satellite-analysis_session.md
- Vollständige 6-Prompt-Session mit wörtlichen User-Inputs
- Detaillierte Antworten + Findings pro Schritt
- Tabellen + Berechnungen inline
Zusammenfassung für Implementierung
Entscheidung
Satellite Imagery Enhancement: AUF EIS
Wenn z11 Sentinel-2 nicht reicht:
→ MapTiler On-Prem Datasets (einmalig €800–1.500)
- z14 für DACH: 30–50 GB
- z16 für DACH: 200–300 GB
- Integration: 4 Dateien ändern, ~2 Std.
Wenn z11 ausreicht:
→ Status Quo behalten
- 0 EUR Kosten
- 20 GB Speicher
- Keine weiteren Maßnahmen
Wenn nur inkrementelle Updates nötig:
→ Sentinel Hub kostenlos (100 PU/Mo)
- Nur für POI-Updates praktisch
- Vollabdeckung nicht machbar
Session Status: ✅ Abgeschlossen
Nächster Trigger: Nutzer testet z11 und gibt Feedback zu Qualität
Prompt 7
Wenn ich richtig informiert bin habe ich extra die europa deteils bis z-16 geladen aber festgestellt das kaum mehr informationen drin stecken wie siehst du das? sollte ich die behalten oder reien mir auch die informationen aus der welt bis z14? Was würde mir fehlen?
Antwort: Analyse der aktiven Styles/Sources durchgeführt und z14 vs. z16 im laufenden Stack verifiziert.
Kernaussagen:
osmliefert maxzoom 14,osm-europeliefert maxzoom 16worldStyle referenziertosm,europa-detailreferenziertosm-europe- Zusätzliche Inhalte ab z15/z16 (POI-/Straßen-/Label-Ebenen) sind vorhanden, aber nur sichtbar wenn entsprechender Style/Quelle genutzt wird
Ausgeführte Kommandos:
git status --short
docker compose ps
curl -fsS http://127.0.0.1:9983/data/osm.json
curl -fsS http://127.0.0.1:9983/data/osm-europe.json
curl -fsS "http://127.0.0.1:9983/styles/world/16/35210/21493.png" -o /tmp/world-z16.png
curl -fsS "http://127.0.0.1:9983/styles/europa-detail/16/35210/21493.png" -o /tmp/europa-detail-z16.png
Relevante Outputs:
data/osm.json→"maxzoom":14data/osm-europe.json→"maxzoom":16- Beide z16-Tests lieferten 200/PNG (inhaltlich unterschiedlich je Style)
Prompt 8
kannst du mir zwei tiles zeigen / extrahieren die z=14 und z=16 zeigen aus der innenstadt von Bamberg und den gleichen mittelpunkt haben.
Antwort: Vergleichsbilder aus Bamberg-Innenstadt erzeugt und als Export abgelegt.
Artefakte:
docs/exports/bamberg_innenstadt_z14.pngdocs/exports/bamberg_innenstadt_z16.pngdocs/exports/bamberg_tile_compare.txt
Ausgeführte Kommandos:
curl -fsS "http://127.0.0.1:9983/styles/europa-detail/static/10.8917,49.8917,14/256x256.png" -o docs/exports/bamberg_innenstadt_z14.png
curl -fsS "http://127.0.0.1:9983/styles/europa-detail/static/10.8917,49.8917,16/256x256.png" -o docs/exports/bamberg_innenstadt_z16.png
Relevante Outputs:
- z14 PNG: ~74 KB
- z16 PNG: ~73 KB
Prompt 9
kein python du kannst gerne ein bash script schreiben in docs/exports um die aufgabe zu erledigen.
Antwort: Reusable Bash-Skript erstellt und auf static-API umgestellt (ohne Python/bc/node-Abhängigkeit).
Datei:
docs/exports/extract_bamberg_tiles.sh
Ausgeführte Kommandos:
bash docs/exports/extract_bamberg_tiles.sh
Relevante Outputs:
Created: docs/exports/bamberg_innenstadt_z14.pngCreated: docs/exports/bamberg_innenstadt_z16.pngMetadata: docs/exports/bamberg_tile_compare.txt
Prompt 10
interessant auf dem z=16 sehe ich noch nicht die POI die ich im media wiki sehe die anscheinend aus dem z=14 karten material kommt wenn ich anscheinend weiter als z=16 hineingezoomed bin.
Antwort: POI-Layer und MediaWiki-Renderingpfad geprüft.
Ergebnis:
- POI-Layer sind in den Styles vorhanden (
minzoom14/15/16) - MediaWiki kann durch Client-Rendering/Overzoom + eigene Mapframe-Overlays abweichend wirken
- Unterschied zwischen exportiertem Rasterbild und Wiki-Overlay erklärt sichtbare Differenzen
Ausgeführte Kommandos:
grep -n "poi-level" config/styles/europa-detail.json
grep -n "poi-level" config/styles/osm-intl.json
Prompt 11
nein passt lass uns lieber die integration der karten in die nextcloud und HA integrieren.
Antwort: Integrationsdokumentation auf verifizierte Endpunkte umgebaut.
Geänderte Dateien:
docs/nextcloud-config.mddocs/homeassistant-config.mddocs/ADMIN.md(Quick-Rollout ergänzt)
Ausgeführte Kommandos:
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9983/styles/osm-intl
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9983/styles/europa-detail
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9983/styles/satelite-world
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9983/styles/osm-intl/0/0/0.png
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9983/styles/europa-detail/0/0/0.png
Relevante Outputs:
- Alle oben genannten Endpunkte antworten mit
200
Prompt 12
ergänze die explizite tiles.rd13server.de domain in den integrationsfiles.
Antwort: Platzhalter-URLs durch feste Produktiv-Domain ersetzt.
Geänderte Dateien:
docs/nextcloud-config.mddocs/homeassistant-config.md
Ausgeführte Kommandos:
grep -R "TILE_SERVER_URL" docs/nextcloud-config.md docs/homeassistant-config.md
Relevante Outputs:
- Keine Treffer mehr für
TILE_SERVER_URL
Prompt 13
ok commit und push
Antwort:
Änderungen für Integration + Doku-History vorbereitet, committed und nach origin/main gepusht.