{
 "v": 1,
 "fetched": "2026-10-12",
 "credit": "Hubble OPAL program (PI Amy Simon), NASA / ESA / STScI via MAST, CC BY 4.0 (colour map, modified: colour balance, resampling, polar fill); USGS Astrogeology global mosaics of Io, Europa, Ganymede and Callisto (public domain; Voyager and Galileo images, NASA / JPL)",
 "items": [
  {
   "id": "opal-cycle32",
   "name": "Hubble OPAL (Outer Planet Atmospheres Legacy) Jupiter, Cycle 32, WFC3/UVIS global map, rotation A, colour composite F395N/F502N/F631N (2025-12-11/12)",
   "url": "https://archive.stsci.edu/missions/hlsp/opal/cycle32/jupiter/hlsp_opal_hst_wfc3-uvis_jupiter-2025a_f395n-f502n-f631n_v1_globalmap.tif",
   "credit": "NASA / ESA Hubble Space Telescope, OPAL program (PI Amy Simon, NASA Goddard), Cycle 32 observations (HST program 17843); HLSP DOI 10.17909/T9G593; MAST / STScI. Acknowledgement line for pages: \"Hubble OPAL program (PI Amy Simon), NASA / ESA / STScI, via MAST, CC BY 4.0\".",
   "licence": "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), stated on https://archive.stsci.edu/hlsp/opal as \"These HLSP data products are licensed for use under CC BY 4.0\"",
   "fetched": "2026-10-12",
   "transform": "TIF 3600 x 1800, 8-bit RGB, 10 pixels per degree, PLANETOGRAPHIC latitude +90 (row 0) to -90, longitude column 0 = System III 0 deg, increasing EAST to the right (README: left edge = 0 System III W, decreasing to the right, which is east to the right). Verified on the Great Red Spot: it sits at column 381 = 38.1 E = 321.9 W, which is about 79 W in System II (Horizons sub-Earth System III longitude 306.35 W at 2025-12-11 07:00 UT plus the Meeus ch. 43 offset, accuracy about 1 deg), matching the JUPOS / Project Pluto value of 79 W for 2025-12-01 plus drift. Valid data runs from +85.8 to -82.9 deg; the README gives 10 pixels per deg, navigated with 71492 / 66854 km radii, Minnaert limb-darkening removed. Steps: (1) Natural colour. The composite maps F395N (UV-violet) to blue, F502N to green and F631N to red, so zones come out grey-blue and the Great Red Spot hard orange. A least-squares affine map in sRGB code values (ridge toward identity 40) moves 13 patch medians to natural-colour targets set from true-colour Hubble, Cassini and amateur images of Jupiter: EZ (184, 176, 163) -> (236, 224, 200), NEB core (134, 85, 67) -> (160, 104, 82), NEB edge (138, 106, 85) -> (180, 140, 110), SEB (134, 98, 83) -> (164, 114, 92), STrZ n (189, 188, 192) -> (238, 230, 216), NTrZ (180, 170, 169) -> (228, 212, 192), NTB (180, 153, 127) -> (212, 176, 140), NTZ (171, 154, 135) -> (214, 192, 164), STB (179, 168, 153) -> (222, 202, 176), STZ (163, 141, 121) -> (204, 176, 146), N 55 (145, 120, 86) -> (184, 158, 128), S 55 (158, 136, 108) -> (190, 164, 134), GRS core (168, 81, 37) -> (198, 110, 80). Matrix (applied to [R G B 1]): out_R = 1.1287*R + 0.0857*G + 0.0513*B + 0.0635*1; out_G = 0.0330*R + 1.2762*G - 0.0883*B + 0.0015*1; out_B = 0.0376*R + 0.5621*G + 0.5142*B - 0.0494*1; fit rms 6.6 code values; results clipped to 0..255. (2) Resample to PLANETOCENTRIC latitude (tan pc = 0.874461 tan pg) and east longitude with x = 0 at lon -180, bicubic, 4096 x 2048; 2K is an area resample of the 4K. (3) Polar caps: poleward of about 52 deg planetocentric (about 56 planetographic) the data is cross-faded into a smooth fill and is fully replaced poleward of 66 deg planetocentric (about 69 planetographic): the zonal median colour of the 55 to 60 deg band, 20 percent desaturated, up to 10 percent darker toward the pole, with a faint zonal banding of 1.2 percent amplitude (period 7 deg). The poles are INVENTED fill; the polar cyclone clusters and the aurora are not in the map. (4) Storm positions measured on the shipped 4K: Great Red Spot (orange core, R-G threshold) centre lat -20.08 (planetocentric) lon 38.10 E, half sizes 5.93 x 3.91 deg; Oval BA (pale yellow oval, blue deficit against a local background) centre lat -30.10 lon 147.17 E, half sizes 3.03 x 1.98 deg. The map is one instant (2025-12-11/12); the engine shifts only the Great Red Spot to its date. No 8K is shipped: the source is 10 pixels per deg, so an 8K map would add no detail (no color-8k files).",
   "used": [
    "assets/tex/color-2k.jpg",
    "assets/tex/color-4k.webp",
    "assets/tex/color-4k.jpg",
    "assets/fallback/map-2k.jpg",
    "assets/fallback/poster.jpg",
    "assets/og.jpg",
    "data/bands.json"
   ]
  },
  {
   "id": "usgs-io",
   "name": "USGS Astrogeology Io Galileo SSI / Voyager global color mosaic, 1 km (Io_GalileoSSI-Voyager_Global_Mosaic_ClrMerge_1km)",
   "url": "https://planetarymaps.usgs.gov/mosaic/Io_GalileoSSI-Voyager_Global_Mosaic_ClrMerge_1km.tif",
   "credit": "NASA / JPL / USGS Astrogeology Science Center (Galileo SSI and Voyager images)",
   "licence": "Public domain (NASA / USGS Astrogeology; no copyright asserted; credit as requested)",
   "fetched": "2026-10-12",
   "transform": "TIF 11445 x 5723, 8-bit RGB, simple cylindrical, -180..180 deg EAST (checked on Pele at 105 E = 255 W, Loki Patera at 52 E = 308 W, Prometheus at 153 W), x = 0 is already lon -180, so no roll. Area-downsampled to 2048 x 1024 with no-data pixels excluded, percentile stretch 0.3..99.7 per image, Lanczos to 1024 x 512 and 512 x 256. Colour map kept as is (no tint at runtime).",
   "used": [
    "assets/tex/moon-io-512.jpg",
    "assets/tex/moon-io-1k.jpg",
    "assets/tex/moon-io-2k.webp",
    "assets/tex/moon-io-2k.jpg"
   ]
  },
  {
   "id": "usgs-europa",
   "name": "USGS Astrogeology Europa Voyager / Galileo SSI global mosaic, 500 m (Europa_Voyager_GalileoSSI_global_mosaic_500m)",
   "url": "https://planetarymaps.usgs.gov/mosaic/Europa_Voyager_GalileoSSI_global_mosaic_500m.tif",
   "credit": "NASA / JPL / USGS Astrogeology Science Center (Voyager and Galileo SSI images)",
   "licence": "Public domain (NASA / USGS Astrogeology; no copyright asserted; credit as requested)",
   "fetched": "2026-10-12",
   "transform": "TIF 19631 x 9816, 8-bit greyscale, simple cylindrical, 0..360 deg EAST with the left edge at 0 E (checked on Pwyll crater at 25 S, 89 E = 271 W; the file header alone does not say, and it is NOT positive west), rolled by half a width so x = 0 is lon -180 and lon 0 is the image centre. Nodata (0, the black polar rows) filled by normalised Gaussian convolution and the zonal mean (smooth haze, no invented detail). Levels: percentile stretch 0.5..99.7 then a gamma to mean 172 of 255. Greyscale on purpose; the engine tints it.",
   "used": [
    "assets/tex/moon-europa-512.jpg",
    "assets/tex/moon-europa-1k.jpg",
    "assets/tex/moon-europa-2k.webp",
    "assets/tex/moon-europa-2k.jpg"
   ]
  },
  {
   "id": "usgs-ganymede",
   "name": "USGS Astrogeology Ganymede Voyager / Galileo SSI global color mosaic, 1435 m (Ganymede_Voyager_GalileoSSI_Global_ClrMosaic_1435m)",
   "url": "https://planetarymaps.usgs.gov/mosaic/Ganymede_Voyager_GalileoSSI_Global_ClrMosaic_1435m.tif",
   "credit": "NASA / JPL / USGS Astrogeology Science Center (Voyager and Galileo SSI images)",
   "licence": "Public domain (NASA / USGS Astrogeology; no copyright asserted; credit as requested)",
   "fetched": "2026-10-12",
   "transform": "TIF 11520 x 5760, 8-bit RGB, simple cylindrical, 0..360 deg EAST with the left edge at 0 E (checked on Osiris crater at 38 S, 194 E = 166 W), rolled by half a width so x = 0 is lon -180. Nodata (black top and bottom edges) filled by normalised Gaussian convolution. Percentile stretch 0.3..99.7. Colour map kept as is. The mosaic joins grey Voyager and colour Galileo patches, so frame seams are visible in the source.",
   "used": [
    "assets/tex/moon-ganymede-512.jpg",
    "assets/tex/moon-ganymede-1k.jpg",
    "assets/tex/moon-ganymede-2k.webp",
    "assets/tex/moon-ganymede-2k.jpg"
   ]
  },
  {
   "id": "usgs-callisto",
   "name": "USGS Astrogeology Callisto Voyager / Galileo SSI global mosaic, 1 km (Callisto_Voyager_GalileoSSI_global_mosaic_1km)",
   "url": "https://planetarymaps.usgs.gov/mosaic/Callisto_Voyager_GalileoSSI_global_mosaic_1km.tif",
   "credit": "NASA / JPL / USGS Astrogeology Science Center (Voyager and Galileo SSI images)",
   "licence": "Public domain (NASA / USGS Astrogeology; no copyright asserted; credit as requested)",
   "fetched": "2026-10-12",
   "transform": "TIF 15138 x 7569, 8-bit greyscale, simple cylindrical, 0..360 deg EAST with the left edge at 0 E (checked on Burr crater at 42 N, 222 E = 138 W and the Valhalla basin at 14 N, 304 E = 56 W), rolled by half a width so x = 0 is lon -180. Nodata filled as for Europa (the large gap near the south pole is smooth fill). Levels: percentile stretch 0.5..99.9 then a gamma to mean 108 of 255. Greyscale on purpose; the engine tints it.",
   "used": [
    "assets/tex/moon-callisto-512.jpg",
    "assets/tex/moon-callisto-1k.jpg",
    "assets/tex/moon-callisto-2k.webp",
    "assets/tex/moon-callisto-2k.jpg"
   ]
  },
  {
   "id": "baa-jets",
   "name": "BAA Jupiter Section: Latitudes and speeds of jets on Jupiter (table prepared by John Rogers; Voyager, Hubble, Cassini and New Horizons columns and the average)",
   "url": "https://britastro.org/jupiter/reference/jup_jets/Jetstreams-list-for-website.pdf",
   "credit": "British Astronomical Association Jupiter Section; John Rogers (table); Limaye 1986, Garcia-Melendo and Sanchez-Lavega 2001, Porco et al. 2003, Cheng et al. 2008",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Planetographic latitudes of the average column: NEBn 17.0 N, NEBs 7.2 N, CEC 0.4 S, SEBn 7.2 S, SEBs 19.5 S, N1 NTBs 23.7 N, NTBn 31.1 N, N2 NNTBs 35.1 N, NNTBn 39.3 N, N3 42.7 N, N4 47.4 N, N5 55.8 N, S1 STBn 26.5 S, STBs 32.3 S, S2 SSTBn 36.3 S, S3 43.1 S, S4 52.7 S, S5 61.0 S, S6 66.9 S. Band edges in bands.json are these jets; the 13 rows tile from pole to pole with no gap: NPR above 55.8 N (the N5 jet) and SPR below 52.7 S (the S4 jet), the jet-listed latitudes closest to the usual 55 to 57 deg polar boundary. NNTB and SSTB are wide rows that include the narrow belts and zones between their jets (NNTZ and SSTZ are not split because the table lists no belt/zone edges for them). Wind speeds are the u3 column (m/s, relative to System III, positive = prograde). Names, descriptions and notes are written for this page.",
   "used": [
    "data/bands.json"
   ]
  },
  {
   "id": "grs-longitude",
   "name": "GRS System II longitude history: Project Pluto grs_lon.txt (JUPOS data from 2010) and Sky & Telescope Great Red Spot transit-time calculator",
   "url": "https://mail.projectpluto.com/grs_lon.txt",
   "credit": "Bill Gray, Project Pluto (data from JUPOS, jupos.org, and Sky & Telescope); Sky & Telescope https://skyandtelescope.org/observing/transit-times-of-jupiters-great-red-spot/",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Project Pluto lists the Great Red Spot at System II 439 deg (= 79 W) on 2025-12-01 and 421 (= 61 W) on 2024-10-01; its note says the longitude is increasing at about 16 deg per year as of December 2025. Sky & Telescope assumes 91 W on 2026-06-01 with 1.75 deg per month. The anchor in bands.json is epoch 2025-12-11, System II 79.4 W (79.0 + 10 days of drift, and the OPAL map puts it at about 79 W), drift +0.044 deg per day (16 deg per year, positive = moving west); S&T assumes 0.0575 deg per day, which would put the spot about 5 deg farther west by late 2026, so treat the date shift as approximate. The BAA 2026 Jupiter guide could not be read, so it is not cited.",
   "used": [
    "data/bands.json"
   ]
  },
  {
   "id": "jpl-sat-phys",
   "name": "NASA / JPL SSD Planetary Satellite Physical Parameters (GM, mean radius, mean density) and Planetary Satellite Mean Elements (a, epoch J2000), reference JUP365 (Jacobson 2021)",
   "url": "https://ssd.jpl.nasa.gov/sats/phys_par/",
   "credit": "NASA / JPL Solar System Dynamics Group (https://ssd.jpl.nasa.gov/sats/elem/); R. A. Jacobson (2021) The Orbits of the Regular Jovian Satellites and the Orientation of the Pole of Jupiter",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Mean radius km: Io 1821.49, Europa 1560.80, Ganymede 2631.20, Callisto 2410.30. GM km3/s2: 5959.915, 3202.712, 9887.833, 7179.283; mass = GM / G with G = 6.6743e-20 km3/kg/s2 gives 8.93e22, 4.80e22, 1.481e23, 1.076e23 kg. Mean density g/cm3: 3.5276, 3.0130, 1.9416, 1.8340. Semimajor axes (mean elements, Laplace plane, epoch 2000-01-01.5): 421800, 671100, 1070400, 1882700 km (aRJ = a / 71492). Orbital periods are the sidereal values from the NASA NSSDC Jovian satellite fact sheet (1.769138, 3.551181, 7.154553, 16.689017 d); the JPL mean-element P column (1.7627 d for Io) is a different mean period and is not used. Geometric albedos from the NSSDC sheet: 0.62, 0.68, 0.44, 0.19.",
   "used": [
    "data/moons.json"
   ]
  },
  {
   "id": "nssdc-jovian",
   "name": "NASA NSSDC Jovian Satellite Fact Sheet and Jupiter Fact Sheet (updated 2023-12-06 and 2024-10-02)",
   "url": "https://nssdc.gsfc.nasa.gov/planetary/factsheet/joviansatfact.html",
   "credit": "NASA Goddard NSSDCA (https://nssdc.gsfc.nasa.gov/planetary/factsheet/jupiterfact.html)",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Jupiter: equatorial radius 71,492 km and polar radius 66,854 km (1 bar), mass 1898.13e24 kg, mean density 1326 kg/m3, sidereal rotation 9.9250 h (System III 1965), orbit 4332.589 d = 11.862 years, obliquity 3.13 deg. Day lengths in jupiter.json: System III 9 h 55 min 29.7 s (IAU WGCCRE rate 870.536 deg/d), System I 9 h 50 min 30 s, System II 9 h 55 min 40.6 s (standard amateur values). Moon radii, periods and albedos as listed under jpl-sat-phys.",
   "used": [
    "data/jupiter.json",
    "data/moons.json"
   ]
  },
  {
   "id": "moon-count",
   "name": "Confirmed moons of Jupiter: JPL SSD satellite discovery circumstances (115), Wikipedia Moons of Jupiter (115 as of 2026-04-09, MPEC 2026-F09, F12, G43, G52), IAU Minor Planet Center announcement of 2026-03-26 (101)",
   "url": "https://ssd.jpl.nasa.gov/sats/discovery.html",
   "credit": "NASA / JPL SSD; IAU Minor Planet Center (https://www.iau.org/IAU/IAU/News/Ann2026/MPC-New-Moons-Saturn-Jupiter.aspx); https://en.wikipedia.org/wiki/Moons_of_Jupiter",
   "licence": "Public domain (NASA / USGS Astrogeology; no copyright asserted; credit as requested)",
   "fetched": "2026-10-12",
   "transform": "moonsConfirmed 115 as of 2026-04-09: 4 moons announced 2026-03-16 (101 after the IAU/MPC announcement of 2026-03-26) and 14 more on 2026-04-09. Searches in October 2026 found no later Jupiter announcement; JPL lists 115. Of the 111 moons other than the Galileans, 4 are inner moons (Metis, Adrastea, Amalthea, Thebe) and 107 are irregular, of which 58 are unnamed.",
   "used": [
    "data/jupiter.json",
    "data/moons.json"
   ]
  },
  {
   "id": "juno-polar-cyclones",
   "name": "Juno polar cyclones: Adriani et al. 2018, Nature 555, 216 (eight around one in the north, five around one in the south); NASA / JPL PIA23608 (sixth south cyclone, 2019-11-03)",
   "url": "https://doi.org/10.1038/nature25491",
   "credit": "A. Adriani et al. (2018) Clusters of cyclones encircling Jupiter's poles; NASA / JPL-Caltech / SwRI / MSSS (https://www.jpl.nasa.gov/images/pia23608-a-sixth-cyclone-has-joined-the-configuration-of-circumpolar-cyclones-at-jupiters-south-pole/)",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Cluster counts and cyclone widths (north 4,000 to 4,600 km, south 5,600 to 7,000 km) from the paper; the sixth southern cyclone from PIA23608. The cluster radius in bands.json (north 9.5 deg, south 9.0 deg from the pole) is an approximation for the highlight circle, from circumpolar cyclone centres near 83 to 84 deg latitude plus the cyclone radius.",
   "used": [
    "data/bands.json"
   ]
  },
  {
   "id": "grs-size",
   "name": "Great Red Spot size: NASA release of 2014-05-15 (about 10,250 miles across) and Simon et al. 2024, PSJ (90 day width oscillation, Hubble 2023-12 to 2024-03); OPAL 2025-12-11 map measurement",
   "url": "https://science.nasa.gov/missions/hubble/nasas-hubble-shows-jupiters-great-red-spot-is-smaller-than-ever-measured",
   "credit": "NASA / ESA Hubble; A. Simon et al. 2024, Planetary Science Journal, DOI 10.3847/PSJ/ad71d1",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "The size on this page is our own measurement on the OPAL map (orange core only, not the collar): about 13,700 km east-west by 9,700 km north-south (11.9 x 7.8 deg planetocentric at local scale 1,150 km per deg of longitude and 1,230 km per deg of latitude, ellipsoid corrected). The 2014 value is 16,500 km (10,250 mi) across the full oval. The two numbers are not directly comparable: one is the red core, one the whole oval with its collar. 39,000 km in 1879 is the usual historical length of the oval.",
   "used": [
    "data/bands.json",
    "data/jupiter.json"
   ]
  },
  {
   "id": "pds-rings-table",
   "name": "PDS Ring-Moon Systems Node: Vital Statistics for Jupiter's Rings (after de Pater et al. 2018 and Burns et al. 1999)",
   "url": "https://pds-rings.seti.org/jupiter/jupiter_rings_table.html",
   "credit": "SETI Institute / NASA PDS Ring-Moon Systems Node; de Pater, I. et al. 2018, in Planetary Ring Systems, Cambridge University Press, DOI 10.1017/9781316286791.006; Burns, J. A. et al. 1999, Science 284, 1146, DOI 10.1126/science.284.5417.1146",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Inner and outer radii in rings.json are the PDS table values: Halo 100,000..122,400 km (tau about 1e-6, about 10,000 km thick), Main Ring 122,400..129,100 (tau below 8e-6, 100 km), Amalthea Gossamer 122,400..181,350 (5e-7, 2,600 km), Thebe Gossamer 122,400..221,900 (1e-7, 8,800 km), Thebe Extension 221,900..270,000 (1e-9, beyond the strip). The strip draws the Halo from 92,000 km as a soft fall-off (the halo has no sharp inner edge). The two gossamer rings overlap inside 181,350 km, as the table shows. Descriptions and notes are written for this page.",
   "used": [
    "data/rings.json"
   ]
  },
  {
   "id": "ring-strip-display",
   "name": "Faint-ring strip ring-jov-1k (display opacity, hand-set colour)",
   "url": "https://pds-rings.seti.org/jupiter/jupiter_rings_table.html",
   "credit": "Original work for this page",
   "licence": "Own work",
   "fetched": "2026-10-12",
   "transform": "DISPLAY opacity, non-physical (true optical depth is 1e-6 to 1e-8): halo 92,000..122,400 km, soft inner edge, 0.05; main ring 122,400..129,100 km, 0.14 (brightest); Amalthea gossamer to 181,350 km, 0.04; Thebe gossamer to 221,900 km, 0.025; fading to 0 by 230,000 km (smoothstep edges). Radius is physical, amplitude is not: the engine multiplies A by a gain and boosts forward scatter. RGB is a hand-set dusty reddish-brown: halo (150, 114, 90), main ring (168, 120, 88), gossamer (158, 118, 92). 1024 x 4 RGBA, radius 88,000..230,000 km linear, 138.7 km per texel, x = 0 at the left.",
   "used": [
    "assets/tex/ring-jov-1k.png"
   ]
  },
  {
   "id": "horizons-check",
   "name": "JPL Horizons observer ephemeris for Jupiter (599) from Earth: sub-observer System III longitude, used once to verify the OPAL longitude direction",
   "url": "https://ssd.jpl.nasa.gov/api/horizons.api",
   "credit": "NASA / JPL Solar System Dynamics Group (Horizons)",
   "licence": "Open data / citation only (NASA / JPL / IAU / BAA public pages; facts cited, text written for this page)",
   "fetched": "2026-10-12",
   "transform": "Query: COMMAND 599, CENTER 500@399, QUANTITIES 14, 2025-12-11 07:00 to 2025-12-12 03:00 UT every 2 h. ObsSub-LON (System III, WEST positive) was 306.353 deg at 2025-12-11 07:00 UT. Combined with the Meeus ch. 43 System II central meridian it gives System III minus System II = 242.2 deg (accuracy about 1 deg). Nothing from Horizons is shipped.",
   "used": [
    "data/bands.json"
   ]
  }
 ],
 "strips": {
  "assets/tex/ring-jov-1k.png": {
   "width": 1024,
   "height": 4,
   "radiusInKm": 88000,
   "radiusOutKm": 230000,
   "kmPerTexel": 138.7,
   "mapping": "r = 88000 + (x / W) * 142000, x in 0..W, linear",
   "encoding": "RGBA, RGB = colour, A = display opacity (artistic, max 0.14, non-physical)"
  }
 }
}
