Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ ZENODOarrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Software . 2024
License: CC BY
Data sources: ZENODO
ZENODO
Software . 2024
License: CC BY
Data sources: Datacite
ZENODO
Software . 2024
License: CC BY
Data sources: Datacite
versions View all 2 versions
addClaim

Detecting GPS Anomalies in Aviation Using ADS-B: SQL and Python Scripts for OpenSky Trino Database Analysis

Authors: Pik, Eugene;

Detecting GPS Anomalies in Aviation Using ADS-B: SQL and Python Scripts for OpenSky Trino Database Analysis

Abstract

ADS-B Data Analysis using OpenSky Trino Database This release includes SQL scripts and Python code for analyzing ADS-B messages stored in the OpenSky Trino database. The analysis focuses on identifying and handling gaps in positional data and potential GPS spoofing incidents for airborne aircraft. Included Files: flight_analysis.sql This SQL script initializes a named prepared statement called flight_analysis to identify gaps in aircraft routes where either latitude or longitude information is missing, indicating possible data transmission issues in the ADS-B system. The script uses multiple Common Table Expressions (CTEs) to perform detailed analysis, validate geographic data points, and assess data quality using Navigation Integrity Category (NIC) values. spoofing_analysis.sql This SQL script initializes a named prepared statement called spoofing_analysis to identify potential GPS spoofing incidents. It filters ADS-B messages for unusually large distances traveled between consecutive data points relative to the time elapsed, assuming a maximum plausible speed of 600 m/s for aircraft. The script uses multiple CTEs to organize the logic, calculate distances, and flag discrepancies that suggest positional anomalies. ADS-B_GPS_TrinoDB_Analysis.py This Python script automates data extraction and analysis from the OpenSky Trino database, focusing on identifying gaps in aircraft ADS-B transmission data. It constructs and executes complex SQL queries iteratively for each day within a specified date range, processes the data into pandas DataFrames, and exports the results to dynamically named Excel files. The script includes logging and error handling mechanisms to ensure stable execution. Key Features: Comprehensive Analysis: The SQL scripts and Python code provide a detailed analysis of ADS-B data, identifying significant data gaps and potential GPS spoofing incidents. Data Integrity Checks: Ensures data reliability by validating geographic data points, checking NIC values, and confirming valid icao24 aircraft identifiers. Automated Execution: The Python script automates the execution of SQL queries, processes the results, and generates output files, facilitating large-scale data analysis. Detailed Reporting: Outputs detailed information about identified data gaps and potential spoofing incidents, including validated coordinates, durations, and NIC values. How to Use: SQL Scripts: Execute the flight_analysis.sql and spoofing_analysis.sql scripts in the Trino database to set up the prepared statements. Python Script: Run the ADS-B_GPS_TrinoDB_Analysis.py script to automate the data extraction and analysis process. Ensure to update the script with your Trino database connection details. Author Eugene Pikeugene.pik@mevocopter.com DOI 10.5281/zenodo.11279424 DOI URL: https://doi.org/10.5281/zenodo.11279424 License This project is licensed under the Apache License, Version 2.0.

Related Organizations
  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average