The AeroWhere Flight Tracks database captures historic aircraft flight tracks as GIS linestring geometries, attributed with height above ground level (AGL) and other identifying information about the flight (timestamp, ICAO, aircraft type, etc.). The currently available data is limited to the contiguous United States (CONUS) and includes flights spanning the time period noted in the accompanying Date Range file.
The flight tracks are derived from Automatic Dependent Surveillance–Broadcast (ADS-B) position traces, captured by a network of ground receivers, collected and made available via ADS-B LOL historical data archive (see Source Data for more information).
The source ADS-B files have been parsed into GIS format by connecting ADS-B positions of each unique aircraft in chronological order. Gaps between consecutive locations ≥ 30 km were not connected to limit uncertainty about aircraft positioning in spans of this size. Altitudes were converted to height above ground through the use of a digital elevation model (DEM) (see Source Data). Only a select set of attributes from the source ADS-B files are currently included in the flight tracks dataset (see Schema).
The data are provided as a hive-partitioned GeoParquet dataset. The GeoParquet files follow the specification for GeoParquet v1.1.0 and geometries are encoded as 2-D linestrings in GeoArrow format.
Each geometry represents a single segment of a flight track. Geometries are encoded in the direction of travel of the flight track (i.e., first vertex is the start of the segment, last vertex is the end of the segment). All geometries are in the EPSG:4326 coordinate reference system.
The dataset uses hive partitioning to split the dataset into files of reasonable size to enable faster acess. The partitioning scheme is intended to be spatiotemporal, first splitting by year, month, and day. The structure is:
quadkey_z8={quadkey}/year={year}/month={month}/day={day}/flights-{year}-{MONTH}-{DAY}.parquet
where:
quadkey is the zoom level 8 tile quadkey in the spherical mercator EPSG:3857 gridyear is the 4-digit year of the partition (e.g., 2025)month is the month of the partition without zero padding (i.e., 1, 2, ..., 12)MONTH is the month of the partition with zero padding (i.e., 01, 02, ..., 12)day is the day of the partition without zero padding (i.e., 1, 2, ..., 31)DAY is the day of the partition with zero padding (i.e., 01, 02, ..., 31)Important
The tile based partitioning is based on spatial intersection between flight tracks and the tiles. As a result, a single flight track may occur across multiple partitions if it overlaps multiple tiles. For certain uses cases, this means you may need to deduplicate records. This can be done using theend_t(orstart_t) andicaofields as a compound identifier for unique flight segments (see Data Access Examples). Note that this also means that the data for a single partition will not strictly adhere to the tile bounds (i.e., the data won't be clipped exactly to the tile edges).
Each partition uses the following schema:
geometry (list[struct(x, y)]): 2D linestring geometry representing a single segment of a flight track.icao (string): Hex ID of the aircraftr (string): Aircraft registrationaircraft_type (string): Aircraft typedesc (string): Aircraft type descriptionstart_t (timestamp[ns]): Timestamp (in UTC) for the start (first vertex) of the segment.end_t (timestamp[ns, tz=UTC]): Timestamp (in UTC) for the end (last vertex) of the segment.start_height_agl_ft (int32): Height above ground level in feet for the start (first vertex) of the segment. Derived from altitude reported in ADS-B and ground elevation from DEM.end_height_agl_ft (int32): Height above ground level in feet for the end (last vertex) of the segment. Derived from altitude reported in ADS-B and ground elevation from DEM.Required dependencies:
The currently available data is limited to the contiguous United States (CONUS) and includes flights spanning the time period noted in the accompanying Date Range file.
Because the dataset is based on a network of ADS-B ground receivers, flight tracks may be incomplete or missing for any given location and date. Complete coverage of all real-world flights is not guaranteed.
If you are the author of a publication or research report that uses these data, please include the following citation:
Root Geospatial LLC. 2025. "AeroWhere Flight Tracks: Historical Flight Tracks Dataset". Source Cooperative, https://source.coop/root-geospatial/flight-tracks. Accesed [ACCESS DATE].
For use in web maps, please include the following attribution: © AeroWhere by Root Geospatial.
A data viewer with functionality for exporting small subset of the data is available at https://aerowhere.com/flight-tracks.
Flight tracks positions and attributes are derived from ADS-B.lol Historical Data: https://www.adsb.lol/docs/open-data/historical/.
Attributes indicating height AGL values are derived from a combination of the altitude values provided in the ADS-B.LOL files and a USGS 3DEP program 1 arc-second DEM (https://www.usgs.gov/3d-elevation-program/about-3dep-products-services).
This data is made available under the Open Database License (ODbL) v1.0. The full license text is included in the file LICENSE.txt and can also be found at http://opendatacommons.org/licenses/odbl/1.0/.