Tools for air traffic data analysis
Project description
ATM Data Tools
Tools for air traffic data analysis. The package currently consists of 3 functions for reading ADSB files.
Installation
This package is available via PyPi:
pip install atm-datatools
Import
You can import the package by using
import atmdatatools as adt
Functions
read_adsb()
read_adsb(fname, datestr, downsample=None, floor=None, ceiling=None)
Reads raw ADSB files, assuming that each file only has 1 day worth of data. Raw ADSB files should have the columns ['073:071_073TimeforPos','131:Latitude','131:Longitude','140:GeometricHeight','170:TargetID']
. The column 073:071_073TimeforPos
contains the time elapsed in seconds in UTC and the timezone of the file is currently hardcoded for UTC+8. Hence, the first row of this column starts at approximately 57,600s representing 16:00 UTC of the previous day.
Returns a GeoDataFrame with the columns ['id','datetime','unix_timestamp','geometry']
. Each row represents 1 ADSB position report.
Parameters
- fname: the filename of the adsb csv file
- datestr: date string in the format 'YYYYMMDD'
- [Optional] downsample = None: downsample the track data, e.g. 2 will take every 2nd point in the track data
- [Optional] floor = None: cuts off tracks below this altitude in feet, recommend 100 feet if you wish to exclude ground movements
- [Optional] ceiling = None: cuts off tracks above this altitude in feet
Returns
- GeoDataFrame: A GeoDataFrame with the columns
['id','datetime','unix_timestamp','geometry']
. Each row represents 1 ADSB position report.id
contains the flight number (e.g. SIA92). Increments the id of a position if a time gap of more than 15 minutes is detected. e.g. MEDIC77 becomes MEDIC77_1.- Times are in UTC
geometry
column has Shapely Point objects with lat, long, and altitude information
read_adsb_byflightid()
read_adsb_byflightid(fname, datestr, flightid, downsample=None, floor=None, ceiling=None)
Reads raw ADSB files, assuming that each file only has 1 day worth of data, returning a GeoDataFrame with flight tracks of the desired flightid. Each row represents 1 ADSB position report. Parameters allow for additional filtering.
See the read_adsb()
function documentation for raw ADSB file format.
Parameters
- fname: the filename of the adsb csv file
- datestr: date string in the format 'YYYYMMDD'
- airport: Accepts ICAO airport codes, currently accepts
WSSS
,WSSL
. - [Optional] downsample = None: downsample the track data, e.g. 2 will take every 2nd point in the track data
- [Optional] floor = None: cuts off tracks below this altitude in feet, recommend 100 feet if you wish to exclude ground movements
- [Optional] ceiling = None: cuts off tracks above this altitude in feet
Returns
- GeoDataFrame: A GeoDataFrame with the columns
['id','datetime','unix_timestamp','geometry']
. Each row represents 1 ADSB position report.id
contains the flight number (e.g. SIA92). Increments the id of a position if a time gap of more than 15 minutes is detected. e.g. MEDIC77 becomes MEDIC77_1.- Times are in UTC
geometry
column has Shapely Point objects with lat, long, and altitude information
read_adsb_byairport()
read_adsb_byairport(fname, datestr, airport, arrdep=None, downsample=None, floor=None, ceiling=None)
Reads raw ADSB files, assuming that each file only has 1 day worth of data, returning a GeoDataFrame with flight tracks filtered by airport of interest. Each row represents 1 flightpath. Parameters allow for additional filtering.
See the read_adsb()
function documentation for raw ADSB file format.
Parameters
- fname: the filename of the adsb csv file
- datestr: date string in the format 'YYYYMMDD'
- airport: Accepts ICAO airport codes, currently accepts
WSSS
,WSSL
. - [Optional] downsample = None: downsample the track data, e.g. 2 will take every 2nd point in the track data
- [Optional] floor = None: cuts off tracks below this altitude in feet, recommend 100 feet if you wish to exclude ground movements
- [Optional] ceiling = None: cuts off tracks above this altitude in feet
Returns
- GeoDataFrame: A GeoDataFrame with the columns
['id','geometry']
. Each row represents 1 flightpath.id
contains the flight number (e.g. SIA92). Increments the id of a position if a time gap of more than 15 minutes is detected. e.g. MEDIC77 becomes MEDIC77_1.geometry
column contains a Shapely LineString representing the flight's flightpath
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file atmdatatools-0.0.1.tar.gz
.
File metadata
- Download URL: atmdatatools-0.0.1.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbf3402245e2b8847749a4ee78166ab6173034d7ff072604ea56050ca433d868 |
|
MD5 | fb60337704ccadd9a9581e47c1d8cd22 |
|
BLAKE2b-256 | 6d0a636119347492c80e67672c313ded2966bd8379a624f21e6a29547f52d86f |
File details
Details for the file atmdatatools-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: atmdatatools-0.0.1-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 266921f56cd6a2f3b62882db93fee6e740e0b31b360540864234c5dc340b3f6c |
|
MD5 | 2673bdf215a37b552072f728301345fc |
|
BLAKE2b-256 | 7409a164db38ce6c5e2bb9b04d65fd493dc01c34d45da2859bc1490d1b542565 |