Version 1 record
This page describes software that has been retired. It is accurate about Version 1 and is not a description of what runs now — see the current site and the archive.
C-08 Coverage store
Status: built
- Code:
stores/coverage/—layout.mdis the normative convention andvalidate_layout.pyenforces it; the files are written byservices/publisher/and read throughquery/plugins/coverage_catalogue.pyandservices/monitor/src/harness_monitor/coverage.py - Delivered by:
specs/008-query-layer, with the writing half inspecs/009-control-loop - Covered by:
tests/unit/test_coverage_catalogue.py,tests/integration/test_coverage_store_seam.pyandtests/integration/test_new_run_servable.py, which publishes a run and asserts it is servable with no configuration edit - Not present: the run manifest's shape is stated normatively in
layout.mdand enforced by code, but it has no master undercontracts/schemas/as a generated-types source, which is why the shape is written down twice — in the publisher that writes it and the catalogue that reads it.layout.mdrecords this as an outstanding gap
Responsibility: gridded forecast and uncertainty fields.
What it does
It holds model output: gridded forecast fields and the matching uncertainty fields, written as NetCDF following the CF conventions. One model run produces one set of files; the store keeps several runs and knows which is current.
The cataloguing convention
The requirement that shapes this component is that a new model run must become servable without editing collection configuration. The naming and directory convention has to carry enough information — run identifier, valid time, variable — for the query layer to discover a new run rather than be told about it.
This sounds like a filing preference and is actually the difference between a control loop that closes and one that needs a human in it. If publishing a run requires a configuration edit, the sense → decide → act → publish cycle stops at "act" and waits.
Why the output is a port
NetCDF today, Zarr plausibly later. This is one of the four boundaries drogna is willing to call a genuine port, because a second implementation is actually conceivable rather than theoretically conceivable. The bespoke trajectory provider described under the query layer sits behind this same port.
Requirements: FR-21, FR-29, FR-30. Feature: 008.