GODSIGH/js/ssdata.js
type-two 7ccb2214f9 feat: Wave 6 OSINT4ALL sweep — TfL JamCams, InciWeb incidents, Radio Garden
Three new layers from the OSINT4ALL directory triage:

- jamcams (registry): ~800 live London traffic cameras via TfL open API
  (CORS-open, keyless). Click a cam dot -> live snapshot in the InfoBox,
  5-min cache-busted refresh. New collapsed 'Regional - London' category.
- inciweb (registry): named US wildfire incidents from InciWeb RSS. New
  spec.parse hook in the geojson-layer factory lets XML feeds supply their
  own parser; coordinates regex'd out of DMS text in <description>.
- radio (bespoke): ~12k live radio stations from Radio Garden pinned to
  their cities (PointPrimitiveCollection). Click -> station list + live
  audio player (audio streams direct; JSON via new allowlisted serve.py
  proxy/rg/ with 12h/1h caches, SSRF-tested). Keeps playing while you pan.

Deploy note: prod nginx needs a location for /godsigh/proxy/rg/ before
the radio layer works live (mirror of serve.py RG_PATH_RE allowlist).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 13:57:26 +10:00

217 lines
10 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Static data for Solar System mode: infographic facts per body (no Earth — that's
// the OSINT globe) and a curated set of real planetary missions with date-accurate
// launch / flyby / arrival waypoints (fed through the live ephemeris to draw
// schematic heliocentric transfer arcs, including gravity-assist grand tours).
export const FACTS = {
sun: {
blurb: 'The star at the heart of it all — a giant ball of plasma holding 99.86% of the solar systems mass.',
stats: [
['Type', 'G2V yellow dwarf'],
['Diameter', '1,391,000 km'],
['Mass', '333,000 × Earth'],
['Surface', '~5,500 °C'],
['Core', '~15,000,000 °C'],
['Age', '~4.6 billion yrs'],
['Made of', 'Hydrogen · Helium'],
['Light to Earth', '8 min 20 s'],
],
fact: 'About 1.3 million Earths would fit inside it.',
},
mercury: {
blurb: 'The smallest planet and the closest to the Sun — a scorched, cratered ball of rock with almost no atmosphere.',
stats: [
['Diameter', '4,879 km'],
['Gravity', '0.38 g'],
['Day', '176 Earth days'],
['Year', '88 Earth days'],
['Temp', '173 to 427 °C'],
['Moons', '0'],
['From Sun', '0.39 AU'],
],
fact: 'A day on Mercury (sunrise to sunrise) lasts two of its years.',
},
venus: {
blurb: 'Earths hellish twin — a runaway greenhouse wrapped in sulfuric-acid clouds, hot enough to melt lead.',
stats: [
['Diameter', '12,104 km'],
['Gravity', '0.90 g'],
['Day', '243 days (backwards)'],
['Year', '225 Earth days'],
['Surface', '~465 °C'],
['Moons', '0'],
['From Sun', '0.72 AU'],
],
fact: 'It spins backwards, and its day is longer than its year.',
},
mars: {
blurb: 'The Red Planet — a cold desert of rusted iron with the tallest volcano and deepest canyon in the solar system.',
stats: [
['Diameter', '6,779 km'],
['Gravity', '0.38 g'],
['Day', '24 h 37 m'],
['Year', '687 Earth days'],
['Temp', 'avg 63 °C'],
['Moons', '2 (Phobos, Deimos)'],
['From Sun', '1.52 AU'],
],
fact: 'Olympus Mons rises 22 km — nearly 3× the height of Everest.',
},
jupiter: {
blurb: 'The king of the planets — a gas giant so massive it could swallow all the others, wrapped in banded storms.',
stats: [
['Diameter', '139,820 km'],
['Gravity', '2.53 g'],
['Day', '9 h 56 m (fastest)'],
['Year', '11.9 Earth years'],
['Cloud tops', '~110 °C'],
['Moons', '95 known'],
['From Sun', '5.20 AU'],
],
fact: 'The Great Red Spot is a storm wider than the whole Earth.',
},
saturn: {
blurb: 'The jewel of the solar system — a gas giant circled by billions of ice and rock chunks in a dazzling ring system.',
stats: [
['Diameter', '116,460 km'],
['Gravity', '1.07 g'],
['Day', '10 h 42 m'],
['Year', '29.5 Earth years'],
['Cloud tops', '~140 °C'],
['Moons', '146 known'],
['From Sun', '9.54 AU'],
],
fact: 'So light for its size it would float in a big enough bathtub.',
},
uranus: {
blurb: 'A pale blue-green ice giant that got knocked over — it orbits the Sun tipped completely onto its side.',
stats: [
['Diameter', '50,724 km'],
['Gravity', '0.89 g'],
['Day', '17 h 14 m'],
['Year', '84 Earth years'],
['Cloud tops', '~195 °C'],
['Moons', '28 known'],
['From Sun', '19.2 AU'],
],
fact: 'Its 98° tilt means each pole gets 42 years of sunlight, then 42 of dark.',
},
neptune: {
blurb: 'The farthest planet — a deep-blue ice giant whipped by the fastest winds anywhere in the solar system.',
stats: [
['Diameter', '49,244 km'],
['Gravity', '1.14 g'],
['Day', '16 h 06 m'],
['Year', '165 Earth years'],
['Cloud tops', '~200 °C'],
['Moons', '16 known'],
['From Sun', '30.1 AU'],
],
fact: 'Supersonic winds reach 2,100 km/h — no one fully knows why.',
},
};
// Notable moons per planet. `km` = mean radius, `a` = semi-major axis (km),
// `P` = sidereal orbital period in days (negative = retrograde, e.g. Triton).
// Real values — the renderer compresses size/distance so they read on screen.
export const MOONS = {
earth: [
{ name: 'Moon', km: 1737.4, a: 384400, P: 27.322, color: '#c8c4bc' },
],
mars: [
{ name: 'Phobos', km: 11.27, a: 9376, P: 0.31891, color: '#8a7f75' },
{ name: 'Deimos', km: 6.2, a: 23463, P: 1.26244, color: '#9b9186' },
],
jupiter: [
{ name: 'Io', km: 1821.6, a: 421700, P: 1.769, color: '#e8d16b' },
{ name: 'Europa', km: 1560.8, a: 671100, P: 3.551, color: '#dcd6c8' },
{ name: 'Ganymede', km: 2634.1, a: 1070400, P: 7.155, color: '#a89b8c' },
{ name: 'Callisto', km: 2410.3, a: 1882700, P: 16.689, color: '#6e6459' },
],
saturn: [
{ name: 'Enceladus', km: 252.1, a: 238040, P: 1.370, color: '#f2f7fa' },
{ name: 'Rhea', km: 763.8, a: 527108, P: 4.518, color: '#cfc9bf' },
{ name: 'Titan', km: 2574.7, a: 1221870, P: 15.945, color: '#e8a24a' },
{ name: 'Iapetus', km: 734.5, a: 3560820, P: 79.322, color: '#9c8f7e' },
],
uranus: [
{ name: 'Miranda', km: 235.8, a: 129900, P: 1.413, color: '#b9bfc2' },
{ name: 'Ariel', km: 578.9, a: 190900, P: 2.520, color: '#c9ced0' },
{ name: 'Titania', km: 788.4, a: 436300, P: 8.706, color: '#b0b6b8' },
{ name: 'Oberon', km: 761.4, a: 583500, P: 13.463, color: '#9aa0a3' },
],
neptune: [
{ name: 'Proteus', km: 210, a: 117647, P: 1.122, color: '#8e9296' },
{ name: 'Triton', km: 1353.4, a: 354759, P: -5.877, color: '#d8cfc9' }, // retrograde
],
};
// Missions: waypoints[0] is launch (Earth); the rest are real flyby / arrival dates
// at the named body. Dates are ISO (UTC). `target` is the headline destination.
export const MISSIONS = [
{
id: 'mariner2', name: 'Mariner 2', agency: 'NASA', target: 'venus', color: '#f4a259', type: 'Venus flyby',
waypoints: [{ body: 'earth', date: '1962-08-27' }, { body: 'venus', date: '1962-12-14' }],
blurb: 'The first spacecraft ever to fly past another planet, confirming Venuss furnace-hot, cloud-choked surface.',
},
{
id: 'mariner4', name: 'Mariner 4', agency: 'NASA', target: 'mars', color: '#e07a5f', type: 'Mars flyby',
waypoints: [{ body: 'earth', date: '1964-11-28' }, { body: 'mars', date: '1965-07-15' }],
blurb: 'Returned the first close-up photos of Mars — 21 grainy frames that ended a century of “canal” speculation.',
},
{
id: 'viking1', name: 'Viking 1', agency: 'NASA', target: 'mars', color: '#c1502a', type: 'Orbiter + lander',
waypoints: [{ body: 'earth', date: '1975-08-20' }, { body: 'mars', date: '1976-06-19' }],
blurb: 'First fully successful Mars landing; its biology experiments searched the soil for signs of life.',
},
{
id: 'voyager1', name: 'Voyager 1', agency: 'NASA', target: 'saturn', color: '#8ecae6', type: 'Jupiter · Saturn',
waypoints: [{ body: 'earth', date: '1977-09-05' }, { body: 'jupiter', date: '1979-03-05' }, { body: 'saturn', date: '1980-11-12' }],
blurb: 'Now the most distant human-made object, sailing through interstellar space over 24 billion km away.',
},
{
id: 'voyager2', name: 'Voyager 2', agency: 'NASA', target: 'neptune', color: '#ffd166', type: 'Grand Tour',
waypoints: [
{ body: 'earth', date: '1977-08-20' }, { body: 'jupiter', date: '1979-07-09' },
{ body: 'saturn', date: '1981-08-25' }, { body: 'uranus', date: '1986-01-24' }, { body: 'neptune', date: '1989-08-25' },
],
blurb: 'The only spacecraft ever to visit all four giant planets, riding a rare alignment on a single grand tour.',
},
{
id: 'magellan', name: 'Magellan', agency: 'NASA', target: 'venus', color: '#f2cc8f', type: 'Venus radar mapper',
waypoints: [{ body: 'earth', date: '1989-05-04' }, { body: 'venus', date: '1990-08-10' }],
blurb: 'Radar-mapped 98% of Venuss surface through its opaque clouds, revealing volcanoes and vast lava plains.',
},
{
id: 'galileo', name: 'Galileo', agency: 'NASA', target: 'jupiter', color: '#b5e48c', type: 'Jupiter orbiter (VEEGA)',
waypoints: [
{ body: 'earth', date: '1989-10-18' }, { body: 'venus', date: '1990-02-10' },
{ body: 'earth', date: '1990-12-08' }, { body: 'earth', date: '1992-12-08' }, { body: 'jupiter', date: '1995-12-07' },
],
blurb: 'First to orbit Jupiter and drop a probe into its atmosphere — after slingshots off Venus and Earth twice.',
},
{
id: 'cassini', name: 'CassiniHuygens', agency: 'NASA/ESA', target: 'saturn', color: '#e6dbb0', type: 'Saturn orbiter',
waypoints: [
{ body: 'earth', date: '1997-10-15' }, { body: 'venus', date: '1998-04-26' }, { body: 'venus', date: '1999-06-24' },
{ body: 'earth', date: '1999-08-18' }, { body: 'jupiter', date: '2000-12-30' }, { body: 'saturn', date: '2004-07-01' },
],
blurb: 'Orbited Saturn for 13 years and landed the Huygens probe on Titan — the most distant landing ever.',
},
{
id: 'juno', name: 'Juno', agency: 'NASA', target: 'jupiter', color: '#a8dadc', type: 'Jupiter polar orbiter',
waypoints: [{ body: 'earth', date: '2011-08-05' }, { body: 'earth', date: '2013-10-09' }, { body: 'jupiter', date: '2016-07-04' }],
blurb: 'Loops over Jupiters poles to peer beneath the clouds and map its deep interior and monster magnetic field.',
},
{
id: 'curiosity', name: 'Curiosity', agency: 'NASA', target: 'mars', color: '#e76f51', type: 'Mars rover',
waypoints: [{ body: 'earth', date: '2011-11-26' }, { body: 'mars', date: '2012-08-06' }],
blurb: 'Lowered into Gale Crater by a rocket-powered sky crane; still roving and drilling more than a decade on.',
},
{
id: 'perseverance', name: 'Perseverance', agency: 'NASA', target: 'mars', color: '#ee6c4d', type: 'Mars rover',
waypoints: [{ body: 'earth', date: '2020-07-30' }, { body: 'mars', date: '2021-02-18' }],
blurb: 'Caching rock samples for a future return to Earth — and flew Ingenuity, the first aircraft on another world.',
},
];