eoap-open-sar-toolkit is a CWL workflow for discovering Sentinel-1 products, processing them with OpenSarToolkit, and packaging the resulting raster output as a STAC catalog with a Cloud Optimized GeoTIFF.
cwl-workflow/open-sar-toolkit.cwl: main CWL workflow definitioncommand-line-tools/convert-search: Python CLI that selects the best Sentinel-1 product from a STAC ItemCollectioncommand-line-tools/stac-catalog: Python CLI that rewrites an input STAC bundle into a cropped COG-based STAC catalogTaskfile.yaml: convenience tasks for validation, image builds, tests, and checks
The CWL workflow performs these stages:
- Build a search request from the target datetime and AOI bbox.
- Query the Copernicus Data Space OData endpoint.
- Convert the returned STAC ItemCollection into one or more Sentinel-1 reference IDs.
- Stage the selected SAFE product.
- Run OpenSarToolkit preprocessing.
- Convert the produced TIFF asset into a COG and write a new STAC catalog.
The main workflow entrypoint is #opensartoolkit inside open-sar-toolkit.cwl.
- Python 3.8+
- Docker
cwltoolhatch- optionally
go-taskfortaskcommands
The workflow also expects credentials and runtime access for the external services used during discovery and stage-in.
Build the command-line tool images:
task buildValidate the CWL workflow:
task validateRun the package checks configured in each Python project:
task check
task lintRun the test environments:
task testReads a STAC ItemCollection GeoJSON, extracts Sentinel-1 product identifiers from derived_from links, prefers an item matching the requested day, and writes items.json.
See command-line-tools/convert-search/README.md.
Reads an input STAC catalog produced by the OST processing step, optionally crops the TIFF with a bbox, writes a COG, and emits a self-contained output STAC catalog.
See command-line-tools/stac-catalog/README.md.
Use the command below (the first one for copy & paste, the second one for better readability) to publish the Application Package to cr.terradue.com with oras manually (to be implemented in the CI).
Command for copy & paste
oras push cr.terradue.com/app-packages/terradue/opensartoolkit:2.2.0 APEx/eoap-open-sar-toolkit/cwl-workflow/open-sar-toolkit.cwl:application/vnd.commonworkflowlanguage.cwl --artifact-type application/vnd.commonworkflowlanguage.cwl --annotation org.opencontainers.image.usedImages='["ghcr.io/terradue/eoap-open-sar-toolkit/convert-search:latest-dev","cr.terradue.com/seda/arvesto:0.6.3-develop","ghcr.io/terradue/eoap-open-sar-toolkit/opensartoolkit:1.0.0","ghcr.io/terradue/eoap-open-sar-toolkit/stac-catalog:latest-dev"]' --annotation org.opencontainers.image.version="2.2.0" --annotation org.opencontainers.image.source="https://github.com/Terradue/eoap-open-sar-toolkit.git"Command for better readability
oras push \
cr.terradue.com/app-packages/terradue/opensartoolkit:2.2.0 \
APEx/eoap-open-sar-toolkit/cwl-workflow/open-sar-toolkit.cwl:application/vnd.commonworkflowlanguage.cwl \
--artifact-type application/vnd.commonworkflowlanguage.cwl \
--annotation org.opencontainers.image.usedImages='["ghcr.io/terradue/eoap-open-sar-toolkit/convert-search:latest-dev","cr.terradue.com/seda/arvesto:0.6.3-develop","ghcr.io/terradue/eoap-open-sar-toolkit/opensartoolkit:1.0.0","ghcr.io/terradue/eoap-open-sar-toolkit/stac-catalog:latest-dev"]' \
--annotation org.opencontainers.image.version="2.2.0" \
--annotation org.opencontainers.image.source="https://github.com/Terradue/eoap-open-sar-toolkit.git"This repository is distributed under the terms of the MIT license unless noted otherwise in individual assets or metadata.