# Satellite Mission Reference
# Canonical lifecycle, capabilities, and gotchas for agent-assisted dataset selection.
#
# Usage: When a user asks for satellite imagery, use this to pick the right
# mission/collection for their date range and requirements.

missions:

  # ═══════════════════════════════════════════════════════════════════
  # LANDSAT PROGRAM (USGS/NASA)
  # ═══════════════════════════════════════════════════════════════════

  landsat-5:
    platform: landsat-5
    sensor: TM (Thematic Mapper)
    operator: USGS/NASA
    modality: optical
    launch: 1984-03-01
    decommission: 2013-06-05
    status: decommissioned
    resolution: 30m (optical), 120m (thermal)
    revisit_days: 16
    stac_collection: landsat-c2-l2
    stac_filter: { platform: { eq: "landsat-5" } }
    gee_collection: LANDSAT/LT05/C02/T1_L2
    bands: [blue, green, red, nir08, swir16, swir22, lwir11]
    useful_range: "1984-03 to 2012-11"
    notes: >
      Longest-operating Earth observation satellite. Good for long-term
      change detection back to the 1980s. No SLC issues. Thermal band
      at 120m resampled to 30m in L2 products.
    gotchas:
      - Radiometric quality degrades in final years (2011-2012)
      - No coastal aerosol or cirrus bands
      - Thermal band lower resolution than Landsat 8+

  landsat-7:
    platform: landsat-7
    sensor: ETM+ (Enhanced Thematic Mapper Plus)
    operator: USGS/NASA
    modality: optical
    launch: 1999-04-15
    decommission: 2022-04-06
    status: decommissioned
    resolution: 30m (optical), 15m (pan), 60m (thermal)
    revisit_days: 16
    stac_collection: landsat-c2-l2
    stac_filter: { platform: { eq: "landsat-7" } }
    gee_collection: LANDSAT/LE07/C02/T1_L2
    bands: [blue, green, red, nir08, swir16, swir22, lwir11, pan]
    useful_range: "1999-04 to 2003-05 (full), 2003-06 to 2022-04 (SLC-off)"
    events:
      - date: 2003-05-31
        label: Scan Line Corrector failure — ~22% of every later scene is missing
    notes: >
      Added panchromatic band (15m). The Scan Line Corrector (SLC) failed
      on May 31, 2003. After this date, ~22% of pixels per scene are
      missing in a characteristic striping pattern.
    gotchas:
      - "SLC-OFF: After 2003-05-31, ~22% of each scene is missing data (stripe gaps)"
      - "DO NOT USE post-2003 Landsat 7 as a single scene — data will have stripe gaps"
      - "Post-2003 data can be used in composites (gap-filling with multiple dates)"
      - "When sorting by cloud_cover, Landsat 7 SLC-off scenes often rank first because gaps reduce measured cloud pixels"
      - "Always filter with platform: landsat-8 or landsat-9 for single-scene analysis after 2003"

  landsat-8:
    platform: landsat-8
    sensor: OLI/TIRS (Operational Land Imager / Thermal Infrared Sensor)
    operator: USGS/NASA
    modality: optical
    launch: 2013-02-11
    decommission: null
    status: operational
    resolution: 30m (optical), 15m (pan), 100m (thermal)
    revisit_days: 16
    stac_collection: landsat-c2-l2
    stac_filter: { platform: { eq: "landsat-8" } }
    gee_collection: LANDSAT/LC08/C02/T1_L2
    bands: [coastal, blue, green, red, nir08, swir16, swir22, lwir11, cirrus, pan]
    useful_range: "2013-04 to present"
    scale: { factor: 0.0000275, offset: -0.2 }
    notes: >
      Major upgrade: 12-bit radiometry (vs 8-bit), coastal aerosol band,
      cirrus detection band. OLI has excellent signal-to-noise. Combined
      with Landsat 9, provides 8-day revisit.
    gotchas:
      - Surface reflectance values are stored as integers; apply scale factor 0.0000275 and offset -0.2
      - TIRS Band 10 has known stray light issue (corrected in Collection 2)
      - Fill pixels have value 0 (before scaling)

  landsat-9:
    platform: landsat-9
    sensor: OLI-2/TIRS-2
    operator: USGS/NASA
    modality: optical
    launch: 2021-09-27
    decommission: null
    status: operational
    resolution: 30m (optical), 15m (pan), 100m (thermal)
    revisit_days: 16
    stac_collection: landsat-c2-l2
    stac_filter: { platform: { eq: "landsat-9" } }
    gee_collection: LANDSAT/LC09/C02/T1_L2
    bands: [coastal, blue, green, red, nir08, swir16, swir22, lwir11, cirrus, pan]
    useful_range: "2022-02 to present"
    scale: { factor: 0.0000275, offset: -0.2 }
    notes: >
      Near-identical to Landsat 8. 14-bit radiometry. Phased 8 days
      from Landsat 8 orbit for combined 8-day revisit.
    gotchas:
      - Same scale factor as Landsat 8
      - Data availability starts Feb 2022 (commissioning period)

  # ═══════════════════════════════════════════════════════════════════
  # SENTINEL-2 (ESA/Copernicus)
  # ═══════════════════════════════════════════════════════════════════

  sentinel-2a:
    platform: sentinel-2a
    sensor: MSI (MultiSpectral Instrument)
    operator: ESA
    modality: optical
    launch: 2015-06-23
    decommission: null
    status: operational
    resolution: 10m (VNIR), 20m (red edge, SWIR), 60m (atmospheric)
    revisit_days: 10 (single), 5 (with 2B)
    stac_collection: sentinel-2-l2a
    stac_filter: { platform: { eq: "Sentinel-2A" } }
    gee_collection: COPERNICUS/S2_SR_HARMONIZED
    bands: [B01, B02, B03, B04, B05, B06, B07, B08, B8A, B09, B11, B12]
    useful_range: "2015-07 to present"
    scale: { factor: 0.0001, offset: 0 }
    notes: >
      13 spectral bands including 3 red-edge bands (unique among free
      missions). 10m resolution for RGB+NIR. Excellent for vegetation,
      agriculture, and water monitoring.
    gotchas:
      - Band values are integers 0-10000; multiply by 0.0001 for reflectance
      - Mixed resolutions (10/20/60m) — bands must be resampled to common grid
      - SCL (Scene Classification Layer) band useful for cloud masking
      - Harmonized collection (S2_SR_HARMONIZED) recommended for time series

  sentinel-2b:
    platform: sentinel-2b
    sensor: MSI (MultiSpectral Instrument)
    operator: ESA
    modality: optical
    launch: 2017-03-07
    decommission: null
    status: operational
    resolution: 10m (VNIR), 20m (red edge, SWIR), 60m (atmospheric)
    revisit_days: 10 (single), 5 (with 2A)
    stac_collection: sentinel-2-l2a
    stac_filter: { platform: { eq: "Sentinel-2B" } }
    gee_collection: COPERNICUS/S2_SR_HARMONIZED
    bands: [B01, B02, B03, B04, B05, B06, B07, B08, B8A, B09, B11, B12]
    useful_range: "2017-07 to present"
    scale: { factor: 0.0001, offset: 0 }
    notes: >
      Twin of Sentinel-2A. Together they provide 5-day revisit at equator.
      Spectrally cross-calibrated.
    gotchas:
      - Same as Sentinel-2A
      - Minor spectral response differences from 2A (handled by Harmonized collection)

  # ═══════════════════════════════════════════════════════════════════
  # MODIS (NASA)
  # ═══════════════════════════════════════════════════════════════════

  modis-terra:
    platform: terra
    sensor: MODIS
    operator: NASA
    modality: optical
    launch: 1999-12-18
    decommission: null
    status: operational (degrading)
    resolution: 250m (bands 1-2), 500m (bands 3-7), 1000m (bands 8-36)
    revisit_days: 1-2
    stac_collection: modis-13A2-061
    gee_collection: MODIS/061/MOD13A2
    useful_range: "2000-02 to present"
    notes: >
      Daily global coverage. Best for continental/global vegetation monitoring,
      fire detection, ocean color. Pre-computed products (NDVI, LST, snow,
      fire) available as analysis-ready composites.
    gotchas:
      - Coarse resolution (250m+) — not suitable for field-level analysis
      - Orbit is drifting; data quality declining since ~2020
      - NDVI products (MOD13) are 16-day composites, not daily
      - Scale factors vary by product (check product-specific documentation)

  modis-aqua:
    platform: aqua
    sensor: MODIS
    operator: NASA
    modality: optical
    launch: 2002-05-04
    decommission: null
    status: operational (degrading)
    resolution: 250m (bands 1-2), 500m (bands 3-7), 1000m (bands 8-36)
    revisit_days: 1-2
    stac_collection: modis-13A2-061
    gee_collection: MODIS/061/MYD13A2
    useful_range: "2002-07 to present"
    notes: >
      Afternoon overpass (vs Terra morning). Same sensor, different orbit
      timing. MYD products = Aqua, MOD products = Terra.
    gotchas:
      - Same as Terra MODIS

  # ═══════════════════════════════════════════════════════════════════
  # SENTINEL-1 (ESA/Copernicus) — C-band SAR
  # ═══════════════════════════════════════════════════════════════════

  sentinel-1a:
    platform: sentinel-1a
    sensor: C-SAR (C-band Synthetic Aperture Radar)
    operator: ESA
    modality: sar
    access_tier: open
    launch: 2014-04-03
    decommission: null
    status: operational
    resolution: 5m × 20m (IW SLC), 10m (GRD)
    revisit_days: 12
    stac_collection: sentinel-1-grd
    stac_filter: { platform: { eq: "Sentinel-1A" } }
    gee_collection: COPERNICUS/S1_GRD
    bands: [vv, vh, hh, hv]
    useful_range: "2014-10 to present"
    notes: >
      C-band SAR. All-weather, day/night imaging. Gold standard for
      flood-extent mapping, ship detection, post-event damage assessment,
      and oil-spill detection. S1A still operational; S1B failed Dec 2021
      until S1C launch.
    gotchas:
      - S1B failed Dec 2021 — global coverage degraded until S1C
      - GRD products not phase-preserving (use SLC for InSAR)
      - "Polarization availability varies by mode (IW: VV+VH; EW: HH+HV)"

  # ═══════════════════════════════════════════════════════════════════
  # HYPERSPECTRAL — OPEN
  # ═══════════════════════════════════════════════════════════════════

  emit:
    platform: iss-emit
    sensor: EMIT Imaging Spectrometer
    operator: NASA/JPL
    modality: hyperspectral
    spectral_range: { min_nm: 381, max_nm: 2493 }
    access_tier: open
    launch: 2022-07-14
    decommission: null
    status: operational
    resolution: 60m
    revisit_days: irregular
    stac_collection: EMITL2ARFL_001
    stac_filter: { platform: { eq: "ISS" } }
    gee_collection: null
    bands: null
    useful_range: "2022-08 to present"
    notes: >
      Hyperspectral imaging spectrometer mounted on the ISS. 285 bands,
      381–2493 nm at ~7.4 nm sampling. Primary mission: mineral dust
      source mapping. Secondary: methane plume detection (matched-filter
      retrieval on SWIR absorption). See SENSOR_CATALOG.md spectral_grid.
    gotchas:
      - "ISS orbit — irregular revisit, gaps at high latitudes"
      - Bands not enumerated in STAC; wavelengths inside the NetCDF coord variable
      - Daytime acquisitions only (passive optical)

  aviris-ng:
    platform: aviris-ng
    sensor: AVIRIS-NG (Next-Generation Airborne Imaging Spectrometer)
    operator: NASA/JPL
    modality: hyperspectral
    spectral_range: { min_nm: 380, max_nm: 2510 }
    access_tier: open
    launch: "2014"
    decommission: null
    status: operational (campaign-based, airborne)
    resolution: 1-20m (altitude-dependent)
    revisit_days: campaign
    stac_collection: null
    gee_collection: null
    bands: null
    useful_range: "2014 to present (per-campaign availability)"
    notes: >
      Airborne hyperspectral imaging spectrometer. 380–2510 nm at 5 nm
      sampling, 425 bands. Flown on NASA ER-2 (~20 km), G-III, B-200.
      Primary uses: methane detection, mineralogy, ecological validation.
      Campaign archive at AVIRIS Data Portal (LP DAAC) and ORNL DAAC.
    gotchas:
      - "Airborne campaign-based — no systematic global coverage"
      - "Resolution varies by altitude (~1m low-altitude, ~20m ER-2)"
      - "Data archived per-campaign, not a single STAC collection"

  # ═══════════════════════════════════════════════════════════════════
  # COMMERCIAL — MULTISPECTRAL & SAR
  # ═══════════════════════════════════════════════════════════════════

  planetscope:
    platform: planetscope-superdove
    sensor: PS2 / PS2.SD / PSB.SD (Dove / SuperDove CubeSats)
    operator: Planet Labs
    modality: optical
    access_tier: commercial
    launch: "2014"
    decommission: null
    status: operational
    resolution: 3m
    revisit_days: 1
    stac_collection: null
    gee_collection: null
    bands: [coastal_blue, blue, green_i, green, yellow, red, red_edge, nir]
    useful_range: "2014 to present"
    provenance:
      spec_source: spec_sheet
      spec_url: "https://www.planet.com/products/planet-imagery/"
      fetched_at: 2026-05-27
      verified: false
    notes: >
      World's largest EO constellation (~200 active CubeSats). Daily global
      coverage at 3m. SuperDoves have 8 bands (vs 4 on older Doves —
      archive is mixed). Available via Planet API or brokers (SkyFi).
    gotchas:
      - "Mixed archive: older Doves are 4-band; only SuperDoves are 8-band"
      - "Commercial pricing per-km² or subscription"
      - "Cross-sensor radiometric calibration imperfect across constellation"

  skysat:
    platform: skysat
    sensor: SkySat optical (sub-meter tasking)
    operator: Planet Labs
    modality: optical
    access_tier: commercial
    launch: 2013
    decommission: null
    status: operational
    resolution: 0.5m (pan, super-resolved); 0.5-1m multispectral
    revisit_days: tasked
    stac_collection: null
    gee_collection: null
    bands: [blue, green, red, nir, pan]
    useful_range: "2014 to present"
    provenance:
      spec_source: spec_sheet
      spec_url: "https://www.planet.com/products/planet-imagery/"
      fetched_at: 2026-05-27
      verified: false
    notes: >
      Sub-meter tasking constellation (~21 satellites). Acquired by Planet
      from Google/Terra Bella in 2017. Primary use: targeted high-resolution
      imaging on demand for monitoring/security/insurance verticals.
    gotchas:
      - "Tasking-only — not systematic; requires pre-order"
      - Pricing per scene, commercial license
      - 5 bands only (no SWIR, no red-edge)

  worldview-3:
    platform: worldview-3
    sensor: WV-3 (VNIR + SWIR + CAVIS)
    operator: Vantor (formerly Maxar / DigitalGlobe)
    modality: optical
    access_tier: commercial
    launch: 2014-08-13
    decommission: null
    status: operational
    resolution: 31cm pan; 1.24m multispectral; 3.7m SWIR
    revisit_days: 1
    stac_collection: null
    gee_collection: null
    bands: [coastal, blue, green, yellow, red, red_edge, nir1, nir2, swir1, swir2, swir3, swir4, swir5, swir6, swir7, swir8]
    useful_range: "2014 to present"
    provenance:
      spec_source: spec_sheet
      spec_url: "https://vantor.com"
      fetched_at: 2026-05-27
      verified: false
    notes: >
      8-band VNIR + 8-band SWIR + 12-band CAVIS atmospheric. Highest
      open-commercial resolution globally. Operated by Vantor since the
      2025 Maxar→Vantor rebrand.
    gotchas:
      - "High $/km² — commercial license"
      - SWIR bands optional/may be deselected from purchased imagery
      - "Vantor brand new (2025 rebrand from Maxar Intelligence)"

  pixxel-firefly:
    platform: firefly
    sensor: Pixxel Firefly hyperspectral
    operator: Pixxel
    modality: hyperspectral
    spectral_range: { min_nm: 470, max_nm: 900 }
    access_tier: commercial
    launch: "2024"
    decommission: null
    status: operational
    resolution: 5m
    revisit_days: tasked
    stac_collection: null
    gee_collection: null
    bands: null
    useful_range: "2024 to present"
    provenance:
      spec_source: spec_sheet
      spec_url: "https://www.pixxel.space/firefly"
      fetched_at: 2026-05-27
      verified: false
    notes: >
      Commercial hyperspectral constellation. ~150 bands across 450–900 nm
      at 5m resolution. Use cases: agriculture, mining, methane (limited),
      environment. VNIR-only — less suitable for SWIR-absorption molecules
      like CH4/CO2 vs EMIT/AVIRIS.
    gotchas:
      - "Spec-sheet only — band specs not all verified against vendor API"
      - "Constellation under deployment — coverage incomplete"
      - "VNIR only (no SWIR) — limited methane/CO2 utility"

  capella:
    platform: capella
    sensor: Capella X-band SAR
    operator: Capella Space
    modality: sar
    access_tier: commercial
    launch: 2020-08-31
    decommission: null
    status: operational
    resolution: 50cm (spotlight); 1.2m (stripmap)
    revisit_days: tasked
    stac_collection: null
    gee_collection: null
    bands: [hh, hv, vv, vh]
    useful_range: "2020 to present"
    provenance:
      spec_source: spec_sheet
      spec_url: "https://www.capellaspace.com"
      fetched_at: 2026-05-27
      verified: false
    notes: >
      Commercial X-band SAR constellation. Sub-meter tasking. Use cases:
      maritime monitoring, infrastructure, disaster response. Acquired
      SkyFi in 2024 (now provides the brokerage layer).
    gotchas:
      - "Tasking-driven — sparse archive, not systematic global coverage"
      - "X-band — different physics from C-band Sentinel-1 (less foliage penetration)"
      - Pricing per task, commercial license

  # ═══════════════════════════════════════════════════════════════════
  # FREE COMMERCIAL-TIER OPEN-DATA PROGRAMS
  # ═══════════════════════════════════════════════════════════════════
  #
  # Added 2026-06-07. These missions release a subset of their commercial
  # archive under CC-BY-style licenses. New fields beyond the baseline
  # schema:
  #
  #   modality      — sar | optical | hyperspectral | lidar | thermal | rgb
  #   license       — SPDX id or short tag
  #   coverage_kind — chronological | hierarchical_stac | api | static_manifest
  #   coverage_endpoint — URL for footprint discovery
  #   coverage_script   — repo path to crawler
  #
  # See docs/platform_research/free-commercial-data-programs/README.md for
  # the wider survey.

  umbra-sar-x:
    platform: umbra-sar-x
    sensor: Umbra X-band SAR
    operator: Umbra Space
    access_tier: open
    launch: 2021-07-01
    decommission: null
    status: operational
    resolution: 25cm – 1m
    revisit_days: tasked
    modality: sar
    license: CC-BY-4.0
    stac_collection: null
    stac_root: https://umbra-open-data-catalog.s3.amazonaws.com/stac/catalog.json
    coverage_kind: chronological
    coverage_endpoint: s3://umbra-open-data-catalog/stac/
    coverage_script: products/explore/scripts/discover_umbra_timeseries_sites.py
    gee_collection: null
    bands: [hh, vv, hv, vh]
    useful_range: "2024-01 to present"
    provenance:
      spec_source: stac_crawl + program_page
      spec_url: "https://umbra.space/open-data/"
      fetched_at: 2026-06-07
      verified: true
    notes: >
      Open subset of Umbra's commercial X-band SAR constellation. STAC catalog
      is organized chronologically (year/month/day), not by AOI — site discovery
      requires the crawler. ~25 persistent time-series sites + 1000+ ad-hoc.
      Bingham Copper Mine (Utah) at 113 visits is the densest US site and sits
      inside the SLC 90-min Explore AOI.
    gotchas:
      - "Chronological STAC layout — no native AOI search"
      - "Persistent vs ad-hoc captures are mixed; require clustering to separate"
      - "Site list expands ~monthly; refresh the crawler"

  wyvern-dragonette:
    platform: wyvern-dragonette
    sensor: Wyvern VNIR Hyperspectral Imaging Sensor
    operator: Wyvern (Edmonton, Canada)
    access_tier: open
    launch: 2023-06-12
    decommission: null
    status: operational
    resolution: 5.22m – 5.26m
    revisit_days: opportunistic
    modality: hyperspectral
    spectral_range: { min_nm: 503, max_nm: 799 }
    license: CC-BY-4.0
    stac_collection: surface-reflectance
    stac_root: https://wyvern-odp.com/catalog.json
    coverage_kind: hierarchical_stac
    coverage_endpoint: "https://wyvern-odp.com/year/{year}/collection.json"
    coverage_script: products/explore/scripts/discover_wyvern_open_data.py
    gee_collection: null
    bands: [vnir_23_to_31_channels]
    useful_range: "2024-01 to present"
    provenance:
      spec_source: stac_crawl + program_page
      spec_url: "https://opendata.wyvern.space/"
      fetched_at: 2026-06-07
      verified: true
    notes: >
      4 on-orbit smallsats (Dragonette-001/002/003/004) producing 23–31 band
      VNIR hyperspectral at ~5.2 m GSD. 151 items in the open archive as of
      2026-06-07; 12 repeat-site clusters. Densest site is Suez Canal (9
      visits). Two Folia-AOI hits: SLC (1 capture near Bingham, June 2025)
      and Denver-Boulder (4-capture cluster on Pawnee Grassland).
    gotchas:
      - "STAC blocks default Python-urllib User-Agent — set a custom UA"
      - "STAC license field is 'Public Release' (vague); CC-BY-4.0 asserted by program page"
      - "L1B-only in open archive; one L2A surface-reflectance pilot in 'Surface Reflectance' collection"

  neon-aop:
    platform: neon-aop
    sensor: "NEON AOP — RGB camera (10cm) + AVIRIS-NG-class spectrometer (1m) + waveform LiDAR (1m)"
    operator: NSF / Battelle (NEON)
    access_tier: open
    launch: 2014-01-01
    decommission: null
    status: operational
    resolution: 10cm (RGB) / 1m (hyperspectral) / 1m (LiDAR)
    revisit_days: ~annual per site (peak greenness)
    modality: hyperspectral  # tri-modal; primary listing is hyperspectral
    spectral_range: { min_nm: 380, max_nm: 2510 }
    license: public-domain
    stac_collection: null
    coverage_kind: api
    coverage_endpoint: https://data.neonscience.org/api/v0/products/DP1.30010.001
    coverage_script: null  # to be authored
    gee_collection: null
    bands: [rgb_3, hyperspectral_426, lidar_waveform]
    useful_range: "2014 to present"
    provenance:
      spec_source: neon_api + program_page
      spec_url: "https://www.neonscience.org/data-collection/aerial-remote-sensing"
      fetched_at: 2026-06-07
      verified: true
    notes: >
      NEON's Airborne Observation Platform (AOP). 59 ecologically-diverse US
      sites (out of 81 in the network), continental + Alaska + Puerto Rico
      + Hawaii. Co-registered tri-modal stack (RGB + hyperspectral + LiDAR)
      is unmatched in the open ecosystem. DP1.30010.001 is the 10cm RGB
      product; DP1.30006 is hyperspectral; DP1.30003 is LiDAR. AOP visits
      each site ~annually during peak greenness.
    gotchas:
      - "NSF funding contested in FY25/FY26 budget cycles — future cadence uncertain (existing 2014-2025 archive locked in regardless)"
      - "Co-registered stack only at sites visited in the same campaign — verify before assuming temporal alignment across modalities"
      - "Tri-product retrieval: must fetch DP1.30010 + DP1.30006 + DP1.30003 separately"

  enmap:
    platform: enmap
    sensor: "EnMAP VNIR-SWIR Imaging Spectrometer"
    operator: DLR / GFZ
    access_tier: registration_required
    launch: 2022-04-01
    decommission: null
    status: operational
    resolution: 30m
    revisit_days: 27
    modality: hyperspectral
    spectral_range: { min_nm: 420, max_nm: 2450 }
    license: "free w/ registration (DLR EnMAP portal)"
    stac_collection: null
    coverage_kind: api
    coverage_endpoint: "https://planning.enmap.org/"
    coverage_script: null  # registration-gated; to be authored
    gee_collection: null
    bands: null  # 228 bands, 420–2450 nm at ~6.5 nm sampling
    useful_range: "2022-11 to present"
    provenance:
      spec_source: program_page
      spec_url: "https://www.enmap.org/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      DLR/GFZ hyperspectral satellite. 228 spectral bands across 420–2450 nm
      at ~6.5 nm sampling. 30 m GSD, 30 km swath. Level-2A surface reflectance
      products available free after registration at the EnMAP Science Portal
      (planning.enmap.org). Primary uses: mineralogy, vegetation biochemistry,
      methane plume detection (SWIR range), soil properties. Launched April 2022;
      science operations began November 2022.
    gotchas:
      - "Registration required — data not openly downloadable without account"
      - "27-day exact repeat — much longer revisit than Sentinel-2"
      - "30 km swath — relatively narrow for large-area surveys"
      - "L1C/L2A processing chain run by DLR; L2A preferred for surface-reflectance work"

  prisma:
    platform: prisma
    sensor: "PRISMA VNIR-SWIR Imaging Spectrometer"
    operator: ASI (Agenzia Spaziale Italiana)
    access_tier: registration_required
    launch: 2019-03-22
    decommission: null
    status: operational
    resolution: 30m
    revisit_days: 29
    modality: hyperspectral
    spectral_range: { min_nm: 400, max_nm: 2505 }
    license: "free w/ registration (ASI portal)"
    stac_collection: null
    coverage_kind: api
    coverage_endpoint: "https://prisma.asi.it/"
    coverage_script: null  # token-gated; to be authored
    gee_collection: null
    bands: null  # ~250 bands, 400–2500 nm
    useful_range: "2019-04 to present"
    provenance:
      spec_source: program_page
      spec_url: "https://prisma.asi.it/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      ASI hyperspectral satellite. ~250 spectral bands across 400–2500 nm
      at ~10 nm sampling. 30 m GSD, 30 km swath. Data freely accessible
      after registration at the ASI PRISMA portal; API access requires
      a user token issued post-registration. Companion mission to EnMAP
      (overlapping spectral range, same 30 m class). Primary uses: methane
      detection, mineralogy, vegetation stress, water quality.
    gotchas:
      - "API token required — issued after registration; not suitable for fully automated pipelines without pre-auth"
      - "~29-day repeat orbit — even longer revisit than EnMAP"
      - "L2D (surface reflectance) product recommended; L1 radiance requires atmospheric correction"
      - "Archive access sometimes slow via web portal; bulk orders via dedicated API"

  tandem-x:
    platform: tandem-x
    sensor: X-band SAR Interferometer (TSX-1 / TDX-1 bistatic pair)
    operator: DLR / Airbus DS
    access_tier: registration_required
    launch: 2010-06-21
    decommission: null
    status: operational
    resolution: 12m – 90m (GLO-30 / GLO-90 DEMs)
    revisit_days: 11
    modality: sar
    license: "Free w/ registration (DLR)"
    stac_collection: null
    coverage_kind: static_manifest
    coverage_endpoint: null
    coverage_script: null  # static manifest; to be authored
    gee_collection: JAXA/ALOS/AW3D30/V3_2
    bands: null
    useful_range: "2010-12 to present"
    provenance:
      spec_source: program_page
      spec_url: "https://tandemx-science.dlr.de/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      DLR/Airbus DS bistatic X-band SAR pair (TerraSAR-X + TanDEM-X) that
      produced the globally-consistent TanDEM-X Global DEM. The 90 m product
      (GLO-90) is freely downloadable after registration at the DLR Earth
      Observation Center; the 12 m product (GLO-12) is commercial. Best
      globally-consistent DEM for regions with complex topography (Galápagos,
      Andes, Alps). Matters for shadow/3D in the Explore product.
    gotchas:
      - "DEM, not a SAR image archive — not useful for time-series change detection"
      - "GLO-90 free; GLO-30 and GLO-12 require commercial license from Airbus"
      - "Void-filled version available but fill method varies by region"
      - "Copernicus DEM (GLO-30) is derived from TanDEM-X and is freely available via MSPC without registration"

  alos-2:
    platform: alos-2
    sensor: PALSAR-2 (L-band SAR)
    operator: JAXA
    access_tier: registration_required
    launch: 2014-05-24
    decommission: null
    status: operational
    resolution: 25m (annual mosaic) / 3m–10m (spotlight/stripmap)
    revisit_days: 14
    modality: sar
    license: "Non-commercial (JAXA)"
    stac_collection: null
    coverage_kind: api
    coverage_endpoint: "https://www.eorc.jaxa.jp/ALOS/en/dataset/palsar2_mosaic_e.htm"
    coverage_script: null  # to be authored
    gee_collection: JAXA/ALOS/PALSAR-2/Level2_2/ScanSAR
    bands: [hh, hv, hh_hv, hh_hv_vh_vv]
    useful_range: "2014-08 to present"
    provenance:
      spec_source: program_page
      spec_url: "https://www.eorc.jaxa.jp/ALOS/en/alos-2/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      JAXA L-band SAR satellite. Primary open-data product is the annual
      global PALSAR-2 mosaic at 25 m GSD (HH + HV). L-band penetrates
      forest canopy — excellent for above-ground biomass estimation and
      flood mapping under vegetation. Annual mosaic available free after
      JAXA AUIG2 registration; non-commercial license caveat. Archive from
      predecessor ALOS/PALSAR-1 (2006–2011) also available.
    gotchas:
      - "Non-commercial license — verify NC terms before any commercial recipe use"
      - "Annual mosaic only in free tier; scene-level archive requires additional JAXA agreement"
      - "L-band single-look penetrates foliage — backscatter value not directly comparable to C-band Sentinel-1"
      - "Mosaic compositing method (mosaicking date range, gamma-naught normalization) varies by year"

  spot-world-heritage:
    platform: spot-1-5
    sensor: "HRV / HRVIR / HRG (SPOT 1–5 optical)"
    operator: CNES / Airbus DS
    access_tier: open
    launch: 1986-02-22
    decommission: 2015-03-31
    status: decommissioned
    resolution: "2.5m–20m (varies by sensor and mode)"
    revisit_days: 26
    modality: optical
    license: CC-BY-SA-2.0
    stac_collection: null
    coverage_kind: api
    coverage_endpoint: "https://regards.cnes.fr/user/swh/"
    coverage_script: null  # regards.cnes.fr API; to be authored
    gee_collection: null
    bands: [pan, green, red, nir, swir]
    useful_range: "1986-02 to 2015-03"
    provenance:
      spec_source: program_page
      spec_url: "https://regards.cnes.fr/user/swh/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      CNES/Airbus SPOT 1–5 World Heritage collection. ~6 million scenes
      spanning 1986–2015, released as open data under CC-BY-SA-2.0. Unique
      30-year historical baseline at 2.5–20 m resolution — the longest-running
      sub-30m open optical archive. SPOT 1–3 are 20 m multispectral / 10 m
      panchromatic; SPOT 4 adds SWIR; SPOT 5 reaches 2.5 m super-resolved.
      Primary use: long-baseline change detection (deforestation, urbanization,
      coastline evolution) before Sentinel and Landsat 8 era.
    gotchas:
      - "CC-BY-SA-2.0 (ShareAlike) — derived works must be released under the same license"
      - "Archive at regards.cnes.fr; older interface, API can be slow"
      - "Mixed resolutions and band sets across SPOT generations — check per-scene metadata"
      - "SPOT 6/7 are NOT in this heritage program (commercial, operated by Airbus)"

  vantor-opendata:
    platform: maxar-worldview-2-3
    sensor: "WorldView-2/3 (VNIR + SWIR) and GeoEye-1"
    operator: Vantor (formerly Maxar Intelligence)
    access_tier: open
    launch: 2009-10-08
    decommission: null
    status: operational
    resolution: 30cm – 50cm pan; 1.24m–1.65m multispectral
    revisit_days: tasked
    modality: optical
    license: CC-BY-NC-4.0
    stac_collection: null
    stac_root: https://maxar-opendata.s3.amazonaws.com/events/catalog.json
    coverage_kind: hierarchical_stac
    coverage_endpoint: "https://maxar-opendata.s3.amazonaws.com/events/catalog.json"
    coverage_script: registry/connectors/vantor/discover.py
    gee_collection: null
    bands: [coastal, blue, green, yellow, red, red_edge, nir1, nir2]
    useful_range: "2010 to present (disaster activations only)"
    provenance:
      spec_source: stac_catalog + program_page
      spec_url: "https://registry.opendata.aws/maxar-opendata/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      Vantor (formerly Maxar/DigitalGlobe) open-data program. Sub-meter
      imagery released under CC-BY-NC-4.0 for major disaster events
      (earthquakes, floods, wildfires, conflict zones). WorldView-2/3
      at 30–50 cm pan, 1.24 m multispectral. Canonical STAC on AWS RODA.
      Existing registry source at
      registry/sources/datasets/source-coop/source-coop-maxar-maxar-opendata.yaml.
    gotchas:
      - "CC-BY-NC-4.0 — non-commercial use only"
      - "Disaster-activation only — not systematic global coverage"
      - "STAC organized by event, not AOI — discovery requires event enumeration"
      - "Vantor rebrand from Maxar Intelligence completed 2025"

  constellr-skybee:
    platform: constellr-skybee
    sensor: "Constellr SkySat-class thermal IR imager"
    operator: Constellr (Freiburg, Germany)
    access_tier: open
    launch: "2024"
    decommission: null
    status: operational
    resolution: 30m – 100m (thermal LST)
    revisit_days: tasked
    modality: thermal
    license: "TBD"
    stac_collection: null
    coverage_kind: static_manifest
    coverage_endpoint: null
    coverage_script: null  # static manifest; license verification pending
    gee_collection: null
    bands: [thermal_ir]
    useful_range: "2024 to present"
    provenance:
      spec_source: program_page
      spec_url: "https://www.constellr.com/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      Constellr (Freiburg-based start-up) provides high-revisit thermal
      infrared imagery for Land Surface Temperature (LST) applications.
      The SkySat-class thermal imager targets agricultural water stress,
      urban heat islands, and industrial thermal monitoring. A sample
      open-data archive has been released; full license terms not yet
      publicly finalized — verify at constellr.com before incorporating
      into commercial workflows.
    gotchas:
      - "License TBD — do not use in commercial workflows without verification"
      - "Early-stage constellation — archive coverage is sample/demonstration quality"
      - "Thermal LST (not raw brightness temperature) — product depends on atmospheric correction"
      - "Constellr is a start-up; continuity risk higher than ESA/JAXA missions"

  capella-opendata:
    platform: capella-opendata
    sensor: Capella X-band SAR (open-data subset)
    operator: Capella Space
    access_tier: open
    launch: 2020-08-31
    decommission: null
    status: operational
    resolution: 50cm (spotlight)
    revisit_days: tasked
    modality: sar
    license: CC-BY-NC-4.0
    stac_collection: null
    stac_root: https://capella-open-data.s3.amazonaws.com/stac/catalog.json
    coverage_kind: hierarchical_stac
    coverage_endpoint: "https://capella-open-data.s3.amazonaws.com/stac/catalog.json"
    coverage_script: registry/connectors/capella/discover.py
    gee_collection: null
    bands: [hh, vv]
    useful_range: "2020 to present (curated open-data subset)"
    provenance:
      spec_source: program_page + aws_registry
      spec_url: "https://registry.opendata.aws/capella-opendata/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      Capella Space open-data program. Curated subset of their commercial
      X-band SAR archive released under CC-BY-NC-4.0. 50 cm resolution
      spotlight scenes — the highest-resolution openly licensed SAR product
      available. STAC catalog on AWS RODA. Distinct from the commercial
      `capella` entry which represents the full tasking product. Primary
      uses: disaster damage assessment, infrastructure monitoring, maritime.
    gotchas:
      - "CC-BY-NC-4.0 — non-commercial use only; limits self-serve recipe path"
      - "Curated sample archive, not systematic coverage — fewer scenes than Umbra open program"
      - "X-band vs C-band Sentinel-1: different penetration physics"
      - "Distinct from capella (commercial tasking) entry in this vocabulary"

  iceye-opendata:
    platform: iceye-opendata
    sensor: ICEYE X-band SAR
    operator: ICEYE (Finland / Poland)
    access_tier: open
    launch: 2018-01-12
    decommission: null
    status: operational
    resolution: 1m (stripmap) / 25cm (spotlight)
    revisit_days: tasked
    modality: sar
    license: CC-BY-NC-4.0
    stac_collection: null
    coverage_kind: api
    coverage_endpoint: "https://www.iceye.com/open-data"
    coverage_script: null  # to be authored
    gee_collection: null
    bands: [hh]
    useful_range: "2020 to present (open subset)"
    provenance:
      spec_source: program_page
      spec_url: "https://www.iceye.com/open-data"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      ICEYE open-data program. Small but growing collection of X-band SAR
      scenes released under CC-BY-NC-4.0. Primarily activated for disaster
      events (Ukraine conflict, floods) and ecosystem monitoring. 1 m
      stripmap and 25 cm spotlight modes. Finland-based constellation
      operator with 34+ satellites. The open archive is event-driven,
      not systematic.
    gotchas:
      - "CC-BY-NC-4.0 — non-commercial use only"
      - "Event-driven archive — not systematic global coverage"
      - "X-band single-pol (HH) in open tier; full-pol requires commercial license"
      - "ICEYE API for open data not fully standardized; discovery via program page or specific event catalogs"

  satellogic-earthview:
    platform: satellogic-newsat
    sensor: Satellogic NewSat multispectral + hyperspectral
    operator: Satellogic
    access_tier: open
    launch: 2016-06-22
    decommission: null
    status: operational
    resolution: 1m (multispectral) / 30m (hyperspectral)
    revisit_days: tasked
    modality: optical
    license: CC-BY-NC-4.0
    stac_collection: null
    stac_root: https://satellogic-earthview.s3.amazonaws.com/stac/catalog.json
    coverage_kind: hierarchical_stac
    coverage_endpoint: "https://satellogic-earthview.s3.amazonaws.com/stac/catalog.json"
    coverage_script: registry/connectors/satellogic/discover.py
    gee_collection: null
    bands: [blue, green, red, nir]
    useful_range: "2021 to present (EarthView open subset)"
    provenance:
      spec_source: program_page + aws_registry
      spec_url: "https://registry.opendata.aws/satellogic-earthview/"
      fetched_at: 2026-06-07
      verified: false
    notes: >
      Satellogic EarthView open-data program. ~13 TB sample archive of 1 m
      multispectral imagery released under CC-BY-NC-4.0 on AWS. Covers
      diverse geographies; not event-triggered (unlike Maxar/Capella). The
      Satellogic constellation (300+ planned NewSats) also provides 30 m
      hyperspectral imagery commercially. Argentina-founded, NYSE-listed.
      STAC catalog on AWS RODA.
    gotchas:
      - "CC-BY-NC-4.0 — non-commercial use only; limits self-serve recipe path"
      - "Sample archive (~13 TB) not comprehensive global coverage"
      - "STAC organized by region/date — AOI search requires crawling hierarchy"
      - "Satellite + ground track naming convention differs from other providers"

  # ═══════════════════════════════════════════════════════════════════
  # HISTORICAL ARCHIVES — DECOMMISSIONED MISSIONS & FAILED BANDS
  # ═══════════════════════════════════════════════════════════════════
  #
  # Added 2026-07-09. Closed (or partially closed) archives whose
  # observations can never be re-collected. Most are NOT cloud-native
  # today; entries exist so the library shows the full observational
  # record and so modernization gaps are visible (see
  # docs/strategy/SOURCE_COOP_PUBLISHING.md). New field beyond the
  # baseline schema:
  #
  #   events — list of {date, label} mid-life failures or capability
  #            changes, rendered as ticks on the mission timeline
  #            (e.g. Landsat 7 SLC-off, ASTER SWIR death).

  terra-aster:
    platform: terra-aster
    sensor: ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer)
    operator: NASA/METI
    access_tier: open
    launch: 1999-12-18
    decommission: null
    status: operational
    resolution: 15m (VNIR), 30m (SWIR), 90m (TIR)
    revisit_days: 16
    modality: optical
    license: public-domain
    stac_collection: aster-l1t
    stac_filter: { platform: { eq: "terra" } }
    gee_collection: ASTER/AST_L1T_003
    bands: [green, red, nir08, swir1, swir2, swir3, swir4, swir5, swir6, tir1, tir2, tir3, tir4, tir5]
    useful_range: "2000-03 to present (VNIR/TIR); 2000-03 to 2008-04 (SWIR)"
    events:
      - date: 2008-04-01
        label: SWIR detector failure — bands 4-9 dead in all later scenes
    notes: >
      14-band multispectral + thermal imager on Terra. The six 30m SWIR
      bands are the only global SWIR record of the 2000s at that
      resolution — irreplaceable for mineral alteration mapping. The
      five 90m TIR bands are similarly unique (nothing civilian matched
      them until ECOSTRESS). SWIR detector failed April 2008; VNIR and
      TIR still acquire. Full archive at LP DAAC (Earthdata auth,
      HDF-EOS); Planetary Computer mirrors L1T for 2000-2006 only.
    gotchas:
      - "SWIR bands 4-9 are dead in every scene after 2008-04 — check acquisition date first"
      - "Tasked acquisition, not systematic — coverage is patchy, check before assuming a scene exists"
      - "SWIR crosstalk artifacts require destriping before band-ratio analysis"
      - "Three subsystems at three pixel scales — co-registration requires resampling to a common grid"
      - "MPC STAC covers 2000-2006 only; full archive needs LP DAAC + Earthdata login"

  eo-1-hyperion:
    platform: eo-1
    sensor: Hyperion imaging spectrometer
    operator: NASA/USGS
    access_tier: open
    launch: 2000-11-21
    decommission: 2017-03-30
    status: decommissioned
    resolution: 30m
    revisit_days: tasked
    modality: hyperspectral
    spectral_range: { min_nm: 400, max_nm: 2500 }
    license: public-domain
    stac_collection: null
    gee_collection: EO1/HYPERION
    bands: null
    useful_range: "2001-01 to 2017-02"
    notes: >
      First civilian spaceborne hyperspectral imager: ~220 contiguous
      bands, 400-2500 nm, 7.7 km swath, tasked scenes only (~85,000).
      The only spaceborne hyperspectral record between 2000 and the
      EnMAP/PRISMA/EMIT era — no substitute exists for the spectral
      state of a site in the 2000s. Archive at USGS EarthExplorer
      (login required); L1 radiance also mirrored in GEE.
    gotchas:
      - "Tasked, narrow 7.7 km swath — most places on Earth were never imaged"
      - "Low SWIR signal-to-noise; ~198 of 220 bands are calibrated and usable"
      - "Vertical striping and spectral smile require correction before analysis"
      - "No STAC anywhere — discovery is EarthExplorer or the GEE collection"

  jers-1:
    platform: jers-1
    sensor: SAR (L-band, HH) + OPS optical
    operator: NASDA (now JAXA)
    access_tier: open
    launch: 1992-02-11
    decommission: 1998-10-12
    status: decommissioned
    resolution: 18m (SAR)
    revisit_days: 44
    modality: sar
    license: JAXA research terms
    stac_collection: null
    gee_collection: null
    bands: [hh]
    useful_range: "1992-06 to 1998-10"
    notes: >
      The only L-band SAR record of the 1990s — the pre-ALOS baseline
      for deforestation and forest-structure change. The Global Rain
      Forest / Boreal Forest Mapping mosaics were built from it.
      Archive at JAXA G-Portal; ASF DAAC holds the Americas coverage
      and the global forest mosaics.
    gotchas:
      - "Not cloud-native anywhere — CEOS/level-0 formats behind JAXA G-Portal or ASF logins"
      - "Single polarization (HH) only"
      - "Mission ended by power failure Oct 1998 — archive is closed"

  seawifs:
    platform: orbview-2
    sensor: SeaWiFS (Sea-viewing Wide Field-of-view Sensor)
    operator: NASA/GeoEye
    access_tier: open
    launch: 1997-08-01
    decommission: 2010-12-11
    status: decommissioned
    resolution: 1.1km (LAC), 4.5km (GAC)
    revisit_days: 1
    modality: optical
    license: public-domain
    stac_collection: null
    gee_collection: NASA/OCEANDATA/SeaWiFS/L3SMI
    bands: null
    useful_range: "1997-09 to 2010-12"
    notes: >
      Foundational ocean-color record: 8 visible/NIR bands tuned for
      chlorophyll. The 1997-2010 baseline that MODIS and VIIRS ocean
      color are calibrated against, spanning the major 1997-98 El Nino.
      Archive at NASA OB.DAAC (Earthdata auth); L3 mapped products
      mirrored in GEE.
    gotchas:
      - "L1/L2 archive is HDF4 behind Earthdata login — not cloud-native"
      - "Commercial-heritage sensor (OrbImage); early access restrictions are lifted, all data now open"
      - "Ocean-tuned bands saturate over bright land targets"

  ers-1:
    platform: ers-1
    sensor: AMI (C-band SAR) + radar altimeter + ATSR-1
    operator: ESA
    access_tier: open
    launch: 1991-07-17
    decommission: 2000-03-10
    status: decommissioned
    resolution: 30m (SAR)
    revisit_days: 35
    modality: sar
    license: ESA earth-observation terms
    stac_collection: null
    gee_collection: null
    bands: [vv]
    useful_range: "1991-08 to 2000-03"
    notes: >
      Europe's first EO satellite and the start of the C-band SAR
      record that Envisat and Sentinel-1 continue. With ERS-2, enables
      the longest InSAR baseline available (1991 onward) for slow
      deformation: subsidence, landslides, volcanoes. Archive via ESA
      EO Sign In (dissemination service).
    gotchas:
      - "Not cloud-native — ESA archive access requires EO Sign In registration"
      - "Repeat cycle varied by mission phase (3, 35, and 168 days)"
      - "VV polarization only"

  ers-2:
    platform: ers-2
    sensor: AMI (C-band SAR) + ATSR-2 + GOME
    operator: ESA
    access_tier: open
    launch: 1995-04-21
    decommission: 2011-09-05
    status: decommissioned
    resolution: 30m (SAR)
    revisit_days: 35
    modality: sar
    license: ESA earth-observation terms
    stac_collection: null
    gee_collection: null
    bands: [vv]
    useful_range: "1995-05 to 2001-01 (full quality); 2001-02 to 2011-07 (degraded attitude)"
    events:
      - date: 2001-01-15
        label: Gyroscope failures — degraded attitude control from 2001
      - date: 2003-06-22
        label: Tape drive failure — thereafter only acquisitions within ground-station visibility
    notes: >
      Tandem partner to ERS-1 (the 1995-1996 one-day-apart tandem phase
      is a unique InSAR dataset). GOME was the first European ozone
      mapper. Gyro failures from 2001 degrade attitude; after the 2003
      tape failure, only scenes within ground-station masks exist.
      Archive via ESA EO Sign In. Deorbited; reentered February 2024.
    gotchas:
      - "Post-2001 scenes have degraded Doppler/attitude — InSAR pairs need care"
      - "Post-2003-06 coverage is limited to ground-station visibility masks"
      - "Not cloud-native — ESA archive access requires EO Sign In registration"

  envisat:
    platform: envisat
    sensor: ASAR (C-band) + MERIS + AATSR + 7 more instruments
    operator: ESA
    access_tier: open
    launch: 2002-03-01
    decommission: 2012-04-08
    status: decommissioned
    resolution: 30m (ASAR), 300m (MERIS)
    revisit_days: 35
    modality: sar
    license: ESA earth-observation terms
    stac_collection: null
    gee_collection: null
    bands: null
    useful_range: "2002-05 to 2012-04"
    notes: >
      The bridge between ERS and the Sentinels: ASAR continues the
      C-band SAR record, MERIS (15 bands, 300m) is the direct precursor
      to Sentinel-3 OLCI, AATSR continues the SST record. Contact was
      lost abruptly in April 2012, ending the mission. Archive via ESA
      EO Sign In.
    gotchas:
      - "Mission ended without warning 2012-04-08 — no decommissioning pass, archive simply stops"
      - "Ten instruments with separate product lines — each has its own format and quirks"
      - "Not cloud-native — ESA archive access requires EO Sign In registration"

  landsat-mss:
    platform: landsat-1-5-mss
    sensor: MSS (Multispectral Scanner, Landsat 1-5)
    operator: USGS/NASA
    access_tier: open
    launch: 1972-07-23
    decommission: 1992-12-31
    status: decommissioned
    resolution: 60m (nominal 79m x 57m)
    revisit_days: 18
    modality: optical
    license: public-domain
    stac_collection: landsat-c2-l1
    gee_collection: LANDSAT/LM05/C02/T1
    bands: [green, red, nir08, nir09]
    useful_range: "1972-07 to 1992-12 (plus a brief L5 MSS reactivation 2012-06 to 2013-01)"
    notes: >
      The start of the civilian EO record: four bands at ~60m from
      1972. The only systematic satellite imagery of the 1970s, and
      the pre-1984 baseline for any change study that outruns TM.
      Already cloud-native: Collection 2 Level-1 COGs on Planetary
      Computer (landsat-c2-l1) and USGS. One entry covers the MSS
      instrument across Landsat 1-5; filter by platform for a specific
      satellite.
    gotchas:
      - "Level-1 only — no surface-reflectance product exists for MSS"
      - "Radiometry is 6-bit (L1-3) — quantitative time series need careful cross-calibration"
      - "No blue band and no SWIR/thermal — many modern indices are impossible"
      - "Early-era georegistration can be off by multiple pixels, especially outside the US"

# ═══════════════════════════════════════════════════════════════════
# DECISION GUIDE
# ═══════════════════════════════════════════════════════════════════
#
# When to use what:
#
# Date Range         | Best Mission          | Why
# -------------------|----------------------|----------------------------
# 1984-1999          | Landsat 5            | Only option at 30m
# 1999-2003 May      | Landsat 7            | Full scenes, 15m pan
# 2003-2013 Feb      | Landsat 5 or 7       | L5 preferred (no SLC gaps), composite L7 if needed
# 2013-2015 Jun      | Landsat 8            | Best radiometry at 30m
# 2015-present       | Sentinel-2 or L8/L9  | S2 for 10m/red-edge, Landsat for thermal/SWIR
# Any (coarse)       | MODIS                | Daily revisit, continental scale
#
# Key rules:
# - NEVER use single Landsat 7 scenes after May 2003 (SLC-off stripes)
# - Always filter landsat-c2-l2 by platform when you want a specific mission
# - For vegetation indices: prefer Sentinel-2 (10m, red-edge bands)
# - For thermal analysis: must use Landsat (Sentinel-2 has no thermal)
# - For time series spanning missions: use Harmonized collections
# - For pre-2013: Landsat 5 > Landsat 7 (no SLC issue)
