# NASA Earthdata CMR — LP DAAC Cloud (LPCLOUD) STAC
# Path-as-id: registry/sources/stac/nasa-cmr-lpcloud.yaml resolves @stac/nasa-cmr-lpcloud/<collection>

title: "NASA Earthdata CMR — LP DAAC Cloud"
endpoint: https://cmr.earthdata.nasa.gov/stac/LPCLOUD
homepage: https://www.earthdata.nasa.gov/
operator: NASA / USGS LP DAAC

# Alternate short-names that resolve to this catalog.
aliases:
  - cmr-lpcloud
  - lpcloud
  - nasa-cmr
  - nasa-earthdata

auth:
  mode: earthdata-login
  signing_url: https://urs.earthdata.nasa.gov/oauth/authorize
  notes: |
    The STAC API itself is open (anonymous browse). Asset URLs in returned
    items split into two buckets:
      - lp-prod-public: open HTTPS, no auth needed (thumbnails, browse images)
      - lp-prod-protected: requires Earthdata Login (URS) OAuth token, or
        in-region (us-west-2) temporary AWS credentials via:
        https://data.lpdaac.earthdatacloud.nasa.gov/s3credentials
    Folia retrieves Earthdata creds from .env (FOLIA_GEO account, see memory
    auth-earthdata.md).

cors_enabled: true
egress_cost: free
region: us-west-2

# EMIT collections live here (17 as of 2026-06-08), plus HLS, ASTER L1T,
# MODIS LP DAAC, ECOSTRESS, GEDI L1B/L2A/L4A. Methane / HSI research first
# customer; broader LP DAAC coverage opens up with this source landed.

notes: |
  NASA Common Metadata Repository (CMR) is the master catalog for all NASA
  Earth-observation data. The LPCLOUD provider serves the LP DAAC's
  cloud-hosted (S3 us-west-2) products. The CMR STAC endpoint is a thin
  STAC-API wrapper over CMR; pagination works, full-text search works,
  asset structure is per-item rather than per-collection (item_assets is
  empty in collection metadata).

  Asset key shape is unusual: instead of clean per-band keys (B02, B03, …)
  CMR-STAC emits long auto-generated keys derived from the granule UR
  (e.g. `002/EMIT_L2B_CH4PLM_002_20220810T064957_000485/...`). Recipes
  consuming this catalog should treat asset retrieval as "find the .tif
  asset" rather than "request key B02."

  Liveness probe note: an unauthenticated GET on a collection metadata
  endpoint returns 200; an unauthenticated GET on an lp-prod-protected
  asset returns 401. Probe only the metadata.
