You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 36 Next »

Within the Copernicus Data Space Ecosystem there are two STAC catalogues available:

1. Production catalogue available here: https://radiantearth.github.io/stac-browser/#/external/catalogue.dataspace.copernicus.eu/stac

2. Development catalogue available here: https://radiantearth.github.io/stac-browser/#/external/pgstac.demo.cloudferro.com

Sentinel-2 attributes to be discussed on 06.05.2024

Sentinel-2  Odata attributes
data type
to be removed
target STAC extension
(in bold new attributes to be added)
STAC Counterpart
Description
Example STAC
Example Odata
mediaContentTypeStringAttributeXXX

application/octet-stream
IdStringAttributeXXXOdata internal idX3e3b9d1a-18d5-43b8-83d8-564587ec3070
NameStringAttribute
id (core STAC attribute)s2:product_uriproduct name. STAC "id" is without .SAFES2A_MSIL2A_20240308T100841_N0510_R022_T33UVR_20240308T143352.SAFES2B_MSIL2A_20240419T001429_N0510_R116_T56NNG_20240419T013152.SAFE
ContentTypeStringAttribute
core STAC attributetypediffers between Odata and STACimage/jp2application/octet-stream
ContentLengthIntegerAttribute
filefile:sizein bytes720970508720970508
OriginDateDateTimeOffsetAttribute
core STAC attributedatetime
2024-03-08T14:33:52.000000Z2024-04-19T02:13:20.000Z
PublicationDateDateTimeOffsetAttribute
core STAC attributepublished
2024-03-08T14:33:52.000000Z2024-04-19T02:20:17.555Z
ModificationDateDateTimeOffsetAttribute
core STAC attributeupdated
2024-03-08T14:33:52.000000Z2024-04-19T02:21:14.300Z
ChecksumChecksum
filefile:checksumBlake3/MD5 in Odata vs Multihash in STAC

ContentDate.StartDateTimeOffsetAttribute
core STAC attributestart_datetimethe same as end_datetime2024-03-08T10:08:41.024Z2024-04-19T00:14:29.024Z
ContentDate.EndDateTimeOffsetAttribute
core STAC attributeend_datetime

the same as

start_datetime

2024-03-08T10:08:41.024Z2024-04-19T00:14:29.024Z
Footprint

XX


GeoFootprint

core STAC attributegeometry
"geometry":{"type":"Polygon","coordinates":[[[13.588086,50.543732],
[15.13777,50.552211],[15.134971,49.564676],[13.616763,49.556488],
[13.588086,50.543732]]]}
"GeoFootprint":{"type":"Polygon","coordinates":
[[[153.9866661847601,0.945453049017732],
[153.9866661847601,0.945453049017732]]]}
originStringAttribute
processingprocessing:facility

ESA
tileIdStringAttribute
mgrsmgrs:utm_zone
mgrs:grid_square
mgrs:latitude_band
mgrs extention requires 3 fields where Odata just one

33
VR
U

56NNG
cloudCoverDoubleAttribute
eoeo:cloud_cover
15.014.583966
datastripIdStringAttribute
eof:s2_datastrip_ids2:datastrip_id
S2A_OPER_MSI_L2A_DS_2APS_20240308T143352_S20240308T101546_N05.10S2B_OPER_MSI_L2A_DS_2BPS_20240419T013152_S20240419T001424_N05.10
orbitNumberIntegerAttribute
satsat:absolute_orbit
4549337179
sourceProductStringAttributeX

not needed as it is part of the tracebility and is redundant
S2B_OPER_MSI_L2A_TL_2BPS_20240419T013152_A037179_T56NNG_N05.10 S2B_OPER_MSI_L2A_DS_2BPS_20240419T013152_S20240419T001424_N05.10
processingDateDateTimeOffsetAttribute
createds2:generation_time
2024-03-08T15:36:50.000Z2024-04-19T01:31:52+00:00
productGroupIdStringAttribute
eof:s2_datatake_ids2:datatake_id
GS2A_20240308T100841_045493_N05.10GS2B_20240419T001429_037179_N05.10
operationalModeStringAttributeXeof:s2_datatake_types2:datatake_type
INS-NOBSINS-NOBS
processingLevelStringAttribute
processingprocessing:level
L2AS2MSI2A
processorVersionStringAttribute
processing:version (PR)s2:processing_baseline
05.105.1
granuleIdentifierStringAttribute
eof:s2_tile_ids2:tile_id
S2A_OPER_MSI_L2A_TL_2APS_20240308T143352_A045493_T33UVR_N05.10S2B_OPER_MSI_L2A_TL_2BPS_20240419T013152_A037179_T56NNG_N05.10
platformShortNameStringAttribute
core STAC attributeconstellation
sentinel-2SENTINEL-2
instrumentShortNameStringAttribute
core STAC attributeinstruments
MSIMSI
relativeOrbitNumberIntegerAttribute
satsat:relative_orbit
22116
sourceProductOriginDateStringAttributeX
X

