This repository is a modular, high‑performance Python toolbox for Synthetic Aperture Radar (SAR) imaging.
It extends the MATLAB-based project Time-Domain-Back-Projection-Method by mrzamaniiii, adding:
- Multiple imaging backends (Python, Numba, GPU stub, RDA)
- High‑performance parallel kernels (~9× speedup with Numba)
- Frequency‑domain Range‑Doppler Algorithm (RDA)
- Full test suite (58 tests) + benchmarks
- Deterministic synthetic fixtures
- Modular SAR analysis utilities
- Command-Line Interface & Module Execution
This is now a complete SAR imaging library, not just a port.
| File / Path | Description |
|---|---|
dataset_UAV.mat |
Radar dataset: UAV trajectory, range axis, raw radar returns. |
src/sar_toolbox/__main__.py |
CLI entry point for package execution and quick benchmarking. |
src/sar_toolbox/tdbp.py |
Time‑Domain Back‑Projection with multi‑backend support (python, numba, gpu, rda). |
src/sar_toolbox/rda.py |
Range‑Doppler Algorithm (RDA) — FFT‑based SAR imaging backend. |
src/sar_toolbox/despeckling.py |
Speckle reduction filters (3×3, 5×5, 7×7). |
src/sar_toolbox/corner_reflectors.py |
Corner reflector analysis: azimuth & range resolution. |
src/sar_toolbox/analysis.py |
Bandwidth estimation, trajectory error simulation, frequency analysis. |
tests/ |
Full pytest suite (backend parity, interpolation, CLI, phase correctness, determinism, benchmarks). |
Codes/ |
Original MATLAB reference scripts. |
-
Multi‑backend TDBP
-
Pure Python reference implementation
-
Numba‑accelerated parallel kernel (~9× faster)
-
GPU backend placeholder (CuPy-ready)
-
RDA backend for FFT-based imaging
-
Range-Doppler Algorithm (RDA)
-
Frequency-domain SAR imaging
-
Extremely fast (110–250 µs for typical grids)
-
Perfect for benchmarking and comparison
-
SAR Analysis Tools
-
Bandwidth estimation
-
Range resolution
-
Azimuth resolution
-
Corner reflector patch analysis
-
Trajectory error simulation
-
Image Processing & CLI
-
Speckle reduction filters
-
FFT-based diagnostics
-
Direct terminal execution via
sar-toolboxorpython -m sar_toolbox -
Engineering Practices
-
58 tests
-
77% coverage
-
Benchmarks (pytest‑benchmark)
-
CI-ready with matrix fallback validation
-
Deterministic synthetic fixtures
-
Modular architecture
- Install in editable mode with test dependencies:
pip install -e .[test]- Generate the synthetic test dataset:
python scripts/generate_data.py- Run the full test suite:
pytest- Run benchmarks:
pytest tests/benchmarks -q- Use the Command-Line Interface:
sar-toolbox --test-mode --backend numba --plotAlternatively, execute via module syntax:
python -m sar_toolbox --test-mode --backend python- Or use programmatically:
from sar_toolbox.tdbp import run_tdbp
result = run_tdbp("dataset_UAV.mat", backend="numba")Backends available:
python, numba, gpu, rda