Skip to content

STAC mapping of external data

The external data sources (CADIP, AUXIP, PRIP) expose their data with the OData protocol, as specified by the ESA interface control documents (ICD) listed below. rs-server maps these data as STAC items, so that the users only deal with STAC. This page describes the mapping applied to each data source. The reverse mapping, used by the catalog to expose its items as OData PRIP products, is described in OData PRIP interface of the catalog. The mapping is configured in the *_stac_mapper.json files of the services:

Data source Interface specification Mapping files
CADIP sessions CADIP ICD (ESA-EOPG-EOPGC-IF-15) cadip_sessions_stac_mapper.json
CADIP files CADIP ICD (ESA-EOPG-EOPGC-IF-15) cadip_stac_mapper.json
AUXIP products AUXIP ICD (ESA-EOPG-EOPGC-IF-10) adgs_stac_mapper.json
PRIP products PRIP ICD (ESA-EOPG-EOPGC-IF-3) prip_stac_mapper.json, product_type_mapping.yaml

The OData Id of the sessions, files and products is kept in the externalIds property of the STAC items (or assets for the CADIP files), defined by the External IDs extension: a list of scheme and value objects, the scheme being the protocol of the data source: cadip, auxip or prip. The externalIds search parameter and queryable of the /cadip, /auxip and /prip services are translated into an OData filter on the Id:

Searched external identifier OData filter
<scheme>:<value> with the scheme of the service, or <value>, e.g. prip:2b17... or 2b17... on /prip Id eq 2b17... (Id in (...) for several values)
<scheme>: with the scheme of the service, e.g. prip: on /prip No filter: all the products have an identifier of this scheme.
Only identifiers with another scheme, e.g. auxip:... on /prip No product is returned.

The STAC properties come from the STAC common metadata and from the STAC extensions described in Catalog data model and lifecycle.

CADIP

CADIP sessions are mapped as STAC items, CADIP files as STAC assets of the session items.

Sessions

CADIP session property STAC item property Description
Id externalIds with the cadip scheme UUID of the session in the CADIP station, e.g. [{"scheme": "cadip", "value": "2b17b57d-fff4-4645-b539-91f305c27c69"}].
SessionId id Session identifier, e.g. S1A_20170501121534062343: 3 characters for the satellite, the acquisition start date and time, and the acquisition orbit.
DownlinkStart start_datetime Acquisition time of the first CADU of the session.
PublicationDate datetime, published Publication date of the session (time at which the first file becomes visible to the user).
DownlinkStop end_datetime Acquisition time of the last CADU of the session.
Satellite platform, constellation Satellite identifier, e.g. S1A is mapped to sentinel-1a and sentinel-1.
NumChannels cadip:num_channels Number of channels of the session (1 to 4).
StationId sat:acquisition_station Acquisition station.
DownlinkOrbit sat:absolute_orbit Absolute downlink orbit number of the acquired pass.
AcquisitionId cadip:acquisition_id Acquisition identifier from the acquisition plan.
AntennaId cadip:antenna_id Identifier of the antenna used.
FrontEndId cadip:front_end_id Identifier of the front-end processor (demodulator) used.
Retransfer cadip:retransfer Whether the session is a retransfer.
AntennaStatusOK cadip:antenna_status_ok Quality of the acquisition at antenna level.
FrontEndStatusOK cadip:front_end_status_ok Quality of the acquisition at front-end processor level.
PlannedDataStart, PlannedDataStop cadip:planned_data_start, cadip:planned_data_stop Planned start and stop of the downlink.
DownlinkStatusOK cadip:downlink_status_ok Overall status of the downlink: false warns about a potential data loss or corruption.
DeliveryPushOK cadip:delivery_push_ok Status of the transfer of the files from the station to the delivery point.

Files

CADIP file property STAC asset property Description
Id externalIds with the cadip scheme UUID of the file in the CADIP station.
Name asset key File name, e.g. DCS_01_S1A_20170501121534062343_ch1_DSDB_00001.raw.
Channel cadip:channel Channel of the file (1 to 4).
BlockNumber cadip:block_number Number of the file in its channel, starting from 1.
FinalBlock cadip:final_block Whether this is the last file of the session.
Retransfer cadip:retransfer Whether the file is part of a retransfer.
PublicationDate created Publication date of the file.
EvictionDate eviction_datetime Date when the file will be removed from the rolling archive of the station.
Size file:size File size in bytes.

AUXIP

