Formin a OData query to Sentinel 5P (S-5P) data

Hi!

A first time poster here and new to satellite and GIS data, so might be a wrong place. Though I noticed some S-5P related problems are being handled here. :slight_smile: Firstly, this is a cross-post from GIS Forums, I don’t know if it’s appropriate. The original one is at https://gis.stackexchange.com/questions/300497/is-it-possible-to-use-copernicus-odata-interfae-to-download-specific-measurement . I’m not sure if this is appropriate, so if not, please tell (either way, I can cross-post also advice, tips, answers).

Let’s say I’d like to download sulphur dioxide data from Copernicus Sentinel 5P data set. I can use the explorer and choose data set such as h ttps://s5phub.copernicus.eu/dhus/odata/v1/Products(‘6ff85c4b-974a-44d9-947e-47afded4b8d8’)/$value

which hands over a 80 MB netCDF4 file with all the metadata and other data. However, reading the instructions at h ttps://scihub.copernicus.eu/twiki/do/view/SciHubUserGuide/ODataAPI#format and at h ttps://scihub.copernicus.eu/userguide/ODataAPI

makes me believe I could actually choose just a subset of this data in some other data format. Specifically only the measurement results with the bounding coordinates and measurement time. I’m unable to do that, however, and I’m not sure if I just don’t get the URL right. Should this be possible? I see in the Copernicus inspector I can drill into the dataset, but can that used as a path to choose a specific data set in some handy format (e.g. JSON).

Here’s an image of what I mean

h ttps://i.stack.imgur.com/CrqR2.png

In the link there is an ID of the data set, but in general more interesting would be to choose a specific type of measurement (sulphur dioxide, formaldehyde, whatnot) in some other format than netCDF4, but it appears that is not possible. I would like to query via measurement type, date and location (OK, location might a bit iffy) ranges and have back JSON or XML.

Query such as h ttps://s5phub.copernicus.eu/dhus/odata/v1/Products(‘6ff85c4b-974a-44d9-947e-47afded4b8d8’)/attributes/source/$value

Returns HTTP 500 and h ttps://s5phub.copernicus.eu/dhus/odata/v1/Products(‘6ff85c4b-974a-44d9-947e-47afded4b8d8’)/root/attributes/source/$value

HTTP 406.

Altering one of the examples to query checksum by changing the ID to a Copernicus S5-P ID (the one in the picture)

h ttps://scihub.copernicus.eu/dhus/odata/v1/Products(‘a8dd0cfd-613e-45ce-868c-d79177b916ed’)/Checksum/Value/$value

to

h ttps://scihub.copernicus.eu/dhus/odata/v1/Products(‘6ff85c4b-974a-44d9-947e-47afded4b8d8’)/Checksum/Value/$value

yield HTTP 406 (different structure in data, perhaps).

<edit: I noticed the URL is different for S-5P and others. I wonder if some of my attempts are foiled due to that (e.g. changing S-5P ID to a wrong URL). And indeed, h ttps://s5phub.copernicus.eu/dhus/odata/v1/Products(‘6ff85c4b-974a-44d9-947e-47afded4b8d8’)/Checksum/Value/$value does yield results. Let’s see how this goes. I still have the questions about slicing data, but maybe I make progress.

<edit 2: Further progress on navigation (provided here for the benefit of others): https://s5phub.copernicus.eu/dhus/odata/v1/Products(‘6ff85c4b-974a-44d9-947e-47afded4b8d8’)/?$expand=Nodes&$format=json

<edit 3: I think the last one actually answers my question about getting the data too. I see with this strategy I can get to the individual scanlines etc. and I can query that data, say, as JSON (ask as compressed). The remaining problem is to interpret the data. I.e. what are actually scanlines, ground pixels etc.

I broke the community rules by adding more than two links separated with one space. But I hope it passes this time as I try to demonstrate what I have searched and tried and failed.