2024-04-19T02:13:20Z 2024-04-19T01:32:14Z
platformSerialIdentifierStringAttribute
core STAC attributeplatform
sentinel-2aB
productTypeStringAttribute
to be moved to core STACs2:product_type
S2MSI2AS2MSI2A
beginningDateTimeDateTimeOffsetAttribute
core STAC attributestart_datetime
2024-03-08T14:33:52.000000Z2024-04-19T00:14:29.024Z
endingDateTimeDateTimeOffsetAttribute
core STAC attributeend_datetime
2024-03-08T14:33:52.000000Z2024-04-19T00:14:29.024Z








Sentinel-2 STAC extension attributes not present in Odata

data type
to be removed
target extension
PR
Description
 Example
s2:reflectance_conversion_factornumber
eof:s2_reflectance_conversion_factor
Reflectance Conversion Factor
1.01707999697991
s2:water_percentagenumber
eo:water_cover
Water Percentage
10
s2:snow_ice_percentagenumber
eo:snow_cover
Snow and Ice Percentage
10
s2:vegetation_percentagenumber
eo:vegetation_cover
Vegetation Percentage
10
s2:thin_cirrus_percentagenumberX

Thin Cirrus Percentage
10
s2:cloud_shadow_percentagenumberX

Cloud Shadow Percentage
10
s2:nodata_pixel_percentagenumber
nodata_cover (STAC core attribute)

No Data Pixel Percentage
1e-05
s2:unclassified_percentagenumberX

Unclassified Percentage
0
s2:dark_features_percentagenumberX

Dark Features Percentage
10
s2:not_vegetated_percentagenumber
eo:barren
Not Vegetated Percentage
10
s2:degraded_msi_data_percentagenumberX

Degraded MSI Data Percentage
0.0206
s2:high_proba_clouds_percentagenumberX

High Probability Clouds Percentage
10
s2:medium_proba_clouds_percentagenumberX

Medium Probability Clouds Percentage
10
s2:saturated_defective_pixel_percentagenumberX

Saturated Defective Pixel Percentage
0

STAC Sentinel extensions

A priority should be to update the STAC Sentinel extensions to be less extensive at least. The plan is to find spaces in the general STAC community for these fields.
As a first step, we need to identify which fields are actually relevant to the general public.

General fields

For descriptions of the fields, please refer to the Sentinel extensions or the stactools-package implementations.

Field nameData TypeRelevant to general public?
Potential future extension or field
Comments
Multi-Mission
s1:processing_datetime
s2:generation_time
date-timeYesprocessing:datetime (PR)
created in assets

s1:datatake_id
s2:datatake_id
stringYesexternalIds?
s2:product_type
s3:product_type
s5p:product_type
stringNo?
What's the difference between name and type?
Can it be just one property, e.g. the name?
s3:product_name
s5p:product_name
stringYes?
s1:product_timeliness
s3:processing_timeliness
string?
Can we find a common set of values for this?
Sentinel-1 
s1:instrument_configuration_IDstringNo?

s1:orbit_sourcestringNo?

s1:product_identifierstring?externalIds?
s1:resolutionstringNo?

s1:slice_numberstringNo

s1:total_slicesstringNo

Sentinel-2 
s2:tile_idstringYes?externalIds?
MGRS: tile_id ?

s2:product_uristringYes?as a normal STAC Link
s2:datastrip_idstringYes?externalIds?
s2:datatake_typestring?

s2:processing_baselinestringYes?processing:version (PR)
s2:reflectance_conversion_factornumber?

s2:degraded_msi_data_percentagenumberNo?

Sentinel-3 
s3:gsdvariousNo?gsd as a single value?
s3:lrm_modenumberaltm:ins_type

s3:sar_modenumberaltm:ins_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_modestring?

s5p:collection_identifierstring?

s5p:spatial_resolution[number]?raster:spatial_resolution as a single value?
Sentinel-5 Container Objects 
s5p:aer_aiAer Ai ObjectFlatten into top-level propertiesNone
s5p:aer_lhAer Lh ObjectFlatten into top-level propertiesNone
s5p:ch4CH4 ObjectFlatten into top-level propertiesNone
s5p:cloudCloud ObjectFlatten into top-level propertiesNone
s5p:coCO ObjectFlatten into top-level propertiesNone
s5p:hchoHCHO ObjectFlatten into top-level propertiesNone
s5p:no2NO2 ObjectFlatten into top-level propertiesNone
s5p:npbd3NPBD ObjectFlatten into top-level propertiesNone
s5p:npbd6NPBD ObjectFlatten into top-level propertiesNone
s5p:npbd7NPBD ObjectFlatten into top-level propertiesNone
s5p:o3O2 ObjectFlatten into top-level propertiesNone
s5p:o3_tclO3 TCL ObjectFlatten into top-level propertiesNone
s5p:so2SO2 ObjectFlatten into top-level propertiesNone
Sentinel 5P Container Object Fields
These fields appear in at least one of the Sentinel-5 Container Objects above.


input_bandstring / [string]No?

irradiance_accompaniedstringNo?

