Skip to main content

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

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)

Source distribution for atmdatatools 0.0.1
File Size Uploaded
atmdatatools-0.0.1.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atmdatatools 0.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page