Just wondering what kind of UIs you have made yourself utilizing dump1090-fa jsons?
Basically I’m just looking for some more ideas to my own tiny little UI-project
This is what I have made during some spare time on last couple weekends using a very quick and very dirty method. I have just writing a plain javascript in a single html without thinking much and without cleaning it almost at all. It’s maintainable for a while since there’s only about 700 lines in it, but before I start to clean the code up (if I just have time), it would be good to stop for a while and think ahead too
Currently the map is manipulated with leaflet and it’s based on Mapbox / OpenStreetMap, the altitude graph is just plain HTML5 canvas and so is the sort of FD mock-up shown when hovering mouse over the aircraft callsign. So it’s very basic stuff and definitely not pretty code, but works for me
Thanks for your kind words to both of you! @triggers, I think an optional filter by the map zoom level using map center coordinates would be one possible option to overcome the issue of high number of the flights in the FL-indicator (and maybe that would be applied to the whole list too). That could be somewhat easy to implement. Thanks for pointing that out!
Thanks @ethereali! I quickly added it to here. As said, it’s very, very dirty one and contains bugs and unfinished features. So no warranties, support etc. at all I’ll try to update & fix it at some point, but I’m currently just very busy…
Along side of the filtering, I managed to have some time to add supplementary receiver option also to this, which is basically using second receiver data to add missing values the primary receiver might not have. The clean-up of whole thing is still pending though.
Just in case someone would be interested in this, I’ve added some more features to this recently, e.g. weather map overlays (wind, clouds & rain) from OpenWeatherMap and filters & adjustment regarding those, airport & runway lists, landing / departing detection (not necessarily in very good shape yet) and some extra information of flight (ATC radio callsigns). Still no cleaning up made for the code, I’ve been concentrating more to new features - quite lazy from me, but since this is just for fun and not for work, I don’t care just yet
Current features:
OpenStreetMap (using Leaflet) displaying:
Aircraft position
Aircraft heading/track with a line which end point is in a position where the aircraft would be in one minute if the speed and and track would be the same
Toggle on & off to refresh the runways displayed (dragging the map or zooming out won’t refresh automatically those yet)
Bigger (over 8000ft) runways are drawn with magenta color in the map and highlighted in blue background in the runway list under the map
Also the bigger airports (with over 8000ft runways) are used to detect if and aircraft is landing or departing to or from it. Must be within 30 miles of the airport, under 1000ft of alitude and descenting or climbing in certain rate
List of the aircraft information from primary receiver added by the information for supplementary receiver
Columns:
Callsign - hover mouse over to either display FD mockup and/or extra information:
ICAO hex number
Aircraft company name
ATC resolved call sign (used in radio communications)
Cat - A category of the aircraft, hover mouse to check explanation
Track - a heading of the aircraft, hover mouse to check aircraft’s current Roll, A/P set heading, altitude and QNH
Squawk code - hover over for the same information as in callsign (useful when FD display enabled)
Alt - an altitude of an aircraft in feet
Rate - Climb/descent rate in feet/min
GS - Ground speed
TAS - True air speed
Dist - Distance from the primary (or supplementary, if no primary position information available) receiver in kilometers
RSSI - signal level of last message (not only position messages), if over -3 dBi, background will be red (a bit too strong signal)
Seen - seconds from the last message received, if over 15s, the data will be in red, if over 60, the data will have red strike through line
Msgs - number of all the messages received for this aircraft
Recvd - Primary + Supplementary label shown respectively which has information of this aircraft, greened label for which has the position information
L/D - Possibly landing or departing aircraft detected - hover to check which airport and click to scroll to runway description of given bigger airport
In general, if primary receiver information lacks of some information, the supplementary information will be used
If position is not known by the primary receiver, the possible supplementary receiver position information is used
I’ve made some more updates to this monitor and added e.g. live receiver distance / direction meter (looking like an antenna gain map) and minimum altitude / distance graph. The latter one though is most probably not that useful, but I think the distance / direction meter (or reach meter or what-ever-it-should-be-called) might prove to be somewhat useful in future when experimenting with antennas. I guess time will tell if so. Also finally had a bit time to separate the javascripts in respective files and transferred styles into a CSS -file. Some bugs still exists, but it seems to be just too fun to make new features instead of fixing bugs
Thanks @LFBDBORDEAUX! Yeah, I have considered to add a sort of a full screen map feature at some point, but so far I wanted to add some other features first. Also, unfortunately the style in general is not responsive at all (i.e. adapting to browser device screen sizes), but changing that would require quite a lot of time from me since I’m not by any means a front end web developer
As a sort of a hack you could try to modify the #mapid style height and width values in map_monitor.css. You also might want to alter & experiment the other styles too in order to get e.g. runway/airport list table to same width.
I just quickly added also a cumulative list of the flights grouped by the company under the altimeter graph section.
Now I’m beginning to worry a bit about the performance of all this since there’s now quite a lot of memory intensive lists, not at all optimized array handling etc. For me in Finland and with not-so-great performing receivers it seems to work ok, but I’m not really sure how does it perform with well-built receivers and/or crowded places.
I’m just wondering if someone could please test if it works at all with “normal” load? (Or anyways working at all? ) I would really appreciate it
What’s “normal”? I just set it up, at midday on a rainy Saturday I am bouncing around between 40-75 planes, and a message rate around 300.
I unzipped to a folder on a new-ish Macbook Pro, edited my details into the config.js file, and opened the map-monitor.html in Chrome. I am finding it to be a little bit jittery on launch, but fairly smooth after that.
Issues that I ran into:
I apparently forgot the difference between latitude and longitude when I entered my data. Map centering was (obviously) screwed up. Clearly my own fault.
For some reason it won’t communicate with my FlightFeeder 978. I tried to set it up as a secondary receiver so that local GA aircraft would be included in the data, but I get a recurring “ADSB 2 Fail” message. This is probably caused by the FlightFeeder itself, as I can’t get it to feed to VRS either, and all of the normal ports seem to be closed.
Runways isn’t working. I get a “Runways Fail” message. The .csv file exists in the folder, and I can see where it is being called by runways.js, but no dice. Not sure where to look.
I am probably going to have to mess around with your .css. The tiny fonts in red/blue/yellow on the dark background is a little bit tough on my old eyes. Also, lots of wasted space on my screen.
It probably wouldn’t hurt to mention that the api key issued by openweathermaps takes some time to activate (in my case, about an hour). I spent most of that hour trying to troubleshoot the reason I was getting errors for wind/rain/clouds
The purpose of the “label” setting in the config wasn’t immediately clear to me (made worse by not being able to get my FlightFeeder to work), but it seems to be an arbitrary name assigned in order to tell them apart, and in your use case you call them W for west and E for east? I changed mine to “main” and “978” and they seem to display correctly in the columns. Doesn’t look like there is space for anything much longer though.
Ok, figured out part of why my FlightFeeder wasn’t working. The aircraft.js file has the path to the aircraft.json file hard coded to “http:///dump1090-fa/data/aircraft.json”.
Two issues with this:
dump1090-fa is being depreciated, and should be replaced with ‘skyaware’. Tried to edit this, but there seems to be a small difference (missing carriage return?) between the aircraft.json files returned. Haven’t taken the time to explore further.
978 feeders don’t use dump1090 or skyaware. Depending on the version, it needs to be changed to either ‘dump978-fa’ or ‘skyaware978’. In my case I was able to use ‘skyaware978/data/aircraft.json’ to eliminate the error, but I can’t figure out where they hid stats.json on the 978 feeders.
Since I can’t get ssh access to the FA provided FlightFeeder, does anyone have a current 978 install who could figure out the path to the stats file for me?