A sharper map, and aircraft that fade rather than blink out
Three things asked for, and a fourth found while doing them. The map looked like a photograph of a map, and did so twice over. The window fetched at its own pixel size but for a box a third larger in each direction -- the margin added to stop the ground blinking -- and then cut the middle out, so every pixel was enlarged by two thirds. It now asks for enough pixels to cover the bigger box at the window's own detail. Underneath that, both the window and the animation took the nearest source pixel: the tile mosaic is commonly half again the size of the picture, so most of every tile was thrown away and what survived was the aliasing. Both now average the source pixels that fall in each output cell, done as the difference of a running total rather than a loop. An aircraft that goes quiet now fades instead of vanishing. Taking it off between one frame and the next says it stopped existing; fading says it stopped talking, which is what happened. It fades where it was last actually seen and never along a reckoned track, because the reason for giving up on it is that where it would be by now is a guess. --fade sets how long, and it is in the menu. The window has alpha and fades smoothly; an indexed picture cannot blend, so the animation gained a fourth ramp at a seventh of full and fades in four steps, which at a second apart reads as a fade. A trail fades with the aircraft it belongs to, and the box goes before the symbol does. The aircraft's country of registration carries a flag now as well as the two ends of its route, from the register where one answered and from the address block otherwise. And the fourth: the window's header counted an aircraft that had gone quiet as overhead, which was saying more than had been heard. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016PsWPTweCT6pwxKngvVxcg
This commit is contained in:
parent
df080f6571
commit
87b0954f0c
17 changed files with 1609 additions and 101 deletions
44
README.md
44
README.md
|
|
@ -1014,8 +1014,19 @@ the arrow first, so the two ends of the flight stay whole and sit under one
|
|||
another where they read as a pair.
|
||||
|
||||
`d` cycles the detail — full box, just height and speed, or symbols alone —
|
||||
for when the sky is busy. `t` toggles trails, `g` the map underneath, `+`/`-`
|
||||
the range, `q` closes it.
|
||||
for when the sky is busy. `t` toggles trails, `g` the map underneath, `[`/`]`
|
||||
its brightness, `+`/`-` the range, `q` closes it.
|
||||
|
||||
Aircraft fade out here too, over `--fade` seconds, keeping their symbol and
|
||||
losing their box as they go — a box at a tenth of its colour is something in
|
||||
the way of the aircraft still flying. One that has gone quiet stops being
|
||||
counted as overhead, since saying it is would be saying more than was heard.
|
||||
|
||||
The map holds still. It is fetched a third larger than the window in every
|
||||
direction, and the middle of the view settles once and then stays put rather
|
||||
than being recomputed as aircraft come and go — otherwise the view shifts by a
|
||||
fraction of a mile every few seconds, throws away the tiles fetched for the
|
||||
old one, and the ground blinks out while new ones arrive.
|
||||
|
||||
**Closing the window leaves exactly the files a passive capture does**: the
|
||||
same log, the same report, the same KML and animation, because it is the same
|
||||
|
|
@ -1138,6 +1149,14 @@ the twenty minutes the data says it took. Nothing moves at a constant speed
|
|||
for the look of the thing, and an aircraft not heard from for five minutes
|
||||
stops being drawn rather than being flown on by guesswork.
|
||||
|
||||
**An aircraft that goes quiet fades rather than vanishing.** Taking it off the
|
||||
picture between one frame and the next says it stopped existing; fading it
|
||||
says it stopped talking, which is what happened. It fades where it was last
|
||||
actually seen and never along a reckoned track — the reason for giving up on
|
||||
it in the first place is that where it would be by now is a guess. `--fade
|
||||
SECONDS` (20 by default, and in the options menu) sets how long that takes;
|
||||
zero takes it away at once, as before.
|
||||
|
||||
Time runs at `--speed` seconds of flying per second of animation, or give
|
||||
`--seconds` and let it work the speed out. Altitude is the colour, low warm to
|
||||
high cold, with the key along the bottom; the trail behind each aircraft is the
|
||||
|
|
@ -1165,6 +1184,16 @@ at all.
|
|||
Where a route arrives as nothing but a pair of airport codes, the country
|
||||
comes from the code itself: the first letter or two of an ICAO code is a
|
||||
region, so `EGLL` is British and `KSEA` American with nothing else to go on.
|
||||
The aircraft's own **country of registration** gets a flag too, beside the
|
||||
type and registration — from the register where one answered, and otherwise
|
||||
from the 24-bit address, which says by treaty who issued it.
|
||||
|
||||
**Every aerodrome under the picture is marked**, not only the ones being flown
|
||||
between: a receiver hears aircraft over its own county, and the county's
|
||||
airports are what say where on the map you are looking. They come from the
|
||||
same OpenStreetMap data the tiles are drawn from, asked as a question rather
|
||||
than a picture, once per area and kept for a month — a runway does not move.
|
||||
`--no-airports` turns it off.
|
||||
|
||||
The GIF is written here from first principles — a palette, an LZW stream, frame
|
||||
differencing with a transparent index — in the same spirit as the PNGs
|
||||
|
|
@ -1255,6 +1284,17 @@ on their own, `--tiles URL` points at another server (your own, if you run
|
|||
one), and when there is no network and nothing cached the picture falls back
|
||||
to the plain grid it drew before.
|
||||
|
||||
The map is drawn at the resolution it was fetched at, not stretched: tiles are
|
||||
averaged down to the picture rather than point-sampled, so lettering and roads
|
||||
stay whole instead of breaking up, and the window fetches enough pixels to
|
||||
cover its margin at full detail rather than enlarging what it has.
|
||||
|
||||
`--map-brightness PERCENT` (70 by default) is how far up its range the map is
|
||||
drawn. The ground has to stay dark enough that the aircraft are the brightest
|
||||
thing on the picture and light enough that a coastline can be made out at all,
|
||||
and which way to err depends on the screen you are looking at. In the window,
|
||||
`[` and `]` change it while it runs.
|
||||
|
||||
## Meters and weather sensors
|
||||
|
||||
Two things on the ISM bands are worth naming rather than reporting as hex.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue