# ICAO Airport Code

Key: `geography.transportation.icao_code`

International Civil Aviation Organization airport code (4 letters). More comprehensive than IATA; includes some smaller airports (e.g., KJFK, KLAX, LFPG).

Page: <https://meridian.online/docs/finetype/types/geography/transportation/icao_code>

Samples: `KJFK`, `KLAX`, `LFPG`, `EGLL`, `RJTT`

## Use it

Shell

```shell
finetype infer -i 'KJFK' --mode column
# → geography.transportation.icao_code
```

DuckDB

```sql
SELECT ft_infer('KJFK');
-- → 'geography.transportation.icao_code'
```

Cast template: {col} is your column

```sql
UPPER(CAST({col} AS VARCHAR))
```

## Background

### Origin

An ICAO airport code, also called an ICAO location indicator, is a four-letter code designating aerodromes around the world.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) The recommendations for ICAO airport codes were adopted on 24 March 1959 and came into force on 1 October the same year.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code)

London Heathrow's ICAO code is EGLL, with EG reflecting that the airport is in the United Kingdom.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code)

### Use

ICAO codes are used by air traffic control and in airline operations such as flight planning.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) ICAO codes also identify aviation facilities such as weather stations, international flight service stations and area control centres, whether or not they are located at airports.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) A column of four-letter codes may therefore name weather stations or control centres as well as airports, so check what the rows describe before joining them to an airport list. (Meridian's view)

ICAO codes are separate from the three-letter IATA codes, which are generally used for airline timetables, reservations and baggage tags.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) London Heathrow's IATA code is LHR, while its ICAO code is EGLL.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) In the contiguous United States and Canada, many airports have ICAO codes that copy their three-letter IATA codes with a geographical prefix added, such as YEG and CYEG for Edmonton International Airport.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) Wikipedia notes that the IATA-plus-prefix pattern does not extend to Alaska (PAxx), Hawaii (PHxx) or US territories: Kahului Airport on Maui is OGG to IATA and PHOG to ICAO.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code)

ICAO codes are sometimes updated: Johannesburg's airport changed from FAJS to FAOR when it was renamed O. R. Tambo International Airport.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) Some airports have two ICAO codes, usually when the airport is shared by civilian and military users.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) Brussels Airport has the ICAO code EBBR for its civilian facilities, while Melsbroek Air Base, which shares its runways, has been assigned EBMB.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code) Treat an ICAO code as an identifier with a history: when joining older records, keep the date in view and expect retired codes. (Meridian's view)

ZZZZ is a pseudo-code used in flight plans for aerodromes with no ICAO code assigned.[[1]](https://en.wikipedia.org/wiki/ICAO_airport_code)

### Where you'll meet it

OurAirports' airports.csv carries an icao\_code column alongside separate iata\_code, gps\_code and local\_code columns.[[2]](https://davidmegginson.github.io/ourairports-data/airports.csv) In OurAirports' airports.csv, Total RF Heliport in Bensalem, Pennsylvania, has an empty icao\_code and the gps\_code K00A.[[2]](https://davidmegginson.github.io/ourairports-data/airports.csv) In files like this, a code in a GPS or local column may look like an ICAO code without being one, so read the column the publisher labelled as ICAO. (Meridian's view)

## Sources

1. [ICAO airport code](https://en.wikipedia.org/wiki/ICAO_airport_code) — secondary source
2. [airports.csv](https://davidmegginson.github.io/ourairports-data/airports.csv) — dataset

## How it's detected

Transform uppercases. 4-letter code. Examples: KJFK (New York), KLAX (Los Angeles), LFPG (Paris), EGLL (London), RJTT (Tokyo).
