7 ms·
Show HN: ADS-B visualizer
I've created a web app for querying and visualization of ADS-B datasets: https://adsb.exposed/ https://adsb.exposed/
Source code: https://github.com/ClickHouse/adsb.exposed/ https://github.com/ClickHouse/adsb.exposed/
The results significantly exceeded my expectations because the pictures are insanely beautiful, and the data is a treasure trove.
It proves many statements that were not certain:
- it is feasible to generate tiles by aggregation on a pixel level (instead of hexagons or rectangular grid);
- it does not require JPG/PNG tiles - we can transfer raw bitmap data with zstd compression;
- it is possible to do it in real time;
- systemz 3y agoHi, thanks for sharing! Unfortunately besides empty map I don't see any visualization. Browser dev console is showing some CORS errors. EDIT: Nevermind, clickhouse.com was on disconnect's ad blocking list which I used for DNS blocking.
- parker-3461 3y agoIt seems to be all working on my end though.
- zX41ZdbW 3y agoWe bought clickhouse.com from the previous owner 2.5 years ago, who used it for some ad network - it was in some block lists, but I hope we managed to clean up most of them.
- tamimio 3y agoStill blocked in Disconnect list due to “Malvertising”
- rrix2 3y agoI'm not sure that list should be used any more. I tracked down a pihole issue a while ago to find this "The list you referenced was used in our legacy products. It is not maintained, has not been updated, and is not actively distributed us." https://www.reddit.com/r/pihole/comments/wtizpa/deprecation_of_disconnectme_adlists_recommended/ https://www.reddit.com/r/pihole/comments/wtizpa/deprecation_... (ETA: https://github.com/disconnectme/disconnect-tracking-protection/issues/171 https://github.com/disconnectme/disconnect-tracking-protecti...)
- tamimio 3y agoInteresting, thanks for the heads up, just had it removed.
- Solvency 3y agofully empty map on iOS safari for me.
- culebron21 3y agoFirefox, no map either. Tried all combinations of adblocker & VPN on/off, refreshing the map. Saw couple of tiles for a brief moment, then they disappeared, and I never saw them again.
- culebron21 3y agoTurns out the tiles showed up always, but couple minutes later.
- panki27 3y agoWow, this is beautiful! I predict this will get a hug of death $soon
- zX41ZdbW 3y agoI keep the dashboard open :) So far ok with ~2000 QPS.
- windexh8er 3y agoThis is really cool when you dig into how much fidelity there is here. Also, a fantastic marketing campaign for Clickhouse! As for the dataset - is this continually updated or how "fresh" is it at any given moment?
- zX41ZdbW 3y agoThere are two data sources: adsb.lol and adsbexchange. The first is updated each day from https://github.com/adsblol/globe_history_2024 https://github.com/adsblol/globe_history_2024. The second should be updated each month (they provide only sample data for the first day of each month), but I still have to put it in cron. The update scripts are also open-source, published here: https://github.com/ClickHouse/adsb.exposed/blob/main/prepare-data.txt https://github.com/ClickHouse/adsb.exposed/blob/main/prepare...
- underyx 3y agohttps://adsb.lol https://adsb.lol provides this data licensed under ODbL, this site violates the attribution and share alike clauses
- zX41ZdbW 3y agoYou can find the attribution and the link to the details at the bottom right corner of the main page. It links to the documentation: https://github.com/ClickHouse/adsb.exposed https://github.com/ClickHouse/adsb.exposed, which provides the full details. Additionally, you can read the license here: https://github.com/adsblol/globe_history_2023/blob/main/LICENSE-cc0.txt https://github.com/adsblol/globe_history_2023/blob/main/LICE...
- oq1ik6631rldh00 3y ago[dead]
- dirkhh 3y agoI find it super frustrating to see well funded tech companies boldly abuse open data resources and assume they can just get away with it. I guess that's the theme of 2024. But to make it clear: you are in violation of the license the data is provided under, and as one of the copyright holders I object to that.
- zX41ZdbW 3y agoCould you please clarify the details? I took extra care to provide all the needed attributions and credits and I believe it is complete and sufficient. If I missed something, please describe it at https://github.com/ClickHouse/adsb.exposed/issues https://github.com/ClickHouse/adsb.exposed/issues, and I will correct it.
- dirkhh 3y agoplease read the license and its requirements. It is YOUR responsibility to comply with those requirements in order to be allowed to use the data. It is ridiculous that a well funded company asks a volunteer community to tell them how to comply with the license - after they have violated the license and used it for a marketing stunt.
- johtso 3y agoThis is beautiful! Definitely worth looking at the examples in the Github repo: https://github.com/ClickHouse/adsb.exposed/ https://github.com/ClickHouse/adsb.exposed/ I particularly like the example of helicopters following the river Thames in London: https://github.com/ClickHouse/adsb.exposed/?tab=readme-ov-file#in-london-helicopters-fly-over-the-river https://github.com/ClickHouse/adsb.exposed/?tab=readme-ov-fi...
- neilv 3y agoImpressive. Though, for one of the examples, set in an area with active military conflict, I wondered whether the information is new and useful to anyone involved.
- _djo_ 3y agoNah. This data is all publicly available already and easily accessible for any motivated nation state. Who, if they're in the area, would also be able to use their own receivers and radars in any case.
- H8crilA 3y agoMilitary planes that show up on ADS-B do so for either of the two reasons (or both): a) to make civilian air traffic control life easier b) as (strategic) signalling - this applies for example to NATO tankers and electronic intelligence platforms flying over the Eastern Flank. Remember, you want your opponent to know how you can potentially hurt them if things go bad, that's the basis of deterrence. This is why for example certain aspects of nuclear weapon systems are completely out in the public.
- _djo_ 3y agoYes, though there's also another reason: c) Safety, being open about the flightpaths of tankers and intelligence-gathering aircraft flying in international airspace near those areas reduces the ability of Russia to claim they weren't informed or that the aircraft strayed into restricted airspace. That means a lower probability of incidents, though it's still not completely safe as demonstrated in 2022: https://www.bbc.com/news/uk-66798508 https://www.bbc.com/news/uk-66798508
- JosephRedfern 3y agoVery pretty! As it happens, I too have started ingesting ADS-B Data into ClickHouse recently, but have nothing nearly as beautiful as this. I'm hitting the airplanes.live API every 10 seconds using ClickHouse's URL table function and storing in a MergeTree: https://github.com/JosephRedfern/airhoover/blob/main/airhoover/__main__.py https://github.com/JosephRedfern/airhoover/blob/main/airhoov.... Would love to use refreshable materialised views for this, but at the moment there's no append functionality (refresh only), so have to use Python to to trigger the query. There's an open instance here: https://airhoover.joesstuff.co.uk/play?user=default#U0VMRUNUIENPVU5UKCopIEZST00gYWlyY3JhZnRfdHJhY2tpbmc= https://airhoover.joesstuff.co.uk/play?user=default#U0VMRUNU.... Only 1.5 days or so of data, I truncated before setting up tiered storage (local disk + backblaze b2). Cool being able to e.g. get a break-down of aircraft type by operator (https://airhoover.joesstuff.co.uk/play?user=default#U0VMRUNUIG93bk9wLCBkZXNjLCBjb3VudChkaXN0aW5jdCByKSBhcyBwbGFuZXMgRlJPTSBhaXJjcmFmdF90cmFja2luZyBXSEVSRSBvd25PcCBpcyBub3QgbnVsbCBHUk9VUCBCWSBvd25PcCwgZGVzYyBPUkRFUiBCWSBwbGFuZXMgREVTQyBMSU1JVCAyMA== https://airhoover.joesstuff.co.uk/play?user=default#U0VMRUNU...) or who (supposedly) flies their planes fastest (https://airhoover.joesstuff.co.uk/play?user=default#U0VMRUNUIG93bk9wLCBkZXNjLCBxdWFudGlsZSgwLjk5KShpYXMpIGFzIGlhc185OV9xdWFudGlsZSBGUk9NIGFpcmNyYWZ0X3RyYWNraW5nIFdIRVJFIG93bk9wIGlzIG5vdCBudWxsIEdST1VQIEJZIG93bk9wLCBkZXNjIEhBVklORyBjb3VudChkaXN0aW5jdCByKSA+IDEwIE9SREVSIEJZIGlhc185OV9xdWFudGlsZSBERVNDIExJTUlUIDIw https://airhoover.joesstuff.co.uk/play?user=default#U0VMRUNU...)
- kqr 3y agoWow. I have no idea what I'm looking at but it's pretty. And I do recognise the extended centrelines of local runways, as well as the typical instrument approach tracks into them! Edit: Having read the readme, I have a better idea of what I'm looking at. Really impressive technically as well.
- mmaunder 3y agoIm surprised to see military traffic over the US. They tend to fly with ADSB out turned off and have an agreement with FAA to be able to do that. Also surprised to see gliders who generally don’t broadcast ADSB out. In the US, we are required to have ADSB out within most controlled airspace and within the mode C veil of a major airport (within 30nm and up to 10,000 MSL). So most GA planes have it but remote areas have planes without ADSB out.
- nick238 3y agoFor general transport/rebasing, it seems like it would just make life easier on air traffic controllers, and probably also other traffic in the air (I think TCAS uses ADS-B?). By way of analogy, the military might have permission to drive around at night with their lights off, but it'd make me more comfortable if they did that only when it was operationally useful (i.e. I assume B-2s taking off from Missouri to go bombing have transponders off the whole way.)
- larrywright 3y agoOne of the "tells" for military aircraft flying without ADSB is when you see refueling tankers (KC-135) doing loops for periods of time, and no other military aircraft around. Those tankers are refueling something, they don't just fly around for grins.
- dramm 3y agoMilitary aircraft operators in the USA are pretty cautions about non-ADS-B Out or non-transponder operations. Air Force bases etc. will have active MACA (Mid-Air Collision Avoidance) programs, with aircraft and controllers working to reduce conflict potential with civilian traffic. Many bases will have MACA information on their web sites and staff to contact, and they are typically very responsive. Ironically the ones I have worked with were trying to encourage more civilian GA aircraft to adopt transponders, and to utilize the flight following services of their ATC/RAPCON. TCAS uses active transponder interrogation from the TCAS unit interrogating a threat target's Mode-C or Mode-S transponder. TCAS only uses ADS-B In in an indirect way, in large part to acquire traffic in the area that is not yet a threat, and reduce it's RF congestion caused by excessive interrogation, especially of legacy Mode-C targets. A TCAS II system will fly you right into say a UAT out equipped aircraft without issuing an RA (resolution advisory) if that threat aircraft has no transponder or an inop transponder. TCAS II only issuing an RA based on active interrogation of a threat aircraft's transponder is a kind of safety feature given the potential spoofing of ADS-B Out data.
- yegle 3y agoSometimes I feel lucky that human's electromagnetic spectrum perception is very limited to the so called "visible spectrum". Imaging alien species that evolved to perceive a wider electromagnetic spectrum, the earth must look like a disco ball when their spaceship approaches.
- kqr 3y agoMuch like we're lucky to have eyes that happen to see the sun's strongest frequencies?
- throwaway743 3y agoThis is fantastic!
- nickphx 3y agoIs it possible to export a report of traffic by a selected region?
- zX41ZdbW 3y agoYes, it is possible to connect to the database directly and run an arbitrary query. Example: $ clickhouse-client --user website --host kvzqttvc2n.eu-west-1.aws.clickhouse-staging.com clickhouse-cloud :) SELECT t, desc, count() AS c FROM planes_mercator_sample100 GROUP BY ALL ORDER BY c DESC LIMIT 10 ┌─t────┬─desc────────────────────────────┬────────c─┐ 1. │ B738 │ BOEING 737-800 │ 51530781 │ 2. │ A320 │ AIRBUS A-320 │ 37196762 │ 3. │ C172 │ CESSNA 172 Skyhawk │ 20049393 │ 4. │ A321 │ AIRBUS A-321 │ 19983151 │ 5. │ A20N │ AIRBUS A-320neo │ 14938832 │ 6. │ B38M │ BOEING 737 MAX 8 │ 14200826 │ 7. │ B737 │ BOEING 737-700 │ 13929403 │ 8. │ A319 │ AIRBUS A-319 │ 13906164 │ 9. │ E75L │ EMBRAER ERJ-170-200 (long wing) │ 12006441 │ 10. │ A21N │ AIRBUS A-321neo │ 10965047 │ └──────┴─────────────────────────────────┴──────────┘ Add FORMAT CSV to output in CSV (or any other format). To obtain an SQL query for a particular region, you can open the browser dev tools (F12), switch to Network, and copy a particular request that is made when you select an area with the rectangle selection tool.
- nickphx 3y agoAh very nice, thank you kind internet friend.
- j1897 3y agoSuper cool! Visually dazzling. If you want to build something similar on a raspberry pi, here is a tutorial: https://questdb.io/blog/create-flight-radar-raspberry-pi-questdb/ https://questdb.io/blog/create-flight-radar-raspberry-pi-que...
- deleted 3y ago[deleted]
- consumer451 3y agoThe one glider path over the LAX area is interesting. What was going on there?
- sllabres 3y agoI think what you see is CIVIL AIR PATROL and CIVIL AIR PATROL INC Types: GLID (SGS 2-33A) Flights: N7589, N2037T Registration: N7589, N2037T When you select the dottet square button in the lower left and select a rectangle the planes within this rectangle are listed Very interesting project!
- consumer451 3y agoOh, thanks. I somehow missed that UI. The glider I was thinking about is actually N914SF, a Pipistrel Sinus. That's a motorized glider, which makes a lot more sense flying though Class D airspace, right above LAX.
- jjwiseman 3y agoIt's like writing webgl shaders for ADS-B. In SQL. Incredible work, and I hope this kicks off a lot of innovation in the world of aircraft traffic analysis & visualization, which I think has been kind of stuck in a rut for a while.
- spdustin 3y agoThe "strange hole near Mexico City" example in the Github repo's README is another volcano.
- ptero 3y agoThis is fantastic! Is the airplanes.live related to ADS-B exchange or is this an unrelated effort?
- swozey 3y agoI'm evidently the only person who has no idea what in the world this is or where the data comes from other than clearly being some flight/vehicle data HN has such a unique group of people https://en.wikipedia.org/wiki/Automatic_Dependent_Surveillance%E2%80%93Broadcast https://en.wikipedia.org/wiki/Automatic_Dependent_Surveillan...
- aendruk 3y agoThe image loading/rendering is fascinating, beginning grainy and then smoothing with time. Can you elaborate on what’s happening?
- ryadh 3y agoThe readme contains a lot of the implementation details: "We use three different tables with different levels of detail: planes_mercator contains 100% of the data, planes_mercator_sample10 contains 10% of the data, and planes_mercator_sample100 contains 1% of the data. The loading starts with a 1% sample to provide instant response even while rendering the whole world. After loading the first level of detail, it continues to the next level of 10%, and then it continues with 100% of the data. This gives a nice effect of progressive loading."
- mvkel 3y agoThis is arrestingly beautiful. I kind of want to get a print or two of some of these. Even the color choices are magnificent
- aeternum 3y agoThe detail is amazing, you can see down the the individual tiedown rows at many small airports.
- widforss 3y agoHow do it get ADS-B data from over the oceans? I guess it isn't satellite (which I now is used for actual tracking) since there is obviously a lot less lines over the oceans (but lines nonetheless).
- _djo_ 3y agoThere are satellite ADS-B receivers and some of that data makes its way to public aggregators. https://www.icao.int/SAM/Documents/2014-SAMIG13/02%20NavCanada%20ADSB%20S.pdf https://www.icao.int/SAM/Documents/2014-SAMIG13/02%20NavCana...
- everybodyknows 3y ago> tiles by aggregation on a pixel level Not sure I'm understanding this. Is a "tile" then 1x1 pixels in size? If so, does the server maintain a pixel-addressable cache of the 1x1 tiles?
- _a_a_a_ 3y ago@Author: the link has huge pictures shown small, pre-shrinking them would be good. There's 85MB for 36 images, a lot of bandwidth wasted.