Navigation Overview
This page sketches the navigation-pipeline architecture and the per-image data flow. The chapters that follow drill into each subsystem.
System architecture
RMS-NAV is organised around six cooperating subsystems:
DataSet— handles image-file access and organisation across mission archives.ObsSnapshotand its per-instrument subclasses — wrap anoopsobservation and supply backplanes, extended-FOV accessors, and per-instrument metadata.NavModel— generates the predicted appearance of one part of the scene (stars, a body, or rings) and emitsNavFeatureinstances ready for technique consumption plusAnnotationsfor the summary image.NavTechnique— consumes feature subsets and produces aNavTechniqueResult(offset, covariance, calibrated confidence, diagnostics).NavOrchestrator— the top-level driver that runs the two-pass pipeline and reconciles per-technique results viaensemble(), returning a singleNavResult.nav.annotation— composes per-NavModelannotations into the summary-PNG overlay.
Data flow
nav_offset(or another CLI driver) constructs aDataSetand yields oneImageFileat a time.The matching
ObsSnapshotInstsubclass reads the file viafrom_file().build_models_for_obs()walks theNavModelregistry and constructs per-image instances applicable to the observation.The
NavOrchestratorbuilds aNavContext, gathers features and per-NavModelannotations, gates features by reliability, runs every feasible prior-free technique (pass 1), ensembles the pass-1 results to derive a prior, runs prior-required techniques against that prior (pass 2), and ensembles the union.build_metadata_dict()projects the resultingNavResultinto a JSON-friendly metadata block.navigate_image_files()writes the metadata JSON and the summary PNG. The PNG’s annotation overlay is composed upstream bycombine()over the per-NavModelannotations the orchestrator collected; the driver composites that overlay onto the contrast-stretched source image and writes the bytes.
The detailed class hierarchy and inheritance graph is at Class Hierarchy.