From 8f3acf947065a03feab2a671e1c6f974c7dd9c2c Mon Sep 17 00:00:00 2001 From: jing Date: Mon, 13 Jul 2026 16:56:28 +1000 Subject: [PATCH] =?UTF-8?q?wave2=20phase=206:=20GPS-jam=20stretch=20?= =?UTF-8?q?=E2=80=94=20investigated,=20held=20pending=20permission?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Probed gpsjam.org per SPEC2 §7's investigate-first rule. Findings: the data is real and clean (https://gpsjam.org/data/-h3_4.csv, columns hex,count_good_aircraft,count_bad_aircraft, H3 res-4, published ~04:00 UTC for the prior day). But two blockers: no Access-Control-Allow-Origin (browser can't fetch directly — would need a serve.py proxy), and ambiguous licensing (no stated terms; derived from ADS-B Exchange, which is non-commercial and protective of redistribution). Per spec — ambiguous licensing → document and stop, don't scrape around an unwilling origin — the layer is NOT built; the full findings are recorded in the README roadmap so John can decide after getting permission from John Wiseman / ADS-B Exchange. Co-Authored-By: Claude Opus 4.8 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be9a23c..4cac964 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ record.py optional dev daemon: snapshots live aircraft into data/his - **Live AIS** by default (aisstream.io key) — implemented, opt-in today. - **Historical recording** — implemented locally via `record.py` (see *Time-travel* above); a VPS-side recorder for replay in production is a future step. -- **GPS-jamming heatmap** from [gpsjam.org](https://gpsjam.org) daily H3 tiles. +- **GPS-jamming heatmap** from [gpsjam.org](https://gpsjam.org) daily H3 tiles — *investigated, held pending permission.* The data is real and clean: `https://gpsjam.org/data/-h3_4.csv` (published ~04:00 UTC for the prior day), columns `hex,count_good_aircraft,count_bad_aircraft` — an H3 resolution-4 index plus counts, easily rendered as translucent red hexes (interference = `bad / (good + bad)`). Two blockers stopped us building it: (1) the endpoint sends **no `Access-Control-Allow-Origin`**, so a browser can't fetch it directly — a `serve.py` proxy would be required; and (2) **licensing is ambiguous** — gpsjam.org publishes no license or reuse terms, and the data is derived from ADS-B Exchange (non-commercial, protective of redistribution). Re-serving it from a public site without an explicit grant would be scraping around an unwilling origin, so this waits on John obtaining permission from John Wiseman / ADS-B Exchange first. - **Classified-sat amateur TLEs** (community "classfd" catalogs) for birds Celestrak omits. - **Economic side panel** — Brent / WTI oil futures synced to the timeline. - **Cesium ion terrain & photorealistic 3D tiles** (needs a token).