feat: NASA Earthdata/GIBS Integration - Imagery-Switcher + FIRMS Layer

- imagery.js: WMTS-Support fuer NASA GIBS + 4 neue Quellen (MODIS Terra, VIIRS SNPP, GOES East/West)
- firms.js: Neuer VIIRS Thermal Anomalies Layer (375m, tagesaktuell, Braende/Industriewaerme)
- nightlights.js: NRT-Upgrade (dynamisches Datum statt hardcodiert 2024-01-01)
- index.html: Optgroups im Imagery-Select, FIRMS-Checkbox, Script-Tag
- app.js: FIRMS Toggle
- globe.css: dot-firms Farbe

Alle NASA-Daten kostenlos via GIBS WMTS, kein API-Key noetig.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
Claude Dev
2026-03-27 21:10:41 +01:00
Ursprung 492d1135df
Commit ab4288d328
6 geänderte Dateien mit 173 neuen und 54 gelöschten Zeilen

Datei anzeigen

@@ -146,6 +146,7 @@
</label>
<div class="layer-loading" id="loading-disasters"></div>
<div class="layer-status" id="status-disasters"></div>
<label class="layer-toggle"> <input type="checkbox" id="layer-firms" title="NASA VIIRS Waermeanomalien: Aktive Braende, Industriewaerme, Vulkane (tagesaktuell, 375m)"> <span class="layer-dot dot-firms"></span> <span class="layer-name" title="Thermische Hotspots weltweit via NASA VIIRS Satellit">Feuer (VIIRS)</span> </label>
<label class="layer-toggle">
<input type="checkbox" id="layer-weather" title="Regenradar weltweit (RainViewer, 5min Refresh)">
<span class="layer-dot dot-weather"></span>
@@ -196,17 +197,7 @@
<div class="panel-divider"></div>
<div class="panel-section">
<div style="font-size:9px;letter-spacing:1.5px;color:var(--accent);margin-bottom:6px;">SATELLITENBILDER</div>
<select id="imagery-select" class="imagery-select" onchange="ImagerySwitch.switchTo(this.value)">
<option value="default">Cesium Ion (Standard)</option>
<option value="esri">Esri World Imagery</option>
<option value="s2-2024">Sentinel-2 (2024)</option>
<option value="s2-2023">Sentinel-2 (2023)</option>
<option value="s2-2022">Sentinel-2 (2022)</option>
<option value="s2-2020">Sentinel-2 (2020)</option>
<option value="s2-2018">Sentinel-2 (2018)</option>
<option value="topo">OpenTopoMap</option>
<option value="osm">OpenStreetMap</option>
</select>
<select id="imagery-select" class="imagery-select" onchange="ImagerySwitch.switchTo(this.value)"> <optgroup label="Standard"> <option value="default">Cesium Ion (Standard)</option> <option value="esri">Esri World Imagery</option> </optgroup> <optgroup label="NASA Earthdata (tagesaktuell)"> <option value="nasa-modis">MODIS Terra (Heute)</option> <option value="nasa-viirs">VIIRS SNPP (Heute)</option> <option value="nasa-goes-east">GOES East (Live)</option> <option value="nasa-goes-west">GOES West (Live)</option> </optgroup> <optgroup label="Sentinel-2 (historisch)"> <option value="s2-2024">Sentinel-2 (2024)</option> <option value="s2-2023">Sentinel-2 (2023)</option> <option value="s2-2022">Sentinel-2 (2022)</option> <option value="s2-2020">Sentinel-2 (2020)</option> <option value="s2-2018">Sentinel-2 (2018)</option> </optgroup> <optgroup label="Karten"> <option value="topo">OpenTopoMap</option> <option value="osm">OpenStreetMap</option> </optgroup> </select>
<div id="imagery-label" style="font-size:9px;color:var(--text-dim);margin-top:2px;">Cesium Ion (Standard)</div>
</div>
<div class="panel-divider"></div>
@@ -278,6 +269,7 @@
<script src="/static/js/layers/iss.js"></script>
<script src="/static/js/layers/terminator.js"></script>
<script src="/static/js/layers/timezones.js"></script>
<script src="/static/js/layers/firms.js"></script>
<script src="/static/js/layers/weather.js"></script>
<script src="/static/js/ui/imagery.js"></script>
<script src="/static/js/ui/search.js"></script>