Software Interface Requirements Document (IRD)#
Document |
Software Interface Requirements Document (IRD) |
DRD |
ECSS-E-ST-40C Rev.1, Annex C |
Container |
Requirements Baseline (RB) |
Project |
|
Configuration item |
|
Software criticality |
Category C (ECSS-Q-ST-80C Rev.2 / ECSS-E-ST-40C Annex R) |
Baselined at |
SRR |
Status |
Draft for SRR |
This IRD is part of the requirements baseline of the
msi-processorproject and, together with the SSS, is a primary input for the System Requirements Review (SRR). It follows the ECSS-E-ST-40C Rev.1 Annex C section structure and the heading style of the SDP. It states the interface requirements imposed on the processor at its external boundary — the downlinked RAW (L0) input, the instrument calibration auxiliary data (ADF), the L1/L2 Zarr products, the EOPF CPM framework, the triggering payload, and the sensor-profile/configuration interface. The concrete interface definitions (field-level schemas, encodings, product structure, chunking, payload syntax) are not fixed here: they are produced in the ICD (Annex E) at PDR/CDR. The footprint is tailored to a Category C, single-developer ground-segment processor.
<1> Introduction#
The msi-processor is an operational ground-segment data processor that transforms downlinked
RAW (Level-0) multispectral imager (MSI) data into calibrated, geophysically usable products
up to Level 2 (radiometric correction → geometric correction → atmospheric correction). It is
a generic high-resolution pushbroom MSI processor: the chain is sensor-agnostic and driven by
a per-sensor configuration/profile, the first instantiated profile being the project owner’s own
sensor. The processor is built on the ESA Earth Observation Processing Framework (EOPF): each
stage is an EOPF CPM EOProcessingUnit, products are EOProduct objects, and outputs are
written as cloud-native Zarr via the EOPF EOZarrStore.
The purpose of this document is to specify the interfaces between msi-processor and the
external systems and data it exchanges with, as a set of uniquely identified, verifiable
interface requirements. It is the highest-level interface description of the software and,
with the SSS, provides criteria used to validate and accept the software (per AD-1 §5.2.4.3 and
the IRD DRD, Annex C).
The reason prompting its preparation is the SRR baseline of the requirements: before the software requirements (SRS, Annex D) and the detailed interface control (ICD, Annex E) are written, the external interface boundary of the processor must be fixed at requirements level so that the requirements, data processing model and design downstream are anchored to a stable interface envelope. This IRD is produced as a standalone document (the case for which the present DRD applies, per Annex C.1.2).
<2> Applicable and reference documents#
Applicable documents
Ref |
Document |
|---|---|
AD-1 |
ECSS-E-ST-40C Rev.1 (30 April 2025) — Space engineering — Software |
AD-2 |
ECSS-Q-ST-80C Rev.2 (30 April 2025) — Space product assurance — Software product assurance |
AD-3 |
ECSS-E-ST-10-06C — Technical requirements specification (IRD context) |
AD-4 |
ECSS-M-ST-40C — Configuration and information management |
Reference documents
Ref |
Document |
|---|---|
RD-1 |
|
RD-2 |
|
RD-3 |
|
RD-4 |
EOPF Core Python Modules (CPM) documentation ( |
RD-5 |
EOPF Product Structure and Format Definition (PSFD) — Zarr product structure reference |
RD-6 |
EOPF Software Development Environment (SDE) — User Manual & Guidelines |
RD-7 |
Prior work — multispectral pushbroom preprocessing pipeline (algorithm/calibration heritage; see SRF) |
<3> Terms, definitions and abbreviated terms#
Terms and definitions follow AD-1, AD-2 and the EOPF SDE glossary. Abbreviations used in this document and not already defined in the applicable/reference documentation:
Abbreviation |
Definition |
|---|---|
ADF |
Auxiliary Data File (instrument calibration / auxiliary input data) |
BOA / TOA |
Bottom / Top Of Atmosphere |
CPM |
(EOPF) Core Python Modules |
CRS |
Coordinate Reference System |
DEM |
Digital Elevation Model |
ICD / IRD |
Interface Control Document / Interface Requirements Document |
L0 / L1 / L2 |
Processing levels: raw, calibrated/geolocated, geophysical |
MSI |
Multispectral Imager |
NUC |
Non-Uniformity Correction |
PRNU |
Photo-Response Non-Uniformity (flat-field) |
PSFD |
(EOPF) Product Structure and Format Definition |
PU |
(EOPF CPM) Processing Unit ( |
RB |
Requirements Baseline |
SDE |
(EOPF) Software Development Environment |
URI |
Uniform Resource Identifier (product/ADF locator) |
(ECSS review acronyms SRR/PDR/CDR/QR/AR and DRD acronyms per AD-1 and RD-1.)
<4> General description#
<4.1> Product perspective#
msi-processor is a batch, non-interactive component embedded in a larger EO ground segment. Its
external interfaces to other systems are:
# |
External system / actor |
Direction |
Exchange |
|---|---|---|---|
E1 |
L0 ingestion / downlink chain |
→ in |
Downlinked RAW (Level-0) MSI product: instrument image source data + acquisition/ancillary telemetry |
E2 |
Instrument calibration facility / ADF provider |
→ in |
Calibration auxiliary data (ADF): radiometric gain/offset, dark, flat-field/PRNU, and profile-dependent refs (bad-pixel map, spectral/geometric model, DEM/GCP, atmospheric aux) |
E3 |
Sensor profile / configuration provider |
→ in |
Per-sensor profile + run configuration (identified and versioned) |
E4 |
Processing orchestration / trigger |
→ in |
Triggering payload (job order) invoking a run / sub-chain |
E5 |
Product store / archive / dissemination |
← out |
L1/L2 products as cloud-native Zarr |
E6 |
EOPF CPM framework + storage backend |
host |
Runtime within which the processor executes; |
flowchart LR
E1[E1 L0 ingestion / downlink] -->|RAW L0 product| MSI[msi-processor<br/>chain of EOPF CPM PUs]
E2[E2 Calibration facility] -->|ADF: gain/offset, dark, flat-field, ...| MSI
E3[E3 Sensor profile / config] -->|profile id + version| MSI
E4[E4 Orchestration / trigger] -->|triggering payload JSON| MSI
MSI -->|L1/L2 Zarr EOProduct| E5[E5 Product store / archive]
MSI -. runs within .- E6[E6 EOPF CPM + EOZarrStore]
<4.2> General constraints#
Items that limit the supplier’s options for designing and developing the interfaces:
EOPF CPM API is fixed. Stage interfaces must be
EOProcessingUnits; products must beEOProducts; persistence/access must useEOZarrStore. The processor may not define its own product/IO format outside the CPM abstractions.Framework version is pinned to
eopf == 2.8.1(matching the SDEcpm-build-environmentimage). Interface compatibility is bound to that CPM API surface; the version is not upgraded.Output format is mandated as cloud-native Zarr (per EOPF / PSFD); other output product formats are out of scope.
Generic / sensor-agnostic design. All sensor-specific interface content must be supplied through the sensor profile (§<5.4>); hardcoding any sensor’s band set, detector geometry or calibration model into the interfaces is not permitted.
Data policy. Source code is public; RAW (L0) inputs and instrument calibration ADFs are private — they are never committed and never used in public CI. Interfaces must therefore reference these inputs at runtime by identifier/URI, not embed them.
CI environment. The CI runner is a shell executor (no container runtime, no Dask gateway, no S3). Interface paths that require those services are non-blocking in CI and must have a local-filesystem equivalent for verification.
<4.3> Operational environment#
a. The operational context is summarised by the context diagram in §<4.1>. msi-processor runs
as one or more EOProcessingUnits triggered by the orchestration layer (E4), reading the L0
product (E1) and the ADF set (E2) selected via the sensor profile (E3), and writing Zarr
products to the store (E5), all within the EOPF CPM runtime (E6).
b. Nature of the exchanges with external systems:
File/object based for data products and ADFs — Zarr stores and ADF files referenced by URI, on a POSIX filesystem or object storage, accessed through
EOZarrStore/ the EOPF store mapper.Structured payload (JSON) for triggering — the job order declaring inputs, ADFs, output target, profile and parameters.
Process status / logs — completion status, structured diagnostics and quality flags surfaced to the orchestration layer.
c. Activities supported by external systems (parent ground segment): E1 produces and delivers
the L0 product; E2 produces and maintains the calibration ADFs; E4 schedules and triggers
processing; E5 stores and disseminates the L1/L2 products. msi-processor consumes E1–E4 and
feeds E5.
d. References to the interface control documents. The concrete definition of every interface in §<5> (product structure, group/variable tree, band naming, dtypes, chunking, CRS encoding, ADF schemas, triggering-payload syntax, profile schema) is provided in the ICD (RD-3, ECSS-E-ST-40C Annex E), baselined at PDR (start) and CDR (final), with the EOPF PSFD (RD-5) as the normative product-structure reference. This IRD states the requirements; the ICD states the control.
<4.4> Assumptions and dependencies#
Assumptions: the algorithm and calibration mathematical basis is available from prior work (RD-7, see SRF); the owner’s RAW data and the corresponding calibration ADFs (gain/offset, dark, flat-field) are available for local numerical verification; the orchestration layer can supply a triggering payload in the CPM form.
Dependencies: EOPF CPM (
eopf == 2.8.1) and the SDE build image; the EOPF Zarr store backend (POSIX and, where available, object storage); availability and validity metadata of the calibration ADFs and the sensor profile.Further project-level assumptions/dependencies/constraints are listed in the SDP (RD-1 §<4.3>) and are not repeated here.
<5> Specific requirements#
<5.1> General#
Each interface requirement is uniquely identified by an identifier of the form REQ-IF-*.
Requirements are stated here (Statement + Rationale); the validation method for each is given
in §<6>. Concrete, field-level interface definitions are deferred to the ICD (RD-3) per §<4.3>d;
where this document writes “(ICD)” it means the detail is controlled there.
<5.2> Capabilities requirements#
External interface requirements specifying interface behaviour and associated performances.
REQ-IF-CAP-01 — Staged, decoupled product interfaces with breakpoints#
Statement: The processor shall expose the processing chain as a sequence of stages (decode/L0→L1 radiometric → L1 geometric → L2 atmospheric) in which each stage boundary is a defined product interface: a stage shall consume a defined set of input product(s), ADF(s) and parameters and produce a defined output product. The processor shall support starting and stopping at these boundaries (breakpoints), i.e. running a sub-chain from/to a given level.
Rationale: Stage decoupling is the EOPF CPM design model and is required for incremental development, independent verification of each stage against its requirement, and reprocessing from intermediate levels.
REQ-IF-CAP-02 — Chunked / lazy access and processing granularity#
Statement: The product interfaces shall support larger-than-memory products through chunked, lazy read and write (Zarr chunking); the processor shall not require a whole product to be resident in memory. The interface shall operate on the sensor-defined acquisition granularity (e.g. granule/tile/scene as set by the sensor profile, §<5.4>).
Rationale: High-resolution MSI scenes exceed memory; cloud-native Zarr + chunked access is the EOPF performance model and lets downstream consumers read partial products. Throughput and exact chunk sizes are profile-/deployment-dependent and refined in the ICD/DPM.
REQ-IF-CAP-03 — Metadata and provenance propagation across interfaces#
Statement: Every output product interface shall carry the processing metadata needed for traceability: the input product identifier(s), the ADF identifier(s) and version(s), the sensor profile identifier and version, the processor/baseline version, the processing parameters and the processing timestamp.
Rationale: Traceability of a product to exactly the inputs, calibration and configuration used is required by the ECSS life cycle and by the data policy (provenance without exposing private calibration values, see REQ-IF-SEC-02).
REQ-IF-CAP-04 — Reproducible interface behaviour#
Statement: Given identical inputs, ADF set, sensor profile and processor version, the output product interface shall be reproducible (bit-identical where the algorithm is deterministic; otherwise within a documented numerical tolerance).
Rationale: Reproducibility is a stated project priority (RD-1 §<4.1>) and the basis for regression verification of the interfaces.
REQ-IF-CAP-05 — Completion status and structured diagnostics#
Statement: The processor shall expose, at its external boundary, a completion status (success/failure) and structured diagnostics (errors, warnings and per-product quality flags) consumable by the orchestration layer.
Rationale: The orchestration layer (E4) needs an unambiguous, machine-readable run outcome to drive scheduling, retries and quality control.
<5.3> System interface requirements#
Interface requirements imposed on the system, organised by the Annex C categories.
<5.3.1> System-level data interfaces#
Input — downlinked RAW (Level-0) MSI data
REQ-IF-IN-L0-01 — L0 input product interface#
Statement: The processor shall ingest downlinked RAW (Level-0) MSI data as its primary input through a defined input product interface. The L0 interface shall provide at least: the instrument image source data (per spectral band and per detector/line samples) and the associated acquisition/ancillary telemetry required to drive the chain (timing, instrument mode and configuration, and orbit/attitude ancillary needed by the geometric stage). The concrete encoding/packetisation is defined in the ICD.
Rationale: L0 is the entry point of the chain; the radiometric, geometric and atmospheric stages all derive from it and from the telemetry it carries.
REQ-IF-IN-L0-02 — L0 identification and selection metadata#
Statement: Each L0 input shall be uniquely identified and shall carry (or be accompanied by) the metadata required to select the applicable sensor profile and ADF set — at least the instrument/sensor identifier, the acquisition time and the instrument mode.
Rationale: The generic chain must resolve the correct profile (§<5.4>) and the validity-matching ADFs (REQ-IF-IN-ADF-02) from the L0 itself, without operator guesswork.
REQ-IF-IN-L0-03 — L0 immutability#
Statement: The L0 input interface shall be read-only to the processor; the processor shall not modify its L0 input.
Rationale: The L0 archive is authoritative and shared; reprocessing must always start from an unaltered input.
Input — instrument calibration auxiliary data (ADF)
REQ-IF-IN-ADF-01 — Calibration ADF input interface#
Statement: The processor shall ingest the instrument calibration auxiliary data as Auxiliary Data Files (ADF) through a defined auxiliary input interface. The ADF interface shall provide at least the radiometric gain and offset (absolute/relative radiometric calibration), the dark-signal / dark-current reference, and the flat-field / PRNU non-uniformity reference. It shall additionally support, as selected by the sensor profile: defective/bad-pixel map, spectral calibration, geometric/viewing-model and DEM/GCP references (geometric stage), and atmospheric/auxiliary meteorological data (L2 stage). Concrete ADF schemas are defined in the ICD.
Rationale: Gain/offset, dark and flat-field are the minimum calibration inputs of the radiometric (NUC) stage; the additional ADFs feed the geometric and atmospheric stages of the full L0→L2 chain.
REQ-IF-IN-ADF-02 — ADF identification, versioning and validity#
Statement: Each ADF shall be uniquely identified and versioned, and the ADF interface shall expose its validity (applicable sensor/profile, applicability time range, version) so the processor can select the correct ADF for a given L0 input.
Rationale: Calibration evolves over the instrument’s life; selecting the ADF valid for the acquisition is required for radiometric correctness and for provenance (REQ-IF-CAP-03).
REQ-IF-IN-ADF-03 — Runtime-resolved, private ADF references#
Statement: The ADF interface shall reference calibration data by identifier/URI resolved at run time; ADF content shall not be embedded in the source code or committed to the repository, and shall not be required by public CI.
Rationale: Calibration data are private per the data policy (§<4.2>); the interface must keep them external to the public code base.
REQ-IF-IN-ADF-04 — ADF immutability#
Statement: ADFs shall be read-only to the processor.
Rationale: Calibration references are authoritative inputs maintained by E2, not processor outputs.
Output — L1/L2 products
REQ-IF-OUT-01 — Output product interface as cloud-native Zarr#
Statement: The processor shall produce its output products — L1 (radiometrically and geometrically corrected) and L2 (atmospherically corrected / geophysical) — through a defined output product interface written as cloud-native Zarr via the EOPF
EOZarrStore.Rationale: Zarr output via the EOPF store is mandated by the framework (§<4.2>) and is the delivery format consumed by E5.
REQ-IF-OUT-02 — Self-describing output EOProduct#
Statement: Each output product shall be a self-describing
EOProductexposing, through the output interface: the measurement band variables, per-pixel quality/mask layers, geolocation / geo-referencing information, and the product + processing metadata (provenance per REQ-IF-CAP-03). The concrete product structure (group/variable tree, band naming, dtypes, chunking, CRS encoding) is defined in the ICD with the EOPF PSFD as the normative reference.Rationale: Downstream systems must interpret the product without out-of-band knowledge; self-description is the EOPF product principle.
REQ-IF-OUT-03 — Output storage backends and chunked access#
Statement: The output Zarr interface shall be writable to the supported storage backends — POSIX filesystem and, where available, object storage (S3-compatible) — through the EOPF store abstraction, and shall be chunked to support partial/lazy reads by downstream consumers.
Rationale: Operational deployment uses object storage while local verification uses the filesystem; both must be served by the same interface (with the CI constraint of §<4.2>).
REQ-IF-OUT-04 — Output identification and versioning#
Statement: Each output product shall carry a unique product identifier and the processing baseline/version, and shall be linkable back to the inputs, ADFs and profile that produced it.
Rationale: Product identity and baseline are required for catalogue management, reprocessing and traceability.
<5.3.2> Software interfaces#
REQ-IF-SW-01 — Stages as EOPF CPM EOProcessingUnits#
Statement: Each processing stage shall be exposed as an EOPF CPM
EOProcessingUnitconforming to the CPM processing-unit interface, declaring its mandatory input products, ADFs, output products and parameters in the CPM computing-model description (JSON).Rationale: The
EOProcessingUnitcontract is the framework’s software interface and the basis for orchestration, triggering and breakpoints (REQ-IF-CAP-01, REQ-IF-COM-01).
REQ-IF-SW-02 — EOProduct exchange and EOZarrStore persistence#
Statement: Products shall be exchanged across the software interface as EOPF
EOProductobjects, and product persistence/access shall use the EOPFEOZarrStore. The processor shall not implement product I/O outside these CPM abstractions.Rationale: Uniform product handling and storage access via the CPM is mandated (§<4.2>) and guarantees interoperability with the rest of the EOPF ecosystem.
REQ-IF-SW-03 — Framework version binding#
Statement: The software interfaces shall be compatible with the pinned framework
eopf == 2.8.1(the CPM API surface provided by the SDEcpm-build-environment). Interface compatibility is bound to that version.Rationale: The pinned CPM version defines the available API; a change would desynchronise the build environment and break the interfaces (RD-1 §<4.3>).
REQ-IF-SW-04 — Testable algorithmic core behind the PU wrapper#
Statement: The pure algorithmic core of each stage shall be callable independently of the CPM wrapper through a plain function/class interface, with the
EOProcessingUnitacting as a thin adapter over it.Rationale: A framework-independent core interface enables deterministic unit testing and numerical verification of the algorithms without the full CPM runtime (RD-1 §<5.1>).
<5.3.3> Communication interfaces#
REQ-IF-COM-01 — Triggering payload (job order) interface#
Statement: The processor shall be invocable through the EOPF CPM triggering mechanism via a triggering payload (JSON job order) that declares, for a run: the input product(s), the ADF set, the output target/store, the sensor profile/configuration, and the processing parameters/breakpoints. The concrete payload schema is defined in the ICD.
Rationale: The triggering payload is the control interface between the orchestration layer (E4) and the processor and the single place where a run is fully specified.
REQ-IF-COM-02 — URI-referenced, location-transparent I/O#
Statement: The triggering and product interfaces shall reference input products, ADFs and output targets by URI, supporting both local (filesystem) and remote (object-store) locations, resolved through the EOPF store/mapper at run time.
Rationale: Operational runs use remote stores; verification uses local paths; the interface must be location-transparent.
REQ-IF-COM-03 — Local-filesystem fallback for constrained environments#
Statement: The communication/I/O interfaces shall provide a local-filesystem path that does not require a container runtime, Dask gateway or S3, so that a run can be triggered and verified on the CI shell runner.
Rationale: The CI runner lacks those services (§<4.2>); a degraded local path is needed for non-blocking verification until a Kubernetes runner is available.
<5.3.4> Software-hardware and hardware interfaces#
REQ-IF-HW-01 — No direct hardware interface#
Statement: The processor shall have no direct hardware interface; it shall access compute and storage resources only through the host operating system and the EOPF store abstraction.
Rationale:
msi-processoris application-level ground-segment software; dedicated software-hardware and hardware interfaces are not applicable (Category C tailoring). Stated explicitly to close the Annex C system-interface categories.
<5.3.5> Human-machine interface (HMI)#
REQ-IF-HMI-01 — Non-interactive invocation interface#
Statement: The processor shall provide a non-interactive command-line / programmatic invocation interface; it shall not require a graphical user interface. Operator interaction is limited to supplying the triggering payload and consuming logs and exit status.
Rationale: A batch ground-segment processor is driven by orchestration, not by an interactive UI; this keeps the HMI footprint proportionate to a Category C processor.
<5.3.6> Security aspects of the external interfaces#
REQ-IF-SEC-01 — Input identity and integrity#
Statement: The interfaces shall allow verification that the L0 input, ADFs and sensor profile used in a run are exactly those identified (by identifier/version), and the processor shall reject or flag inputs whose validity does not match the selected profile/acquisition.
Rationale: Product correctness and traceability depend on using the right, unaltered inputs; mismatched calibration must not silently produce a product.
REQ-IF-SEC-02 — Confidentiality of private inputs (data policy)#
Statement: RAW (L0) inputs and instrument calibration ADFs are private: the interfaces shall reference them at run time only and shall never persist them into the public source repository or public CI artefacts. Output products shall not embed private calibration coefficients beyond the identifiers/versions required for provenance (REQ-IF-CAP-03).
Rationale: Enforces the project data policy (§<4.2>) at the interface boundary.
REQ-IF-SEC-03 — Least-privilege access#
Statement: The processor shall require only read access to its inputs/ADFs/profile and write access to the designated output store; it shall require no other external access.
Rationale: Minimising the access surface limits the impact of misconfiguration and is consistent with the immutability requirements (REQ-IF-IN-L0-03, REQ-IF-IN-ADF-04).
<5.4> Adaptation / missionization requirements#
External data that varies according to operational needs and sensor/site-dependent data — the sensor-profile / configuration interface.
REQ-IF-AD-01 — Sensor-agnostic chain driven by a profile interface#
Statement: The processing chain shall be sensor-agnostic and parametrised through a sensor profile / configuration interface. All sensor-specific data — detector geometry, number of detectors and spectral bands, spectral band definitions, nominal radiometric model, default ADF bindings, and per-stage processing options/thresholds — shall be supplied via the profile and shall not be hardcoded.
Rationale: A single generic processor must serve multiple sensors; externalising all sensor-specific content to the profile is the core adaptation mechanism (RD-1 §<1>, §<5.3>).
REQ-IF-AD-02 — Profile identification, versioning and selection#
Statement: Each sensor profile shall be uniquely identified and versioned and shall be selectable per run via the triggering payload (REQ-IF-COM-01). The first profile instantiated is the project owner’s sensor.
Rationale: Reproducibility and traceability require knowing exactly which profile version produced a product (REQ-IF-CAP-03); per-run selection enables multi-sensor operation.
REQ-IF-AD-03 — Externalised operations-/site-dependent settings#
Statement: The profile/configuration interface shall externalise operations- and site-dependent settings — output storage target and chunking, processing baseline selection, optional-stage enable/disable, breakpoints, and atmospheric/auxiliary source selection — so that the same software runs across operational contexts without code change.
Rationale: Portability across deployments (local verification vs operational) must be a configuration concern, not a code concern (RD-1 §<4.1>).
REQ-IF-AD-04 — Profile validation at load#
Statement: The profile/configuration interface shall be validated on load; an incomplete or invalid profile shall be rejected with a clear diagnostic. The concrete profile schema is defined in the ICD.
Rationale: Failing fast on a malformed profile prevents silently producing an incorrectly parametrised product.
<6> Validation requirements#
a. The interface requirements in §<5> are validated to demonstrate that the software interface requirements are met. At SRR the interfaces are validated primarily by inspection of this IRD and review of the design/ICD; the data interfaces become test-validatable once the ICD (RD-3) is baselined (PDR/CDR) and sample products/ADFs are available for local numerical verification (per the data policy). Validation methods: T Test, A Analysis, I Inspection, R Review of design, D Demonstration.
b. The validation method applicable to each requirement (requirements-to-validation-method correlation table):
Requirement |
Method |
Means (and milestone) |
|---|---|---|
REQ-IF-CAP-01 |
T / R |
Sub-chain run from/to a breakpoint; review of CPM stage decomposition (CDR) |
REQ-IF-CAP-02 |
T / A |
Chunked read/write on a larger-than-memory product; memory-footprint analysis (CDR) |
REQ-IF-CAP-03 |
I / T |
Inspect provenance metadata fields against ICD; assert presence in output (CDR) |
REQ-IF-CAP-04 |
T |
Re-run with identical inputs; compare output within tolerance (CDR) |
REQ-IF-CAP-05 |
T |
Assert completion status + diagnostics/quality flags on success and forced failure |
REQ-IF-IN-L0-01 |
I / T |
Inspect L0 interface vs ICD; ingest a sample L0 (local) |
REQ-IF-IN-L0-02 |
I / T |
Inspect required selection metadata; resolve profile/ADF from a sample L0 |
REQ-IF-IN-L0-03 |
A / I |
Static analysis / inspection: no write path to L0 input |
REQ-IF-IN-ADF-01 |
I / T |
Inspect ADF interface vs ICD; load gain/offset, dark, flat-field (local) |
REQ-IF-IN-ADF-02 |
I / T |
Inspect ADF id/version/validity; select valid ADF for a given L0 |
REQ-IF-IN-ADF-03 |
I / A |
Repository/CI inspection: no ADF content committed; runtime-URI resolution |
REQ-IF-IN-ADF-04 |
A / I |
Static analysis / inspection: no write path to ADFs |
REQ-IF-OUT-01 |
T / I |
Produce a Zarr |
REQ-IF-OUT-02 |
I / T |
Inspect product structure vs ICD/PSFD; assert bands, masks, geo-ref, metadata |
REQ-IF-OUT-03 |
T |
Write to POSIX (CI) and object store (when available); partial read |
REQ-IF-OUT-04 |
I / T |
Inspect product id + baseline + input/ADF/profile links |
REQ-IF-SW-01 |
R / I |
Review CPM computing-model JSON (declared inputs/ADFs/outputs/params) |
REQ-IF-SW-02 |
R / T |
Review I/O uses |
REQ-IF-SW-03 |
I |
Inspect pinned |
REQ-IF-SW-04 |
T |
Unit-test the algorithmic core without the CPM runtime |
REQ-IF-COM-01 |
I / T |
Inspect payload vs ICD; trigger a run from a sample payload |
REQ-IF-COM-02 |
T |
Trigger with local and remote (when available) URIs |
REQ-IF-COM-03 |
T |
Trigger + verify on the CI shell runner via local-filesystem path |
REQ-IF-HW-01 |
I |
Inspection — confirm no direct hardware interface (see §<6>c) |
REQ-IF-HMI-01 |
T / I |
Invoke via CLI/programmatic entry point; confirm no GUI dependency |
REQ-IF-SEC-01 |
T |
Run with mismatched ADF/profile validity → reject/flag |
REQ-IF-SEC-02 |
I / A |
Repository/CI scan: no private inputs persisted; output carries only provenance ids |
REQ-IF-SEC-03 |
A / I |
Inspect required access modes (read inputs, write output store only) |
REQ-IF-AD-01 |
R / T |
Review profile externalises sensor-specific data; run a second (synthetic) profile |
REQ-IF-AD-02 |
I / T |
Inspect profile id/version; select profile via payload |
REQ-IF-AD-03 |
I / T |
Inspect externalised settings; change a setting without code change |
REQ-IF-AD-04 |
T |
Load an invalid/incomplete profile → rejected with diagnostic |
c. Requirements not validated against the requirements baseline. REQ-IF-HW-01 is a
not-applicable statement (no direct hardware interface) and is closed by inspection rather than
by an active validation activity. REQ-IF-COM-03 is a constraint-derived enabling requirement
for the constrained CI environment; it is verified by demonstration on the shell runner but is
not part of the operational acceptance criteria. The detailed requirement-to-design/ICD
traceability is maintained in the project traceability matrix (compliance/traceability/).
NOTE — The correlation table above is the requirements-to-validation-method matrix required by the IRD DRD. As the project evolves it is split, per project needs, into validation requirements (V&V plan,
compliance/drd/vv-plan.md) and acceptance requirements (SRelD/AR).
End of IRD. Authored per ECSS-E-ST-40C Rev.1 Annex C. Concrete interface definitions are controlled in the ICD (Annex E) at PDR/CDR.