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
Hashes for atmdatatools-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 266921f56cd6a2f3b62882db93fee6e740e0b31b360540864234c5dc340b3f6c |
|
MD5 | 2673bdf215a37b552072f728301345fc |
|
BLAKE2b-256 | 7409a164db38ce6c5e2bb9b04d65fd493dc01c34d45da2859bc1490d1b542565 |