osint-dashboard/docs/satellite-feeds.md
Sirius DevOps 09fe615d89 docs: add free satellite-feeds catalog from research card
Live-probed 2026-08-29 inventory (GIBS extra layers, GOES/Himawari,
HLS, OPERA, STAC/COG paths). Ranked drop-ins for the OSINT map; skip
paid/NICFI. Does not change runtime code.
2026-08-29 13:12:26 -04:00

30 KiB
Raw Permalink Blame History

Free satellite feeds for the OSINT map

Builder inventory (research profile). Probed 2026-08-29 from this machine. Do not treat search snippets as live — every row below had a curl/GET (tile, GetCapabilities, STAC, or GetMap). 404 tile rows are omitted unless Capabilities/DescribeDomains still prove the layer exists (sparse fire overlays 404 on empty tiles).

Pi rules: browser L.tileLayer when CORS *; do not proxy multi-GB COGs through the Pi; STAC+SAS like existing Sentinel-1 is “backend same as S-1”; no Redis; home uplink is small.

GIBS Web Mercator REST template (no key):[2]

https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/{layer}/default/{time}/{TileMatrixSet}/{z}/{y}/{x}.{jpg|png}

Omit {time} for static layers. Sub-daily GOES/Himawari accept YYYY-MM-DD or YYYY-MM-DDTHH:MI:SSZ (GIBS snaps to nearest).[2] Attribution: NASA asks clients to acknowledge GIBS/ESDIS.[1]

Live GetCapabilities epsg3857/best on 2026-08-29: 1315 Layer entries, all with a GoogleMapsCompatible_LevelN matrix, access-control-allow-origin: *.[4] GIBS documents 1000+ visualizations; many LANCE layers appear within 3.5 hours of observation.[3]

Worldview is the interactive catalog of the same tiles.[5] GIBS developer portal: Earthdata GIBS API page (HTTP 403 from this host at probe time; docs site above is the working copy).[27]


Already in the product (do not rediscover)

id status
BlueMarble_ShadedRelief_Bathymetry GIBS basemap (app/gibs_map.py)
VIIRS_SNPP_CorrectedReflectance_TrueColor GIBS basemap
MODIS_Terra_CorrectedReflectance_TrueColor GIBS basemap
MODIS_Aqua_CorrectedReflectance_TrueColor GIBS basemap
VIIRS_SNPP_DayNightBand_ENCC GIBS night lights
FIRMS VIIRS hotspot CSV ingest + FIRMS_MAP_KEY
VIIRS_SNPP_Thermal_Anomalies_375m_All overlay in app/live_layers.py (gibs_thermal). Caps now say TMS GoogleMapsCompatible_Level8, not Level9 — the wired URL uses Level9 (will 400).
Sentinel-1 GRD Planetary Computer STAC + SAS + TiTiler GET /api/map/sentinel1
IEM NEXRAD / RainViewer weather radar, not satellite

Repo docs already flag Suomi NPP product stop 2026-11-01 — swap SNPP true color / DNB / thermal / FIRMS VIIRS_SNPP_NRT to NOAA-20/21 before then.


Ranked “add tomorrow” (sections 12)

Most new OSINT signal per zero dollars, browser tiles only:

  1. VIIRS NOAA-20 + NOAA-21 true color — SNPP replacement, same dropdown pattern.
  2. VIIRS false-color SWIR (BandsM11-I2-I1, BandsM3-I3-M11, MODIS 7-2-1) — burn scars, flood, bare soil.
  3. GIBS GOES-East/West GeoColor + Band13 IR — 10-minute weather-sat, Hormuz + CONUS.
  4. GIBS Himawari AHI vis + IR — same for IO/WestPac.
  5. HLS S30/L30 — 30 m Landsat/Sentinel-2 look without TiTiler.
  6. OPERA RTC Sentinel-1 + DIST-ALERT + DSWx — SAR / disturbance / flood as GIBS tiles (not COGs).
  7. NOAA-20/21 DNB — night lights after SNPP.
  8. IEM GOES XYZ — “latest” tiles, no time in the URL, already CORS * like NEXRAD.[6]
  9. EUMETView WMS — Meteosat/MTG for EuropeAfricaIO, CORS *.[18]
  10. GFW GLAD-S2 / integrated deforestation alerts — raster tiles, CORS * when Origin is sent.[15]
  11. MUR SST + VIIRS/PACE/OLCI chlorophyll — ocean.
  12. MODIS NDVI 8-day + IMERG rain — veg / flood context.
  13. SRTM / ASTER GDEM color index — satellite-derived DEM, static.
  14. NOAA-20/21 thermal anomalies — FIRMS-shaped overlay after SNPP; empty tiles 404.

