libera_utils.footprint_matching.sources#

The ancillary readers active in one FMATCH run.

build_sources() instantiates one reader per source the operational mode’s product uses, over the granules staged for it, and returns them keyed by reader registry key. A footprint’s native samples of a source come from that reader’s samples_in(), matched to the footprint time by its TimeMatch policy. No cache is kept here: each reader holds its source once (a static reader its whole indexed body of data, a stepped reader the one hourly step nearest the current footprint, a pass reader the hourly granules within MAX_TIME_OFFSET of the current footprint).

A staged granule that cannot be read raises from the first samples_in call that loads it, and the run stops: a product with a source silently missing would be wrong, and a crash gets noticed.

Functions

build_sources(mode, source_file_paths)

Instantiate the readers active for mode over their staged granules.

require_mode_reader_keys(mode, keys, argument)

Check that keys are exactly the readers active in mode.