Repository Layout¶
RSRF separates code, curated data, source artifacts, and planning documents so users can find the right layer quickly.
Top-level structure¶
.
|-- data/
|-- docs/
|-- plans/
|-- scripts/
|-- sources/
|-- src/rsrf/
`-- tests/
What lives where¶
data/canonical/: canonical sampled curves and band specs written by ingestdata/realized/: optional derived sampled curves for metadata-only sourcesdata/registry/: parquet registries for sensors, bands, sources, band specs, and realizationsdocs/: MkDocs source for the user-facing documentation siteplans/: implementation history and architecture planningscripts/ingest/: operator entrypoints for source ingestscripts/validate/: operator entrypoints for validation exports and fixture refreshsources/raw/: archived upstream source filessources/extracted/: reviewed extraction intermediates and trusted overlayssources/manifests/official/: checked-in source manifests used for ingestsources/manifests/planning/: backlog catalogs that register planned sensorssources/manifests/templates/: starter manifests for new sourcessrc/rsrf/commands/: CLI parser, dispatch, and rendering helperssrc/rsrf/parsers/: sensor-family-specific parser implementationstests/unit/: unit coverage for APIs, parsers, CLI, and registry behaviortests/regression/: validation-report snapshot regression tests
Package map¶
Within src/rsrf/, the package is organized by responsibility:
api.py: read-side access to canonical response definitionscommands/: command-line interface implementationconvolve.py,resample.py,realize.py: response processing helpersingest.py: artifact writing and registry updatesmanifests.py: manifest lookup and path resolutionmodels.py: typed data structures and manifest schemaplanning.py: planning-catalog helpersqa.py,plotting.py: validation logic and export plotsregistry.py,io.py: repository layout and parquet/JSON IO helpers
Manifest resolution¶
Manifest-aware commands do not require long paths. When you pass a filename like rsrf_source_manifest_sentinel2c_v2.json, RSRF resolves it against sources/manifests/official/, then planning/, then templates/.