Export

GPX exports the boundary only (tracks and routes), not polygons. Load density data to enable these.

Run an analysis first. The KML carries the visible and shadowed cells with the observer position.

Nothing to export from a reference screen. Pick a tool in the sidebar first.

Live traffic has nothing to export. Enable relay logging (ADSB_LOG=1) to record the feed to JSONL instead.

Population density

Draw a polygon or import a boundary, then load Output Area density. Excluding an area recalculates the figures below.

Boundary

Or draw a polygon on the map. Multiple files can be selected.

Data source

Optional CSV override; otherwise census data is requested.

No density data loaded.

Measured values come from Nomis TS006.

Actions

Results

Areas loaded
0
Excluded
0
Total population
-
Avg density
-
Max density
-
Max area
-

Persons per km². Excluded areas are omitted from the totals and from the exported boundary.

Output areas

Draw an area and load data to see Output Areas
Line of sight

Click the map to place an observer, set the heights, then run the viewshed. Green is visible ground, red is shadowed.

Observer

AGL adds the height to terrain at each point. AMSL is a flat altitude above sea level.

Analysis

Results

Observer positionNot set
Ground elevation-
Points analysed-
Visible area-
Coverage-

Flight paths

GPX, KML or GeoJSON tracks. Use single or polygon for a closed operating area — legs fragments coarse boundaries.

Terrain analysis

Finds the highest terrain within the corridor either side of each flight path.

Live traffic

Polls the local relay bridging the LAN ADS-B receiver to this page. Focus an aircraft to keep its track and its last known values.

Feed

Observer not set — go to Line of sight and click on the map.

Run python relay.py on this machine first.

Feed status

StatusStopped
Aircraft visible-
Last update-

Blue is ADS-B, mid grey is MLAT; a hollow diamond means the heading is unknown. Click an aircraft and press Focus to track it — the focused aircraft is drawn in orange and keeps its last known position, altitude, speed and heading if the signal is lost. Polling continues across screens until you press Stop.

Data sources

Where the figures on each screen come from. Everything is fetched live in the browser; nothing is stored server-side.

England & Wales

BoundariesONS Output Areas 2021
PopulationCensus 2021 TS006

Boundaries from the ONS Open Geography Portal, capped at 5,000 features per request. Measured density needs a TS006 CSV from Nomis; without one the tool estimates.

Scotland

BoundariesCensus 2022 Output Areas
PopulationCensus 2022, all people

An ArcGIS-hosted service carrying 2022 Output Area boundaries and their counts together, fetched in batches of 2,000 up to a 10,000-feature safety limit.

Terrain

ElevationTerrarium terrain tiles
CacheIn memory, this session

Used by line of sight, height variance and terrain analysis. See Terrain data for what is fetched and how long it is kept.

Live traffic

FeedLAN ADS-B receiver
Bridgerelay.py on 127.0.0.1

This page is served over HTTPS, so it cannot read plain HTTP hosts other than 127.0.0.1. The relay bridges the receiver into that origin.

Terrain data

Elevations are read out of Terrarium terrain tiles rather than queried point by point. A tile covers a whole neighbourhood of sample points, so an analysis usually costs a handful of requests.

Source

TilesTerrarium, AWS open data
Zoom12 ≈ 30 m per pixel
CacheIn memory, this session

Notes

Tiles are held in memory for as long as the page is open, so a second analysis over ground you have already covered costs nothing. Reloading the page discards them — there is no persistent store, and nothing terrain-related is written to disk.

Sampling resolution is the tile resolution: features narrower than about 30 m will not appear in a viewshed.

Loading data...