Skip to main content

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, and dask.

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

sarpyx-1.0.1.tar.gz (389.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sarpyx-1.0.1-py3-none-any.whl (368.6 kB view details)

Uploaded Python 3

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

Hashes for sarpyx-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d2c4c4d81755548bde0303cb0c8152b50a5731d9b4389f18da6d311d58deb219
MD5 1573bf6d57b00acbe39a5125da9b9436
BLAKE2b-256 dda3908837180d86260afb2052adefca2e7147c9c4c9aa41d6cd790dcd19078d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sarpyx-1.0.1.tar.gz:

Publisher: publish.yml on ESA-PhiLab/sarpyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for sarpyx-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8162a2d1a5ccd65e781b7a1803e23215cd5f2d2fa79255ff7c5cc172ececf4b3
MD5 3f5eabfaf5fae95f1d7c9fb0a3ebbb9c
BLAKE2b-256 8a1dfd460fb83fb74e5345999dd3638b1483bbad89c18249f35a2e1592175e33

See more details on using hashes here.

Provenance

The following attestation bundles were made for sarpyx-1.0.1-py3-none-any.whl:

Publisher: publish.yml on ESA-PhiLab/sarpyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page