1. Drop-in GIBS WMTS

All rows: key? no. CORS *. Pi fit: browser L.tileLayer. Same time-domain helper as gibs_map.py (…/1.0.0/{id}/default/{tms}/all/all.xml).

Format of URL column: layer id + TMS + ext. Date used in probes: 2026-08-27 unless noted.

1.1 Optical (true / false / SWIR)

id what you see tile pattern cadence max zoom license already have? probe
VIIRS_NOAA20_CorrectedReflectance_TrueColor Daily true color, JPSS-1 …/{id}/default/{time}/GoogleMapsCompatible_Level9/{z}/{y}/{x}.jpg daily 9 (~250 m) NASA GIBS ack[1] no (SNPP only) 200 * jpeg
VIIRS_NOAA21_CorrectedReflectance_TrueColor Daily true color, JPSS-2 same Level9 jpg daily 9 NASA GIBS[1] no 200
VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1 False color SWIR (burns, flood) Level9 jpg daily 9 NASA GIBS[1] no 200
VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11 False color (snow/ice/desert) Level9 jpg daily 9 NASA GIBS[1] no 200
VIIRS_NOAA20_CorrectedReflectance_BandsM11-I2-I1 NOAA-20 SWIR false color Level9 jpg daily 9 NASA GIBS[1] no 200
VIIRS_NOAA21_CorrectedReflectance_BandsM11-I2-I1 NOAA-21 SWIR false color Level9 jpg daily 9 NASA GIBS[1] no 200
MODIS_Terra_CorrectedReflectance_Bands721 Classic 7-2-1 burn/SWIR Level9 jpg daily 9 NASA GIBS[1] no 200
MODIS_Terra_CorrectedReflectance_Bands367 3-6-7 false color Level9 jpg daily 9 NASA GIBS[1] no 200
MODIS_Aqua_CorrectedReflectance_Bands721 Aqua 7-2-1 Level9 jpg daily 9 NASA GIBS[1] no 200
HLS_S30_Nadir_BRDF_Adjusted_Reflectance Harmonized Sentinel-2 30 m RGB Level12 png ~23 d when a granule exists 12 (~30 m) NASA GIBS[1] no 200 at z=5 NC; 404 on empty granules is normal. Domain from 2015present
HLS_L30_Nadir_BRDF_Adjusted_Reflectance Harmonized Landsat 30 m Level12 png 816 d 12 NASA GIBS[1] no in caps; tile 404 on empty scene
Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly Landsat WELD monthly mosaic Level12 jpg monthly, not NRT 12 NASA GIBS[1] no 200
Landsat_WELD_CorrectedReflectance_TrueColor_Global_Annual WELD annual Level12 jpg yearly 12 NASA GIBS[1] no 200

1.2 Weather satellites (imagery, not NEXRAD)

Sub-daily. Probe with 2026-08-27 and 2026-08-27T18:00:00Z both 200 (nearestValue).[2]

id what you see TMS / ext cadence max zoom already have? probe
GOES-East_ABI_GeoColor GeoColor full disk (Americas, Atlantic, Hormuz west edge) Level7 png ~10 min 7 no 200
GOES-West_ABI_GeoColor GeoColor Pacific / CONUS west Level7 png ~10 min 7 no 200 (also 200 over CA with ISO time)
GOES-East_ABI_Band2_Red_Visible_1km ABI vis Level7 png ~10 min 7 no 200
GOES-West_ABI_Band2_Red_Visible_1km ABI vis Level7 png ~10 min 7 no 200
GOES-East_ABI_Band13_Clean_Infrared Clean IR window Level6 png ~10 min 6 no 200
GOES-West_ABI_Band13_Clean_Infrared Clean IR Level6 png ~10 min 6 no 200
GOES-East_ABI_FireTemp Fire temperature RGB Level7 png ~10 min 7 no 200
GOES-West_ABI_FireTemp Fire temperature RGB Level7 png ~10 min 7 no 404 on NC tile (wrong disk); use west longitudes
GOES-East_ABI_Dust Dust RGB Level7 png ~10 min 7 no 200
GOES-East_ABI_Air_Mass Air mass RGB Level6 png ~10 min 6 no 200
GOES-West_ABI_Air_Mass Air mass RGB Level6 png ~10 min 6 no 200
Himawari_AHI_Band3_Red_Visible_1km Himawari vis (IO / WestPac / Aus) Level7 png ~10 min 7 no 200 (ISO time over Japan)
Himawari_AHI_Band13_Clean_Infrared Himawari IR Level6 png ~10 min 6 no 200
Himawari_AHI_Air_Mass Himawari air mass Level6 png ~10 min 6 no 200

