Skip to main content

License PyPI version PyPI downloads HexAeroPy logo

HexAeroPy

HexAeroPy is a EUROCONTROL Python package designed for aviation professionals and data analysts. It allows for the determination of used airports, runways, taxiways, and stands based on available (ADS-B) flight trajectory coordinates. This tool aims to enhance aviation data analysis, facilitating the extraction of milestones for performance analysis.

Features

  • Airport Detection: Identifies airports involved in a flight's trajectory.
  • Runway Utilization: Determines which runways are used during takeoff and landing.

Installation

To install HexAeroPy, ensure you have Python 3.9+ installed. Then run the following command:

pip install HexAeroPy

Quick Start

Get started with HexAeroPy by running the following Python code:

from HexAeroPy import *

This will prompt you to download the geospatial metadata from Zenodo necessary to run the package. It will only cache once. The parquet datasets are available here: https://zenodo.org/records/10651018.

# Load test data

df = load_dataset(name='trajectories.parquet', datatype='test_data')

# Create unique id for each trajectory

df['id'] = df['icao24'] + '-' + df['callsign'] + '-' + df['time'].dt.date.apply(str)
df = df[['id', 'time', 'icao24', 'callsign', 'lat', 'lon', 'baroaltitude']]

# Identify runways

scored_rwy_detections_df, rwy_detections_df = identify_runways(df)

Usage

Visualizing Methodology

# Load approach hex dataset
egll = load_dataset(name="EGLL.parquet", datatype="runway_hex")

# Visualize approach cones
map_viz = choropleth_map(
        egll,
        column_name='gate_id_nr',
        border_color='black',
        fill_opacity=0.7,
        color_map_name='Reds',
        initial_map=None,
        initial_location=[df.lat.values[0], df.lon.values[0]],
        initial_zoom = 13,
        tooltip_columns = ['id', 'airport_ref', 'airport_ident', 'le_ident', 'he_ident', 'length_ft', 'width_ft',
   'surface', 'lighted', 'closed', 'gate_id']
    )

# Add a single aircraft trajectory to the map
df = df[df['id'] == '0a0048-DAH2054-2023-08-02']
add_trajectory(map_viz, df)

# Show
map_viz.save('egll_arrival.html')

Runway detection

Download the HTML here: egll_departure.html

Development Roadmap

  • [pending implementation] Taxiway Analysis: Analyzes taxi routes for efficiency and optimization.
  • [pending implementation] Stand Identification: Identifies aircraft stands, enhancing ground operation analysis.

Contributing

We welcome contributions to HexAeroPy! Feel free to submit pull requests, report issues, or request features.

License

HexAeroPy is licensed under the MIT License - see the LICENSE file for details.

Credits and Acknowledgments

Special thanks to EUROCONTROL and the Performance Review Commission (PRC).

Contact Information

For support or queries, please contact us at pru-support@eurocontrol.int.

Metadata

Release files for HexAeroPy 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HexAeroPy 1.0.4
File Size Uploaded
HexAeroPy-1.0.4.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HexAeroPy 1.0.4
File Interpreter ABI Platform
HexAeroPy-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 24.1 kB

Release files / HexAeroPy-1.0.4.tar.gz

Download URL HexAeroPy-1.0.4.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
516e6666313ec94ba956fdee8ae7a76b9debd8a0f4f2c876698e6d79e59d4b0b
BLAKE2b-256 checksum
How to use checksums
e45cb004841003c7fa532e32332067d015e4dbed8f1b19c9a80a394244349cc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / HexAeroPy-1.0.4-py3-none-any.whl

Download URL HexAeroPy-1.0.4-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6cbf1e3086e125bd14787635527559998a2d6dfdb2bd296b56c0c9be0422de5
BLAKE2b-256 checksum
How to use checksums
612fcce302334f246701a0349747e532e9bc50610fa3f6bdfed3157d30ed661a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.3

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