A swissknife for SAR processing.
Project description
sarpyx is a specialized Python toolkit for Synthetic Aperture Radar (SAR) processing with tight integration to ESA SNAP. It focuses on reproducible SAR workflows, SNAP GPT orchestration, fast tiling, validation, and research features such as sub-aperture decomposition.
Highlights
- SNAP GPT integration with configurable graphs and operator chaining.
- WorldSAR preprocessing, tiling, validation, and H5-to-Zarr conversion.
- Generic pipeline CLI with built-in recipes for Sentinel-1, TSX, CSG, Biomass, NISAR, and Sentinel-1 InSAR.
- Sub-aperture decomposition for Sentinel-style BEAM-DIMAP products.
- Geocoded outputs ready for GIS and downstream ML.
- Utilities compatible with
rasterio,geopandas,pyproj,h5py,zarr, anddask.
Commands
sarpyx --help # Top-level command dispatcher
sarpyx worldsar --help # WorldSAR preprocessing, tiling, validation, H5-to-Zarr
sarpyx pipeline --help # Explicit built-in or external pipeline recipes
sarpyx-worldsar --help # Compatibility WorldSAR entry point
sarpyx-pipeline --help # Compatibility pipeline entry point
Documentation
Install
The recommended installation uses conda first to provide ESA SNAP and gpt, then installs sarpyx with pip from this checkout. This keeps SNAP/native dependencies managed by conda while keeping the Python package editable.
conda create -n sarpyx -c sirbastiano/label/dev -c conda-forge \
python=3.12 pip snap13=13.0.0
conda activate sarpyx
python -m pip install -e .
Verify the installation:
gpt -h
sarpyx --help
sarpyx worldsar --help
sarpyx pipeline --help
For development and tests:
python -m pip install -e ".[copernicus]"
python -m pip install pytest
pytest -q
Using uv for repository maintenance
uv sync
uv sync --group dev
uv sync --group dev --extra copernicus
uv run pytest -q
uv build
Published pip package
python -m pip install sarpyx
The pip package is suitable for Python-side usage, but SNAP GPT workflows require a working SNAP installation available in the environment.
Container usage
For container workflows, use the Docker Compose CLI plugin:
docker compose version
make recreate
At startup, the container expects a mounted grid file. Provide either GRID_PATH or place a *.geojson file under /workspace/grid.
mkdir -p ./grid
# put any grid GeoJSON here, e.g. ./grid/my_region.geojson
docker compose up
You can also pass --grid-path to sarpyx worldsar.
Project Links
Maintainers: Roberto Del Prete, Gabriele Daga, Sebastian Fieldhouse, Juanfrancisco Amieva, Cedric Leonard, Valerio Marsocci, Eva Gmelich Mejling
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sarpyx-1.0.1.tar.gz.
File metadata
- Download URL: sarpyx-1.0.1.tar.gz
- Upload date:
- Size: 389.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2c4c4d81755548bde0303cb0c8152b50a5731d9b4389f18da6d311d58deb219
|
|
| MD5 |
1573bf6d57b00acbe39a5125da9b9436
|
|
| BLAKE2b-256 |
dda3908837180d86260afb2052adefca2e7147c9c4c9aa41d6cd790dcd19078d
|
Provenance
The following attestation bundles were made for sarpyx-1.0.1.tar.gz:
Publisher:
publish.yml on ESA-PhiLab/sarpyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sarpyx-1.0.1.tar.gz -
Subject digest:
d2c4c4d81755548bde0303cb0c8152b50a5731d9b4389f18da6d311d58deb219 - Sigstore transparency entry: 1911900731
- Sigstore integration time:
-
Permalink:
ESA-PhiLab/sarpyx@c8453a471f6746000079d1b2d77f0595903d7124 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ESA-PhiLab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c8453a471f6746000079d1b2d77f0595903d7124 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file sarpyx-1.0.1-py3-none-any.whl.
File metadata
- Download URL: sarpyx-1.0.1-py3-none-any.whl
- Upload date:
- Size: 368.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8162a2d1a5ccd65e781b7a1803e23215cd5f2d2fa79255ff7c5cc172ececf4b3
|
|
| MD5 |
3f5eabfaf5fae95f1d7c9fb0a3ebbb9c
|
|
| BLAKE2b-256 |
8a1dfd460fb83fb74e5345999dd3638b1483bbad89c18249f35a2e1592175e33
|
Provenance
The following attestation bundles were made for sarpyx-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on ESA-PhiLab/sarpyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sarpyx-1.0.1-py3-none-any.whl -
Subject digest:
8162a2d1a5ccd65e781b7a1803e23215cd5f2d2fa79255ff7c5cc172ececf4b3 - Sigstore transparency entry: 1911900903
- Sigstore integration time:
-
Permalink:
ESA-PhiLab/sarpyx@c8453a471f6746000079d1b2d77f0595903d7124 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ESA-PhiLab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c8453a471f6746000079d1b2d77f0595903d7124 -
Trigger Event:
workflow_dispatch
-
Statement type: