Repository navigation
Every answer is now checked against the traced curves. When nothing fits, score says so and lists the likely causes. This release also fixes clock and pairing bugs and makes the fit's error bars honest. The six-seed self-test gives the same errors and verdicts as v1.1.1.
Fixed
- Scoring dropped candidates the search had admitted. The search accepts an event-1 match up to the clock tolerance plus the event's CPA-time tolerance
t_tolaway. Scoring could shift time by only ±4 s and used its own clock tolerance (default 5 s), so candidates further out were dropped without a word. The time shift now spans at leastt_tol(capped at 30 s), andscoretakes the search's clock tolerance when--rec-start-tolis not given. Candidates rejected by the clock are counted, and an empty result explains itself. - Offset pairing lost the time term with large node ids. Node and time were packed into one float. With global grid ids (around 2.5·10¹⁴), the time difference rounded away, so pairs an hour off still matched. The key is now an exact integer (node rank × slot + milliseconds). It is checked against brute force for compact and global ids. Normal
searchruns used compact ids and were not affected. - Fit sigmas were too small for correlated residuals. The covariance is now inflated by the residuals' measured correlation time, max(win/hop, τ). In the self-test scenarios τ is 3–38 points, so sigmas grow by up to 2.7×. Straight synthetic passes are unchanged. The fit reports
resid_corr_time,sigma_inflation,n_effandcorr_v_d. detectstdout and its file looked like different schemas. Stdout now also namesevents_file. The docs say thatboxes.jsonis the event list and that the status is inboxes.diag.json.
New
- Trace check. Each hypothesis' model curve is compared with the traced points within ±60 s of each CPA, using a robust RMS against the event's own linear fit. It passes at ≤ max(4×, +1 Hz). Bright texture under a wrong curve (speech, music, wind) can lift a brightness score, but it cannot make the model reproduce the trace. With two events, failing hypotheses rank below the rest, and alternatives and margins are computed among those that pass.
- Verdict keywords, in order of precedence:
NO CONSISTENT SITE(two events, nothing passes;diagnosislists the causes);STRIP ONLY(tracks cross at < 25°);DEGENERATE(one event, three or more other aircraft within 2 %);AMBIGUOUS;unique within scored set.
result.jsongainsn_consistent,scoring(scored,rejected_clock,no_track,delta_max_s) anddiagnosis.best.trace_checkgives per-eventrms_hz,ref_hz,ratioandok. An f0 scale at its limit is flagged but not penalised.- Search stats report the following:
crossing_angle_deg(a log line says when every pair crosses at < 25°);flight_pairs(how many different aircraft explain one event);ground_elev_m;clock.
tracereportsbox_coverage. Below 50 % it adds a hint (--no-monotonefor a curve that rises before it falls, or a narrower box).fitaddsd_fit_min/d_fit_max(3 sigma) and a note when the search's distance window is much wider.
Docs (English and Chinese)
- One event needs a small area as well as a clock.
- The silence filter does little in sparse airspace.
- Sigma is statistical only: a speed change biases v by far more than sigma.
- What the distance window is.
- The DEM matters in relief.
- A new verification section covers what to do when no site is consistent: different places or a wrong file offset, an aircraft missing from ADS-B, a site outside the bbox, or a bad trace.
Measured on synthetic data
- Six self-test seeds give the same errors, verdicts and regions as v1.1.1.
- True two-event answers measure 0.3–1.8× the reference per event.
- Wrong aircraft pairs exceed 15× on at least one event. The true pair at a site 2–6 km away reaches 2.7–15×, so the check rules out wrong aircraft, not every wrong site; the brightness score still ranks those below the true site.
- With one event, wrong aircraft 30 km away can pass (1.3×). The check is reported there but does not reorder.
- Event 2 shifted by +300 s gives
NO CONSISTENT SITEwith a diagnosis. - One event with a 2 s clock and
t_tol= 20 s: all 492 candidates are scored, and the error is 23 m. - Real recordings were not part of these tests.
Downloads
| File | Language |
|---|---|
audio-flyover-geolocation-en.skill |
English |
audio-flyover-geolocation-zh-CN.skill |
简体中文 |
Reinstall over v1.1.1 the same way you installed it.