Meteosat is not in GIBS. Use section 2 EUMETView.

1.3 SAR / flood / disturbance (GIBS tiles — skip TiTiler)

id what you see TMS cadence max zoom already have? probe
OPERA_L2_Radiometric_Terrain_Corrected_SAR_Sentinel-1 S-1 RTC browse (better than GRD for terrain) Level12 png scene-based from 2025-01 12 no (you have GRD COGs, not RTC tiles) 200 at z=5; domain 2025-01-10/…
OPERA_L3_DIST-ALERT-HLS_Color_Index Vegetation disturbance / clearing alert Level12 png ~23 d 12 no 200
OPERA_L3_DIST-ANN-HLS_Color_Index Annual DIST Level12 png yearly 12 no in caps
OPERA_L3_Dynamic_Surface_Water_Extent-HLS Surface water / flood (HLS, 30 m) Level12 png ~23 d 12 no 200 at z=5
OPERA_L3_Dynamic_Surface_Water_Extent-Sentinel-1 Surface water from S-1 (clouds irrelevant) Level12 png S-1 revisit 12 no 200 at z=5
NISAR_L2_Geocoded_Polarimetric_Covariance NISAR early browse Level13 png when downlinked 13 no 200 (layer exists; coverage still sparse)
SMAP_L4_Analyzed_Surface_Soil_Moisture Soil moisture Level6 png daily 6 no 200
SMAP_L3_Active_Sigma0_VV SMAP radar σ0 Level6 png 23 d 6 no in caps (SMAP radar died 2015 — historical)

No ICEYE / Capella / Umbra / ALOS PALSAR daily layers in this GIBS 3857 dump.[4] ALOS shows up as mosaics on Planetary Computer (section 3).

1.4 Thermal / fire / volcano

Sparse PNG overlays: empty tiles 404. Capabilities + DescribeDomains still 200. Frontend must tolerate 404 (Leaflet does).

id what you see TMS cadence max zoom already have? probe
VIIRS_SNPP_Thermal_Anomalies_375m_All 375 m hotspots Level8 png (not 9) daily 8 yes, but wired as Level9 Domain 200; many tiles 404
VIIRS_NOAA20_Thermal_Anomalies_375m_All NOAA-20 hotspots Level8 png daily 8 no Domain 200 (2020-01-01/… through at least 2025-09); tiles 404 if no fire in tile
VIIRS_NOAA21_Thermal_Anomalies_375m_All NOAA-21 hotspots Level8 png daily 8 no same
VIIRS_*_Thermal_Anomalies_375m_{Day,Night} day/night split Level8 png daily 8 no in caps
MODIS_{Terra,Aqua,Combined}_Thermal_Anomalies_All 1 km MODIS fire Level7 png daily 7 no in caps
GOES-East_ABI_FireTemp geostationary fire RGB Level7 png ~10 min 7 no 200

Also keep FIRMS CSV — points beat raster for click/query.

1.5 Night lights (beyond current DNB ENCC)

id what you see TMS / ext cadence max zoom already have? probe
VIIRS_NOAA20_DayNightBand NOAA-20 DNB Level7 png daily 7 no 200
VIIRS_NOAA21_DayNightBand NOAA-21 DNB Level7 png daily 7 no 200
VIIRS_NOAA20_DayNightBand_At_Sensor_Radiance radiance, not ENCC Level8 png daily 8 no 200
VIIRS_SNPP_DayNightBand_At_Sensor_Radiance SNPP radiance Level8 png daily 8 no 200
VIIRS_NOAA20_DayNightBand_AtSensor_M15 DNB+M15 composite jpg Level8 jpg daily 8 no 200
VIIRS_Night_Lights Black-marble-style annual-ish Level8 png time-dim 8 no 200 on 2026-08-27 mosaic date
VIIRS_CityLights_2012 Static 2012 city lights Level8 jpg static (has_time=false) 8 no 200

