sarpyx is a specialized Python toolkit for Synthetic Aperture Radar (SAR) processing with tight integration to ESA SNAP. It focuses on reproducible pipelines, fast tiling workflows, and advanced research features like sub-aperture decomposition.
- SNAP GPT integration with configurable graphs and operator chaining.
- Sub-aperture decomposition for squint-angle diversity and motion sensitivity.
- Parallel tiling and batch processing for large product volumes.
- Geocoded outputs ready for GIS and downstream ML.
- Extensible architecture compatible with
rasterio,geopandas, andpyproj.
For container workflows, use the Docker Compose CLI plugin (docker compose) with full commands:
docker compose version
make recreateUsing uv (recommended)
uv sync --extra copernicusFor development installation with extras:
uv sync --extra copernicus --extra dev --extra test --extra docsUsing pip (editable)
python -m pip install -e .See docs/user_manual.md for full CLI usage and end-to-end workflows.
At startup the container checks for grid files in this order:
GRID_PATH(orgrid_path) if it points to an existing*.geojson- First
*.geojsonfound in/workspace/grid - Generate a grid on startup only if no
*.geojsonis available
To use a mounted grid:
mkdir -p ./grid
# put any grid GeoJSON here, e.g. ./grid/my_region.geojson
docker compose upFor direct docker run, pass an explicit in-container path when needed:
export GRID_PATH=/workspace/grid/my_region.geojson
docker run --rm -e GRID_PATH=$GRID_PATH ...You can also pass --grid-path to the worldsar CLI command.
With Love By: Roberto Del Prete
