OriginDate (product top-level field) |
STAC Core |
datetime |
Parsed RFC3339 timestamp via _parse_rfc3339, assigned to Item.datetime. |
GeoFootprint (product top-level field) |
STAC Core |
geometry |
GeoJSON geometry copied as-is to Item.geometry. |
GeoFootprint (product top-level field) |
STAC Core |
bbox |
Bounding box computed from GeoJSON geometry (Polygon / MultiPolygon) using _bbox_from_geojson_geometry. |
Id (product top-level field) |
STAC Core |
id |
Converted to string and assigned to Item.id. |
Name (product top-level field) |
STAC Link |
links[].rel=derived_from |
Creates a derived-from link pointing to the OData query filtering by Name and expanding Assets/Attributes. |
beginningDateTime |
STAC Core |
properties["start_datetime"] |
Parsed RFC3339 and written as ISO8601 string (.isoformat()). |
endingDateTime |
STAC Core |
properties["end_datetime"] |
Parsed RFC3339 and written as ISO8601 string (.isoformat()). |
orbitNumber |
sat |
sat:absolute_orbit |
Ensures Sat extension then sets item.ext.sat.absolute_orbit = value. |
relativeOrbitNumber |
sat |
sat:relative_orbit |
Ensures Sat extension then sets item.ext.sat.relative_orbit = value. |
orbitDirection |
sat |
sat:orbit_state |
Ensures Sat extension then maps to enum: OrbitState[str(value).upper()]. |
polarisationChannels |
sar |
sar:polarizations |
Ensures SAR extension then splits string on & and maps to Polarization[...] enum list. |
productType |
product |
product:type |
Ensures Product extension then sets product_ext.product_type = value. |
timeliness |
product |
product:timeliness_category + product:timeliness |
Ensures Product extension then applies timeliness_category=value and hardcodes timeliness="N/A". |
processingCenter |
processing |
processing:facility |
Ensures Processing extension then sets proc_ext.facility = value. |
processingLevel |
processing |
processing:level |
Ensures Processing extension then maps with LEVEL_MAP (e.g. S2MSI1C→L1, LEVEL2→L2, etc.), fallback to original value. |
processingDate |
processing |
processing:datetime |
Ensures Processing extension then parses RFC3339 and sets proc_ext.processing_datetime. |
processorName |
processing |
processing:software |
Ensures Processing extension then sets proc_ext.software = value. |
processorVersion |
processing |
processing:version |
Ensures Processing extension then sets proc_ext.version = value. |
operationalMode |
sar |
sar:instrument_mode |
Ensures SAR extension then sets item.ext.sar.instrument_mode = str(value). |
swathIdentifier |
sar |
sar:beam_ids |
Ensures SAR extension then splits whitespace string (e.g. "IW1 IW2 IW3") into list; stored as properties["sar:beam_ids"] (PySTAC SAR ext doesn’t expose it). |
platformShortName |
STAC Core |
properties["constellation"] |
Lowercases and stores constellation (e.g. "SENTINEL-1"→"sentinel-1"). |
platformShortName + platformSerialIdentifier |
STAC Core |
properties["platform"] |
Builds platform by concatenating lowercase platformShortName + lowercase platformSerialIdentifier extracted from product["Attributes"] (e.g. "sentinel-1" + "a" → "sentinel-1a"). |
platformSerialIdentifier |
(handled indirectly) |
(none directly) |
Explicitly skipped in dispatch (continue) because it’s consumed by on_platform_short_name for platform concatenation. |
instrumentShortName |
STAC Core |
properties["instruments"] |
Lowercases and stores list: ["sar"] for "SAR". |
cloudCover |
eo |
eo:cloud_cover |
Ensures EO extension then sets item.ext.eo.cloud_cover = float(value) (e.g. "74.0"→74.0). |