VIIRS_Black_Marble and VIIRS_NOAA20_DayNightBand_ENCC are in caps; ENCC-NOAA20 returned HTTP 400 on the Level8 template we tried — do not ship until DescribeDomains + a known-good date are wired. SNPP ENCC stays as the current layer.

1.6 Ocean

id what you see TMS cadence max zoom probe
GHRSST_L4_MUR_Sea_Surface_Temperature 1 km MUR SST Level7 png daily 7 200
GHRSST_L4_MUR_Sea_Surface_Temperature_Anomalies SST anomaly Level7 png daily 7 in caps
MODIS_Aqua_L3_SST_MidIR_4km_Night_Daily MODIS SST Level6 png daily 6 200
MODIS_Aqua_L2_Chlorophyll_A Aqua chl-a Level7 png daily 7 200
VIIRS_SNPP_L2_Chlorophyll_A VIIRS chl-a Level7 png daily 7 200
VIIRS_NOAA20_Chlorophyll_a NOAA-20 chl-a Level7 png daily 7 200
OCI_PACE_Chlorophyll_a PACE OCI chl-a Level7 png daily 7 200
S3A_OLCI_Chlorophyll_a Sentinel-3A OLCI chl-a Level7 png daily 7 200
S3B_OLCI_Chlorophyll_a Sentinel-3B OLCI Level7 png daily 7 in caps
MODIS_Terra_Sea_Ice sea ice Level7 png daily 7 200
GHRSST_L4_MUR_Sea_Ice_Concentration MUR ice Level7 png daily 7 in caps

No dedicated “SAR oil slick” GIBS layer in the 3857 dump. Closest: OPERA RTC / DSWx-S1 + existing S-1 GRD TiTiler.

1.7 Vegetation / burn / flood / precip / atm

id what you see TMS cadence max zoom probe
MODIS_Terra_NDVI_8Day NDVI Level9 png 8-day 9 200
MODIS_Terra_L3_NDVI_16Day NDVI 16-day Level9 png 16-day 9 200
IMERG_Precipitation_Rate GPM IMERG rain Level6 png sub-daily 6 200
MODIS_Terra_Aerosol AOD Level6 png daily 6 200
MODIS_Terra_Land_Surface_Temp_Day LST Level7 png daily 7 200
VIIRS_SNPP_Land_Surface_Temp_Day VIIRS LST Level7 png daily 7 200
AIRS_L3_Carbon_Monoxide_500hPa_Volume_Mixing_Ratio_Daily_Night CO (fires, industry) Level6 png daily 6 200
OMI_NO2 / OMI_Aerosol_Index NO2 / smoke index Level6 png daily 6 OMI AI 200; several OMPS 200
MODIS_Water_Mask static water mask Level9 png static 9 200

MODIS burned-area monthly (MCD64 / MODIS_Combined_L3_Burned_Area_Monthly) is in caps; our dated tile 400d — wire only after a DescribeDomains date hits 200.

1.8 DEM (satellite-derived, tileable)

id what you see TMS / ext cadence max zoom probe
SRTM_Color_Index SRTM elevation color Level12 png static 12 200
ASTER_GDEM_Color_Index ASTER GDEM color Level12 png static 12 200
ASTER_GDEM_Color_Shaded_Relief ASTER hillshade Level12 jpg static 12 200
ASTER_GDEM_Greyscale_Shaded_Relief grey hillshade Level12 jpg static 12 in caps
GEDI_ISS_L3_Canopy_Height_Mean_RH100_201904-202303 GEDI canopy height Level7 png static epoch 7 related GEDI biomass 200

Blue Marble shaded relief is already the basemap — these are extra.


2. Other XYZ / WMTS / WMS (no key)

Ranked after GIBS for signal/$; still free.

