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.idcontains 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
geometrycolumn 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.idcontains 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
geometrycolumn 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.idcontains 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.geometrycolumn contains a Shapely LineString representing the flight's flightpath
Metadata
Release files for atmdatatools 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| atmdatatools-0.0.1.tar.gz | 17.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| atmdatatools-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.4 kB
Release files / atmdatatools-0.0.1.tar.gz
| Download URL | atmdatatools-0.0.1.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cbf3402245e2b8847749a4ee78166ab6173034d7ff072604ea56050ca433d868
|
|
BLAKE2b-256 checksum How to use checksums |
6d0a636119347492c80e67672c313ded2966bd8379a624f21e6a29547f52d86f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|
Release files / atmdatatools-0.0.1-py3-none-any.whl
| Download URL | atmdatatools-0.0.1-py3-none-any.whl |
|---|---|
| Size | 17.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
266921f56cd6a2f3b62882db93fee6e740e0b31b360540864234c5dc340b3f6c
|
|
BLAKE2b-256 checksum How to use checksums |
7409a164db38ce6c5e2bb9b04d65fd493dc01c34d45da2859bc1490d1b542565
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|