Repository navigation
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Claude finished @jehanazad's task in 1m 56s —— View job Code Review: Validate real receivers with ADS-B and isolated blind MLAT replayTodo list
New commit
|
Physical receivers were not consistently using fetched ADS-B references: the seeding provider omitted the external cache, v1
adsb_hexlabels were ignored by claiming/archive paths, and shared aircraft identities could combine real and simulated claims. Repeated reference normalization per detection also created an ingest bottleneck once real traffic arrived.This change adds optional regional polling of a first-party readsb service, preserves observation clocks/provenance, resolves indexed node identities, rejects mixed-world claim groups, and separates real/simulated solve funnels. Reference snapshots are reused once per frame; a representative 20-identity/300-reference benchmark fell from ~102 ms to ~5 ms for reference lookup. MLAT/TIS-B-derived positions are excluded; incomplete observations cannot become zero-valued kinematic references. Feed-origin
other/unknown is retained separately from explicitly direct ADS-B.The opt-in private capture and replay tools support reproducible blind tracking/association/solving. Aircraft labels and positions are joined only after estimation; reports retain failed attempts, false identity pairings, horizontal/vertical error, and captured detection opportunity denominators. Node reports provide residuals, delivery lag and observed coverage cells. Calibration/evaluation overlap is refused. Synthetic snapshots skip real-only remote catalogues.
SINGLE_NODE_GEO_INTERVAL_Sexposes the single-node fit cadence (default 10 seconds), and both HTTP routes now count all timestamped frames discarded on queue saturation. Noise, history, unknown-beam, optimizer-budget, uncertainty, track-exclusivity and fixed-layer experiments are offline options. Seedocs/real-node-validation.mdfor the workflow and limitations.Depends on the geolocator diagnostics in offworldlabs/retina-geolocator#26 and the per-pass trust computation in offworldlabs/retina-analytics#35 (both pinned commits included).
Validation:
28e8270: 4,293 passed, 2 skipped; full CI matrix green. The 124 focused arc/track/feed checks and earlier 87 reference/ingest/cadence checks also passed.Known-lane publications are ADS-B-assisted. Blind replay acceptance is reported separately and is not proof of accurate position: two-node association ambiguity remains a material limitation. Seven frozen later windows contain 51,299 real frames, with no missing late frames in the capture-membership audit. On the explicitly direct ADS-B subset, the baseline accepted 28/388 eligible attempts (14 within 5 km); the conservative tuned rule accepted 11/453 (10 within 5 km, one 71.7 km outlier), plus 61 accepted conflicting-identity candidates. Fixed-layer sensitivity accepted 212/444 eligible attempts (155 within 5 km) but also 457 conflicting-identity candidates. Repeated fits are not independent aircraft trials. Experimental blind gates remain offline; greater numerical acceptance did not establish reliable blind publication.
The final operational fixes align archive health with its actual hourly cadence and replace 32 bisection steps per display-arc point with the exact ground-plane ellipse intersection. The latter preserved point counts/clipping in 600 invented geometries (17,509 points; maximum difference below 0.00006 m) and reduced a 3,000-arc CPU benchmark from 2.799 to 0.316 seconds. It does not change MLAT estimation, the measurement-only arc definition, or separate public receiver geometry. The 124 focused arc/track/feed tests and all pre-commit gates passed.
Coverage investigation follow-up: add the last accepted evidence timestamp to the analytics payload and map popup, identify sample counts as retained (200 per bearing bin), and label the percentile polygon as a typical observed footprint rather than a hard detection limit. The browser refresh regression confirms geometry/timestamps update even when counts are unchanged. Coverage storage now acknowledges accepted writes so rejected points do not inflate recording counters; the pinned analytics change also aligns display and admission range caps. The live sampled polygons were updating: two busy receivers changed geometry while their counts stayed fixed. The cap mismatch was not clipping those sampled receivers. Unknown-beam reference-assignment censoring remains documented; blind solves are not used to grow coverage. Validation: 521 analytics tests, 124 focused backend calibration/claim/timestamp tests, 26 map tests, dashboard typecheck/lint/build and pre-commit gates passed.