id what you see provider URL pattern key? CORS cadence max zoom / res license / attribution Pi fit already have? probe 2026-08-29
iem_goes_east_conus_ch02 GOES-East CONUS ABI ch02 vis, latest Iowa State IEM https://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/goes_east_conus_ch02/{z}/{x}/{y}.png no * ~5 min cache header TMS; vis ~1 km Cite IEM / NOAA GOES[6][7] browser (same stack as NEXRAD) no 200 image/png *
iem_goes_east_conus_ch13 GOES-East CONUS IR ch13 IEM …/goes_east_conus_ch13/{z}/{x}/{y}.png no * ~5 min IR ~2 km IEM[6] browser no 200
iem_goes_east_fulldisk_ch02 GOES-East full disk vis IEM …/goes_east_fulldisk_ch02/{z}/{x}/{y}.png no * ~5 min full disk IEM[6] browser no 200
iem_goes_west_conus_ch02 GOES-West CONUS vis IEM …/goes_west_conus_ch02/{z}/{x}/{y}.png no * ~5 min IEM[6] browser no 200
iem_goes_vis_1km Legacy name → GOES-East vis IEM …/goes-vis-1km/{z}/{x}/{y}.png no * ~5 min IEM[6] browser no 200
IEM GOES template Any bird/sector/channel IEM goes_{east|west}_{fulldisk|conus|mesoscale-1|mesoscale-2|alaska|puertorico}_ch{0116}[6] no * NRT 16 ABI bands IEM[6] browser no template documented; ch02/ch13 probed
eumet_msg_natural Meteosat natural color EUMETSAT EUMETView GeoServer WMS https://view.eumetsat.int/geoserver/ows layer msg_fes:rgb_natural EPSG:3857 GetMap no * NRT SEVIRI ~3 km EUMETSAT viz; cite EUMETSAT[18] browser L.tileLayer.wms (not XYZ). Caps 200, 165 layer names no GetMap 200 image/png *
eumet_msg_ir108 Meteosat IR 10.8 EUMETView WMS msg_fes:ir108 no * NRT EUMETSAT browser WMS no name in caps
eumet_msg_fire Meteosat fire EUMETView WMS msg_fes:fire no * NRT EUMETSAT browser WMS no name in caps
eumet_mtg_ir105 MTG-I IR EUMETView WMS mtg_fd:ir105_hrfi no * NRT FCI EUMETSAT browser WMS no name in caps
eumet_s3_olci_rgb S3 OLCI RGB mosaic EUMETView WMS copernicus:daily_sentinel3ab_olci_l1_rgb_fulres no * daily OLCI Copernicus/EUMETSAT browser WMS no name in caps
eumet_s3_chl S3 chl-a EUMETView WMS copernicus:daily_sentinel3ab_olci_l2_chl_fullres no * daily Copernicus browser WMS no name in caps
gfw_glad_s2 GLAD Sentinel-2 deforestation alerts GFW tile cache https://tiles.globalforestwatch.org/umd_glad_sentinel2_alerts/latest/default/{z}/{x}/{y}.png no * if Origin header (null without it) ~daily raster z 022 documented[15] WRI/UMD; cite GFW browser (Leaflet sends Origin) no 200 image/png; with Origin → CORS *
gfw_integrated Integrated deforestation alerts GFW https://tiles.globalforestwatch.org/gfw_integrated_alerts/latest/default/{z}/{x}/{y}.png no * + Origin ~daily GFW browser no 200
gfw_tcl UMD tree-cover loss GFW https://tiles.globalforestwatch.org/umd_tree_cover_loss/latest/tcd_30/{z}/{x}/{y}.png no (same host) annual GFW/UMD browser no 200
star_goes19_fd_geocolor GOES-19 full-disk GeoColor JPEG (not XYZ) NOAA NESDIS STAR CDN https://cdn.star.nesdis.noaa.gov/GOES19/ABI/FD/GEOCOLOR/latest.jpg also …/CONUS/GEOCOLOR/latest.jpg no * minutes full-disk / CONUS image NOAA not a map layer — optional lightbox. Do not tile-proxy no 200 jpeg *[21]
star_goes18_fd_geocolor GOES-18 FD GeoColor JPEG STAR https://cdn.star.nesdis.noaa.gov/GOES18/ABI/FD/GEOCOLOR/latest.jpg no * minutes NOAA lightbox only no 200

IEM JSON …/GOES/conus/channel02/GOES-16_C02.json is stale (generated_at 2025-04-07) but the tile names still 200. Prefer GIBS GeoColor when you need a time slider; prefer IEM when you want “whatever is latest” with zero time plumbing.[6][7]

2.x Works but not browser-direct (no CORS)

