Scope freeze — aircraft MovingPlatformDex (2nd MovingPlatform kind)
Frozen 2026-07-07. The second MovingPlatformDex kind (after mobile_radiosonde), built for
the paper-data standardization campaign ([[project_paper_dex_repoint_campaign]]). The slot is a
moving measurement platform carrying its TRACK — here an aircraft and its ADS-B positions.
What it is / measures
feedback_measured_reality_only. Each fix is an aircraft's own transponder broadcasting where it
physically was (ICAO ADS-B state vector), received by the community adsb.fi network. A record of
where the platform actually was; nothing modeled.
Scope — the captured window (feedback_data_is_data_partial_coverage)
Aircraft data is NOT ingested into the platform. For the wspr-aircraft-detection paper the ADS-B
feed was the ground truth, so the paper polled adsb.fi directly into its workspace
(workspaces/wspr-aircraft-detection/data/adsb_live/). This dex organizes exactly that captured
window:
- 25 hourly snapshot files, ~1 day, April 2026, over the US Northeast (the WSPR experiment's region).
- ~9,900 distinct aircraft, ~934,000 position fixes.
Bounded in time and place, but it is precisely the data the paper used, so it is what a repoint needs. A live standing feed and OpenSky as a second source are deferred (see below).
Slot = one aircraft (MovingPlatformDex, file-per-slot)
- Slot id: the ICAO 24-bit address (
icao24, 6 hex chars) — the aircraft's permanent id. - Payload:
track= time-ordered[epoch, lat, lon, alt_m, on_ground]fixes (drop no-position fixes, dedup repeated snapshot times from overlapping poll tiles), plus avoyagesummary (n_fixes, first/last UTC, duration, bbox, altitude range, track length km, callsigns, airborne). - Storage:
data/platform_storehouse/aircraft/<icao24>.json, file-per-slot viaevent_storehouse.write_dossier+rebuild_index_from_disk(base_dir = platform_storehouse). ~9,900 slots — well under the file-per-slot index-cost concern ([[project_storehouse_index_cost]]).
Provenance
KIND_SOURCES["aircraft"] = ["adsbfi"]; adsbfi registered in KNOWN_SOURCES
(adsb.fi community ADS-B network, https://opendata.adsb.fi/api/v2/). Resolved read-time.
Validation
Self-validates via the shared dex_validator.validate_kind_or_raise (file-per-slot family):
index-matches-disk, one id per file, unique non-null icao24, required fields
name/start_utc/track, and a slot check rejecting an empty track.
Deferred → tracked in docs/dex-backfill-backlog.md
- Live standing ADS-B feed (vs this one-window capture).
- OpenSky as a second source (the paper also has
poll_opensky.py; skinwalker uses OpenSky). - Wider space/time coverage beyond the experiment's US-Northeast April-2026 window.
- The repoint itself (campaign's final step).