Code Familiarization Plan

This is a study plan for a developer who has just cloned the repository and wants to come up to speed on RMS-NAV in the most efficient order. Each stage lists documentation pages to read and source modules to inspect alongside them. The earlier stages are prerequisites for the later ones; the later stages can be read more selectively once the core pipeline makes sense.

The plan does not explain the code — it sequences it. Read each documentation page first, then look at the corresponding source. Every class, function, and module name below is a hyperlink into the API reference; click through to jump straight to the autodoc page (and from there to the [source] link to the file itself).

Stage 1 — Orientation

Goal: understand what the package does, the repository layout, and the top-level architecture. Skim only — do not try to absorb every detail.

  • README.md — PyPI-facing summary of what rms-nav is and the installation / quick-start commands.

  • Introduction — environment variables, CLI entry points, test / lint / docs commands, CI / release process.

  • Navigation Overview — the six-subsystem architectural sketch and the per-image data flow.

  • Class Hierarchy — the inheritance graph and the shared base classes the rest of the manual assumes.

Stage 2 — Cross-cutting foundations

Goal: understand the shared infrastructure every subsystem depends on (configuration, logging, the universal base class, common helpers).

Stage 3 — Inputs: datasets, observations, features

Goal: understand how an image goes from a file path on disk to an in-memory Observation (from oops) carrying the per-pixel features that the rest of the pipeline consumes.

Stage 4 — First end-to-end pipeline: NavModelBody + BodyLimbNav

Goal: walk one image end-to-end through the simplest possible model / technique pair, plus the minimum slice of orchestrator, annotations, and driver code needed to produce the JSON metadata and summary PNG. Body-limb navigation is the canonical reference distance-transform pipeline and the smallest of the autonomous techniques.

Read in this order:

Model

Technique

Orchestrator (minimum slice)

Output: annotations, metadata, summary PNG, top-level driver

Stage 5 — Orchestrator round-trip: feasibility, confidence, diagnostics, ensemble

Goal: understand how individual technique results are gated, calibrated, classified, and combined into the single per-image answer the orchestrator returns.

Stage 6 — Remaining models and their techniques

Goal: extend the picture from Stage 4 to every other registered model and every other technique. Each subsection pairs a model with the techniques that consume its features, in roughly increasing order of complexity.

Stars (model + star techniques)

Body (additional techniques)

Rings (model + ring techniques)

Titan (model only)

Manual

Stage 7 — Simulated images

Goal: understand the synthetic-image renderer and the simulated-image sibling of each model family. These are used both by nav_create_simulated_image and by tests.

Stage 8 — Calibration and regression

Goal: understand how confidence calibration is anchored to a curated cohort of real images, and how per-instrument camera-rotation correction is calibrated.

  • Image Library — the operator-curated regression cohort (tests/integration/image_library/), sidecar schema, and baseline workflow.

  • Camera-rotation correction — per-instrument camera-rotation correction.

  • tests/integration/ — the integration suite that consumes the image library.

Stage 9 — Downstream products

Goal: understand the products built on top of a navigated image — mosaics / reprojections, per-pixel backplanes, and PDS4 bundles.

Stage 10 — Extending and conventions

Goal: be ready to make changes. Read these once at the end so the conventions land on top of a working mental model of the code.