id what you see URL CORS Pi fit probe
RAMMB/CIRA SLIDER GeoColor tiles GOES-19 / Himawari / JPSS loops, ~10 min Times: https://rammb-slider.cira.colostate.edu/data/json/goes-19/full_disk/geocolor/latest_times.json (timestamps_int). Tile: https://rammb-slider.cira.colostate.edu/data/imagery/{YYYY}/{MM}/{DD}/goes-19---full_disk/geocolor/{ts}/{zz}/{yyy}_{xxx}.png e.g. …/2026/08/28/goes-19---full_disk/geocolor/20260828225021/00/000_000.png. Himawari times JSON also 200. none Do not proxy tiles through the Pi. Bookmark / deep-link SLIDER instead.[19][26] times 200; tile 200 png; CORS null
NICT Himawari-8 Real-time Web 10-min full disk PNG grid https://himawari8.nict.go.jp/img/D531106/latest.json then https://himawari8.nict.go.jp/img/D531106/2d/550/{YYYY}/{MM}/{DD}/{HHMMSS}_{x}_{y}.png none same — no Pi proxy latest.json 200; tile 200 png; CORS null[22]
OpenAerialMap Per-scene TMS of open UAV/sat https://api.openaerialmap.org/metaproperties.tms CORS only https://map.openaerialmap.org not usable from the dashboard origin without a proxy; opportunistic, not a global basemap[23][25] meta 200
USGS LandsatLook STAC Landsat C2 STAC https://landsatlook.usgs.gov/stac-server CORS locked to https://landsatlook.usgs.gov/stac-server backend-only if ever; prefer Earth Search / PC / GIBS HLS[24] collections + search 200
NOAA CoastWatch ERDDAP WMS (jplMURSST41) MUR SST WMS https://coastwatch.pfeg.noaa.gov/erddap/wms/jplMURSST41/request mixed flaky: GetCapabilities 200 earlier, 503 on later GetMap/GetCapabilities. Prefer GIBS MUR 503 on 2nd pass
RainViewer satellite.infrared would be IR sat frames https://api.rainviewer.com/public/weather-maps.json * empty list ("infrared": []) at probe time — do not ship. Radar path already in product[20] JSON 200, satellite IR empty

3. STAC / COG (TiTiler, same pattern as Sentinel-1)

Do not stream COGs through the Pi for a basemap. Viewport bbox + short datetime window + SAS/public HTTPS + existing TiTiler. Prefer GIBS HLS / OPERA tiles (section 1) when a browse PNG is enough.

