Epoch {fmtDateTime(os.epoch)} · received {fmtAgo(os.updated_at)} from {titleCase(os.source_id)}. Mean Keplerian elements (SGP4 / TLE convention, TEME frame); perigee and apogee are altitudes above the WGS-84 equatorial radius.
) : (
No orbital element set is available for this object{d.status === 'DECAYED' ? ' — it decayed' + (d.decay_date ? ` on ${fmtDate(d.decay_date)}` : '') + ' and is no longer propagated' : ''}. Catalogue values above (if any) come from the SATCAT record.
)}
Orbital history
{history === null ? (
) : series.length >= 2 ? (
) : (
{series.length === 1 ? '1 daily point on file so far. ' : os ? '' : 'No element sets on file. '}
History accumulates as element sets are ingested (every 2 h); altitude, period and inclination trends appear here once at least two days are available.
)}
);
}
export function MissionSection({ d }: { d: SatelliteDetail }) {
return (
Objects from the same launch{sib.length ? · {fmtInt(sib.length)}{sib.length >= 40 ? '+' : ''} : null}
{shown.length ? (
{shown.map((s) => (
{s.name}
{s.norad_id ?? '—'}
))}
) : (
No other catalogued object is linked to this launch.
)}
{d.cospar_launch_id && sib.length > shown.length && (
All objects from launch {d.cospar_launch_id} →
)}
);
}
export function HistorySection({ d }: { d: SatelliteDetail }) {
return (
{d.history.length ? (
Field
Change
Source
Date
{d.history.map((h, i) => (
{titleCase(h.field)}
{h.old_value ?? '∅'} → {h.new_value ?? '∅'}
{titleCase(h.source_id)}
{fmtDateTime(h.changed_at)}
))}
) : (
No changes recorded since first ingestion on {fmtDateTime(d.first_seen_at)}. Status, orbit class, name and ownership changes are logged here as sources are re-ingested.
)}
);
}
export function RegistrationSection() {
return (
);
}
export function SourcesSection({ d }: { d: SatelliteDetail }) {
const sources = Array.from(new Map(d.sources.map((s) => [s.id, s])).values());
const byField = new Map();
for (const p of d.provenance) byField.set(p.field_name, [...(byField.get(p.field_name) ?? []), p]);
return (
{sources.length ? (
{sources.map((s) => (
{s.name}
{s.official ? 'official' : 'community'}
{s.attribution_text &&
{s.attribution_text}
}
last sync {fmtAgo(s.last_success_at)}
))}
) : (
No source is linked to this record yet — the catalogue row exists but no provenance entry has been written for it.
)}
))}
) : (
No events detected for this object yet. Launches, decays and orbit changes are generated by the derived-analytics connector.
)}
);
}
export function RelatedSection({ d }: { d: SatelliteDetail }) {
return (
{d.related.length ? (