Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Sentinel-5P #167

Merged
merged 18 commits into from
May 1, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion datasets/io-land-cover/dataset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ id: io_lulc
image: ${{ args.registry }}/pctasks-task-base:latest

args:
- registry
- registry

code:
src: ${{ local.path(./io_lulc.py) }}
Expand Down
2 changes: 1 addition & 1 deletion datasets/sentinel-5p/README.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
# Work in progress - in a broken state
# Sentinel-5 Precursor
19 changes: 19 additions & 0 deletions datasets/sentinel-5p/collection/description.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
The Copernicus [Sentinel-5 Precursor](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-5p) mission provides high spatio-temporal resolution measurements of the Earth's atmosphere. The mission consists of one satellite carrying the [TROPOspheric Monitoring Instrument](http://www.tropomi.eu/) (TROPOMI). The satellite flies in loose formation with NASA's [Suomi NPP](https://www.nasa.gov/mission_pages/NPP/main/index.html) spacecraft, allowing utilization of co-located cloud mask data provided by the [Visible Infrared Imaging Radiometer Suite](https://www.nesdis.noaa.gov/current-satellite-missions/currently-flying/joint-polar-satellite-system/visible-infrared-imaging) (VIIRS) instrument onboard Suomi NPP during processing of the TROPOMI methane product.

The Sentinel-5 Precursor mission aims to reduce the global atmospheric data gap between the retired [ENVISAT](https://earth.esa.int/eogateway/missions/envisat) and [AURA](https://www.nasa.gov/mission_pages/aura/main/index.html) missions and the future [Sentinel-5](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-5) mission. Sentinel-5 Precursor [Level 2 data](http://www.tropomi.eu/data-products/level-2-products) provide total columns of ozone, sulfur dioxide, nitrogen dioxide, carbon monoxide and formaldehyde, tropospheric columns of ozone, vertical profiles of ozone and cloud & aerosol information. These measurements are used for improving air quality forecasts and monitoring the concentrations of atmospheric constituents.

This STAC Collection provides Sentinel-5 Precursor Level 2 data, in NetCDF format, since April 2018 for the following products:

* [`L2__AER_AI`](http://www.tropomi.eu/data-products/uv-aerosol-index): Ultraviolet aerosol index
* [`L2__AER_LH`](http://www.tropomi.eu/data-products/aerosol-layer-height): Aerosol layer height
* [`L2__CH4___`](http://www.tropomi.eu/data-products/methane): Methane (CH<sub>4</sub>) total column
* [`L2__CLOUD_`](http://www.tropomi.eu/data-products/cloud): Cloud fraction, albedo, and top pressure
* [`L2__CO____`](http://www.tropomi.eu/data-products/carbon-monoxide): Carbon monoxide (CO) total column
* [`L2__HCHO__`](http://www.tropomi.eu/data-products/formaldehyde): Formaldehyde (HCHO) total column
* [`L2__NO2___`](http://www.tropomi.eu/data-products/nitrogen-dioxide): Nitrogen dioxide (NO<sub>2</sub>) total column
* [`L2__O3____`](http://www.tropomi.eu/data-products/total-ozone-column): Ozone (O<sub>3</sub>) total column
* [`L2__O3_TCL`](http://www.tropomi.eu/data-products/tropospheric-ozone-column): Ozone (O<sub>3</sub>) tropospheric column
* [`L2__SO2___`](http://www.tropomi.eu/data-products/sulphur-dioxide): Sulfur dioxide (SO<sub>2</sub>) total column
* [`L2__NP_BD3`](http://www.tropomi.eu/data-products/auxiliary): Cloud from the Suomi NPP mission, band 3
* [`L2__NP_BD6`](http://www.tropomi.eu/data-products/auxiliary): Cloud from the Suomi NPP mission, band 6
* [`L2__NP_BD7`](http://www.tropomi.eu/data-products/auxiliary): Cloud from the Suomi NPP mission, band 7
238 changes: 238 additions & 0 deletions datasets/sentinel-5p/collection/template.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
{
"stac_version": "1.0.0",
"type": "Collection",
"id": "sentinel-5p-l2-netcdf",
"title": "Sentinel-5P Level-2",
"description": "{{ collection.description }}",
"license": "proprietary",
"links": [
{
"rel": "license",
"href": "https://sentinel.esa.int/documents/247904/690755/Sentinel_Data_Legal_Notice",
"type": "application/pdf",
"title": "Sentinel Data License"
},
{
"rel": "about",
"href": "https://sentinel.esa.int/web/sentinel/missions/sentinel-5p",
"type": "text/html",
"title": "Sentinel-5 Precursor Mission"
}
],
"stac_extensions": [
"https://stac-extensions.github.io/sat/v1.0.0/schema.json",
TomAugspurger marked this conversation as resolved.
Show resolved Hide resolved
"https://stac-extensions.github.io/table/v1.2.0/schema.json",
"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json"
],
"keywords": [
"ESA",
"Copernicus",
"Sentinel",
"Air Quality",
"Climate Change",
"Forecasting"
],
"msft:short_description": "Sentinel-5P Level 2 atmospheric monitoring products in NetCDF format",
"msft:storage_account": "sentinel5euwest",
"msft:container": "sentinel-5p",
"msft:region": "westeurope",
"providers": [
{
"name": "ESA",
"roles": [
"producer",
"processor",
"licensor"
],
"url": "https://earth.esa.int/web/guest/home"
},
{
"name": "Microsoft",
"roles": [
"host"
],
"url": "https://planetarycomputer.microsoft.com"
}
],
"assets": {
"thumbnail": {
"title": "Sentinel-5P Level-2 NetCDF",
"href": "https://ai4edatasetspublicassets.blob.core.windows.net/assets/pc_thumbnails/sentinel-5p-l2-netcdf-thumb.png",
"media_type": "image/png"
},
"geoparquet-items": {
"href": "abfs://items/sentinel-5p-l2-netcdf.parquet",
"title": "GeoParquet STAC items",
"description": "Snapshot of the collection's STAC items exported to GeoParquet format.",
"type": "application/x-parquet",
"roles": [
"stac-items"
],
"table:storage_options": {
"account_name": "pcstacitems"
},
"msft:partition_info": {
"is_partitioned": true,
"partition_frequency": "MS"
}
}
},
"summaries": {
"constellation": [
"Sentinel-5P"
],
"platform": [
"Sentinel 5 Precursor"
],
"instruments": [
"TROPOMI"
],
"sat:platform_international_designator": [
"2017-064A"
],
"s5p:collection_identifier": [
"01",
"02",
"03"
],
"s5p:processing_mode": [
"NRTI",
"OFFL",
"RPRO"
],
"s5p:product_type": [
pjhartzell marked this conversation as resolved.
Show resolved Hide resolved
"L2__AER_AI",
"L2__AER_LH",
"L2__CH4___",
"L2__CLOUD_",
"L2__CO____",
"L2__HCHO__",
"L2__NO2___",
"L2__NP_BD3",
"L2__NP_BD6",
"L2__NP_BD7",
"L2__O3_TCL",
"L2__O3____",
"L2__SO2___"
],
"s5p:spatial_resolution": [
"5.5x3.5km",
pjhartzell marked this conversation as resolved.
Show resolved Hide resolved
"5.5x7.0km",
"7.0x3.5km",
"7.0x7.0km"
]
},
"extent": {
"spatial": {
"bbox": [
[
-180,
-90,
180,
90
]
]
},
"temporal": {
"interval": [
[
"2018-04-30T00:18:50Z",
null
]
]
}
},
"item_assets": {
"aer_ai": {
"title": "TROPOMI/S5P L2 Ultraviolet Aerosol Index",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"aer_lh": {
"title": "TROPOMI/S5P L2 Aerosol Layer Height",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"ch4": {
"title": "TROPOMI/S5P L2 Methane Total Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"cloud": {
"title": "TROPOMI/S5P L2 Cloud Fraction, Albedo, and Top Pressure",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"co": {
"title": "TROPOMI/S5P L2 Carbon Monoxide Total Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"hcho": {
"title": "TROPOMI/S5P L2 Formaldehyde Total Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"no2": {
"title": "TROPOMI/S5P L2 Nitrogen Dioxide Total Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"o3": {
"title": "TROPOMI/S5P L2 Ozone Total Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"o3_tcl": {
"title": "TROPOMI/S5P L2 Ozone Tropospheric Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"so2": {
"title": "TROPOMI/S5P L2 Sulphur Dioxide Total Column",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"np_bd3": {
"title": "TROPOMI/S5P VIIRS/NPP Band 3 Cloud Mask",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"np_bd6": {
"title": "TROPOMI/S5P VIIRS/NPP Band 6 Cloud Mask",
"type": "application/x-netcdf",
"roles": [
"data"
]
},
"np_bd7": {
"title": "TROPOMI/S5P VIIRS/NPP Band 7 Cloud Maskt",
"type": "application/x-netcdf",
"roles": [
"data"
]
}
}
}
37 changes: 26 additions & 11 deletions datasets/sentinel-5p/dataset.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
id: sentinel-1-grd
id: sentinel_5p
image: ${{ args.registry }}/pctasks-task-base:latest

args:
- registry

code:
src: ${{ local.path(./sentinel_5p.py) }}

environment:
AZURE_TENANT_ID: ${{ secrets.task-tenant-id }}
AZURE_CLIENT_ID: ${{ secrets.task-client-id }}
AZURE_CLIENT_SECRET: ${{ secrets.task-client-secret }}

collections:
id: sentinel-1-grd
containers:
assets: sentinel1euwest/s1-grd
stac: sentinel1euwest/s1-grd-stac
etl-data: sentinel1euwest/s1-grd-etl-info
triggers:
storage:
account: sentinel1euwest
container: s1-grd-stac
filter: "*.json"
- id: sentinel-5p-l2-netcdf
template: ${{ local.path(./collection) }}
class: sentinel_5p:Sentinel5pNetCDFCollection
asset_storage:
- uri: blob://sentinel5euwest/sentinel-5p-stac/TROPOMI/
token: ${{ pc.get_token(sentinel5euwest, sentinel-5p-stac) }}
chunks:
options:
extensions: [.json]
chunk_length: 5000 # Larger? There are 1.33 million blobs in storage
chunk_storage:
uri: blob://sentinel5euwest/sentinel-5p-etl-data/pctasks-chunks/
Empty file.
Loading