Project Overview
sarpyx is a Python SAR processing toolkit with CLI workflows for decoding, focusing, SNAP-based processing, tiling, and scientific metrics.
Problem Statement
The repository addresses repeatable processing of large SAR products across multiple missions while preserving metadata and providing automation-friendly CLI and Python APIs.
Target Audience
- Remote-sensing engineers building SAR preprocessing pipelines.
- Researchers running sub-look analysis and derived metrics.
- Platform engineers operating SNAP-backed processing in containers.
Key Features
- 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`, and `pyproj`.
High-Level Architecture Summary
The package is split into `cli`, `processor`, `snapflow`, `sla`, `science`, and `utils` namespaces. The CLI layer orchestrates decode/focus/tiling flows, while core modules process arrays and persist results (for example to Zarr). SNAP integration wraps GPT command execution for mission-specific pipelines.
Primary Languages
Python, Shell, Dockerfile, Markdown.
Runtime
Project requires Python >=3.11, <4.
Core Dependencies
matplotlib, scipy, python-dateutil>=2.9.0, six>=1.16.0, geopandas>=1.1.1, shapely, numpy, openpyxl, h5py, numba, jupyter, rasterio==1.4.3, ...
Module Distribution
| Namespace | Module Count |
|---|---|
__init__.py | 1 |
cli | 11 |
processor | 30 |
science | 2 |
sla | 6 |
snapflow | 4 |
utils | 19 |