# Deep Space Scientific Cartography — Phase 1

## Scope

This foundation implements the chain:

```text
source registry → physical state → orbital calculation → frame transform
→ projection → scale transform → normalization → quantization → SVG/CSS → PNG
```

Scientific coordinates remain numeric AU/AU-day values. SVG styles never determine body position.

## Reused authoritative foundation

- UTC→TDB: existing `PCSSolarSystemCore`, using NAIF `naif0012.tls` constants and the PCS leap-second table.
- Major-body epoch states: promoted NASA/JPL Horizons DE441 vector cache.
- Planet orbit paths: JPL approximate elements, explicitly distinct from epoch-state vectors.
- Dwarf planets and priority comets: NASA/JPL SBDB elements plus cached Horizons vectors.
- Meteor shower activity/radiants: IMO 2026 calendar with IAU MDC identifiers.

No second application time engine was introduced. The cartography builder is an adapter over the existing state providers.

## Registry inventory

- Solar-system objects: 15 — Sun, eight planets, Ceres, Pluto, Haumea, Makemake, Eris, Moon.
- Comets: 8 — 1P, 2P, 21P, 55P, 67P, 96P, 109P, C/1995 O1.
- Meteor showers: 8 — Perseids, Leonids, Geminids, Quadrantids, Orionids, Eta Aquariids, Draconids, Southern Taurids.

Hale–Bopp uses a small JPL SBDB/Horizons supplemental snapshot. Its long-period value is labeled `ESTIMATED`; it is not silently treated as an ordinary short-period orbit.

## Frames and time

Acceptance epoch: `2026-09-07T00:00:00Z`.

Supported cartography transforms:

- Heliocentric Ecliptic J2000
- Heliocentric Equatorial J2000
- ICRF/J2000 heliocentric axes
- Geocentric Equatorial J2000, requiring an explicit Earth state

Moon states remain Earth-centered and cannot be overlaid on a heliocentric plot without an explicit transform.

## Projection and scale

Implemented projections: XY, XZ, YZ, orthographic 3D→2D, and RA/Dec equirectangular sky projection.

Both physical identity scale and schematic asinh scale are supported. The Halley acceptance chart uses schematic radial scale so Mercury–Jupiter remain legible beside a 35 AU Halley aphelion. Every chart states:

```text
SCHEMATIC SCALE · ASINH RADIAL · NOT TO SCALE
```

The underlying JSON retains unmodified physical AU coordinates.

## Palette and normalization

Supported normalization metadata: linear, log10, square-root, z-score, percentile, physical-range.

Supported palette families: FULL; indexed 256/128/64/32/16/8; grayscale 256/16; binary.

The five acceptance variants are FULL, indexed-256, indexed-16, grayscale-256, and grayscale-16. They share one scientific-geometry SHA-256. Quantization metadata states that scientific data and geometry are unaffected.

## Meteor-shower semantics

The relationship chain is represented as linked registry records:

```text
Meteor shower → parent body → parent orbit
→ annual peak-solar-longitude intersection → observed radiant
```

A machine-readable meteoroid-stream orbit is not available in the deployed source snapshot. `stream_orbit` therefore remains `null` with `NOT_DEPLOYED`; the chart shows only source-supported relationship/intersection bands and never clones the parent comet orbit as a fake stream orbit.

Annual recurrence and enhanced-activity cycles are stored separately.

## Output

`output/phase-1/` contains:

- five Halley orbit-analysis variants, each as SVG, PNG, and JSON;
- Halley/Orionids/Eta Aquariids orbital relationship diagram as SVG, PNG, JSON;
- Halley shower sky-radiant diagram as SVG, PNG, JSON;
- complete normalized registry and acceptance manifest.

## Limitations

- These figures are scientific cartography, not mission-navigation products.
- Horizons VECTORS responses do not contain Cartesian covariance; no uncertainty is invented.
- Typical shower radiant and peak-solar-longitude values are calendar reference values, not time-resolved stream state vectors.
- The first diagram uses a documented schematic projection. Physical-scale rendering is implemented and tested but is not the selected first-acceptance layout.
