(It is assumed you already have Euroscope and the correct sector files installed for the area you want to display IRL traffic)
-
Clone or download this repo.
-
In the base folder, you'll find a
config.cfg
file. Here you can edit the bounding box of the area that will be displayed. The format is min latitude, max latitude, min longitude, max longitude; all on a separate line. You can find the coordinates you need here . By default, the bounding box is centered on EBBU FIR. -
Run
OpenSkyToEuroscope.exe
. It should open a console that says Waiting for Euroscope. -
Open Euroscope. In the connection settings:
-
Click connect. It might take up to 30 seconds for aircraft to load in.
-
Please note that aircraft positions are only updated every 10 seconds.
The Opensky Network is a non-profit community-based receiver network which has been continuously collecting air traffic surveillance data since 2013. It has a free-to-use API from which users can extract flight data. To gather the data was easy, to put that data into Euroscope was a lot harder. At first, the only possible way seemed to use SBS2FSDproxy, an outdated and sketchy proxy server that converted SBS data into the FSD format, which is the format VATSIM and IVAO use. After looking at the source code, I figured that it was way easier to just build a FSD server myself. Using unofficial documentation for the FSD protocol and scenario files (which are essentially already in FSD format) and after testing I figured that to display aircraft in Euroscope, you only need 1 line of FSD. To add flightplans, you need other lines, but since the Opensky API doesn't have route information, this can't be implemented anyway. In the future it might be possible to link the script with other API's (like flightradar24 or Eurocontrol), to get accurate route information.
The program is written in Python 3.8.5
.
If you want to edit/extend the source code, you'll have to add the Opensky API via pip. Execute the command pip install -e lib/opensky-api/python
. (More info here).
Euroscope expects position updates every 5 seconds, but Opensky only updates every 10 seconds. To circumvent this I tried to extrapolate a position after 5 seconds based on speed and heading. The headings aren't 100% accurate though, so it extrapolated the positions a bit off course, which caused a wobbly effect on all planes. If anyone experienced in this type of stuff knows why it does that or how to fix it, please let me now / submit a pull request.
-
The Opensky team and contributors.
-
Gergely Csernak and contributors for Euroscope.
-
Callum Rid (the source code is partially inspired by his work).
-
Norris Ng for the FSD documentation.
-
The guys over at ADSBradar.ru. They still host the SBS2FSDProxy code, which made decompiling a lot easier.