Dataset: 2023 GPS Anomalies, NOTAMs, and Aircraft Traffic
<h1><strong>Dataset: 2023 GPS Anomalies, NOTAMs, and Aircraft Traffic</strong></h1> <p>The dataset "2023 GPS Anomalies, NOTAMs, and Aircraft Traffic" was collected and generated for the paper "Detecting GPS Anomalies in Aviation Using ADS-B: Correlating Coordinate Gaps and GPS Deviations with NOTAM Warnings."</p> <p>This dataset provides a collection of geospatial and temporal data necessary for analyzing potential GPS anomalies in aviation. The data sources include NOTAMs received from the FAA, and the aircraft traffic and GPS information calculated and extracted from the OpenSky Trino ADS-B database.</p> <p>The FAA_and_ICAO_locations file includes 21,382 records with identifiers, coordinates, and detailed facility information. This dataset serves as a reference for analyzing the geographical distribution of aviation facilities. The Flights_per_Hour_per_Grid file, with 74,219,036 records, provides hourly flight movement counts within specified grids, offering insights into air traffic patterns and potential disruptions. The GPS_Jumps_from_Routes file, comprising 5,878,275 records, documents deviations in flight paths, capturing metrics such as distances, speeds, and timestamps. This data is crucial for identifying potential GPS spoofing incidents by analyzing unusual jumps between consecutive data points.</p> <p>The GPS_Missing_Coordinates file, with 53,232 records, highlights periods of missing GPS signals, indicating possible GPS jamming events. This file includes start and end times, distances between known coordinates, and Navigation Integrity Category (NIC) values to assess data quality during null periods. The NOTAM_ICAO_GPS and NOTAM_USA files, with 30,160 and 234,205 records respectively, provide detailed information on NOTAM areas, including geographic areas, active periods, and categories. This allows for an analysis of the spatial and temporal correlation between NOTAM warnings and GPS anomalies, facilitating a better understanding of the impact of GPS disruptions on aviation safety and operations.</p> <h1><strong>Summary Table</strong></h1> <table> <tbody> <tr> <td> <p><strong>Category</strong></p> </td> <td> <p><strong>File Names</strong></p> </td> <td> <p><strong>Total Records</strong></p> </td> <td> <p><strong>Columns</strong></p> </td> </tr> <tr> <td> <p><strong>FAA and ICAO Locations</strong></p> </td> <td> <p>FAA_and_ICAO_locations.csv</p> <p>FAA_and_ICAO_locations.dpkg</p> </td> <td> <p>21,382</p> </td> <td> <p>WKT, id, fid, Location_ID, ICAO_ID, IATA_ID, FAA_Location_Code, Facility_Type, Facility_Name, FAA_New_Location_Code, Coordinates, lat, lon, Region, Country_Code, Country, State_Id, State_Name, City, Location, Effective_Date, Site_Id, ADO, ARTCC_Id, ARTCC_Computer_ID, ARTCC_Name, Tie_In_FSS_Id, Tie_In_FSS_Name, NOTAM_Facility_Id, NOTAM_Service</p> </td> </tr> <tr> <td> <p><strong>Flights per Hour per Grid</strong></p> </td> <td> <p>Flights_per_Hour_per_Grid-2023.csv</p> <p>Flights_per_Hour_per_Grid-2023.dpkg</p> </td> <td> <p>74,219,036</p> </td> <td> <p>grid_id, hour, movement_count, geometry</p> </td> </tr> <tr> <td> <p><strong>GPS Jumps from Routes</strong></p> <p><strong>(possible spoofing)</strong></p> </td> <td> <p>GPS_Jumps_from_Routes-2023.csv</p> <p>GPS_Jumps_from_Routes-2023.dpkg</p> </td> <td> <p>5,878,275</p> </td> <td> <p>WKT, id, fid, icao24, callsign, time_before_spoofing, time_of_spoofing, distance, time_difference, speed_m_s, time_start, time_end</p> </td> </tr> <tr> <td> <p><strong>GPS Missing Coordinates</strong></p> <p><strong>(possible jamming)</strong></p> </td> <td> <p>GPS_Missing_Coordinates-2023.csv</p> <p>GPS_Missing_Coordinates-2023.dpkg</p> </td> <td> <p>53,232</p> </td> <td> <p>WKT, id, icao24, callsign, null_start_time, null_end_time, time_of_previous_not_null_coords, time_of_next_not_null_coords, between_coords_distance_m, null_duration_seconds, between_coords_duration_seconds, avg_nic, min_nic, max_nic, start_time, end_time, start_y, end_x, end_y, start_x</p> </td> </tr> <tr> <td> <p><strong>NOTAM ICAO GPS</strong></p> </td> <td> <p>NOTAM_ICAO_GPS-2023.csv</p> <p>NOTAM_ICAO_GPS-2023.dpkg</p> </td> <td> <p>30,160</p> </td> <td> <p>WKT, id, fid, notam_id, category_name, coordinates_center, radius_nm, radius_mod_nm, notam_number, accountability, location_id, icao_id, domestic_text, icao_text, type, category_id, time_start, time_end</p> </td> </tr> <tr> <td> <p><strong>NOTAM USA</strong></p> </td> <td> <p>NOTAM_USA-2023.csv</p> <p>NOTAM_USA-2023.dpkg</p> </td> <td> <p>234,205</p> </td> <td> <p>WKT, id, fid, notam_id, category_name, is_circle, coordinates_polygon, coordinates_center, radius_nm, faa_location_code, is_faa_location, location_id, is_restricted_area, restricted_area_id, restricted_area_code, category_id, message, notam_number, notam_accountability, moa, type, time_start, time_end</p> </td> </tr> <tr> <td> <p> </p> </td> <td> <p> </p> </td> <td> <p> </p> </td> <td> <p> </p> </td> </tr> </tbody> </table> <h1><strong>Details</strong></h1> <h2><strong>1. FAA_and_ICAO_locations.csv </strong>and <strong>FAA_and_ICAO_locations.dpkg</strong></h2> <ul> <li><strong>Total Records</strong>: 21,382</li> <li><strong>Columns</strong>:</li> <ul> <li><strong>WKT</strong>: Well-Known Text representation of a point in the CSV file, or a geometry field in the DPKG file.</li> <li><strong>id</strong>: Unique identifier for each record.</li> <li><strong>fid</strong>: Feature identifier.</li> <li><strong>Location_ID</strong>: Identifier for the location.</li> <li><strong>ICAO_ID</strong>: ICAO (International Civil Aviation Organization) identifier.</li> <li><strong>IATA_ID</strong>: IATA (International Air Transport Association) identifier.</li> <li><strong>FAA_Location_Code</strong>: FAA location code.</li> <li><strong>Facility_Type</strong>: Type of facility (e.g., airport, heliport).</li> <li><strong>Facility_Name</strong>: Name of the facility.</li> <li><strong>FAA_New_Location_Code</strong>: New location code by FAA.</li> <li><strong>Coordinates</strong>: Coordinates of the location.</li> <li><strong>lat</strong>: Latitude of the location.</li> <li><strong>lon</strong>: Longitude of the location.</li> <li><strong>Region</strong>: Geographical region of the location.</li> <li><strong>Country_Code</strong>: Country code of the location.</li> <li><strong>Country</strong>: Country name of the location.</li> <li><strong>State_Id</strong>: State identifier.</li> <li><strong>State_Name</strong>: Name of the state.</li> <li><strong>City</strong>: City name.</li> <li><strong>Location</strong>: General location information.</li> <li><strong>Effective_Date</strong>: Effective date of the record.</li> <li><strong>Site_Id</strong>: Site identifier.</li> <li><strong>ADO</strong>: Airport District Office.</li> <li><strong>ARTCC_Id</strong>: ARTCC (Air Route Traffic Control Center) identifier.</li> <li><strong>ARTCC_Computer_ID</strong>: ARTCC computer identifier.</li> <li><strong>ARTCC_Name</strong>: Name of the ARTCC.</li> <li><strong>Tie_In_FSS_Id</strong>: Tie-in Flight Service Station identifier.</li> <li><strong>Tie_In_FSS_Name</strong>: Name of the Tie-in Flight Service Station.</li> <li><strong>NOTAM_Facility_Id</strong>: NOTAM (Notice to Airmen) facility identifier.</li> <li><strong>NOTAM_Service</strong>: Indicates if NOTAM service is available (Y/N).</li> </ul> </ul> <h2><strong>2. Flights_per_Hour_per_Grid-2023.csv </strong>and <strong>Flights_per_Hour_per_Grid-2023.dpkg</strong></h2> <ul> <li><strong>Total Records</strong>: 74,219,036</li> <li><strong>Columns</strong>:</li> <ul> <li><strong>grid_id</strong>: Identifier for the grid.</li> <li><strong>hour</strong>: Timestamp for the hour.</li> <li><strong>movement_count</strong>: Number of flights in each 0.5x0.5 degree grid during each hour of year 2023.</li> <li><strong>geometry</strong>: Well-Known Text representation of a polygon in the CSV file, or a geometry field in the DPKG file.</li> </ul> </ul> <h2><strong>3. GPS_Jumps_from_Routes-2023.csv </strong>and <strong>GPS_Jumps_from_Routes-2023.dpkg</strong></h2> <ul> <li><strong>Total Records</strong>: 5,878,275</li> <li><strong>Columns</strong>:</li> <ul> <li><strong>WKT</strong>: Well-Known Text representation of a linestring in the CSV file, or a geometry field in the DPKG file.</li> <li><strong>id</strong>: Unique identifier for each record.</li> <li><strong>fid</strong>: Feature identifier.</li> <li><strong>icao24</strong>: ICAO 24-bit aircraft address.</li> <li><strong>callsign</strong>: Callsign of the aircraft.</li> <li><strong>time_before_spoofing</strong>: Timestamp before the spoofing event.</li> <li><strong>time_of_spoofing</strong>: Timestamp of the spoofing event.</li> <li><strong>distance</strong>: Distance of the jump in meters.</li> <li><strong>time_difference</strong>: Time difference between two coordinates in seconds.</li> <li><strong>speed_m_s</strong>: Speed in meters per second.</li> <li><strong>time_start</strong>: Start time of the record.</li> <li><strong>time_end</strong>: End time of the record.</li> </ul> </ul> <h2><strong>4. GPS_Missing_Coordinates-2023.csv </strong>and <strong>GPS_Missing_Coordinates-2023.dpkg</strong></h2> <ul> <li><strong>Total Records</strong>: 53,232</li> <li><strong>Columns</strong>:</li> <ul> <li><strong>WKT</strong>: Well-Known Text representation of a linestring in the CSV file, or a geometry field in the DPKG file.</li> <li><strong>id</strong>: Unique identifier for each record.</li> <li><strong>icao24</strong>: ICAO 24-bit aircraft address.</li> <li><strong>callsign</strong>: Callsign of the aircraft.</li> <li><strong>null_start_time</strong>: Start time of missing GPS coordinates.</li> <li><strong>null_end_time</strong>: End time of missing GPS coordinates.</li> <li><strong>time_of_previous_not_null_coords</strong>: Time of the last known good GPS coordinates before the null period.</li> <li><strong>time_of_next_not_null_coords</strong>: Time of the first known good GPS coordinates after the null period.</li> <li><strong>between_coords_distance_m</strong>: Distance between the previous and next known good coordinates in meters.</li> <li><strong>null_duration_seconds</strong>: Duration of the null period in seconds.</li> <li><strong>between_coords_duration_seconds</strong>: Duration between the previous and next known good coordinates in seconds.</li> <li><strong>avg_nic</strong>: Average Navigation Integrity Category (NIC) during the period.</li> <li><strong>min_nic</strong>: Minimum NIC during the period.</li> <li><strong>max_nic</strong>: Maximum NIC during the period.</li> <li><strong>start_time</strong>: Human-readable start time of the null period.</li> <li><strong>end_time</strong>: Human-readable end time of the null period.</li> <li><strong>start_y</strong>: Latitude of the start point.</li> <li><strong>end_x</strong>: Longitude of the end point.</li> <li><strong>end_y</strong>: Latitude of the end point.</li> <li><strong>start_x</strong>: Longitude of the start point.</li> </ul> </ul> <h2><strong>5. NOTAM_ICAO_GPS-2023.csv </strong>and <strong>NOTAM_ICAO_GPS-2023.dpkg</strong></h2> <ul> <li><strong>Total Records</strong>: 30,160</li> <li><strong>Columns</strong>:</li> <ul> <li><strong>WKT</strong>: Well-Known Text representation of a polygon in the CSV file, or a geometry field in the DPKG file.</li> <li><strong>id</strong>: Unique identifier for each record.</li> <li><strong>fid</strong>: Feature identifier.</li> <li><strong>notam_id</strong>: NOTAM identifier.</li> <li><strong>category_name</strong>: Name of the NOTAM category.</li> <li><strong>coordinates_center</strong>: Center coordinates of the NOTAM area.</li> <li><strong>radius_nm</strong>: Radius in nautical miles.</li> <li><strong>radius_mod_nm</strong>: Modified radius in nautical miles.</li> <li><strong>notam_number</strong>: NOTAM number.</li> <li><strong>accountability</strong>: Accountability of the NOTAM.</li> <li><strong>location_id</strong>: Location identifier.</li> <li><strong>icao_id</strong>: ICAO identifier.</li> <li><strong>domestic_text</strong>: Text of the NOTAM for domestic purposes.</li> <li><strong>icao_text</strong>: Text of the NOTAM for ICAO purposes.</li> <li><strong>type</strong>: Type of NOTAM.</li> <li><strong>category_id</strong>: Identifier for the NOTAM category.</li> <li><strong>time_start</strong>: Start time of the NOTAM.</li> <li><strong>time_end</strong>: End time of the NOTAM.</li> </ul> </ul> <h2><strong>6. NOTAM_USA-2023.csv </strong>and <strong>NOTAM_USA-2023.dpkg</strong></h2> <ul> <li><strong>Total Records</strong>: 234,205</li> <li><strong>Columns</strong>:</li> <ul> <li><strong>WKT</strong>: Well-Known Text representation of a polygon in the CSV file, or a geometry field in the DPKG file.</li> <li><strong>id</strong>: Unique identifier for each record.</li> <li><strong>fid</strong>: Feature identifier.</li> <li><strong>notam_id</strong>: NOTAM identifier.</li> <li><strong>category_name</strong>: Name of the NOTAM category.</li> <li><strong>is_circle</strong>: Indicates if the NOTAM area is a circle (1) or not (0).</li> <li><strong>coordinates_polygon</strong>: Coordinates of the polygon vertices.</li> <li><strong>coordinates_center</strong>: Center coordinates of the NOTAM area.</li> <li><strong>radius_nm</strong>: Radius in nautical miles.</li> <li><strong>faa_location_code</strong>: FAA location code.</li> <li><strong>is_faa_location</strong>: Indicates if it is an FAA location (1) or not (0).</li> <li><strong>location_id</strong>: Location identifier.</li> <li><strong>is_restricted_area</strong>: Indicates if it is a restricted area (1) or not (0).</li> <li><strong>restricted_area_id</strong>: Restricted area identifier.</li> <li><strong>restricted_area_code</strong>: Code for the restricted area.</li> <li><strong>category_id</strong>: Identifier for the NOTAM category.</li> <li><strong>message</strong>: NOTAM message.</li> <li><strong>notam_number</strong>: NOTAM number.</li> <li><strong>notam_accountability</strong>: NOTAM accountability.</li> <li><strong>moa</strong>: Military Operations Area (MOA) identifier.</li> <li><strong>type</strong>: Type of NOTAM.</li> <li><strong>time_start</strong>: Start time of the NOTAM.</li> <li><strong>time_end</strong>: End time of the NOTAM.</li> </ul> </ul> <p> </p> <p>Note that all the files are zipped as CSV. The GPKG version is also available where geographical information is present.</p> <p>Due to the size of the file <strong>Flights_per_Hour_per_Grid-2023</strong>, the command line program ogr2ogr may be the best choice to upload the data into a database. Below is an example of a SQL script and a command to upload this file into a PostgreSQL table. Update the placeholders your_DB_table, your_DB_name, your_DB_user, your_DB_password, your_DB_hostname with the actual information.</p> <p>CREATE TABLE your_DB_table (grid_id TEXT, date TIMESTAMP, movement_count INTEGER, geometry GEOMETRY(POLYGON, 4326));</p> <p>"C:\Program Files\QGIS 3.36.2\bin\ogr2ogr" -f "PostgreSQL" PG:"dbname=your_DB_name user=your_DB_user password=your_DB_password host=your_DB_hostname port=5432" C:\Flights_per_Hour_per_Grid.gpkg -nln your_DB_table -a_srs EPSG:4326 -dim 2 -progress -append</p> <h1><strong>Author</strong></h1> <p>Eugene Pik</p> <p><a href="https://orcid.org/0000-0001-6296-919X">https://orcid.org/0000-0001-6296-919X</a></p> <p><a href="https://www.linkedin.com/in/eugene/">https://www.linkedin.com/in/eugene/</a></p> <p>eugene.pik@mevocopter.com</p> <h1><strong>DOI</strong></h1> <p><a href="https://doi.org/10.5281/zenodo.11411991">https://doi.org/10.5281/zenodo.11411991</a></p> <h1><strong>References</strong></h1> <p><strong>Following references were used to update NOTAMs with WKT polygons:</strong></p> <p>airport-data.com. (n.d.). <em>USA airports by FAA code</em>. https://www.airport-data.com/usa-airports/faa-code/A.html</p> <p>DoD. (2019). <em>Flight information publication area planning special use airspace</em>. NATIONAL GEOSPATIAL-INTELLIGENCE AGENCY. https://www.cnatra.navy.mil/assets-global/docs/area-planning-1A-20190815.pdf</p> <p>FAA. (n.d.-a). <em>Airport Data and Information Portal</em>. https://adip.faa.gov/agis/public/#/airportSearch/advanced</p> <p>FAA. (n.d.-b). <em>US ICAO location finder</em>. https://www.notams.faa.gov/common/icao/USA.html</p> <p>FAA. (2017a, September 30). <em>Encodes/decodes—Aeronautical data</em> [Template]. https://www.faa.gov/air_traffic/flight_info/aeronav/aero_data/loc_id_search/Encodes_Decodes/</p> <p>FAA. (2017b, October 12). <em>Aeronautical information manual—Official guide to basic flight Information and ATC procedures</em>. https://www.faa.gov/air_traffic/publications/media/AIM_Basic_dtd_10-12-17.pdf#page=142</p> <p>FAA. (2021, July 26). <em>Order JO 7350.9Z - Location identifiers</em> [Template]. https://www.faa.gov/regulations_policies/orders_notices/index.cfm/go/document.information/documentID/1040529</p> <p>FAA. (2023a). <em>Pilot’s handbook of aeronautical knowledge</em>. https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak</p> <p>FAA. (2023b, June 1). <em>Airport Data</em> [Template]. https://www.faa.gov/air_traffic/flight_info/aeronav/aero_data/Airport_Data/</p> <p>FAA. (2024, February 16). <em>Order JO 7400.10F - Special Use Airspace</em> [Template]. https://www.faa.gov/documentLibrary/media/Order/Order_7400.10F_2024_-_final_-signed.pdf</p> <p>ICAO. (2022). <em>North Atlantic (NAT) air navigation plan Volume I (Doc 9634)</em>. https://www.icao.int/EURNAT/EUR%20and%20NAT%20Documents/NAT%20Documents/_eANP%20NAT%20Doc9634/Doc9634%20NAT%20eANP%20Vol%20I.pdf</p> <p>ProAirPilot.com. (2024). <em>Complete list of NOTAM abbreviations</em>. https://proairpilot.com/notam-abbreviations.html</p> <p>SkyVector. (n.d.). <em>Search for Airports by ICAO ID or name</em>. https://skyvector.com/airports</p> <p> </p> <p><strong>Below is the reference to our source of the aircraft traffic and GPS anomalies data, the OpenSky ADS-B database.</strong></p> <p>Schäfer, M., Strohmeier, M., Lenders, V., Martinovic, I., & Wilhelm, M. (2014). Bringing up OpenSky: A large-scale ADS-B sensor network for research. <em>IPSN-14 Proceedings of the 13th International Symposium on Information Processing in Sensor Networks</em>, 83–94. https://doi.org/10.1109/IPSN.2014.6846743</p> <p> </p>
ShareScore
32/100
Overall dataset sharing score
Score breakdown
These five areas show where the dataset supports — or may limit — practical reuse.
- Stewardship
- 4
- Harmonization
- 4
- Access
- 16
- Reuse readiness
- 8
- Engagement
- 0