Navigation Models
NavModel is the abstract base for
predicted-scene generators. Each subclass implements three methods:
create_model()— populate the model’s internal state andmetadatadict.to_features()— return a list ofNavFeatureinstances for technique consumption.to_annotations()— return anAnnotationscollection for the summary PNG.
Concrete subclasses self-register via __init_subclass__; abstract
bases set _abstract = True to opt out. The class method
instances_for_obs() is the per-class hook that
build_models_for_obs() iterates.
Registered concrete models, grouped by feature family:
Stars (Stars) —
NavModelStars(catalog-driven; one instance per observation). A simulated-image siblingNavModelStarsSimulatedis reserved without an implementation.Bodies (Bodies) —
NavModelBody(catalog-driven; one instance per body whose bounding box overlaps the extended FOV) andNavModelBodySimulated(simulated-image GUI variant).Rings (Rings) —
NavModelRings(catalog-driven; one instance per planet whose ring system is configured and visible) andNavModelRingsSimulated(simulated-image GUI variant).Titan (Titan) —
NavModelTitan(registered placeholder for atmospheric-body navigation; emits no features). A simulated-image siblingNavModelTitanSimulatedis reserved without an implementation.
Shared annotation helpers live on
NavModelBodyBase (body silhouette
+ label rendering) and
NavModelRingsBase (per-edge
polyline + label rendering).
The API surface is summarised under nav.nav_model.
- Stars
- Bodies
- Body Navigation Model
- Overview
- Theory
- Bounding-box construction
- Anti-aliased silhouette extraction
- Polyline sampling
- Per-vertex position covariance
- Visible-lit and overflow fractions
- Lit-weighted predicted centroid
- Sub-solar direction
- Phase-and-irregularity coupling
- Feature emission gates
- Restrictions and assumptions
- Sources of uncertainty
- Configuration
- Implementation
- Examples
- Simulated Body Navigation Model
- Body Navigation Model
- Rings
- Titan