This repository contains the code used in this paper to generate scenes for trajectory forecasting.
Amelia: A Large Dataset and Model for Airport Surface Movement Forecasting [paper]
Ingrid Navarro *, Pablo Ortega-Kral *, Jay Patrikar *, Haichuan Wang, Zelin Ye, Jong Hoon Park, Jean Oh and Sebastian Scherer
*Equal contribution
AmeliaSWIM: This tool that contains the raw dataset download scripts as well as scripts to preprocess and filter the data. It also contains the fences used on QGIST to delimit the ROI of the airports.
Amelia-42 dataset contains the trajectory as well map data. More information is available on the dataset website and a subset of this prosseed data can be found in HuggingFace Amelia42-Mini and our Benchmark dataset in Amelia10.
Make sure that you have conda installed.
Recommended: Use the install.sh to download and install the Amelia Framework:
chmod +x install.sh
./install.sh ameliaThis will create a conda environment named amelia and install all dependencies.
Alternatively, refer to INSTALL.md for manual installation.
Note: AmeliaSWIM only requires the itself to run, only refer to AmeliaSWIM installation.
To download the processed data for 10 airports used for the Amelia Benchmark list can be found at dataset, this will contain the processed csv files and the map assets and contains the following airports one month of the following airports:
- Boston-Logan Intl. Airport - Jan 2023
- Newark Liberty Intl. Airport - Mar 2023
- Ronald Reagan Washington Natl. Airport - April 2023
- John F. Kennedy Intl. Airport - April 2023
- Los Angeles Intl. Airport - May 2023
- Chicago-Midway Intl. Airport - June 2023
- Louis Armstrong New Orleans Intl. Airport - July 2023
- Seattle-Tacoma Intl. Airport - Aug 2023
- San Francisco Intl. Airport - Sept 2023
- Ted Stevens Anchorage Intl. Airport - Nov 2023
To download and convert trajectory data for any of the 42 airports in the Amelia Dataset for any time after Dec 1 2022, use the following steps
The raw SWIM SMES .njson.gz files can be downloaded using the following script:
python download_raw.py --start_time <start-time> \
--end_time <end-time> \
--destination <destination>
Where:
<start-time>: The start time in UTC in the formatYYYY-MM-DD HH:MM:SS. By default it is set to2023-01-01 00:00:00.<end_time>: The end time in UTC in the formatYYYY-MM-DD HH:MM:SS. By default it is set to2023-01-02 00:00:00.<destination>: Local directory to save the downloaded files. By default it is set toswim_data/.
This will download the raw files from the public OpenStack Swift dataset and save them in the specified destination directory.
python process.py data=<insert_month> airports=<airport_ICAO>Where:
-
<insert_month>: Specifies the month for which you want to process the data. You may set any of the yaml files in the pathconf/data/*/*.yamlfor exampleapror set your own. This will determine the time frame that to witch process the data. In theconf/datafolder there is also abase.yamlfile wher it is possible to set the following options:datapath: where the raw files should be downloaded or searched (ifdownloadis set toTrue)out_path: output director of the processed files in csv formatwindow: Time (in sec) Duration for each CSVn_jobs: Num CPUs to useparallel: Use parallel processingdownload: Download the Raw Data (set to false if you already have the raw data in thedatapathdirectory)overwrite: Overwrite the processed data if it is found
-
<airport_ICAO>: The ICAO code of the airport for which you want to process the data. The available airports are set in theconf/airportsfolder. You can set any of the yaml files in the pathconf/airports/*/*.yamlfor exampleklax.
In conf/data/base the following options exist:
datapath: Base Path for Raw Dataoutpath: Base Path for Processed Datawindow: Time (in sec) Duration for each CSVn_jobs: Num CPUs to useparallel: Use parallel processingdownload: Download the Raw Data (set to false if you already have the raw data)overwrite: Overwrite the processed data if it is foundstart_time: utc linux start timeend_datetime: utc linux end time
In conf/airports/<airport ICAO> the following options exist:
airport: Name of the airportref_lat: Ref latitude to calculate x,y cartesianref_lon: Ref longitude to calculate x,y cartesianmax_alt: Max agent altitude to filterfence: Geo-fence to filter data
If you would like to process the data for KLAX for Mar 2023 overwriting the existing and not downloading data a you can run the following command:
python python process.py data=mar airports=klax data.overwrite=True data.download=FalseIn order to modify or create new polygons, we used the QGIS software.
- Open QGIS
- Click on
Layer->Add Layer->Add Delimited Text Layer - Select the Layer
- In Processing Toolbox search for Points to Path
- In Processing Toolbox search for Lines to Polygons
- Select the layer
- Click on
Toggle Editing(yellow pencil) - Click on the
Split PartsorSplit Featurestool - Create lines to split the polygon using right click and left click
- Right click on the layer
- Click on
Open Attribute Table - Select the Polygon you want to export (it will be highlighted in yellow)
- Click on copy
Once copied it can be pasted in a notepad to create a csv file
Amelia is compliant with the FAA Terms of Service for data redistribution as well as the privacy and safety filters imposed by the FAA. Although the Amelia dataset is based on the FAA SWIM data, Amelia is NOT official FAA data and is not suitable for operational purposes. Amelia should only be used for research purposes. Our collection methodology comes with inherent limitations, such as noise in ground radar as well as noisy labelling of agents in the dataset.
If you find our work useful in your research, please cite us!
@inbook{navarro2024amelia,
author = {Ingrid Navarro and Pablo Ortega and Jay Patrikar and Haichuan Wang and Zelin Ye and Jong Hoon Park and Jean Oh and Sebastian Scherer},
title = {AmeliaTF: A Large Model and Dataset for Airport Surface Movement Forecasting},
booktitle = {AIAA AVIATION FORUM AND ASCEND 2024},
chapter = {},
pages = {},
doi = {10.2514/6.2024-4251},
URL = {https://arc.aiaa.org/doi/abs/10.2514/6.2024-4251},
eprint = {https://arc.aiaa.org/doi/pdf/10.2514/6.2024-4251},
}



