ADS-B Exposed
https://github.com/ClickHouse/adsb.exposed/
Show HN: ADS-B visualizer - https://news.ycombinator.com/item?id=39990346 - April 2024 (76 comments)
Please just give me a cURL command I can run... (perhaps some services have that, I haven't looked that hard).
(other sites are corporate or have sold out [adsbexchange], happy to contribute reasonable costs to get a feed, no affiliation, I just like sensor feeds, thank you for the offer and consideration)
This is sort of an example of what I'm talking about though, this script seems to install a bunch of random stuff but what I really want is an API to incorporate into our own recording process. As far as I can tell from a brief look, this binary (?) is downloaded from somewhere and run: https://github.com/airplanes-live/feed/blob/main/scripts/air... but I just want to incorporate it in the system we're using already when I finally get to improving it from a 10-minute hack job from when I set it up as a side project that ended up being really useful (https://arxiv.org/abs/2506.17522)
https://airplanes.live/hardware/
https://sdr-enthusiasts.gitbook.io/ads-b/ might also be of value.
[1] https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder/t...
Most of them will have port 30004 open for their ingest domain, usually feed.domain.com. Thus you'd hook up socat to 127.0.0.1:30005 (i assume you run dump1090 or readsb locally as a decoder). And make socat send that to feed.adsb.lol:30004 and/or feed.airplanes.live:30004
If you're in a remote location, you don't need to worry about mlat-client as MLAT requires at least 4 receivers that receive common aircraft.
It looks like readsb is an evolution of dump1090 with potentially more features? I'll look into it when we consider reworking our software. For now I added a quick socat and I'll find out soon if it worked (no planes currently over Summit...). It would be nice if these websites advertised "Start feeding from your running dump1090 instance with socat tcp:localhost:30005 tcp:foo.bar:30004, here is a systemd service that does that."
edit: it worked! airplanes.live now tracking QTR28V from Seattle to Doha.
But to conserve bandwidth, it might make sense to send through a compressed ssh tunnel to something not in the middle of the Greenland ice sheet.
most likely all you need is their "ultrafeeder" [1,2] image.
0: https://sdr-enthusiasts.gitbook.io/ads-b
1: https://sdr-enthusiasts.gitbook.io/ads-b/foundations/deploy-...
2: https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder
I've recently added more datasets, "Places", "Birds", "Photos", and "You".
Also, a hint - the rectangular selection tool lets you generate custom reports for a location.
But it is easy to figure it out from the source code. The source code is here: https://github.com/ClickHouse/adsb.exposed/blob/main/index.h...
For anyone who just wants to skip to the answer, I found it in the pull requests / issues: https://github.com/ClickHouse/adsb.exposed/issues/47
The PR introducing it is easier to read than the whole repo: https://github.com/ClickHouse/adsb.exposed/pull/48/files
Where is the bird dataset coming from? I assumed ebird at first, but these datapoints don't map on to ebird hotspots...
Also, where did you get the collection of creative commons licensed bird species photos?
https://adsb.exposed/?dataset=Planes&zoom=9&lat=38.2165&lng=...
https://adsb.exposed/?dataset=Planes&zoom=8&lat=29.7992&lng=...
+ There is an attribution in the top-down corner of the map.
Is "red" high or low velocity? And as an example, I do not understand what the "Boeing vs. Airbus" selection is trying to represent, as well as how "Altitude & Velocity" are supposed to be displayed at the same time.
Project certainly requires a bit more care if any discussion should happen around it.
count() AS total,
sum(desc LIKE 'BOEING%') AS boeing,
sum(desc LIKE 'AIRBUS%') AS airbus,
sum(NOT (desc LIKE 'BOEING%' OR desc LIKE 'AIRBUS%')) AS other,
greatest(1000000 DIV {sampling:UInt32} DIV zoom_factor, total) AS max_total,
greatest(1000000 DIV {sampling:UInt32} DIV zoom_factor, boeing) AS max_boeing,
greatest(1000000 DIV {sampling:UInt32} DIV zoom_factor, airbus) AS max_airbus,
greatest(1000000 DIV {sampling:UInt32} DIV zoom_factor, other) AS max_other,
pow(total / max_total, 1/5) AS transparency,
255 * (1 + transparency) / 2 AS alpha,
pow(boeing, 1/5) * 256 DIV (1 + pow(max_boeing, 1/5)) AS red,
pow(airbus, 1/5) * 256 DIV (1 + pow(max_airbus, 1/5)) AS green,
pow(other, 1/5) * 256 DIV (1 + pow(max_other, 1/5)) AS blue
SELECT round(red)::UInt8, round(green)::UInt8, round(blue)::UInt8, round(alpha)::UInt8
The redder the pixel, the more Boeing planes there.The greener the pixel, the more Airbus planes there.
The bluer the pixel, the more non-Boeing/Airbus planes there.
The less transparent the pixel, the more planes in total.
White means all planes fly there, yellow means Boeing and Airbus dominate, red means Boeing dominates, green means Airbus dominates, cyan means Airbus+others, magenta means Boeing+others, etc.
I wonder if that's a systemic difference in how they report their GPS position to ADS-B, or an actual real difference caused by slightly different autopilot systems, or something else?
Pick a flight you know (maybe one near yer home) and play with the options -- what patterns emerge? Red draws attention, “Boeing vs. Airbus” compares data, while “Altitude & Velocity” combines them. Explore hands-on; discovery often makes insights click better than instructions.
Little bit of trivia regarding the "strange hole near Mexico City"[1] from the README.
This is a 12-kilometer exclusion zone around the highly active Popocatépetl volcano to prevent incidents stemming from volcanic activity.
[1] https://adsb.exposed/?zoom=9&lat=19.1139&lng=261.3813&query=...
https://adsb.exposed/?dataset=Planes&zoom=10&lat=23.0304&lng...
And interesting spotted patterns around some air force training bases (Vance and Sheppard):
https://adsb.exposed/?dataset=Planes&zoom=7&lat=34.7605&lng=...
Not that the Aztecs had tea drinking, if only the Chinese treasure ships had connected up across the Pacific…
https://www.reddit.com/r/StrangeEarth/comments/1e476ob/weath...
The bigger issue is that in first world buying a sdr dongle for giggles is viable while in poor countries less so. A raspberry and dongle is a substantial investment if you’re earning 1/20th of a US salary. Don’t think there is an issue with willingness to share data
https://www.flightradar24.com/blog/most-wanted-receiver-loca...
This website (technology demo) allows you to aggregate and visualize massive amounts of air traffic data. The data is hosted in a ClickHouse database and queried on the fly. You can tune the visualizations with custom SQL queries and drill-down from 50 billion records to individual data records.
And I made a custom GPT that could translate natural language queries to Clickhouse's query language: https://chatgpt.com/g/g-GfJuwxZFt-ads-b-exposed-expert
Show HN: ADS-B visualizer - https://news.ycombinator.com/item?id=39990346 - April 2024 (76 comments)
For those wondering the license is a CC-NC-ShareAlike type
I tried to check the kind of flights they flew in the world's dangerous airport (Lukla, Nepal)[0] and found they use ATR-72 series.
[0] https://adsb.exposed/?dataset=Planes&zoom=12&lat=27.7136&lng...