pyopensky
The pyopensky Python library provides functions to download data from the OpenSky Network live API and historical databases. It aims at making ADS-B and Mode S data from OpenSky easily accessible in the Python programming environment.
Key features:
- Access to live aircraft state vectors and flight information via REST API
- Query historical ADS-B and Mode S data from the Trino database
- Decode and rebuild flight trajectories from raw messages
- Support for spatial and temporal filtering
- Built-in caching for efficient data retrieval
- Integration with pandas DataFrames for easy data analysis
Full documentation on https://mode-s.org/pyopensky/
Installation
pip install pyopensky
or add it in your project with
uv add pyopensky
The library is also available on conda-forge, although this approach is no longer recommended:
conda install -c conda-forge pyopensky
Credentials
Access to the OpenSky Network historical database requires authentication. See details in the documentation on how to:
- Apply an OpenSky Network account
- Configure your credentials for API access
- Set up authentication for the Trino database
Usage
1. REST API
Access live and recent flight data.
Functions
from pyopensky.rest import REST
rest = REST()
rest.states()
rest.tracks(icao24)
rest.routes(callsign)
rest.aircraft(icao24, begin, end)
rest.arrival(airport, begin, end)
rest.departure(airport, begin, end)
Examples
from pyopensky.rest import REST
rest = REST()
# Get current state vectors for all aircraft
rest.states()
# Get trajectory for a specific aircraft
rest.tracks(icao24="3c6444")
# Get route information for a callsign
rest.routes(callsign="AFR292")
# Get flights for a specific aircraft in a time range
# NOTE: do NOT use REST for historical data, use trino instead!!
rest.aircraft(icao24="3c6444", begin="2024-01-01", end="2024-01-02")
# Get arrivals at an airport
# NOTE: do NOT use REST for historical data, use trino instead!!
rest.arrival(airport="EHAM", begin="2024-01-01 12:00", end="2024-01-01 13:00")
# Get departures from an airport
# NOTE: do NOT use REST for historical data, use trino instead!!
rest.departure(airport="LFPG", begin="2024-01-01 12:00", end="2024-01-01 13:00")
2. Trino Interface
Query historical ADS-B and Mode S data with advanced selection and processing.
Functions
from pyopensky.trino import Trino
trino = Trino()
# full description of the whole set of parameters in the documentation
trino.flightlist(start, stop, *, airport, callsign, icao24)
trino.rawdata(start, stop, *, callsign, icao24, bounds)
trino.history(start, stop, *, callsign, icao24, bounds)
trino.rebuild(start, stop, *, icao24, bounds)
Release files for pyopensky 2.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyopensky-2.17.tar.gz | 352.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyopensky-2.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 385.9 kB
Release files / pyopensky-2.17.tar.gz
| Download URL | pyopensky-2.17.tar.gz |
|---|---|
| Size | 352.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c54b141436775e7053056c1f56203ac597ccdec30b061c55bf5914bcbf7c21f4
|
|
BLAKE2b-256 checksum How to use checksums |
92b092172b82d00802d4983e29eb8934ba5e3715bd5d8efa5d6a5d39f15cd02d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pyopensky-2.17-py3-none-any.whl
| Download URL | pyopensky-2.17-py3-none-any.whl |
|---|---|
| Size | 33.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0796cc7c593032de5ccd6b8e295348fbe067370ae189edfe7ea30c55cb5a3a6b
|
|
BLAKE2b-256 checksum How to use checksums |
aa8a55e4df5ead43b147bfd83150f277ce082cddf4df1e796d47f2124ab3a9ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|