[HN Gopher] ADS-B Exposed
       ___________________________________________________________________
        
       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)
        
       Author : keepamovin
       Score  : 261 points
       Date   : 2025-10-14 10:38 UTC (12 hours ago)
        
 (HTM) web link (adsb.exposed)
 (TXT) w3m dump (adsb.exposed)
        
       | blakesterz wrote:
       | It took me a little while to figure this out, but it's pretty
       | cool. Try the A-380 limit in the examples and it starts making
       | sense pretty quick.
       | 
       | Also, .exposed has been a TLD since 2014? I'm not sure I've seen
       | another .exposed site.
        
         | zparky wrote:
         | float.exposed is fun
        
       | amosj wrote:
       | previous discussion:
       | https://news.ycombinator.com/item?id=39990346
        
         | keepamovin wrote:
         | Nice find! The GitHub repo near the top of that thread is
         | great, too: https://github.com/ClickHouse/adsb.exposed
         | 
         | For those wondering the license is a CC-NC-ShareAlike type
        
         | dang wrote:
         | Thanks! Macroexpanded:
         | 
         |  _Show HN: ADS-B visualizer_ -
         | https://news.ycombinator.com/item?id=39990346 - April 2024 (76
         | comments)
        
       | sryNot_ wrote:
       | Issue with adsb is that very few outside Europe and the US share
       | their signals, so any app will have partial validity, unless you
       | use satellite feeds.
        
         | keepamovin wrote:
         | How to utilize sat feeds with open data? Across ADS-B track
         | data (like OpenSky Network) South America, Africa and Oceania
         | seem covered in addition to Europe and America, as does East
         | Asia, and India. But China, and some parts of Central Asia and
         | Middle East appear absent?
        
         | esseph wrote:
         | A lot of people running SDRs send beacon info upstream on the
         | internet.
        
           | themafia wrote:
           | If you're in a "wanted receiver location" then FlightRadar
           | will send you a free ADS-B receiver so you can add to their
           | dataset.
           | 
           | https://www.flightradar24.com/blog/most-wanted-receiver-
           | loca...
        
         | Havoc wrote:
         | Last I looked at it coverage is pretty good for land globally?
         | Sea less so.
         | 
         | 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
        
         | computerfriend wrote:
         | I have had no problem accessing ADSB data for various parts of
         | Asia.
        
       | ronbenton wrote:
       | URL makes this sound like it's supposed to be scandalous
        
         | keepamovin wrote:
         | I know! I think the creator, brilliant as they must be, is not
         | an English native speaker. Or perhaps they simply enjoy the
         | controversy / provocation heh :)
        
           | kevinsundar wrote:
           | Eh I think the name kinda works from the perspective that it
           | exposes patterns in adsb data. If you just glanced at adsb
           | maps you wouldn't really see many of these patterns unless
           | you stared at it for a very long time.
        
           | ascorbic wrote:
           | I think it's just a fun tld with the "adsb" domain available.
        
         | lelandfe wrote:
         | "ADS-B Massive Visualizer" is the right title per
         | https://github.com/ClickHouse/adsb.exposed
        
       | dkenyser wrote:
       | Very cool project.
       | 
       | 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
       | Popocatepetl volcano to prevent incidents stemming from volcanic
       | activity.
       | 
       | [1]
       | https://adsb.exposed/?zoom=9&lat=19.1139&lng=261.3813&query=...
        
         | dylan604 wrote:
         | that's interesting how it's not really centered like my mind
         | assumed it would be
        
         | adolph wrote:
         | Another strange hole over Havana
         | 
         | 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=...
        
           | Titan2189 wrote:
           | Say whaaaaat?
        
         | themafia wrote:
         | Area 51 similarly stands out in Nevada.
        
         | zeristor wrote:
         | I wish there was an Aztec goddess of tea drinking called
         | Pollyputthekettleon.
         | 
         | Not that the Aztecs had tea drinking, if only the Chinese
         | treasure ships had connected up across the Pacific...
        
       | lexlambda wrote:
       | This is certainly missing some kind of legend explaining the
       | colors of the lines, and what data is actually shown.
       | 
       | 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.
        
         | keepamovin wrote:
         | I see you highlight that, but I believe the visualization is
         | designed to be intuitive once you interact with it a bit--no
         | legend stricty needed if you calibrate against what you already
         | know.
         | 
         | 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.
        
         | amiga386 wrote:
         | Boeing vs Airbus:                   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.
        
           | cameronh90 wrote:
           | Around Heathrow at least, there seem to be a few paths where
           | Airbus and Boeing both fly, but seem to be reporting slightly
           | different offsets within that path.
           | 
           | 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?
        
       | zX41ZdbW wrote:
       | Thanks for posting!
       | 
       | 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.
        
         | etskinner wrote:
         | What is "You"? I tried reading the query to understand but
         | couldn't figure it out
        
           | zX41ZdbW wrote:
           | I'd like it if you try to guess :)
           | 
           | But it is easy to figure it out from the source code. The
           | source code is here: https://github.com/ClickHouse/adsb.expos
           | ed/blob/main/index.h...
        
             | dkenyser wrote:
             | Interestingly it seems to line up quite well with
             | population density maps.
        
             | etskinner wrote:
             | Apparently my 'easy' isn't the same as yours. There's
             | nothing I could find in the code that describes what it is.
             | You'd have to make a pretty big logic leap to figure it
             | out. All you can see in the code (in config.js, not in
             | index.html) is the dataset url (random string) and the
             | description "this website", which tells you very little.
             | 
             | 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
        
           | mcpherrinm wrote:
           | It appears to be where "you" (website visitors) have loaded
           | page tiles. I was able to draw a little picture on the map by
           | zooming in and panning around!
           | 
           | The PR introducing it is easier to read than the whole repo:
           | https://github.com/ClickHouse/adsb.exposed/pull/48/files
        
         | keepamovin wrote:
         | Haha, great! Honestly where did you get some of these datasets?
         | Birds????? :)
        
           | zX41ZdbW wrote:
           | A writeup: https://clickhouse.com/blog/birds
           | 
           | + There is an attribution in the top-down corner of the map.
        
         | metrix wrote:
         | what's going on around colorado springs with these shapes?
         | 
         | https://adsb.exposed/?dataset=Planes&zoom=9&lat=38.2165&lng=...
        
           | compass_copium wrote:
           | Possibly training flights; they will often do racetrack
           | shapes like that for long periods to maintain proficiency
           | with the aircraft type.
        
           | cluckindan wrote:
           | The "race tracks" are left- and right-hand traffic patterns
           | for arriving aircraft and touch-and-go training, typically
           | used by smaller aircraft. The polylines going from airport to
           | the surroundings are IFR (instrument flight rules) STARs
           | (standard terminal arrival routes) for inbound/outbound
           | planes; each vertex in the line corresponds to a so-called
           | navigation star which usually has a 5-letter name.
        
         | CamperBob2 wrote:
         | Awesome work, but please consider providing some contrast
         | options. You can't see the country or continent boundaries
         | unless they are full of tracks (or at least I can't.)
        
         | bwestergard wrote:
         | This is super cool.
         | 
         | 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?
        
           | zX41ZdbW wrote:
           | The main birds dataset is from eBird, and the photos are from
           | Wikipedia.
        
       | cozzyd wrote:
       | We have a an ADS-B receiver at Summit Station in Greenland which
       | we use to track airplanes that produce RFI we see in our
       | experiment. I've considered sharing data (since nobody else seems
       | to have data there) but the feeding instructions always scare me
       | (run this script that downloads a bunch of random crap as sudo...
       | no thanks).
       | 
       | Please just give me a cURL command I can run... (perhaps some
       | services have that, I haven't looked that hard).
        
         | NoiseBert69 wrote:
         | ADS-B is easy to receive with an 'rtlsdr' and opensource tools.
        
           | cozzyd wrote:
           | Yeah we are receiving it and dumping it into a sqlite
           | database per day, but we're not sharing it.
        
         | rootusrootus wrote:
         | You can get containerized feeders for services like fr24 (e.g.
         | liggy1/fr24feed) but that may not meet your requirements since
         | it's really intended to handle everything from the sdr to the
         | API, not siphon off data you are collecting some other way and
         | then feed it.
        
           | cozzyd wrote:
           | Yeah I definitely don't want to run an opaque container
           | either. We're already collecting and storing the data... I am
           | happy to throw the data over via a udp socket or http
           | request, but I don't want random software that we don't
           | control running...
        
             | jonah-archive wrote:
             | I had the same concerns awhile back and ending up running a
             | slightly modified version of
             | https://github.com/wiedehopf/mlat-client -- not quite as
             | simple as an http push, but much simpler than a
             | containerized feed client.
        
         | toomuchtodo wrote:
         | https://airplanes.live/get-started/
         | 
         | (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)
        
           | cozzyd wrote:
           | I appreciate the information! And yes, the fact that most
           | sites are corporate makes me really distrustful of running
           | random scripts from them.
           | 
           | 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)
        
             | toomuchtodo wrote:
             | I have to dive in a bit more to give good and specific
             | guidance/context, but fundamentally, your system will
             | require a shim to "speak" $UAT_SOURCE and the output this
             | would expect, assuming the source was an sdr. Want help
             | writing the code for this? Specs to build requirements
             | RNO-G in -> SDR out are welcome.
             | 
             | https://airplanes.live/hardware/
             | 
             | https://sdr-enthusiasts.gitbook.io/ads-b/ might also be of
             | value.
        
               | cozzyd wrote:
               | yes, we have an SDR running some form of dump1090, then
               | we are parsing json output from that and sticking it in a
               | local sqlite database (we cycle databases once per day).
               | Then that sqlite database eventually gets copied down.
               | There are plans to improve our system to read a bit more
               | directly but on low priority. It looks like these tools
               | expect some format called BEAST that maybe can already be
               | generated by dump1090, and then it's just a TCP stream to
               | some endpoint?
        
               | rufo wrote:
               | Pretty much that. The SDR enthusiast's docker guide the
               | parent comment linked to uses this ultrafeeder container,
               | which has instructions on how to connect directly to
               | dump1090 running on a port. Pairing that[1] plus the rest
               | of the guide instructions should get you a decent ADS-B
               | setup that can feed any of the services you might want -
               | and if you don't want to use the Docker container(s), you
               | should be able to at least use the services and
               | configuration they use as a guide.
               | 
               | [1]: https://github.com/sdr-enthusiasts/docker-adsb-
               | ultrafeeder/t...
        
               | cozzyd wrote:
               | Can ... I just use socat? It looks like maybe dump1090
               | already might output data in the right format...
        
           | ikmckenz wrote:
           | What's the story behind adsbexchange selling out?
        
             | toomuchtodo wrote:
             | https://old.reddit.com/r/ADSB/comments/10l2euc/adsb_exchang
             | e...
             | 
             | https://www.jetnet.com/resources/press-releases/jetnet-
             | acqui...
             | 
             | https://old.reddit.com/r/ADSB/comments/17pq14p/best_adsb_fl
             | i...
             | 
             | https://www.documentcloud.org/documents/23963235-golden-
             | hamm...
        
         | btreesOfSpring wrote:
         | Check out https://adsb.im
        
         | evil-olive wrote:
         | sdr-enthusiasts [0] produces some very nice self-contained
         | Docker images as an alternative to the `curl | sudo bash` style
         | of install script that plagues a lot of the ADSB ecosystem.
         | 
         | 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
        
         | jjwiseman wrote:
         | It's good to be careful. A popular ADS-B network used to
         | distribute a raspberry pi image that let the maintainers ssh
         | into your machine whenever they wanted.
        
       | pradeepchhetri wrote:
       | Very cool project indeed!
       | 
       | 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...
        
       | nickysielicki wrote:
       | I love how you can clearly make out the VFR EAA approach going
       | into Oshkosh from Ripon. It's only one week out of the year, but
       | there's so much traffic in that week that it still stands out.
        
       | paulirish wrote:
       | Over in r/ADSB, someone recently posted a 3D visualizer of live
       | ADS-B data: https://objectiveunclear.com/airloom.html. A nice
       | alternative to the standard 2D maps we're used to.
        
         | ctippett wrote:
         | Reminds me of the galaxy view in No Man's Sky. Very cool. It's
         | also the type of visualisation I'd imagine would be perfect
         | seen through the lens of a Vision Pro or similar.
        
       | jmux wrote:
       | this is super cool!
        
       | scrozier wrote:
       | Eschew abbreviations!
        
       | madethemcry wrote:
       | I missed the "About" link in the footer but still found my way to
       | the repo [1], where the project is briefly explained including a
       | ton of great example images. Thanks for that!
       | 
       | > 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.
       | 
       | [1] https://github.com/ClickHouse/adsb.exposed/
        
         | dang wrote:
         | Thanks! we'll put the repo link in the toptext too, along with
         | the Show HN from last year:
         | https://news.ycombinator.com/item?id=45583734
        
       | swills wrote:
       | Highlighting an area, I see in the sidebar: Time: 2022-02-01
       | 00:09:20.136 -- 2023-12-07 22:46:41.480. Would be nice if it had
       | newer data.
        
       | jjwiseman wrote:
       | Back when this first launched, I said it was like writing webgl
       | shaders for ADS-B with SQL.
       | 
       | 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
        
       ___________________________________________________________________
       (page generated 2025-10-14 23:00 UTC)