sar-processor

Status: SRR complete (pre-CDR) Stack: Python · EOPF CPM 2.8.1 · Zarr Reference profile: Sentinel-1 C-SAR

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:

Current code under these paths is scaffold placeholders until WP-5 (post-CDR).

Key technical work

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

Documentation (GitHub Pages)

User documentation

ECSS technical specification & design

ECSS verification, validation & reviews

ECSS management & assurance

← All projects