...
For descriptions of the fields, please refer to the Sentinel extensions or the stactools-package implementations.
Idea is to keep a small variant of the Sentinel extensions as best practices, mostly using other extensions.
EOPF is for "private" fields that externals are not interested in.
Field name | Data Type | Relevant to general public? | Potential future extension or field | Comments |
Multi-Mission | ||||
s1:processing_datetime s2:generation_time | date-time | Yes | processing:datetime (PR) created in assets | OData: processingDate S2 Example: 2024-04-19T01:31:52+00:00 (in STAC Z instead of +00:00) |
s1:datatake_id s2:datatake_id | string | YesexternalIds or EOPF | keep as is | OData: productGroupId S2 Example: GS2A_20240308T100841_045493_N05.10 |
s2:product_type s3:product_type s5p:product_type | string | No? | New product extension: product:type potentially restricted in s2 extension | What's the difference between name and type? Can it be just one property, e.g. the name? S2 example: S2MSI2A |
s3:product_name s5p:product_name | string | Yes? | ||
s1:product_timeliness s3:processing_timeliness | string | Yes? | New product extension: product:timeliness potentially restricted in s2 extension | Can Can we find a common set of values for this? e.g. ISO 8601 Durations? |
Sentinel-1 | ||||
s1:instrument_configuration_ID | string | No? | ||
s1:orbit_source | string | No? | ||
s1:product_identifier | string | ? | externalIds? | |
s1:resolution | string | No? | ||
s1:slice_number | string | No | ||
s1:total_slices | string | No | ||
Sentinel-2 | ||||
s2:tile_id | string | Yes? | grid:code grid:code |
|
s2:product_uri | string | Yes? |
| |
s2:datastrip_id | string | Yes?externalIds | or EOPFkeep as is | OData field: datastripId Example: S2A_OPER_MSI_L2A_DS_2APS_20240308T143352_S20240308T101546_N05.10 |
s2:datatake_type | string | No? | EOPF | OData: operationalMode Example: INS-NOBS |
s2:processing_baseline | string | Yes? | processing:version (PR) or version | OData: processorVersion, example: 5.1 STAC example: 05.10 |
s2:reflectance_conversion_factor | number | Yes? | keep as is or EOPF | Example: 1.01707999697991 |
Sentinel-3 | ||||
s3:gsd | various | No? | gsd as a single value? | |
s3:lrm_mode | number | Yes? | altm:instrument_type | |
s3:sar_mode | number | Yes? | altm:instrument_mode | |
Sentinel-3 (Asset-level properties) | ||||
s3:spatial_resolution (in assets) | [number] | ? | raster:spatial_resolution as a single value? | |
s3:altimetry_bands (in assets) | [Altimetry Band Object] | ? | bands in STAC 1.1 | |
Sentinel-5 | ||||
s5p:processing_mode | string | ? | ||
s5p:collection_identifier | string | ? | ||
s5p:spatial_resolution | [number] | ? | raster:spatial_resolution as a single value? | |
Sentinel-5 Container Objects | ||||
s5p:aer_ai | Aer Ai Object | Flatten into top-level properties | None | |
s5p:aer_lh | Aer Lh Object | Flatten into top-level properties | None | |
s5p:ch4 | CH4 Object | Flatten into top-level properties | None | |
s5p:cloud | Cloud Object | Flatten into top-level properties | None | |
s5p:co | CO Object | Flatten into top-level properties | None | |
s5p:hcho | HCHO Object | Flatten into top-level properties | None | |
s5p:no2 | NO2 Object | Flatten into top-level properties | None | |
s5p:npbd3 | NPBD Object | Flatten into top-level properties | None | |
s5p:npbd6 | NPBD Object | Flatten into top-level properties | None | |
s5p:npbd7 | NPBD Object | Flatten into top-level properties | None | |
s5p:o3 | O2 Object | Flatten into top-level properties | None | |
s5p:o3_tcl | O3 TCL Object | Flatten into top-level properties | None | |
s5p:so2 | SO2 Object | Flatten into top-level properties | None | |
Sentinel 5P Container Object Fields These fields appear in at least one of the Sentinel-5 Container Objects above. | ||||
input_band | string / [string] | No? | ||
irradiance_accompanied | string | No? | ||
geolocation_grid_from_band | integer | No? | ||
cloud_mode | string | No? | ||
shape_ccd | [integer] | No? | ||
shape_csa | [integer] | No? | ||
stratosphere_start_datetime | string | ? | ||
stratosphere_end_datetime | string | ? | ||
troposphere_start_datetime | string | ? | ||
troposphere_end_datetime | string | ? | ||
input_orbits | [integer] | No? | ||
input_files | [string] | No? | ||
analysed_s5p_band | integer | No? | ||
VIIRS_band | [integer] | No? | ||
number_of_scaled_fov | integer | No? |
...
Field name | Relevant to general public? | Potential future extension or field | Comments | |
General and Other | ||||
s3:land | ? | |||
s2:unclassified_percentage? | Yes, not queryable | classification:classes[*].percentage | ||
Clouds | ||||
s2:cloud_shadow_percentage | No? | Yes, not queryable | classification:classes[*].percentage | |
s2:high_proba_clouds_percentage | Yes, not queryable | classification:classes[*].percentageNo? | ||
s2:medium_proba_clouds_percentage | Yes, not queryable | classification:classes[*].percentageNo? | ||
s2:thin_cirrus_percentage | Yes, not queryable | classification:classes[*].percentageNo? | ||
Water and Coastal | ||||
s2:water_percentage | Yes?, queryable | new: eo:water_cover ? + classification:classes[*].percentage | ||
s3:s3:closed_sea | ? | |||
s3:fresh_inland_water | ? | |||
s3:open_ocean | ? | |||
s3:saline_water | ? | |||
s3:tidal_region | ? | |||
s3:coastal | ? | |||
s3:continental_ice | ? | |||
Unusable | ||||
s2:nodata_pixel_percentage | Yes, queryable | new: raster:nodata_percentage ? + classification:classes[*].percentage | ||
s3:bright | ? | |||
s3:dubious_samples | ? | |||
s3:duplicated | ? | |||
s3:invalid | ? | |||
s3:out_of_range | ? | |||
s2:dark_features_percentage | Yes, not queryable | classification:classes[*].percentageNo? | ||
s3:saturated s2:saturated_defective_pixel_percentage | Yes, not queryable | classification:classes[*].percentageNo? | ||
Vegetation | ||||
s2:vegetation_percentage | Yes, queryable? | new: eo:vegetation_cover ? + classification:classes[*].percentage | ||
s2:not_vegetated_percentage | ? | Yes, not queryable | classification:classes[*].percentagenew: eo:barren_cover ? |
Depending on the asset structure, some percentages may be provided as a classification percentages as proposed in https://github.com/stac-extensions/classification/pull/49
...