geolocation_grid_from_bandintegerNo?

cloud_modestringNo?

shape_ccd[integer]No?

shape_csa[integer]No?

stratosphere_start_datetimestring?

stratosphere_end_datetimestring?

troposphere_start_datetimestring?

troposphere_end_datetimestring?

input_orbits[integer]No?

input_files[string]No?

analysed_s5p_bandintegerNo?

VIIRS_band[integer]No?

number_of_scaled_fovintegerNo?

Percentages

Field nameRelevant to general public?
Potential future extension or field
Comments
General and Other
 
s3:land?

s2:unclassified_percentage?

Clouds
 
s2:cloud_shadow_percentage
  
s2:high_proba_clouds_percentage?

s2:medium_proba_clouds_percentage?

s2:thin_cirrus_percentage?

Water and Coastal
 
s2:water_percentage


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_percentageYes

s3:bright


s3:dubious_samples?

s3:duplicated?

s3:invalid


s3:out_of_range?

s2:dark_features_percentage?

s3:saturated
s2:saturated_defective_pixel_percentage
?

Vegetation 
s2:vegetation_percentage?

s2:not_vegetated_percentage?

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

Deprecated

For completeness, the following fields did exist in the past and are already deprecated in favor of existing STAC fields:

Field nameData TypeNew field name
s2:granule_idstringRemoved
s2:mgrs_tilestringmgrs:*
s2:mean_solar_zenithnumberview:sun_azimuth
s2:mean_solar_azimuthnumberview:sun_elevation
s2:snow_ice_percentage
s3:snow_or_ice
numbereo:snow_cover
s1:shape[integer]proj:shape
s1:processing_levelstringprocessing:level
s5p:shape[integer]proj:shape
s3:shape (in assets)[integer]proj:shape

CDSE querables attributes for Sentinel-2 L1C


CDSE STAC development roadmap


0. Simplify the geofootprint which is the largest attribute in the STAC response and slows down spatial querying (especially relevant for S-3 and S5P) ← to be provided by the Bureau d'Etude

1. Disable the overview displaying on items/assets level for selected collections e.g. Senitnel-3 where overviews generated in satellite projection is not displayed correctly. 

2. [Done at the collection level] Implement the CEOS-ARD extension for Level-2 and Level-3 products https://github.com/stac-extensions/ceos-ard First would be the Sentinel-2 L2A (stac item example https://github.com/stac-extensions/ceos-ard/blob/main/examples/optical-sr/item.json), then Sentinel-3 and Sentinel-5P products. There is no CEOS ARD for radar data yet. Currently it is only for CEOS ARD PFSes (so surface reflectance and temperature, and aquatic reflectance)

3. Populate the development catalogue with the Sentinel-2 L1C and L2A products and make the online version of the catalogue publicly available for testing

4. Add new collections based on the on the stac-tools for Sentinel-1 (https://github.com/stactools-packages/sentinel1), Sentinel-3 (https://github.com/stactools-packages/sentinel3), Sentinel-5P (https://github.com/stactools-packages/sentinel5p) These collections will conform to the new Sentinel's extensions: https://github.com/stac-extensions/sentinel-1 , https://github.com/stac-extensions/sentinel-3 ,  https://github.com/stac-extensions/sentinel-5p

4. Update ASAP current "more generic" extensions: EO, SAR, etc. Add new Sentinel collections excluding the Sentinel specific extensions.  

5. [In progress] Migrate some generic attributes from platform specific extension to more general extensions such as eo and sar. The rest of missions specific attributes (red crosses) should be maintained in the mission specific extensions not in the EOPF extension: https://github.com/CS-SI/eopf-stac-extension



7. Add to STAC Functionality of online/offline products. Add on demand product generation (url-s)

Missing STAC API functionalities to be potentially implemented in new STAC extensions

  • Hiding entire extensions in the https://github.com/stac-api-extensions/fields This could mimic the Odata $expand option for advanced, ESA internal extensions. 
  • Hiding items and assets within a Collection by an AOI
  • User levels and permissions to filter the Json response for general & expert CDSE users. 

Modification of current STAC extensions:



Various issues related to population of the STAC catalogue:

  1. NaN values in the Sentinel-2 viewing geometry: https://esa-cams.atlassian.net/browse/GSANOM-15086

    Coordination desk reply:

    This product is absolutely normal with respect to the current IPF implementation. It is really small as only few pixels from the datastrip intersect this tile as you can see in the CDSE and QGIS screenshots attached (the rainbow effect visible for the TCI displayed in QGIS is normal, and due to the fact that the different spectral bands do not share exactly the same footprint).

    A consequence of this very limited intersection between the tile footprint and the datastrip footprint is that we get only NaN viewing incidence values for several bands in the tile metadata, resulting in NaN mean viewing incidence values for these bands. This is because the grid on which the viewing incidence values are computed is very coarse (5 km x 5 km). Then this behaviour could happen sometimes for this kind of products (with limited intersection between the tile and the datastrip), and did happen before.

 


  • No labels