Special airports fix #144

Closed
opened 2026-09-23 20:36:23 +02:00 by kamilkrzywda · 1 comment
Owner

#97

Many airports was add in nice way, but in general it was done bad.
Entire center of Australia is filled with small airports, canada edges are also filled with multiple airpots - you need to redo this task - i was hoping for adding thoes airports in more inteligent way - one here, one there, etc. - not just add this 1000km filter and YOLO it.

All added airports have also consider if there are other airports added to special list nearby.

https://git.kkhost.pl/OpenCode/Flight-Ops/issues/97 Many airports was add in nice way, but in general it was done bad. Entire center of Australia is filled with small airports, canada edges are also filled with multiple airpots - you need to redo this task - i was hoping for adding thoes airports in more inteligent way - one here, one there, etc. - not just add this 1000km filter and YOLO it. All added airports have also consider if there are other airports added to special list nearby.
Author
Owner

Fixed in v0.68.0 (PR #145, merged 7d117f68).

The curation script (scripts/build-world-airports.mjs) now does greedy sparse selection instead of keeping every remote candidate: candidates (non-large fixed-wing with no large airport within 1000 km) are sorted by priority — scheduled service first, then type rank medium < small < seaplane_base, then id — and each is accepted only if it's ≥ REMOTE_RADIUS_KM (1000 km) from every already-accepted special, so specials land "one here, one there" across remote regions.

Result: specials 364 → 42 (CSV 1483 → 1161 rows; the 1119 large airports unchanged). Min pairwise distance between specials: 1001.6 km. Spread: NA 12, AN 9, OC 8, AS 8, AF 3, SA 2. Added a unit-test invariant pinning pairwise sparsity on the committed CSV.

Tunable: REMOTE_RADIUS_KM in scripts/build-world-airports.mjs (and its mirror in lib/airports.ts) — raise it for fewer specials, lower it for denser coverage, then re-run the script to regenerate the CSV.

Fixed in **v0.68.0** (PR #145, merged `7d117f68`). The curation script (`scripts/build-world-airports.mjs`) now does greedy sparse selection instead of keeping every remote candidate: candidates (non-large fixed-wing with no large airport within 1000 km) are sorted by priority — scheduled service first, then type rank medium < small < seaplane_base, then id — and each is accepted only if it's ≥ `REMOTE_RADIUS_KM` (1000 km) from **every already-accepted special**, so specials land "one here, one there" across remote regions. Result: specials **364 → 42** (CSV 1483 → 1161 rows; the 1119 large airports unchanged). Min pairwise distance between specials: 1001.6 km. Spread: NA 12, AN 9, OC 8, AS 8, AF 3, SA 2. Added a unit-test invariant pinning pairwise sparsity on the committed CSV. Tunable: `REMOTE_RADIUS_KM` in `scripts/build-world-airports.mjs` (and its mirror in `lib/airports.ts`) — raise it for fewer specials, lower it for denser coverage, then re-run the script to regenerate the CSV.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OpenCode/Flight-Ops#144