Listening for events…

Scope freeze — mobile_radiosonde MovingPlatformDex (1st MovingPlatformDex kind)

Decided 2026-06-27. First kind of the new 6th dex family, MovingPlatformDex (docs/movingplatformdex-framework.md): the slot is one MOVING measurement platform, and the slot carries the platform's track. This kind is the mobile twin of the fixed radiosonde_station Locationdex (docs/scope-radiosonde-station-locationdex.md).

Origin (the categorization call)

While building the IGRA radiosonde_station Locationdex, 100 of the 2,921 stations turned out to be non-fixed (lat/lon sentinels -98.8888/-998.8888): weather balloons launched from platforms that move. Mike's first call: a moving platform is not a place, so it leaves the Locationdex. His second call (after seeing that each ship sounding has its own launch position, and that the balloon itself flies free from each point): give moving platforms their own family rather than a mobile Locationdex, because the family will later also hold research aircraft, drifting buoys, ocean gliders, anything that measures while it moves. He named the family MovingPlatformDex and validated "platform" on the meteorology/oceanography sense of an observing platform.

The fixed radiosonde_station Locationdex was rebuilt to exclude the 100 mobile platforms (now 2,821 fixed stations); they live here.

Slot

One moving platform. event_id = platform_id = the 11-character IGRA ID. The slot carries:

  • Identity: name, platform_type (ship / drifting_ice_station / other_mobile), network (Volunteer Observing Ship vs specially-coded), country = "Ocean" (FIPS ZZ), first_year / last_year / n_soundings (the roster's record summary).
  • voyage summary: n_launches, n_located, first/last date, lat/lon bounding box, start and end position, and track_length_km (sum of great-circle hops between consecutive launches).
  • track: the full ordered list of launch points [date, hour, lat, lon], one per sounding, embedded in the slot the same way the CelestialObjectDex neo kind embeds its close-approach array. The launch position comes from each sounding's IGRA2 HEADER record (LAT/LON, degrees ×10000); only the headers are parsed, the full vertical profiles stay at the source.

The fleet (100 platforms, 157,669 launches)

  • 77 Volunteer Observing Ships (network V): research and weather ships. POLARSTERN (the German polar icebreaker) runs pole to pole (−78° to 90°N), ~2.09M km of track, 10,654 launches, 1985→2024; METEOR roams the globe; POLARFRONT station-kept in one box of the Norwegian Sea for 20 years (15,239 launches).
  • 23 Soviet "Severnyy Polyus" (NP) drifting ice stations (network X): manned camps on Arctic sea ice (NP02–NP31) that launched balloons as the ice drifted across the pole.

Measured reality — IN / OUT (bright line feedback_measured_reality_only)

  • IN — every recorded launch position (where the platform physically was) and the roster's tallies of real balloon ascents. A radiosonde is a physical instrument.
  • OUT — nothing modeled. No drift forecast, no interpolated/smoothed track; the track is the raw recorded launch positions only.

Storage

The MovingPlatformDex pattern: file-per-slot at data/platform_storehouse/mobile_radiosonde/<platform_id>.json (the 6th sibling storehouse), written via the shared event_storehouse write + disk-rebuilt-index machinery (base_dir). 100 slots. Built by scripts/build_mobile_radiosonde_movingplatformdex.py; the per-platform data-por zips are cached under data/igra_mobile_cache/ (not git-tracked).

Deferred (not in v1)

  • Live edge (the IGRA live feed tracks ~89 US fixed stations only; extending it to mobile platforms is a separate fetcher decision).
  • Full vertical profiles per launch (carried as references via the source; only the track is embedded).
  • Track / spatial sweep (cross-matching a voyage against other sensor layers — deferred to a MovingPlatformDex v2 read-across, as with every family).
  • More platform kinds in the family (research aircraft, drifting buoys, Argo floats, gliders).
Live Feed