Airports with country, region and runway summary (OurAirports)

18
Updated:
Files:1
Size:12.3 MB
Formats:csv
License:PDDL-1.0

Every airport, heliport, seaplane base and balloonport in OurAirports (86,094 rows, including closed sites), joined to its country and region names and summarised with its runways: total runway count, open runway count and longest open runway. Built by joining four OurAirports tables (airports, countries, regions, runways) with every key and foreign key checked. Missing values are empty cells. Note: the literal value NA is data, not missing — continent NA is North America and iso_country NA is Namibia. Snapshot taken 2026-09-18; rebuilt offline by build.ts from the archived CSVs.

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.

/datapressr/airports/
https://datahub.io/datapressr/airports/_r/-/README.md
https://datahub.io/datapressr/airports/_r/-/data/airports.csv
https://datahub.io/datapressr/airports/_r/-/datapackage.json
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.json— metadata & schema
https://datahub.io/datapressr/airports/_r/-/datapackage.json
README.md— documentation
https://datahub.io/datapressr/airports/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.json to inspect schema and resources
  2. 2. Download data resources listed in datapackage.json
  3. 3. Read README.md for full context

Data Files

Explore with AI

Airports with country, region and runway summary


About this dataset

Every airport, heliport, seaplane base and balloonport in OurAirports, one row per site (86,094 rows, closed sites included), with its country and region names and a summary of its runways. Snapshot of 2026-09-18.

ResourceContent
data/airports.csvOne row per OurAirports site, keyed on OurAirports' stable id: identifiers (ident, icao_code, iata_code, gps_code, local_code), type, name, position and elevation, continent, country and region (codes and names), municipality, scheduled service, and runway_count, open_runway_count and longest_open_runway_ft

By type: 42,733 small airports, 23,215 heliports, 13,531 closed sites, 4,106 medium airports, 1,273 seaplane bases, 1,174 large airports and 62 balloonports. 9,055 have an IATA code and 4,335 currently have scheduled airline service. Every field is typed and described in datapackage.json.

How it is built

build.ts joins four OurAirports tables, checking each join rather than assuming it:

  • airports.iso_country → countries.csv, many-to-one, for country_name
  • airports.iso_region → regions.csv, many-to-one, for region_name
  • runways.csv → airports.id, aggregated per airport into the three runway columns

The "one" side of every join must be unique, every foreign key must resolve (a new orphan fails the build rather than leaving a silent blank), each region must belong to its airport's country, and the output must have exactly one row per source airport. fetch.ts snapshots the four CSVs into archive/ with their URL, Last-Modified date and SHA-256; build.ts reads only that snapshot, so the output is reproducible offline:

node fetch.ts               # reuses the snapshot unless --refresh
npm install && node build.ts

The scripts and raw snapshot live in the DataPressr repository, not on DataHub.

Reading the data

  • NA is data, not missing. continent NA is North America and iso_country NA is Namibia. Tools that read NA as missing by default (pandas, R) need that turned off. Missing values are empty cells.
  • Runways. runway_count counts every runway listed for the site, closed ones included (helipads count as runways at heliports); 44,953 sites list none. longest_open_runway_ft is empty when there is no open runway or no open runway has a recorded length.
  • Coverage is OurAirports'. It is a volunteer-maintained database; this dataset adds no sites and removes none.

Source and licence

OurAirports open data (CSV mirror at davidmegginson.github.io/ourairports-data), retrieved 2026-09-18; field meanings from the OurAirports data dictionary. OurAirports releases all its data to the public domain, and this compilation is dedicated to the public domain under PDDL-1.0.

Relation to core/airport-codes

DataHub also has core/airport-codes, git-synced from datasets/airport-codes and built from the same OurAirports source. What differs:

  • Columns. Core has one airport-codes.csv with 13 columns and a combined coordinates string ("40.070985, -74.933689"). This dataset keeps OurAirports' numeric id as the primary key, separate numeric latitude_deg and longitude_deg, and adds country_name, region_name, scheduled_service and the three runway columns joined from the other OurAirports tables.
  • Rows. Both include closed sites. Core is refreshed daily from OurAirports (86,226 rows on 2026-10-09); this is a dated snapshot of 2026-09-18 with 86,094.

Both use LF line endings.