ADS-B Exposed

11 hours ago (adsb.exposed)

https://news.ycombinator.com/item?id=39990346 - April 2024 (76 comments)

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 Popocatépetl volcano to prevent incidents stemming from volcanic activity.

[1] https://adsb.exposed/?zoom=9&lat=19.1139&lng=261.3813&query=...

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.

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/

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.

  • 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.

    • 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?

  • 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.

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.

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).

URL makes this sound like it’s supposed to be scandalous

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.

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.

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.

  • 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

  • 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?