id what you see provider STAC key? CORS cadence res license Pi fit already have? probe
sentinel-2-l2a (Earth Search) S2 L2A COGs, public HTTPS Element 84 / AWS Open Data https://earth-search.aws.element84.com/v1 collections: sentinel-2-l2a, sentinel-2-c1-l2a, sentinel-2-l1c, sentinel-2-pre-c1-l2a, sentinel-1-grd, landsat-c2-l2, naip, cop-dem-glo-30, cop-dem-glo-90[8][9] no STAC * S2 ~5 d 10 m Copernicus open; AWS public bucket HTTPS (not requester-pays for these COGs)[9] backend same as S-1: search → TCI/visual COG → TiTiler. Live item S2A_40RCP_20260827_0_L2A href https://sentinel-cogs.s3.us-west-2.amazonaws.com/…/TCI.tif no collections + search 200 *
sentinel-2-l2a (Planetary Computer) same S2 on Azure Microsoft PC https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a SAS token (unsigned search works) STAC * ~5 d 10 m Copernicus; Azure blob needs SAS like current S-1 backend same as S-1 no collection + search 200 * (136 collections listed)[10][11]
sentinel-1-rtc S-1 IW RTC γ0 COGs PC / Catalyst /collections/sentinel-1-rtc PC account required to retrieve SAS for RTC blobs[12] STAC * IW land ~10 m pixels CC BY 4.0[12] backend same as S-1 plus PC login for SAS. Prefer GIBS OPERA RTC tiles if browse is enough no collection 200; search item S1D_IW_GRDH_…_rtc assets vv,vh,tilejson,rendered_preview
sentinel-1-grd (PC) GRD PC /collections/sentinel-1-grd SAS * 612 d Copernicus already have yes 200
sentinel-1-grd (Earth Search) GRD on AWS E84 /collections/sentinel-1-grd requester-pays s3:// URLs per E84 README[9] * Copernicus worse than PC for the Pi (AWS creds) no collection 200
landsat-c2-l2 Landsat 8/9 SR E84 + PC both catalogs no / SAS * 816 d 30 m USGS public backend TiTiler; or just use GIBS HLS no both 200
hls2-s30 / hls2-l30 HLS v2 COGs PC /collections/hls2-s30, hls2-l30 SAS * 23 d 30 m NASA prefer GIBS HLS tiles no collections 200
goes-cmi GOES Cloud & Moisture Imagery COGs PC /collections/goes-cmi SAS * 510 min ABI NOAA overkill vs GIBS/IEM tiles no collection 200
modis-14A1-061 / modis-64A1-061 MODIS fire / burned area PC /collections/modis-14A1-061, modis-64A1-061 SAS * daily / monthly 1 km / 500 m NASA prefer GIBS fire tiles + FIRMS no 200
alos-palsar-mosaic / alos-fnf-mosaic ALOS PALSAR yearly mosaic / forest-nonforest PC those collection ids SAS * annual 25 m JAXA (check collection) backend mosaic, not live SAR no 200
nasadem / cop-dem-glo-30 DEM COGs PC + E84 nasadem, cop-dem-glo-30 public / SAS * static 30 m NASA / Copernicus prefer GIBS SRTM/ASTER tiles no 200
naip USDA NAIP aerial (CONUS) E84 + PC naip no * leaf-on, not NRT ~0.6 m USDA CONUS only; huge. Optional TiTiler no 200
io-lulc-annual-v02 10 m land cover PC io-lulc-annual-v02 SAS * annual 10 m various overlay, not sat photo no 200
CDSE sentinel-2-l2a / sentinel-1-grd Copernicus Dataspace STAC ESA CDSE https://stac.dataspace.copernicus.eu/v1/collections/sentinel-2-l2a (lowercase ids work; SENTINEL-2 404) free account for many assets CORS none same as ESA Copernicus backend only; Earth Search/PC easier on a Pi no collection 200, CORS null. List endpoint is paginated (first page was CLMS burned-area COGs)[14]

PC catalog also has Sentinel-3 OLCI/SLSTR NetCDF, Sentinel-5P, GOES-GLM — NetCDF is a bad TiTiler citizen; use GIBS/EUMETView for those.


4. Free-account / license-gated (no card this week)

id note why not a dropdown tomorrow
Microsoft PC SAS for RTC (and some blobs) “A Planetary Computer account is required to retrieve SAS tokens to read the RTC data.”[12] Search is open; read needs an account. GRD path you already have may not need this.
Copernicus Data Space (stac.dataspace.copernicus.eu) STAC search 200 without cookie; no CORS; downloads often need a free CDSE login Use Earth Search/PC unless you want official ESA provenance
JAXA P-Tree / Himawari Monitor Himawari standard data, account NICT/GIBS already cover browse
EUMETSAT Data Store full MTG/MSG granules EUMETView WMS is the browse path
FIRMS map key already in product add VIIRS_NOAA20_NRT / VIIRS_NOAA21_NRT before SNPP sunset
USGS ERS / EarthExplorer Landsat/ASTER download login GIBS HLS + Earth Search cover browse
Planet Tropical Forest Observatory paid successor after NICFI see skip

5. Skip / costs money / dead

id why
NICFI / Planet tropical mosaics (free) Free NICFI phase ended 1 Apr 2025. Removed from GFW and Collect Earth Online. Successor is Planet Tropical Forest Observatory (subscription) or a future NICFI re-compete.[16][17] PC collections planet-nicfi-analytic / planet-nicfi-visual still exist but assets are RFP winners only + proprietary PLA.[13]
Sentinel Hub (paid tiers) billed processing units
Google Earth Engine billing project
Maxar / Planet commercial $
ICEYE commercial no free global tile/STAC found this pass
Umbra / Capella / Maxar open data STAC catalogs 200 (maxar-opendata, umbra-open-data-catalog) but disaster events only, not a standing layer
Esri World Imagery / Clarity tiles 200 CORS *ToS not a free basemap we should wrap
Mapbox / Google satellite key + ToS
GEE Dynamic World / NICFI in EE EE billing
nowcoast.noaa.gov HTTP 403
FIRMS WMS (firms.modaps.eosdis.nasa.gov/wms/…) HTTP 404 — use CSV + GIBS
RainViewer satellite IR payload empty[20]
CoastWatch ERDDAP 503 at probe; GIBS MUR replaces SST
Proxying RAMMB or NICT tiles no CORS; would soak the home uplink

