This document describes how to setup the skies-adsb Flask app server which acts as a local proxy to the FlightAware AeroAPI v4 and the FAA METAR api.
The FlightAware AeroAPI integration is optional. When enabled, it allows fetching flight status information for aircraft with a known callsign.
- Dependencies
- Step 1 - Create a Flask config.json file
- Step 2 - OPTIONAL: Add the FlightAware AeroAPI v4 Key to the config.json File
- Notes
Dependency | Description |
---|---|
Python 3 | Scripting language for GeoJSON layer creation |
flask | Web framework for Python |
flask-cors | Flask extension for handling Cross Origin Resource Sharing |
Requests | HTTP library for Python |
GeoPandas | Geospatial data processing library |
osmtogeojson | Converts Overpass API data to GeoJSON |
Natural Earth datasets | Pre-included map data (see update instructions below) |
FAA airspace data | Pre-included airspace data (see update instructions below) |
QGIS (optional) | GUI tool for viewing and editing GeoJSON layers |
VSCode (optional) | Recommended IDE for Python development |
cd /path/to/skies-adsb
cp docs/flask-config-template.json flask/config.json
If you don't have a FlightAware AeroAPI subscription, you can skip this step. Flight status information will be unavailable.
CAUTION: AeroAPI is a paid service. Visit the documentation link below for API key creation and billing setup.
{
"FLIGHTAWARE_API_KEY": "<YOUR API KEY>"
}
note: only AeroAPI v4+ is supported
For instructions on how to create an AeroAPI v4 key go here:
https://flightaware.com/aeroapi/portal/documentation
see section on "Authentication".
Start the Flask app in development mode:
npm run dev-flask
You can test that the app is working correctly by making a test request:
curl http://localhost:5000/hello
If everything is working as expected you will see:
{ "text": "Hello, World!" }