sar-processor
Overview
sar-processor is a generic spaceborne SAR ground-segment forward processor: downlinked raw Level-0 SAR instrument source packets → focused L1 SLC → detected/projected L1 GRD (L2 ocean products TBC). The processing chain is sensor-agnostic and driven by a per-sensor profile; the first instantiated profile is a C-band SAR with Sentinel-1 C-SAR as the public reference dataset.
Built on the ESA EOPF Core Python Modules (eopf == 2.8.1): each processing stage is an EOProcessingUnit, products are EOPF EOProduct objects, outputs are cloud-native Zarr. Sibling project of msi-processor, reusing platform machinery (CI, documentation toolchain, package layout, single pipeline driver).
Status: SRR complete (pre-CDR). The tailored ECSS document tree is in place. System and interface requirements are baselined at SRR (SSS, IRD, SDP, SPAP, SRevP, Risk Register, initial SRF). Software requirements, algorithms, and detailed design land at PDR/CDR; processing-stage implementation (WP-5) starts after CDR per the SDP.
Documentation milestones
| Milestone | State | Key artefacts |
|---|---|---|
| SRR | Done | SSS, IRD, SDP, SPAP, SRevP, Risk Register, SRF (initial) |
| PDR | Planned | SRS, ICD (prelim), DPM, ATBD, V&V Plan |
| CDR | Planned | SDD, SUITP, final ICD, traceability matrix |
| QR | Planned | SVR, SUITR, SRN, SUM |
Architecture
System context (IRD §4.1)
sar-processor is a batch component embedded in a larger EO ground segment. External interfaces:
| # | External system | Direction | Exchange |
|---|---|---|---|
| E1 | L0 ingestion / downlink chain | → in | RAW L0 SAR product (SAFE): ISPs + acquisition annotation |
| E2 | Calibration facility / ADF provider | → in | ADF set (AUX_CAL, AUX_INS, orbit, attitude, DEM) |
| E3 | Sensor profile / configuration | → in | Per-sensor profile + run configuration |
| E4 | Processing orchestration / trigger | → in | Job order (triggering payload) |
| E5 | Product store / archive | ← out | L1 SLC / L1 GRD / GTC as Zarr EOProduct |
| E6 | EOPF CPM framework + storage | host | Runtime: EOProcessingUnit / EOZarrStore API |
flowchart LR
E1[E1 L0 downlink<br/>SAFE: ISPs + annotation] -->|RAW L0 product| SAR[sar-processor<br/>chain of EOPF CPM PUs]
E2[E2 Calibration facility / ADF<br/>AUX_CAL/INS/PP1/orbit/attitude/DEM] -->|ADF set by URI| SAR
E3[E3 Sensor profile / config] -->|profile id + version| SAR
E4[E4 Orchestration / trigger] -->|triggering payload JSON| SAR
SAR -->|SLC / GRD / GTC Zarr EOProduct| E5[E5 Product store / archive]
SAR -. runs within .- E6[E6 EOPF CPM + EOZarrStore]
Software layers (SDD §4.1)
Three layers mirror the msi-processor precedent and the sar_processor/ package skeleton:
- C-COMMON (
sar_processor/common/) — platform layer: CPM-free shared types and QA metrics. - C-PU-* (
sar_processor/computing/<stage>/) — one component per processing stage; each stage =core.py(pure numpy algorithm) +unit.py(EOPFEOProcessingUnitwrapper). - C-SENSORS (
sar_processor/sensors/) — sensor adaptation: per-sensor profile loading; no instrument constants hardcoded in code.
Current code under these paths is scaffold placeholders until WP-5 (post-CDR).
Key technical work
- SRR-baselined ECSS documents — SSS, IRD, SDP, SPAP, SRevP, Risk Register, initial SRF in
compliance/drd/. - Package layout —
sar_processor/common/,computing/,sensors/,exceptions/(target layout; scaffold until CDR). -
Pipeline driver — scripts/run_pipeline.pywith mode-only CLI:nominalcalibration. - CI & docs — GitHub Actions on push/PR; GitHub Pages docs at astrocan17.github.io/sar-processor.
- Codespaces — public code + private
ipf-datadataset (datasets-sar-v1);make data-syncfor local refresh.
Planned processing chain
| Stage | Output | Notes |
|---|---|---|
| L0 decode | Parsed SAR packets | Sensor-profile dependent |
| Range processing | Range-compressed data | Reference: Sentinel-1 IW/EW |
| Azimuth focusing | L1 SLC | TOPSAR / ScanSAR modes TBC |
| GRD generation | L1 GRD | Multilook + ground projection |
| L2 ocean | TBC | Wind / wave products at PDR |
Links
Documentation (GitHub Pages)
User documentation
- Processing pipeline
- Software installation manual
- Software user manual / Guidelines
- API Reference
- Software Release Note (SRN)
- Contributing
- License
ECSS technical specification & design
- Software System Specification (SSS)
- Software Interface Requirements Document (IRD)
- Software Requirements Specification (SRS)
- Algorithm Theoretical Basis Document (ATBD)
- Software Design Document (SDD)
- Design Justification File (DJF)
- Data Processing Model (DPM)
- Interface Control Document (ICD)
- Configuration Item Data List (CIDL)
- Software Configuration File (SCF)
- Software Reuse File (SRF)
ECSS verification, validation & reviews
- Software Verification & Validation Plan (V&V Plan)
- Software Unit & Integration Test Plan (SUITP)
- Software Verification Report (SVR)
- Software Unit & Integration Test Report (SUITR)
- Live CI test report (SUITR annex)
- Traceability Matrix
- Qualification Review (QR) Report