AUXIP products are mapped as STAC items, the product file as their asset.

AUXIP product property STAC property Description
Id externalIds with the auxip scheme UUID of the product in the AUXIP instance.
Name item id (without extension), asset key File name, e.g. S2__OPER_AUX_ECMWFD_PDMC_20190216T120000_V20190217T090000_20190217T210000.TGZ.
ContentDate/Start, ContentDate/End start_datetime, datetime, end_datetime Validity period of the auxiliary data.
PublicationDate published Publication date of the file.
EvictionDate asset eviction_datetime Date when the file will be removed from the rolling archive of the AUXIP instance. It is not the expiration date of the product in the RS-Python catalog (expires), which is set by the catalog, see Expiration and deletion.
ContentType asset type Media type of the file.
ContentLength asset file:size File size in bytes.
Checksum (MD5) asset file:checksum Checksum of the file.
Attributes/productType product:type Product type, e.g. AUX_PP1.
Attributes/processingDate processing:datetime Processing date.
Attributes/processingCenter processing:facility Processing centre.
Attributes/platformShortName, Attributes/platformSerialIdentifier constellation, platform e.g. SENTINEL-1 and A are mapped to sentinel-1 and sentinel-1a.

PRIP

PRIP products are mapped as STAC items, the product file as their asset.

PRIP product property STAC property Description
Id externalIds with the prip scheme UUID of the product in the PRIP instance.
Name item id (without extension), asset key Product file name, e.g. S1A_IW_SLC__1SDV_20160117T103451_20160117T103518_009533_00DD94_D46A.zip.
ContentDate/Start, ContentDate/End start_datetime, datetime, end_datetime Sensing period.
GeoFootprint geometry, bbox Footprint of the product.
PublicationDate published Publication date of the product.
OriginDate eopf:origin_datetime Date when the raw data used to generate the product became available at the acquisition interface point.
EvictionDate asset eviction_datetime Date when the product will be removed from the rolling archive of the PRIP instance. It is not the expiration date of the product in the RS-Python catalog (expires), which is set by the catalog, see Expiration and deletion.
ContentType, ContentLength, Checksum asset type, file:size, file:checksum File information.
ProductionType processing:lineage systematic_production, on-demand default or on-demand non-default.
Attributes/productType product:type, processing:level, sar:instrument_mode... Legacy product type, converted into the EOPF product type and its components with the product type mapping, e.g. IW_SLC__1S gives S01SIWSLC, level L1 and instrument mode IW.
Attributes/processingDate created, processing:datetime Processing date.
Attributes/processingCenter processing:facility Processing centre.
Attributes/processorVersion processing:version Version of the processor that generated the product.
Attributes/platformShortName, Attributes/platformSerialIdentifier constellation, platform Satellite.
Attributes/instrumentShortName instruments e.g. SAR is mapped to c-sar.
Attributes/orbitNumber, Attributes/relativeOrbitNumber sat:absolute_orbit, sat:relative_orbit Orbit numbers.
Attributes/cycleNumber sat:orbit_cycle Repeat cycle number.
Attributes/orbitDirection sat:orbit_state ascending or descending.
Attributes/polarisationChannels sar:polarizations e.g. HH+HV is mapped to ["HH", "HV"].
Attributes/datatakeID eopf:datatake_id Datatake identifier.
Attributes/instrumentConfigurationID eopf:instrument_configuration_id Sentinel-1 instrument configuration identifier.

OData support of the stations

rs-server translates the STAC and CQL2 filters into OData filter expressions. All the stations do not support all the OData operators and functions: to stay compatible with all of them, only use in your filters the properties listed by the queryables endpoints, and the operators required by the ESA interface specifications:

Operator or function Required by the ESA specifications Example of OData filter
eq Yes Satellite eq 'S1A'
gt, lt Yes PublicationDate gt 2026-02-01T00:00:00.000Z
in Yes Satellite in ('S1A','S1C')
and, or Yes Satellite eq 'S1A' or Satellite eq 'S1C'
not Yes not (Satellite eq 'S1A') (with a space after not)
contains, startswith, endswith Yes startswith(SessionId,'S1A')
ne, ge, le, () No PublicationDate ge 2026-02-01T00:00:00.000Z
concat, indexof, length, substring, matchesPattern, tolower, toupper, trim No tolower(Satellite) eq 's1a'

The operators that are not required by the specifications are supported by some stations only. Test scripts to check the OData support of the stations are available in the rs-testsuite repository.