Implementation notes for builders

  1. GIBS dropdown: reuse MAP_LAYERS in app/gibs_map.py. New rows are {id, title, tms, format, has_time, max_zoom}. Time-domain fetch already exists.
  2. SNPP sunset: NOAA-20/21 true color, DNB, thermal, FIRMS datasets first. SNPP true color can stay as fallback until 2026-11-01.
  3. Fix thermal TMS: caps say GoogleMapsCompatible_Level8 for VIIRS_*_Thermal_Anomalies_375m_*. Level9 GetTile is HTTP 400 XML.
  4. GOES time: either GIBS {time} ISO + existing date slider, or IEM “latest” XYZ with no time (simpler, CONUS/FD only).
  5. HLS / OPERA: empty granules 404 — same as “todays MODIS isnt ingested yet”. Clamp latest date via DescribeDomains like current daily mosaics.
  6. Do not add TiTiler S2 as a global basemap. 10 m COGs will thrash the Pi. GIBS HLS Level12 is the browse path; Earth Search TCI is a “inspect this viewport” action like S-1.
  7. EUMETView: L.tileLayer.wms against https://view.eumetsat.int/geoserver/ows, layers msg_fes:rgb_natural / msg_fes:ir108. Caps CORS *.
  8. GFW: send browser Origin (Leaflet does). No key.
  9. Attribution strings: NASA GIBS acknowledgment[1]; IEM; EUMETSAT; GFW/UMD; NOAA STAR.

Probe stats (this run)

  • GIBS WMTS caps: 5796177 bytes, CORS *, 1315 layers.[4]
  • Curated GIBS GetTile: 78/90 HTTP 200 first batch; extra GOES/DNB/HLS/OPERA/ocean 200 as tabulated.
  • Earth Search collections (complete list): sentinel-2-pre-c1-l2a, cop-dem-glo-30, naip, cop-dem-glo-90, landsat-c2-l2, sentinel-2-l2a, sentinel-2-l1c, sentinel-2-c1-l2a, sentinel-1-grd.[8]
  • Planetary Computer: 136 collections; S-1 RTC CC-BY-4.0.[11][12]

Raw probe JSON lives next to this file in the kanban workspace (gibs_probes.json, wave2_probes.json, wave3_probes.json, gibs_all_layers.json).

Sources

[1] https://nasa-gibs.github.io/gibs-api-docs [2] https://nasa-gibs.github.io/gibs-api-docs/access-basics [3] https://nasa-gibs.github.io/gibs-api-docs/available-visualizations [4] https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/1.0.0/WMTSCapabilities.xml [5] https://worldview.earthdata.nasa.gov [6] https://mesonet.agron.iastate.edu/ogc [7] https://mesonet.agron.iastate.edu/GIS/goes.phtml [8] https://earth-search.aws.element84.com/v1/collections [9] https://github.com/Element84/earth-search [10] https://planetarycomputer.microsoft.com/catalog [11] https://planetarycomputer.microsoft.com/api/stac/v1/collections [12] https://planetarycomputer.microsoft.com/dataset/sentinel-1-rtc [13] https://planetarycomputer.microsoft.com/dataset/planet-nicfi-analytic [14] https://stac.dataspace.copernicus.eu/v1/collections [15] https://tiles.globalforestwatch.org [16] https://www.collect.earth/planet-imagery-via-nicfi-is-no-longer-available-on-ceo [17] https://www.globalforestwatch.org/blog/data-and-tools/planet-imagery-changes-gfw [18] https://view.eumetsat.int/geoserver/ows?service=WMS&request=GetCapabilities [19] https://rammb-slider.cira.colostate.edu [20] https://api.rainviewer.com/public/weather-maps.json [21] https://cdn.star.nesdis.noaa.gov/GOES19/ABI/FD/GEOCOLOR/latest.jpg [22] https://himawari8.nict.go.jp [23] https://api.openaerialmap.org/meta?limit=1 [24] https://landsatlook.usgs.gov/stac-server/collections [25] https://openaerialmap.org [26] https://bellingcat.gitbook.io/toolkit/more/all-tools/rammb-slider [27] https://www.earthdata.nasa.gov/engage/open-data-services-software/earthdata-developer-portal/gibs-api