Navigating Large and Small-Scale Spatiotemporal Gaps with Trajectory Imputation Using BackForward Bi-LSTM
This repository contains the code, models, and resources for the project "Navigating Large and Small-Scale Spatiotemporal Gaps with Trajectory Imputation Using BackForward Bi-LSTM". This research introduces a novel deep learning model to impute missing trajectory segments for vessels and aircraft in the presence of spatiotemporal gaps, often caused by system malfunctions or intentional signal disruptions. Our model has been tested on Automatic Identification System (AIS) data for vessels and Automatic Dependent Surveillance–Broadcast (ADS-B) data for aircraft to ensure its robustness and generalizability.
Data/
: Contains the AIS test dataset processing files for evaluating model performance.pretrained_models_ais
: The pre-trained models related to performance comparison, including the proposed model BF-BiLSTM.Jupyter test file
: The jupyter notebook including all dependencies and results of all models.
The BF-BiLSTM model leverages bidirectional LSTM layers to capture temporal dependencies in both forward and backward directions, thus providing a robust framework for imputing missing trajectory segments. Our approach addresses both small and large data gaps, improving prediction accuracy by utilizing pre- and post-gap temporal information. This method can handle varying missing data percentages (5-30%) with high accuracy.
The model employs two Bi-LSTM networks working in parallel. One network estimates future trajectory segments based on historical data, while the other predicts past segments using subsequent data. The results from both networks are combined to impute missing trajectory segments with minimal error.
Our AIS dataset contains vessel trajectories in the Adriatic and Mediterranean Seas, with over 89,000 fishing trips recorded at five-minute intervals. This dataset is used to train the BF-BiLSTM model to handle varying levels of data availability, addressing the need for reliable data in maritime tracking applications.
To test the generalizability of the model, we employed the TrajAir dataset, an open-source aerial trajectory dataset TrajAir. This dataset includes 111 days of flight data collected around the Pittsburgh-Butler Regional Airport, Pennsylvania, USA, recorded with a five-minute interval.
The BF-BiLSTM model was evaluated against other state-of-the-art imputation methods. Key metrics used to measure performance include Mean Absolute Error (MAE), Average Deviation Error (ADE), Mean Absolute Percentage Error (MAPE), and Mean Square Error (MSE).
Model | MAE (°) | ADE (°) | MAPE (%) | MSE (%) |
---|---|---|---|---|
LSTM | 0.077 ± 0.041 | 0.123 ± 0.065 | 0.392 ± 0.239 | 1.103 ± 1.434 |
CNN-LSTM | 0.037 ± 0.030 | 0.058 ± 0.048 | 0.183 ± 0.157 | 0.361 ± 0.744 |
BLSTM | 0.027 ± 0.028 | 0.043 ± 0.045 | 0.135 ± 0.147 | 0.271 ± 0.808 |
GRU | 0.027 ± 0.030 | 0.044 ± 0.047 | 0.137 ± 0.158 | 0.287 ± 1.220 |
Seq2Seq | 0.071 ± 0.039 | 0.113 ± 0.062 | 0.353 ± 0.234 | 0.970 ± 1.390 |
BF-BiLSTM | 0.011 ± 0.014 | 0.017 ± 0.022 | 0.054 ± 0.069 | 0.056 ± 0.526 |
Model | MAE (°) | ADE (°) | MAPE (%) | MSE (%) |
---|---|---|---|---|
BF-BiLSTM | 0.018 ± 0.021 | 0.030 ± 0.032 | 0.031 ± 0.001 | 0.125 ± 0.020 |
BF-GRU | 0.022 ± 0.028 | 0.036 ± 0.047 | 0.036 ± 0.060 | 0.219 ± 0.372 |
Here’s a visual comparison of trajectory imputations across different models. The BF-BiLSTM model shows a significant improvement in trajectory continuity.
Fig: Illustration of trajectory imputation across models (Longitude on X-axis; Latitude on Y-axis).
Ensure you have the following prerequisites before getting started:
Python: Install Python (version 3.8 or later).
Jupyter Notebook: Install it by running the command below. It's recommended to use a virtual environment.
pip install notebook
Clone this repository and install the necessary dependencies:
git clone https://github.com/your-repository/trajectory-imputation-BF-BiLSTM.git
cd trajectory-imputation-BF-BiLSTM
Run the following command in the project directory to launch Jupyter Notebook:
jupyter notebook
In the browser window that opens, navigate to the .ipynb file you want to run, and click on it to open.
Inside the notebook, run each cell to execute the full workflow. Use Shift + Enter to execute each cell.
This project is licensed under the MIT License.
For more details, refer to the accompanying paper or contact the authors.
If you use this repository or the BF-BiLSTM model in your research, please cite our work as follows:
Alessandro Galdelli, Gagan Narang, Selene Tomassini, Lorenzo D’Agostino, Anna Nora Tassetti, Adriano Mancini,
"Navigating Large and Small-Scale Spatiotemporal Gaps with Trajectory Imputation Using BackForward Bi-LSTM."
2024. Preprint.
BibTeX format:
@misc{galdelli2024bfbilstm,
title={Navigating Large and Small-Scale Spatiotemporal Gaps with Trajectory Imputation Using BackForward Bi-LSTM},
author={Galdelli, Alessandro and Narang, Gagan and Tomassini, Selene and D’Agostino, Lorenzo and Tassetti, Anna Nora and Mancini, Adriano},
year={2024},
note={Preprint}
}