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

NamespaceModule Count
__init__.py1
cli11
processor30
science2
sla6
snapflow4
utils19