Bodies

Body navigation models render the predicted appearance of a planetary body and emit one NavFeature per surviving feature type. Concrete subclasses derive from NavModelBodyBase, which carries shared annotation helpers (limb-mask extraction and label placement).

Registered concrete subclasses:

Per-body shape, albedo, and SPK-residual quantities consumed by the covariance and emission gates live in nav.nav_model.body_shape. The runtime lookup shape_for_body() overlays operator YAML (config_220_body_shape.yaml) onto the hard-coded BODY_SHAPE_TABLE, falling back to DEFAULT_BODY_SHAPE for entirely unknown bodies.