Giter Site home page Giter Site logo

openskytoeuroscope's Introduction

Real life traffic into Euroscope using the Opensky Network

Showcase

Installation and usage

(It is assumed you already have Euroscope and the correct sector files installed for the area you want to display IRL traffic)

  1. Clone or download this repo.

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

  3. Run OpenSkyToEuroscope.exe. It should open a console that says Waiting for Euroscope.

  4. Open Euroscope. In the connection settings:

    • connection mode = Direct to VATSIM
    • Server = 127.0.0.1 (It is not in the dropdown menu, but you can just type in the box)
    • Uncheck the "connect to VATSIM"-checkbox
    • Since you're not actually connecting to VATSIM, the other fields (e.g. certificate and password) don't matter Connection settings
  5. Click connect. It might take up to 30 seconds for aircraft to load in.

  6. Please note that aircraft positions are only updated every 10 seconds.

How it works

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.

Building from source

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

Issues

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.

Credits

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

openskytoeuroscope's People

Contributors

aap007freak avatar pierr3 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.