commit 408fde440dc3046d3ce356ffab1eb8a060fee1cc Author: ben Date: Sat Jul 4 22:21:02 2026 +1000 Initial commit: boarding pass to AirTrail pipeline Photograph/screenshot a boarding pass, decode its BCBP barcode (PDF417/ Aztec/QR/DataMatrix), fetch the historical flight track from FlightAware the day after the flight, stage it for review, and write it into AirTrail via its REST API on approval. ntfy notifications carry signed Approve/Deny/Investigate actions. diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3a10e6a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +instance/ +__pycache__/ +*.pyc +.git +.env +.env.example +README.md diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..72b0774 --- /dev/null +++ b/.env.example @@ -0,0 +1,16 @@ +# Public URL this service is reached at through NPMplus/Authelia. Required +# for ntfy notification links and the Approve/Deny callback URLs to work. +PUBLIC_BASE_URL=https://boarding-pass.example.com + +# AirTrail instance and API key (create the key in AirTrail's account UI). +AIRTRAIL_BASE_URL=https://airtrail.example.com +AIRTRAIL_API_KEY= + +# Container timezone. Set explicitly - flight_date + 1 day and the daily +# job's run time are date-sensitive. +TZ=Australia/Sydney + +# Max boarding pass photo upload size, in MB. +MAX_UPLOAD_MB=15 + +PORT=8080 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a3982aa --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +instance/ +__pycache__/ +*.pyc +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..62e58f1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.12-slim + +WORKDIR /app + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +ENV INSTANCE_DIR=/app/instance +VOLUME ["/app/instance"] + +EXPOSE 8080 + +CMD ["python", "app.py"] diff --git a/HANDOVER.md b/HANDOVER.md new file mode 100644 index 0000000..190c094 --- /dev/null +++ b/HANDOVER.md @@ -0,0 +1,42 @@ +# Status: build complete + +All 13 tasks are done. This file is now just a pointer, not a live handover - +see `README.md` for setup/deploy instructions and +`/home/ben/.claude/plans/glittery-weaving-moth.md` for the original design +rationale (AirTrail REST API choice, FlightAware two-step scrape, schema). + +## What was verified, inside a real Docker build + +- Built the image (`docker build .`) and ran it standalone. +- Uploaded a synthetic PDF417 boarding pass photo through `/upload` → + decoded → parsed → correctly staged as `queued` with ICAO codes resolved + (SYD→YSSY, SIN→WSSS, QF→QFA). +- A photo with no barcode correctly landed on `decode_failed` with an error + message, not a crash. +- `/flights//requery` hit real FlightAware for a real past flight + (QFA1, 2026-06-22) and got back the same 1834-point track verified earlier + in the session — end-to-end scrape confirmed working from inside the + container. +- The review detail page renders the track into a Leaflet map via + `data-track`. +- ntfy notifications fire with correctly signed Approve/Deny URLs; both + wrong and missing tokens are correctly rejected with 403. +- Approve, with no AirTrail configured, failed gracefully and pushed a + distinct "Approve failed" ntfy notification rather than crashing or + silently losing the flight — matches the design in `airtrail_client.py`. +- Reject works and is idempotent. +- The edit form re-resolves ICAO codes and `process_after` when IATA + codes/date are corrected. + +## What's NOT verified (no live AirTrail instance available here) + +- An actual `POST /api/flight/save` against a real AirTrail instance has + never been exercised. The payload shape matches AirTrail's source + (`build_save_payload` in `airtrail_client.py`), but the + `seat`/`seatNumber`/`seatClass` field semantics are a best-effort mapping, + not confirmed against real AirTrail behavior. **First real approve should + be checked against the AirTrail UI** to confirm the flight, seat, and + track show up as expected. +- HEIC photos from iPhones weren't tested (only a synthetic JPEG barcode was + used here). Should be fine since browsers typically convert to JPEG on + ``, but worth confirming on a real device. diff --git a/README.md b/README.md new file mode 100644 index 0000000..81c2446 --- /dev/null +++ b/README.md @@ -0,0 +1,107 @@ +# boarding-pass-pipeline + +Photograph a boarding pass → decode its BCBP (IATA Resolution 792) PDF417 +barcode → wait until the day after the flight → fetch the historical flight +track from FlightAware's public site → stage it for manual review → notify +via ntfy with Approve/Deny/Investigate actions → on approval, write the +flight (with track) into [AirTrail](https://github.com/johanohly/AirTrail) +via its REST API. + +Not part of any other microservice stack. Single container, SQLite for all +local state, no task queue — a background thread handles the daily job. + +## Quick start + +1. Copy `.env.example` to `.env` and fill in `PUBLIC_BASE_URL`, + `AIRTRAIL_BASE_URL`, `AIRTRAIL_API_KEY`, and `TZ`. + + To get an AirTrail API key: log into your AirTrail instance → Account → + API Keys → create a new key. This pipeline authenticates to AirTrail as + that user and writes flights on their behalf. + +2. Create the external Docker network shared with NPMplus, if it doesn't + already exist: + + ``` + docker network create proxy + ``` + + (or edit `docker-compose.yml` to point at whatever network your NPMplus + container is already on.) + +3. Build and start: + + ``` + docker compose up -d --build + ``` + +4. Add a proxy host in NPMplus pointing at `boarding-pass:8080`, behind + Authelia, **except** for the two paths below (see "Approve/Deny callback + paths"). + +5. Open the site, go to **Settings**, and configure your ntfy server/topic + (defaults to the public `ntfy.sh` — use a private topic name, or point at + a self-hosted ntfy with an auth token). Send a test notification to + confirm it arrives. + +6. Go to **Upload** and photograph a boarding pass to confirm end-to-end + decoding works. + +## Approve/Deny callback paths — read this before exposing the service + +ntfy's action buttons fire a plain HTTP request from wherever the +notification is opened (phone, desktop) with **no Authelia session**. For +those buttons to work, `/flights/*/approve` and `/flights/*/reject` must +bypass the Authelia `auth_request` check in NPMplus. Add a location block +like this in the proxy host's advanced config: + +```nginx +location ~ ^/flights/[0-9]+/(approve|reject) { + # Bypasses Authelia for these two paths only. + proxy_pass http://boarding-pass:8080; +} +``` + +**This bypass applies to every request on that path, not just ntfy's** — +there is no way to distinguish "Authelia already checked this" from "anyone +on the internet hit this URL directly" once the bypass is in place. Because +of that, these two routes are protected only by a signed, expiring, +per-flight HMAC token (`tokens.py`) baked into the URL — including the +review page's own Approve/Reject buttons, which render a freshly-signed +token on every page load rather than relying on the surrounding page being +behind Authelia. Don't add a `?token=` bypass anywhere else, and don't widen +the nginx match beyond these two paths. + +## Re-running the reference data build + +`data/airports.csv` and `data/airlines.csv` are trimmed snapshots of +OurAirports/OpenFlights data, fetched once via `scripts/build_reference_data.py` +and committed. Re-run it if IATA/ICAO mappings go stale: + +``` +python3 scripts/build_reference_data.py +``` + +Known corrections in `reference_data.py`'s `CARRIER_ICAO_OVERRIDES` (e.g. +Virgin Australia VA → VOZ, where OpenFlights has a stale `VAU`) take priority +over the CSV and aren't touched by re-running the script. + +## Testing the daily job on demand + +The daily job normally runs once at `daily_run_time` (Settings page, default +03:00 container time). To trigger it immediately against whatever is queued: + +``` +docker exec boarding-pass python -c "from scheduler import run_daily_job; run_daily_job()" +``` + +## Notes + +- Uploaded photos are stored under `instance/uploads/`; the SQLite database + is `instance/boarding_pass.db`. Both are in the `instance/` volume — back + that directory up if you care about upload history. +- No OCR fallback: if barcode decoding fails, the flight is queued as + `decode_failed` and every field is editable on the review page instead. +- AirTrail integration only ever calls its documented REST API + (`/api/flight/save`, `/api/flight/list`) — it never touches AirTrail's + Postgres database directly. diff --git a/airtrail_client.py b/airtrail_client.py new file mode 100644 index 0000000..a51b702 --- /dev/null +++ b/airtrail_client.py @@ -0,0 +1,196 @@ +"""Client for AirTrail's REST API (POST /api/flight/save, GET /api/flight/list). + +Confirmed directly against AirTrail's source (johanohly/AirTrail): +- src/routes/api/flight/save/+server.ts +- src/lib/zod/flight.ts, src/lib/track/schema.ts, src/lib/db/types.ts + +Deliberately does NOT touch AirTrail's Postgres database directly - the +documented API does everything this pipeline needs (including embedded +track data in one call) without needing DB credentials or trusting a +schema snapshot that could drift. +""" + +import json +import urllib.error +import urllib.request +from datetime import date, datetime, timezone + +import config +import models +import notifier + +# IATA cabin compartment codes -> AirTrail SeatClasses ('economy', 'economy+', +# 'business', 'first', 'private'). Unmapped codes are left null rather than +# guessed. +COMPARTMENT_TO_SEATCLASS = { + "F": "first", "A": "first", "P": "first", + "J": "business", "C": "business", "D": "business", "I": "business", "Z": "business", + "W": "economy+", "S": "economy+", + "Y": "economy", "B": "economy", "H": "economy", "K": "economy", "L": "economy", + "M": "economy", "N": "economy", "Q": "economy", "T": "economy", "V": "economy", + "X": "economy", "G": "economy", "U": "economy", "O": "economy", "E": "economy", +} + + +class AirTrailError(Exception): + pass + + +def _request(method: str, path: str, body: dict | None = None) -> dict: + if not config.AIRTRAIL_BASE_URL or not config.AIRTRAIL_API_KEY: + raise AirTrailError("AIRTRAIL_BASE_URL / AIRTRAIL_API_KEY not configured") + + url = f"{config.AIRTRAIL_BASE_URL}{path}" + data = json.dumps(body).encode("utf-8") if body is not None else None + req = urllib.request.Request(url, data=data, method=method) + req.add_header("Authorization", f"Bearer {config.AIRTRAIL_API_KEY}") + req.add_header("Content-Type", "application/json") + + try: + with urllib.request.urlopen(req, timeout=30) as resp: + return json.loads(resp.read().decode("utf-8")) + except urllib.error.HTTPError as e: + try: + payload = json.loads(e.read().decode("utf-8")) + message = payload.get("message") or payload.get("errors") or str(payload) + except Exception: + message = f"HTTP {e.code}" + raise AirTrailError(f"AirTrail API error ({e.code}): {message}") from e + except urllib.error.URLError as e: + raise AirTrailError(f"failed to reach AirTrail: {e}") from e + + +def list_my_flights() -> list[dict]: + result = _request("GET", "/api/flight/list?scope=mine") + return result.get("flights", []) + + +def find_existing_flight(flight_number: str, flight_date: date) -> dict | None: + if not flight_number: + return None + target = flight_date.isoformat() + for flight in list_my_flights(): + if (flight.get("flightNumber") or "").strip().upper() != flight_number.strip().upper(): + continue + departure = flight.get("departure") + if departure and str(departure)[:10] == target: + return flight + return None + + +def downsample_track( + coordinates: list[list[float]], times: list[int] | None, max_points: int = config.MAX_TRACK_POINTS +) -> tuple[list[list[float]], list[int] | None]: + n = len(coordinates) + if n <= max_points: + return coordinates, times + + indices = [round(i * (n - 1) / (max_points - 1)) for i in range(max_points)] + new_coords = [coordinates[i] for i in indices] + new_times = [times[i] for i in indices] if times else None + return new_coords, new_times + + +def build_save_payload(row: dict, existing_id: int | None) -> dict: + flight_number = f"{row.get('operating_carrier_iata') or ''}{row.get('flight_number') or ''}" + flight_date_str = row["flight_date"] + + payload = { + "from": row["from_iata"], + "to": row["to_iata"], + "departure": f"{flight_date_str}T00:00:00.000+00:00", + "datePrecision": "day", + "flightNumber": flight_number or None, + "airline": row.get("operating_carrier_icao"), + "aircraft": None, + "aircraftReg": None, + "flightReason": None, + "note": f"Imported via boarding-pass-pipeline (PNR {row.get('pnr') or 'unknown'})", + "seats": [ + { + "userId": "", + "guestName": None, + "seat": None, + "seatNumber": row.get("seat"), + "seatClass": COMPARTMENT_TO_SEATCLASS.get((row.get("compartment") or "").upper()), + } + ], + } + + coordinates = row.get("track_coordinates") + if coordinates: + times = row.get("track_times") + coordinates, times = downsample_track(coordinates, times) + payload["track"] = { + "coordinates": coordinates, + "sourceFormat": "kml", + "sourceName": f"{flight_number} {flight_date_str}".strip(), + } + if times: + payload["track"]["times"] = times + else: + payload["track"] = None + + if existing_id is not None: + payload["id"] = existing_id + + return payload + + +def save_flight(payload: dict) -> dict: + return _request("POST", "/api/flight/save", payload) + + +def approve_flight(flight_id: int) -> tuple[bool, str]: + """Idempotent: shared by the review page's Approve button and the + ntfy-callback route, so both paths behave identically.""" + row = models.get_flight(flight_id) + if not row: + return False, "flight not found" + if row["status"] in ("approved", "rejected"): + return True, f"already {row['status']}" + + existing_id = None + try: + flight_date = date.fromisoformat(row["flight_date"]) + existing = find_existing_flight( + f"{row.get('operating_carrier_iata') or ''}{row.get('flight_number') or ''}", + flight_date, + ) + existing_id = existing["id"] if existing else None + payload = build_save_payload(row, existing_id) + result = save_flight(payload) + if not result.get("success"): + raise AirTrailError(result.get("message", "unknown AirTrail error")) + except Exception as e: + message = str(e) + # A failed ntfy-triggered approve has no UI to surface this to. + notifier.get_notifier().send( + title=f"Approve failed: {row.get('flight_number') or 'flight'}", + body=message[:200], + url=notifier.flight_url(flight_id), + ) + return False, message + + models.update_flight( + flight_id, + status="approved", + approved_at=datetime.now(timezone.utc).isoformat(), + airtrail_flight_id=result.get("id") or existing_id, + ) + return True, "approved" + + +def reject_flight(flight_id: int) -> tuple[bool, str]: + """Idempotent: shared by the review page's Reject button and the + ntfy-callback route.""" + row = models.get_flight(flight_id) + if not row: + return False, "flight not found" + if row["status"] in ("approved", "rejected"): + return True, f"already {row['status']}" + + models.update_flight( + flight_id, status="rejected", reviewed_at=datetime.now(timezone.utc).isoformat() + ) + return True, "rejected" diff --git a/app.py b/app.py new file mode 100644 index 0000000..94c0310 --- /dev/null +++ b/app.py @@ -0,0 +1,43 @@ +import logging +import os + +from flask import Flask, redirect, send_from_directory, url_for +from waitress import serve + +import config +import db +import routes_review +import routes_settings +import routes_upload +import scheduler + +logging.basicConfig(level=logging.INFO) + + +def create_app() -> Flask: + config.ensure_dirs() + db.init_db() + + app = Flask(__name__) + app.config["MAX_CONTENT_LENGTH"] = config.MAX_UPLOAD_MB * 1024 * 1024 + + app.register_blueprint(routes_upload.bp) + app.register_blueprint(routes_review.bp) + app.register_blueprint(routes_settings.bp) + + @app.route("/") + def index(): + return redirect(url_for("upload.upload")) + + @app.route("/uploads/") + def uploaded_file(name): + return send_from_directory(config.UPLOADS_DIR, name) + + return app + + +app = create_app() + +if __name__ == "__main__": + scheduler.start_background_thread() + serve(app, host="0.0.0.0", port=config.PORT) diff --git a/bcbp.py b/bcbp.py new file mode 100644 index 0000000..52423d1 --- /dev/null +++ b/bcbp.py @@ -0,0 +1,141 @@ +"""Parser for the mandatory fixed-width fields of an IATA Resolution 792 +(BCBP) barcode string - the format encoded in PDF417 boarding pass barcodes. + +Only the mandatory "unique" + first "repeated" (leg) field block is parsed +(offsets 0-59). Conditional/optional items beyond that are not needed for +this pipeline and are intentionally skipped. +""" + +import re +from dataclasses import dataclass, field +from datetime import date, datetime, timedelta + +FIELDS = [ + ("format_code", 1), + ("legs", 1), + ("name", 20), + ("eticket_indicator", 1), + ("pnr", 7), + ("from_iata", 3), + ("to_iata", 3), + ("operating_carrier", 3), + ("flight_number", 5), + ("julian_day", 3), + ("compartment", 1), + ("seat", 4), + ("checkin_sequence", 5), + ("passenger_status", 1), + ("field_size_hex", 2), +] +MANDATORY_LENGTH = sum(length for _, length in FIELDS) # 60 + +_AIRPORT_RE = re.compile(r"^[A-Z]{3}$") +_SEAT_RE = re.compile(r"^\d{1,3}[A-Z]$") + + +class BCBPParseError(ValueError): + pass + + +@dataclass +class ParsedBCBP: + raw: str + format_code: str = "" + passenger_name: str = "" + pnr: str = "" + from_iata: str = "" + to_iata: str = "" + operating_carrier: str = "" + flight_number: str = "" + julian_day: int | None = None + compartment: str = "" + seat: str = "" + warnings: list[str] = field(default_factory=list) + + +def _clean_leading_zeros(raw: str) -> str: + """'0001 ' -> '1', '0025B' -> '25B'. Leaves non-numeric-prefixed values alone.""" + s = raw.strip() + if not s: + return s + m = re.match(r"^(\d+)(.*)$", s) + if not m: + return s + digits, rest = m.groups() + digits = digits.lstrip("0") or "0" + return digits + rest.strip() + + +def _clean_name(raw: str) -> str: + s = raw.strip() + if "/" in s: + last, _, first = s.partition("/") + return f"{last.strip()} {first.strip()}".strip() + return s + + +def parse_bcbp(raw: str, upload_dt: datetime | None = None) -> ParsedBCBP: + if not raw or len(raw) < MANDATORY_LENGTH: + raise BCBPParseError( + f"barcode data too short ({len(raw) if raw else 0} chars, " + f"need at least {MANDATORY_LENGTH})" + ) + + mandatory = raw[:MANDATORY_LENGTH].upper() + offsets = {} + pos = 0 + for name, length in FIELDS: + offsets[name] = mandatory[pos : pos + length] + pos += length + + result = ParsedBCBP(raw=raw) + warnings = result.warnings + + result.format_code = offsets["format_code"] + if result.format_code != "M": + warnings.append(f"unexpected format code {result.format_code!r} (expected 'M')") + + result.passenger_name = _clean_name(offsets["name"]) + result.pnr = offsets["pnr"].strip() + result.compartment = offsets["compartment"].strip() + + from_iata = offsets["from_iata"].strip() + to_iata = offsets["to_iata"].strip() + if not _AIRPORT_RE.match(from_iata): + warnings.append(f"from_iata {from_iata!r} doesn't look like a valid IATA code") + if not _AIRPORT_RE.match(to_iata): + warnings.append(f"to_iata {to_iata!r} doesn't look like a valid IATA code") + result.from_iata = from_iata + result.to_iata = to_iata + + result.operating_carrier = offsets["operating_carrier"].strip() + result.flight_number = _clean_leading_zeros(offsets["flight_number"]) + + seat = _clean_leading_zeros(offsets["seat"]) + if seat and not _SEAT_RE.match(seat): + warnings.append(f"seat {seat!r} doesn't match the expected pattern") + result.seat = seat + + julian_raw = offsets["julian_day"].strip() + try: + julian_day = int(julian_raw) + if not (1 <= julian_day <= 366): + raise ValueError + result.julian_day = julian_day + except ValueError: + warnings.append(f"julian_day {julian_raw!r} is not a valid day-of-year (1-366)") + result.julian_day = None + + return result + + +def resolve_flight_date(julian_day: int, upload_dt: datetime) -> date: + """BCBP encodes only a day-of-year, no year. Pick whichever of last/this/ + next year's occurrence of that day-of-year is closest to the upload time - + handles both "photographed just before departure" and "photographed after + landing" cases.""" + candidates = [ + date(upload_dt.year + delta, 1, 1) + timedelta(days=julian_day - 1) + for delta in (-1, 0, 1) + ] + return min(candidates, key=lambda d: abs((d - upload_dt.date()).days)) diff --git a/boarding-pass-pipeline-brief.md b/boarding-pass-pipeline-brief.md new file mode 100644 index 0000000..66f61e8 --- /dev/null +++ b/boarding-pass-pipeline-brief.md @@ -0,0 +1,200 @@ +# Boarding Pass → AirTrail Pipeline + +## Overview + +A self-hosted service that lets me photograph a boarding pass on my phone, +stores it, and ~1 day after the flight lands automatically fetches the full +flight track from FlightAware and stages it for my approval before writing +into AirTrail (my self-hosted flight logbook at `airtrail.apointless.space`). + +This is a **standalone project**, not part of Herespace. Ship it as a +**Docker container** (docker-compose for local dev/deploy). It can still +sit behind my existing Authelia instance via NPMplus forward-auth, but it +is not one of the Herespace microservices and shouldn't assume that +infrastructure beyond Authelia/NPMplus being available on the network. + +## Conventions to follow + +- Backend language/framework is open — pick whatever's the best fit for + the job (barcode decoding, image handling, scheduling, small web UI). + Python is a reasonable default given the barcode/image processing + libraries available, but not a hard requirement. +- Minimal/zero third-party dependencies where reasonably possible. +- SQLite for local state, unless there's a good reason otherwise. +- A scheduled job for the daily "check the queue" pass — in-container + cron, a simple sleep-loop, or systemd timer on the host, whichever is + simplest to run inside a single Docker container without extra infra. +- Any web UI should sit behind Authelia (forward-auth via NPMplus) and use + my `apointless.css` design system: dark-first, JetBrains Mono + DM Sans, + blue accent `#3b82f6`, bg `#0b0d11`, surfaces `#12151b`/`#1a1e28`/`#232838`, + semantic color tokens, light mode via `html.light` + localStorage. +- Direct, concise code. No unnecessary abstraction layers. + +## Pipeline stages + +### 1. Upload page (mobile-friendly) + +- Single page, big upload/camera button, works well on a phone browser. +- Accepts a photo of a boarding pass. +- Behind Authelia. + +### 2. BCBP barcode decode + +- Boarding passes encode data in an IATA BCBP barcode (usually PDF417). +- Decode the barcode from the uploaded photo (e.g. via `pyzbar` + + `pillow`, or `zxing-cpp` if pyzbar's PDF417 support is insufficient — + check which actually decodes PDF417 reliably before committing). +- BCBP format reference: fixed-width fields, gives you at minimum: + - Passenger name + - PNR / booking reference + - Origin/destination airport codes (IATA) + - Operating carrier + flight number + - Julian date of flight (day-of-year, need current/implied year — BCBP + doesn't encode year, so use "nearest future or past occurrence of + this day-of-year relative to upload time" as the heuristic) + - Seat number, compartment/class +- Do NOT rely on OCR of the printed text as the primary path — the + barcode is structured and far more reliable. OCR can be a fallback if + barcode decode fails, but flag those for manual correction rather than + guessing. +- Store the decoded fields plus the original image (for manual reference) + in a local SQLite table, e.g. `pending_flights`. + +### 3. Queue / scheduling + +- Each row in `pending_flights` gets a `process_after` timestamp = + (flight date, derived from BCBP Julian date) + 1 day. +- A systemd timer runs a daily job that queries for rows where + `process_after <= now()` and `status = 'queued'`. + +### 4. FlightAware track fetch + +- **Do not use AeroAPI for this.** Its free Personal tier excludes + Historical Flight Data, and by the time this job runs (flight date + 1 + day) the flight will likely have aged into "historical" — that tier + boundary is not clearly documented so it's an unreliable free option + for this specific timing. +- Instead, replicate the manual FlightAware KML fetch we already proved + works: + - Build the flight history URL: + `https://www.flightaware.com/live/flight/{ICAO_CALLSIGN}/history/{YYYYMMDD}/{HHMM}Z/{FROM_ICAO}/{TO_ICAO}/google_earth` + - No session cookie/login required — this endpoint is publicly + accessible. + - This endpoint returns a `.kml` file with a `gx:Track` containing + `` (ISO timestamp) and `` (lon lat elevation_m) + elements — parse those into `[[lon, lat, elev_m], ...]` coordinate + array and `[unix_ts, ...]` times array. + - This is a LOW VOLUME job (one flight per day, not bulk), so no + aggressive rate limiting is needed — but still be polite: this is + scraping a public page, not a documented API, so keep it to one + request per pending flight per run and don't retry-hammer on + failure (back off and retry next day instead). + - Converting IATA flight number (from boarding pass) to ICAO callsign + for the URL: + - QF → QFA, VA → VOZ, JQ → JST, EK → UAE (extend as needed) + - Airport IATA → ICAO codes will also need a lookup (a static local + table is fine; AirTrail's own airport data, or OurAirports CSV, both + work as a source). + - If the flight can't be found on FlightAware (URL 404s, wrong flight + matched, no track available for old/low-coverage flights), mark the + row `status = 'track_unavailable'` and still let it be reviewed + manually with flight metadata only (no track) — don't just fail + silently. + +### 5. Staging (not direct DB write) + +- Per my earlier decision: **do not write directly into AirTrail's live + tables.** Insert into a separate staging table (in the pipeline's own + SQLite DB, or a staging schema in AirTrail's Postgres — either is fine, + SQLite is simpler and keeps this service decoupled) with all the + parsed flight + track data, `status = 'pending_review'`. + +### 6. Notification (ntfy) + +- When a flight moves to `pending_review`, send an ntfy notification. +- Build the notification backend as a small interface/abstraction (even + if ntfy is the only implementation right now) so other backends could + be added later without a rewrite — e.g. a `notify(title, body, url, + actions)` function with a config-selected backend, not ntfy calls + hardcoded throughout the codebase. +- Notification content: flight number, route, date, and a short summary + (e.g. "track found, 271 points" or "no track found"). Keep the body + short — this is a push notification, not the review UI itself. +- **Use ntfy action buttons** (`Actions` header) for a 3-button quick + response, so I can act straight from the notification without opening + the review page for the common cases: + - **Approve** — an HTTP action button that calls back into the service + (e.g. `POST /flights/{id}/approve`) to write the flight straight into + AirTrail. No further UI interaction needed. + - **Deny** — an HTTP action button that calls `POST /flights/{id}/reject`, + marks the row `status = 'rejected'`. + - **Investigate** — a `view` action button that opens the review page + for that specific flight in the browser (see stage 7). This is the + path for anything that needs a closer look — wrong flight matched, + missing track, boarding pass fields decoded incorrectly, etc. + - Ntfy action button docs: use `Actions:` header with comma-separated + action definitions (`http, Approve, https://.../approve, method=POST` + etc. — check current ntfy docs for exact syntax since it's changed + across versions). + - Approve/Deny should require some form of auth on the callback (e.g. a + per-flight signed token in the URL) since ntfy action buttons fire an + unauthenticated HTTP request from wherever the notification is + received — don't just trust a bare flight ID. +- ntfy config (topic, server URL — self-hosted vs ntfy.sh, auth token if + self-hosted) lives in the settings page (see below), not hardcoded. + +### 7. Review page + +- Lists flights with `status = 'pending_review'` (reachable from the + service's own nav, and directly via the ntfy "Investigate" action + button which deep-links to a specific flight's row on this page). +- For each: show the decoded boarding pass fields, matched flight route, + and — if a track was found — a small map preview of the track (a + static Leaflet/MapLibre map is fine, doesn't need to match AirTrail's + map exactly). +- **Editable fields**: every decoded/matched field (flight number, date, + origin/destination, carrier, etc.) should be editable inline here — + this is the "investigate" workflow. If the BCBP decode got something + wrong (e.g. wrong year inferred, misread airport code), I fix it here. +- **Re-query button**: after editing fields, a button to re-run the + FlightAware lookup (stage 4) using the corrected data, replacing + whatever track/match was previously staged for this row. This lets me + fix a bad initial match and pull the correct track without restarting + the whole pipeline from the boarding pass photo. +- Approve button: on confirm, writes the flight into AirTrail's `flight` + table (or updates an existing flight if one already matches — check + by flight number + date first, since I may have already manually + entered some flights) and the track into AirTrail's track table. + - AirTrail Postgres track table stores: `flightId`, `coordinates` + (JSON array of `[lon, lat, elev_m]`), `times` (JSON array of unix + timestamps), `sourceFormat` (string, e.g. `"kml"`), `sourceName` + (string, original filename/identifier). Confirm exact column names + and types against the live schema before writing + (`\d flight_track` or equivalent) — don't assume the names I've + given are byte-exact. + - Deny/reject button: mark `status = 'rejected'`, keep the row for + reference rather than hard-deleting. +- Also behind Authelia. +- This page is also what the ntfy Approve/Deny action buttons act on + server-side (same underlying approve/reject logic, just triggered + without opening this page). + +### 8. Settings page + +- Notification backend selector (dropdown, ntfy is the only real option + today but the UI should not assume it always will be). +- ntfy-specific fields: server URL (default `https://ntfy.sh` but + overridable for self-hosting), topic name, optional auth token. +- Save to local config (SQLite table or simple JSON/YAML file — your + call, whichever fits the existing service patterns better). + +## Open questions to resolve during the build (not blocking, use judgment) + +- Exact AirTrail Postgres schema for the flight and track tables (get + this from `\d flight` / `\d flight_track` on the live DB rather than + trusting anything written here from memory). +- Whether pyzbar or an alternative PDF417 decoder actually handles real + phone-photo boarding passes reliably (glare, skew, compression) — + test against a few real captures early rather than assuming. +- BCBP year disambiguation heuristic — pick something sane (nearest + occurrence to now) and revisit if it causes mismatches in practice. diff --git a/config.py b/config.py new file mode 100644 index 0000000..e497ae4 --- /dev/null +++ b/config.py @@ -0,0 +1,27 @@ +import os +from pathlib import Path + +BASE_DIR = Path(__file__).resolve().parent +INSTANCE_DIR = Path(os.environ.get("INSTANCE_DIR", BASE_DIR / "instance")) +UPLOADS_DIR = INSTANCE_DIR / "uploads" +DB_PATH = INSTANCE_DIR / "boarding_pass.db" + +PORT = int(os.environ.get("PORT", "8080")) +MAX_UPLOAD_MB = int(os.environ.get("MAX_UPLOAD_MB", "15")) + +PUBLIC_BASE_URL = os.environ.get("PUBLIC_BASE_URL", "").rstrip("/") +AIRTRAIL_BASE_URL = os.environ.get("AIRTRAIL_BASE_URL", "").rstrip("/") +AIRTRAIL_API_KEY = os.environ.get("AIRTRAIL_API_KEY", "") + +FLIGHTAWARE_USER_AGENT = ( + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " + "(KHTML, like Gecko) Chrome/124.0 Safari/537.36" +) + +MAX_TRACK_POINTS = 2000 +MAX_FETCH_ATTEMPTS = 5 + + +def ensure_dirs() -> None: + INSTANCE_DIR.mkdir(parents=True, exist_ok=True) + UPLOADS_DIR.mkdir(parents=True, exist_ok=True) diff --git a/data/airlines.csv b/data/airlines.csv new file mode 100644 index 0000000..e0be8ac --- /dev/null +++ b/data/airlines.csv @@ -0,0 +1,984 @@ +iata,icao,name +&T,T&O,Tom\\'s & co airliners +++,---,Lombards Air +-+,--+,U.S. Air +--,ELK,ELK Airways +..,...,Avilu +00,000,AirOne Continental +04,ABV,Antrak Air +07,770,Samurai Airlines +0A,GNT,Amber Air +0B,JOR,Blue Air +0D,DWT,Darwin Airline +0G,GA0,Global Airlines +0J,JCS,Jetclub +0M,0MM,All America MX +0P,PYB,All America BOPY +0X,CX0,Copenhagen Express +0Y,7ZC,All America CO +10,CNN,Canadian World +12,N12,12 North +13,EAV,Eastern Atlantic Virtual Airlines +1A,AGT,Amadeus Global Travel Distribution +1C,1CH,OneChina +1E,RGG,TransRussiaAirlines +1F,CIF,CB Airways UK ( Interliging Flights ) +1H,HEY,Hellenic Airways +1I,AMB,Deutsche Rettungsflugwacht +1K,BG1,BudgetAir +1L,OSY,Open Skies Consultative Commission +1R,R1R,All America CL +1T,RNX,1Time Airline +1Y,A9B,All America BR +20,RNE,Air Salone +2B,ARD,Aerocondor +2D,AOG,Aero VIP +2F,FTA,Frontier Flying Service +2G,CRG,Cargoitalia +2J,VBW,Air Burkina +2K,GLG,Aerolineas Galapagos (Aerogal) +2L,OAW,Helvetic Airways +2M,MDV,Moldavian Airlines +2N,NTJ,NextJet +2P,GAP,Air Philippines +2Q,SNC,Air Cargo Carriers +2R,M7A,All America AR +2S,SDY,Island Express +2T,HAM,Haiti Ambassador Airlines +2U,GIP,Air Guinee Express +2W,WLC,Welcome Air +2X,2K2,Regionalia Uruguay +2Y,AOW,Air Andaman (2Y) +2Z,CGN,Changan Airlines +3C,CEA,RegionsAir +3D,PMK,Palair Macedonia +3F,3FF,Fly Colombia ( Interliging Flights ) +3G,AYZ,Atlant-Soyuz Airlines +3J,WZP,Zip +3K,JSA,Jetstar Asia Airways +3L,ISK,Intersky +3N,URG,Air Urga +3P,TNM,Tiara Air +3Q,CYH,Yunnan Airlines +3R,GAI,Moskovia Airlines +3T,URN,Turan Air +3U,CSC,Sichuan Airlines +3V,TAY,TNT Airways +3W,EMX,Euromanx Airways +3X,GUI,Aguilar Connect +47,VVN,88 +4A,AKL,Air Kiribati +4B,BTQ,Boutique Air (Priv) +4C,ARE,Aires +4D,ASD,Air Sinai +4F,ECE,Air City +4G,GZP,Gazpromavia +4H,UBD,United Airways +4K,AAS,Askari Aviation +4L,MJX,Euroline +4M,DSM,LAN Argentina +4N,ANT,Air North Charter - Canada +4R,HHI,Hamburg International +4S,FNC,Finalair Congo +4T,BHP,Belair Airlines +4U,GWI,Germanwings +4Y,RBU,Airbus France +5A,AIP,Alpine Air Express +5B,BSX,Bassaka airlines +5C,ICL,CAL Cargo Air Lines +5D,SLI,Aerolitoral +5F,CIR,Arctic Circle Air Service +5G,SSV,Skyservice Airlines +5H,FFV,Fly540 +5J,CEB,Cebu Pacific +5K,HFY,Hi Fly +5L,RSU,Aerosur +5M,SIB,Sibaviatrans +5N,AUL,Aeroflot-Nord +5T,MPE,Canadian North +5V,UKW,Lviv Airlines +5W,AEU,Astraeus +5X,UPS,United Parcel Service +5Y,GTI,Atlas Air +5Z,BML,Bismillah Airlines +6A,CHP,Consorcio Aviaxsa +6B,BLX,TUIfly Nordic +6C,6CC,Vuela Cuba +6E,IGO,IndiGo Airlines +6F,MKD,MAT Airways +6G,AWW,Air Wales +6H,ISR,Israir +6I,IBZ,International Business Air +6J,SNJ,Skynet Asia Airways +6K,RIT,Asian Spirit +6N,NRD,Nordic Regional +6P,ISG,Club Air +6Q,SLL,Slovak Airlines +6R,DRU,Alrosa Mirny Air Enterprise +6U,UKR,Air Ukraine +6V,VGA,Air Vegas +6W,SOV,Saratov Aviation Division +6Z,UKS,Ukrainian Cargo Airways +76,SJS,Southjet +77,ZCS,Southjet connect +78,XAN,Southjet cargo +7B,KJC,Krasnojarsky Airlines +7C,JJA,Jeju Air +7E,AWU,Aeroline GmbH +7F,FAB,First Air +7G,SFJ,Star Flyer +7H,ERR,Era Alaska +7K,KGL,Kogalymavia Air Company +7L,ERO,Sun D'Or +7M,ZTF,Mongolian International Air Lines +7N,CNA,Centavia +7O,GAL,Galaxy Air +7P,BTV,Metro Batavia +7R,BRB,BRA-Transportes Aereos +7T,AGV,Air Glaciers +7V,ROB,ROYAL BRITAIN +88,8K8,All Australia +8A,BMM,Atlas Blue +8B,GFI,Caribbean Star Airlines +8C,ATN,Air Transport International +8D,EXV,Expo Aviation +8E,BRG,Bering Air +8F,FFR,Fischer Air +8H,HFR,Heli France +8J,JFU,Jet4You +8K,K88,Voestar +8L,CGP,Cargo Plus Aviation +8M,MXL,Maxair +8N,NKF,Barents AirLink +8P,PCO,Pacific Coastal Airline +8Q,BAJ,Baker Aviation +8R,TIB,TRIP Linhas A +8U,AAW,Afriqiyah Airways +8V,ACP,Astral Aviation +8W,PWF,Private Wings Flugcharter +8Y,PBU,Air Burundi +8Z,LER,Linea Aerea de Servicio Ejecutivo Regional +9A,99F,All Africa +9E,FLG,Pinnacle Airlines +9F,TLM,Tramm Airlines +9I,TKY,Thai Sky Airlines +9J,CR1,Regionalia Chile +9K,KAP,Cape Air +9L,CJC,Colgan Air +9N,N78,Regional Air Iceland +9Q,PBA,PB Air +9R,VAP,Phuket Air +9S,CQH,Spring Airlines +9T,ABS,Transwest Air +9U,MLD,Air Moldova +9V,VC9,Volotea Costa Rica +9W,JAI,Jet Airways +9X,ACL,Itali Airlines +9Y,KZK,Air Kazakhstan +::,:::,Llloyd Helicopters +??,???,Court Line +A1,A1F,Atifly +A2,CIU,Cielos Airlines +A3,AEE,Aegean Airlines +A4,SWD,Southern Winds Airlines +A5,RLA,Airlinair +A6,LPV,Air Alps Aviation +A7,MPD,Air Plus Comet +A8,BGL,Benin Golf Air +A9,TGZ,Georgian Airways +AA,AAL,American Airlines +AB,BER,Air Berlin +AC,ACA,Air Canada +AD,PRZ,Air Paradise International +AE,MDA,Mandarin Airlines +AF,AFR,Air France +AG,ABR,Air Contractors +AH,DAH,Air Algerie +AI,AIC,Air India Limited +AJ,NIG,Aero Contractors +AK,AXM,AirAsia +AL,SYX,Skywalk Airlines +AM,AMX,AeroMéxico +AN,AAA,Ansett Australia +AO,AUZ,Australian Airlines +AP,AIB,Airbus Industrie +AQ,AAH,Aloha Airlines +AR,ARG,Aerolineas Argentinas +AS,ASA,Alaska Airlines +AT,RAM,Royal Air Maroc +AU,AUT,Austral Lineas Aereas +AV,AVA,Avianca - Aerovias Nacionales de Colombia +AW,SCH,CHC Airways +AX,LOF,Trans States Airlines +AY,FIN,Finnair +AZ,AZA,Alitalia +B0,666,Aws express +B1,BA1,Baltic Air lines +B2,BRU,Belavia Belarusian Airlines +B3,BLV,Bellview Airlines +B4,BCF,BACH Flugbetriebsges +B5,FLT,Flightline +B6,JBU,JetBlue Airways +B7,UIA,Uni Air +B8,ERT,Eritrean Airlines +B9,BGD,Air Bangladesh +BA,BAW,British Airways +BB,SBS,Seaborne Airlines +BC,SKY,Skymark Airlines +BD,BMA,bmi +BE,BEE,Flybe +BF,RSR,Aero-Service +BG,BBC,Biman Bangladesh Airlines +BI,RBA,Royal Brunei Airlines +BJ,LBT,Nouvel Air Tunisie +BK,PDC,Potomac Air +BL,PIC,Jetstar Pacific +BM,BYE,Bayu Indonesia Air +BN,BNF,Braniff International Airways +BO,BOU,Bouraq Indonesia Airlines +BP,BOT,Air Botswana +BQ,ROM,Aeromar +BR,EVA,EVA Air +BS,BIH,British International Helicopters +BT,BTI,Air Baltic +BU,BRA,Braathens +BV,BPA,Blue Panorama Airlines +BW,BWA,Caribbean Airlines +BX,CST,Coast Air +BY,TOM,Thomsonfly +BZ,BDA,Blue Dart Aviation +C0,CLW,Centralwings +C1,CA1,CanXpress +C2,CAP,CanXplorer +C3,KIS,Contact Air +C4,IMX,Zimex Aviation +C5,UCA,CommutAir +C6,CJA,CanJet +C7,RLE,Rico Linhas A +C8,WDY,Chicago Express +C9,RUS,Cirrus Airlines +CA,CCA,Air China +CB,CCC,CCML Airlines +CC,ABD,Air Atlanta Icelandic +CD,LLR,Alliance Air +CE,NTW,Nationwide Airlines +CF,SDR,City Airline +CG,TOK,Airlines PNG +CH,BMJ,Bemidji Airlines +CI,CAL,China Airlines +CJ,CBF,China Northern Airlines +CK,CKK,China Cargo Airlines +CL,CLH,Lufthansa CityLine +CM,CMP,Copa Airlines +CN,WWD,Westward Airways +CO,COA,Continental Airlines +CP,CDN,Canadian Airlines +CQ,EXL,Sunshine Express Airlines +CS,CMI,Continental Micronesia +CT,CAT,Civil Air Transport +CU,CUB,Cubana de Aviación +CV,CVA,Air Chathams +CW,CWM,Air Marshall Islands +CX,CPA,Cathay Pacific +CY,CYP,Cyprus Airways +CZ,CSN,China Southern Airlines +D1,MDO,Domenican Airlines +D3,DAO,Daallo Airlines +D4,LID,Alidaunia +D5,DAU,Dauair +D6,ILN,Interair South Africa +D7,RDN,Dinar +D8,DJB,Djibouti Airlines +D9,DNV,Aeroflot-Don +DA,GRG,Air Georgia +DB,BZH,Brit Air +DC,GAO,Golden Air +DD,NOK,Nok Air +DE,CFG,Condor Flugdienst +DF,MJG,Michael Airlines +DG,SRQ,South East Asian Airlines +DH,DVA,Discovery Airways +DI,BAG,dba +DJ,PBN,Pacific Blue +DK,ELA,Eastland Air +DL,DAL,Delta Air Lines +DN,SGG,Senegal Airlines +DO,DOA,Dominicana de Aviaci +DP,FCA,First Choice Airways +DR,BIE,Air Mediterranee +DT,DTA,TAAG Angola Airlines +DU,HMS,Hemus Air +DV,LTF,Lufttaxi Fluggesellschaft +DW,UCR,Aero-Charter Ukraine +DX,DTR,DAT Danish Air Transport +DY,NAX,Norwegian Air Shuttle +E0,ESS,Eos Airlines +E1,ES2,Usa Sky Cargo +E2,KMP,Kampuchea Airlines +E3,DMO,Domodedovo Airlines +E4,RSO,Aero Asia International +E5,BRZ,Samara Airlines +E7,ESF,Estafeta Carga Aerea +E8,ELG,Alpi Eagles +E9,CXS,Boston-Maine Airways +EA,EAL,European Air Express +EC,TWN,Avialeasing Aviation Company +ED,ABQ,Airblue +EE,EAY,Aero Airlines +EF,EFA,Far Eastern Air Transport +EG,JAA,Japan Asia Airways +EH,AKX,Air Nippon Network Co. Ltd. +EI,EIN,Aer Lingus +EJ,NEA,New England Airlines +EK,UAE,Emirates +EL,ANK,Air Nippon +EM,AEB,Aero Benin +EN,DLA,Air Dolomiti +EO,LHN,Express One International +EP,IRC,Iran Aseman Airlines +EQ,TAE,TAME +ER,DHL,Astar Air Cargo +ES,DHX,DHL International +ET,ETH,Ethiopian Airlines +EU,EEA,Empresa Ecuatoriana De Aviacion +EV,ASQ,Atlantic Southeast Airlines +EW,EWG,Eurowings +EX,SDO,Air Santo Domingo +EY,ETD,Etihad Airways +EZ,EIA,Evergreen International Airlines +F1,FBL,Fly Brasil +F2,FLM,Fly Air +F3,FSW,Faso Airways +F4,NBK,Albarka Air +F5,COZ,Cosmic Air +F6,RCK,Faroejet +F7,BBO,Flybaboo +F9,FFT,Frontier Airlines +FA,SFR,Safair +FB,LZB,Bulgaria Air +FC,WBA,Finncomm Airlines +FD,AIQ,Thai AirAsia +FE,WCP,Primaris Airlines +FF,TOW,Tower Air +FG,AFG,Ariana Afghan Airlines +FH,FUA,Futura International Airways +FI,ICE,Icelandair +FJ,FJI,Air Pacific +FK,WTA,Africa West +FL,TRS,AirTran Airways +FM,CSH,Shanghai Airlines +FO,ATM,Airlines Of Tasmania +FP,FRE,Freedom Air +FQ,TCW,Thomas Cook Airlines +FR,RYR,Ryanair +FS,STU,Servicios de Transportes A +FT,SRH,Siem Reap Airways +FU,FXX,Felix Airways +FV,SDM,Rossiya-Russian Airlines +FW,IBX,Ibex Airlines +FX,FDX,Federal Express +FY,FFM,Firefly +FZ,FDB,Fly Dubai +G0,GHB,Ghana International Airlines +G1,IKA,Gorkha Airlines +G2,VXG,Avirex +G3,CIX,City Connexion Airlines +G4,AAY,Allegiant Air +G6,BSR,Guine Bissaur Airlines +G7,GNF,Gandalf Airlines +G8,AGB,Air Service Gabon +G9,ABY,Air Arabia +GA,GIA,Garuda Indonesia +GB,ABX,Airborne Express +GC,GNR,Gambia International Airlines +GD,AHA,Air Alpha Greenland +GE,TNA,TransAsia Airways +GF,GBA,Gulf Air Bahrain +GG,GUY,Air Guyane +GH,GLP,Globus +GI,IKA,Itek Air +GJ,MXC,Compania Mexicargo +GL,GRL,Air Greenland +GM,SVK,Air Slovakia +GN,AGN,Air Gabon +GO,KZU,Kuzu Airlines Cargo +GP,GES,Gestair +GQ,BSY,Big Sky Airlines +GR,AUR,Aurigny Air Services +GS,UPA,Air Foyle +GT,GBL,GB Airways +GU,GU1,Gulisano airways +GV,ARF,Aero Flight +GW,KIL,Kuban Airlines +GX,JXX,Jetx Airlines +GY,TMG,Tri-MG Intra Asia Airlines +GZ,RAR,Air Rarotonga +H1,HA1,Hankook Air US +H2,SKU,Sky Airline +H3,T33,THREE +H4,IIN,Inter Islands Airlines +H5,HOA,Hola Airlines +H6,HAG,Hageland Aviation Services +H8,KHB,Dalavia +H9,HAD,Air D'Ayiti +HA,HAL,Hawaiian Airlines +HB,HAR,Harbor Airlines +HC,ATI,Aero-Tropics Air Services +HD,ADO,Hokkaido International Airlines +HE,LGW,Luftfahrtgesellschaft Walter +HF,HLF,Hapagfly +HG,NLY,Niki +HH,AHO,Air Hamburg (AHO) +HJ,AXF,Asian Express Airlines +HK,FSC,Four Star Aviation / Four Star Cargo +HM,SEY,Air Seychelles +HN,HVY,Heavylift Cargo Airlines +HO,DJA,Antinea Airlines +HP,AWE,America West Airlines +HQ,HMY,Harmony Airways +HR,CUA,China United Airlines +HT,AHW,Aeromist-Kharkiv +HU,CHH,Hainan Airlines +HV,TRA,Transavia Holland +HW,FHE,Hello +HX,CRK,Hong Kong Airlines +HY,UZB,Uzbekistan Airways +HZ,SOZ,Sat Airlines +I2,IBS,Iberia Express +I4,FWA,Interstate Airline +I5,IDS,Indonesia Sky +I6,SEQ,Sky Eyes +I7,PMW,Paramount Airways +I9,AEY,Air Italy +IA,IAW,Iraqi Airways +IB,IBE,Iberia Airlines +IC,IAC,Indian Airlines +ID,ITK,Interlink Airlines +IE,SOL,Solomon Airlines +IF,ISW,Islas Airways +IG,ISS,Meridiana +II,CSQ,IBC Airways +IJ,GWL,Great Wall Airlines +IK,ITX,Imair Airlines +IL,ILW,Illinois Airways +IM,MNJ,Menajet +IN,MAK,MAT Macedonian Airlines +IO,IAA,Indonesian Airlines +IP,JOL,Atyrau Air Ways +IQ,AUB,Augsburg Airways +IR,IRA,Iran Air +IT,KFR,Kingfisher Airlines +IV,JET,Wind Jet +IW,AOM,AOM French Airlines +IX,AXB,Air India Express +IY,IYE,Yemenia +IZ,AIZ,Arkia Israel Airlines +J2,AHY,Azerbaijan Airlines +J3,PLR,Northwestern Air +J4,BFL,Buffalo Airways +J6,AOC,AVCOM +J7,CVC,Centre-Avia +J8,BVT,Berjaya Air +J9,GIF,Guinee Airlines +JA,BON,Air Bosna +JB,JBA,Helijet +JC,JEX,JAL Express +JD,JAS,Japan Air System +JE,MNO,Mango +JF,JAF,Jetairfly +JH,NES,Nordeste Linhas Aereas Regionais +JI,MDW,Midway Airlines +JJ,TAM,TAM Brazilian Airlines +JK,JKK,Spanair +JL,JAL,Japan Airlines +JM,AJM,Air Jamaica +JN,XLA,Excel Airways +JO,JAZ,JALways +JP,ADR,Adria Airways +JQ,JST,Jetstar Airways +JR,SER,Aero California +JS,KOR,Air Koryo +JT,LNI,Lion Mentari Airlines +JU,JAT,Jat Airways +JV,BLS,Bearskin Lake Air Service +JW,APW,Arrow Air +JX,JEC,Jett8 Airlines Cargo +JY,TCI,Air Turks and Caicos +JZ,SKX,Skyways Express +K1,KOQ,Kostromskie avialinii +K2,ELO,Eurolot +K4,CKS,Kalitta Air +K5,ABE,Aban Air +K6,BRV,Bravo Air Congo +K7,KBR,KoralBlue Airlines +K8,ZAK,Airlink Zambia +K9,KRI,Krylo Airlines +KA,HDA,Dragonair +KB,DRK,Druk Air +KC,KZR,Air Astana +KD,KNI,KD Avia +KE,KAL,Korean Air +KF,BLF,Blue1 +KG,BNX,LAI - Linea Aerea IAACA +KH,KHK,Kharkiv Airlines +KI,AAG,Air Atlantique +KJ,LAJ,British Mediterranean Airways +KK,KKK,Atlasjet +KL,KLM,KLM Royal Dutch Airlines +KM,AMC,Air Malta +KO,AER,Alaska Central Express +KP,KIA,Kiwi International Air Lines +KQ,KQA,Kenya Airways +KR,CWK,Comores Airlines +KS,PEN,Peninsula Airways +KT,CWS,California Western +KU,KAC,Kuwait Airways +KV,MVD,Kavminvodyavia +KX,CAY,Cayman Airways +KY,EQL,Air S +KZ,NCA,Nippon Cargo Airlines +L1,AL1,All Argentina +L2,LYC,Lynden Air Cargo +L3,JOS,DHL de Guatemala +L4,LJJ,Luchsh Airlines +L5,LTR,Lufttransport +L6,MAI,Mauritania Airlines International +L7,LPN,Laoag International Airlines +L8,LXG,Air Luxor GB +L9,TLW,Teamline Air +LA,LAN,LAN Airlines +LB,LLB,Lloyd Aereo Boliviano +LC,VLO,Varig Log +LD,AHK,Air Hong Kong +LE,LTY,Liberty Airways +LF,NDC,FlyNordic +LG,LGL,Luxair +LH,DLH,Lufthansa +LI,LIA,Leeward Islands Air Transport +LJ,SLA,Sierra National Airlines +LK,LXR,Air Luxor +LL,GRO,Allegro +LM,LAM,Linhas A +LN,LAA,Libyan Arab Airlines +LO,LOT,LOT Polish Airlines +LP,LPE,LAN Peru +LQ,LAQ,Lebanese Air Transport +LR,LRC,LACSA +LS,EXS,Jet2.com +LT,LTU,LTU International +LU,LXP,LAN Express +LV,LBC,Albanian Airlines +LW,NMI,Pacific Wings +LX,SWR,Swiss International Air Lines +LY,ELY,El Al Israel Airlines +M0,MNG,Aero Mongolia +M1,M1F,Maryland Air +M2,MZS,Mahfooz Aviation +M3,TUS,ABSA - Aerolinhas Brasileiras +M4,NOV,Nova Airline +M5,KEN,Kenmore Air +M6,AJT,Amerijet International +M7,MAA,MasAir +M8,TMW,Trans Maldivian Airways +M9,MSI,Motor Sich +MA,MAH,Malév +MB,EXA,Execair Aviation +MC,RCH,Air Mobility Command +MD,MDG,Air Madagascar +ME,MEA,Middle East Airlines +MF,CXA,Xiamen Airlines +MG,CCP,Champion Air +MH,MAS,Malaysia Airlines +MI,SLK,SilkAir +MJ,LPR,L +MK,MAU,Air Mauritius +ML,MAV,Maldivo Airlines +MN,CAW,Comair +MO,AUH,Abu Dhabi Amiri Flight +MP,MPH,Martinair +MQ,EGF,American Eagle Airlines +MR,MRT,Air Mauritanie +MS,MSR,Egyptair +MT,TCX,Thomas Cook Airlines +MU,CES,China Eastern Airlines +MV,RML,Armenian International Airways +MW,MYD,Maya Island Air +MX,MXA,Mexicana de Aviaci +MY,MXJ,Maxjet Airways +MZ,MNA,Merpati Nusantara Airlines +N2,DAG,Dagestan Airlines +N3,OMS,Omskavia Airline +N4,MTC,Mountain Air Company +N5,KGZ,Kyrgyz Airlines +N6,JEV,Lagun Air +N7,ROK,National Airlines +N8,HGK,Fika Salaama Airlines +N9,N99,All Europe +NA,NAL,National Airlines +NB,SNB,Sterling Airlines +NC,NJS,National Jet Systems +NE,ESK,SkyEurope +NF,AVN,Air Vanuatu +NG,LDA,Lauda Air +NH,ANA,All Nippon Airways +NI,PGA,Portugalia +NJ,NGB,Nordic Global Airlines +NK,NKS,Spirit Airlines +NL,SAI,Shaheen Air International +NM,DRD,Air Madrid +NN,MOV,VIM Airlines +NO,AUS,Aus-Air +NP,NIA,Nile Air +NQ,AJX,Air Japan +NR,PIR,Pamir Airways +NT,IBB,Binter Canarias +NU,JTA,Japan Transocean Air +NV,CRF,Air Central +NW,NWA,Northwest Airlines +NX,AMU,Air Macau +NY,FXI,Air Iceland +NZ,ANZ,Air New Zealand +O1,OAB,Orbit Airlines Azerbaijan +O6,ONE,Oceanair +O7,OZJ,Ozjet Airlines +O8,OHK,Oasis Hong Kong Airlines +OA,OAL,Olympic Airlines +OB,ASZ,Astrakhan Airlines +OD,ULA,Zuliana de Aviacion +OE,AOT,Asia Overnight Express +OF,FIF,Air Finland +OH,COM,Comair +OI,ORC,Orchid Airlines +OJ,OLA,Overland Airways +OK,CSA,Czech Airlines +OL,OLT,Ostfriesische Lufttransport +OM,MGL,MIAT Mongolian Airlines +ON,RON,Nauru Air Corporation +OO,SKW,SkyWest +OP,CHK,Chalk's Ocean Airways +OQ,CQN,Chongqing Airlines +OR,TFL,Arkefly +OS,AUA,Austrian Airlines +OT,PEL,Aeropelican Air Services +OU,CTN,Croatia Airlines +OV,ELL,Estonian Air +OW,EXK,Executive Airlines +OX,OEA,Orient Thai Airlines +OY,OAE,Omni Air International +OZ,AAR,Asiana Airlines +P5,RPB,AeroRep +P7,ESL,Russian Sky Airlines +P8,PTN,Pantanal Linhas Aéreas +P9,PGP,Perm Airlines +PA,FCL,Florida Coastal Airlines +PC,FAJ,Air Fiji +PD,POE,Porter Airlines +PE,AEL,Air Europe +PF,PNW,Palestinian Airlines +PG,BKP,Bangkok Airways +PH,PAO,Polynesian Airlines +PI,PDT,Piedmont Airlines (1948-1989) +PJ,SPM,Air Saint Pierre +PK,PIA,Pakistan International Airlines +PL,PLI,Aeroper +PM,TOS,Tropic Air +PN,CHB,West Air China +PO,PAC,Polar Air Cargo +PP,AI0,Air Indus +PQ,PNF,Panafrican Airways +PR,PAL,Philippine Airlines +PS,PSX,Pacific Southwest Airlines +PT,CCI,Capital Cargo International Airlines +PU,PUA,PLUNA +PV,PNR,PAN Air +PW,PRF,Precision Air +PX,ANG,Air Niugini +PY,SLM,Surinam Airways +PZ,LAP,TAM Mercosur +Q3,MBN,Zambian Airways +Q4,SAE,SOCHI AIR EXPRESS +Q5,MLA,40-Mile Air +Q6,CDP,Aero Condor Peru +Q8,PEC,Pacific East Asia Cargo Airlines +Q9,AFU,Afrinat International Airlines +QB,GFG,Georgian National Airlines +QC,CRD,Air Corridor +QD,QCL,Air Class Lineas Aereas +QE,ECC,Crossair Europe +QF,QFA,Qantas +QH,FLZ,Air Florida +QI,CIM,Cimber Air +QK,JZA,Air Canada Jazz +QL,RLN,Aero Lanka +QM,AML,Air Malawi +QN,ARR,Air Armenia +QO,MPX,Aeromexpress +QQ,UTY,Alliance Airlines +QR,QTR,Qatar Airways +QS,QSC,African Safari Airways +QT,TPA,TAMPA +QU,UGX,East African +QV,LAO,Lao Airlines +QW,BWG,Blue Wings +QX,QXE,Horizon Air +QY,BCS,European Air Transport +QZ,AWQ,Indonesia AirAsia +R0,RPK,Royal Airlines +R1,RS1,Royal Southern Airlines. +R2,ORB,Orenburg Airlines +R3,SYL,Aircompany Yakutia +R5,JAV,Jordan Aviation +R7,OCA,Aserca Airlines +R8,KGA,Kyrgyzstan Airlines +R9,CAM,Camai Air +RA,RNA,Nepal Airlines +RB,SBK,Air Srpska +RC,FLI,Atlantic Airways +RD,RYN,Ryan International Airlines +RE,REA,Aer Arann +RF,FWL,Florida West International Airways +RG,VRN,VRG Linhas Aereas +RH,RPH,Republic Express Airlines +RI,MDL,Mandala Airlines +RJ,RJA,Royal Jordanian +RK,RKA,Air Afrique +RL,RFJ,Royal Falcon +RM,RNY,Rainbow Air US +RN,RAB,Rainbow Air (RAI) +RO,ROT,Tarom +RP,CHQ,Chautauqua Airlines +RQ,KMF,Kam Air +RR,RFR,Royal Air Force +RS,ICT,Intercontinental de Aviaci +RU,ABW,AirBridge Cargo +RV,CPN,Caspian Airlines +RW,RPA,Republic Airlines +RX,AEH,Aviaexpress +RY,RAY,Rainbow Air Canada +S0,OKS,Slok Air Gambia +S1,SA1,Serbian Airlines +S2,RSH,Air Sahara +S3,BBR,Santa Barbara Airlines +S4,RZO,SATA International +S5,TCF,Shuttle America +S7,SBI,S7 Airlines +S8,CSU,Chari Aviation Services +S9,HSA,East African Safari Air +SA,SAA,South African Airways +SB,ACI,Air Caledonie International +SC,CDG,Shandong Airlines +SD,SUD,Sudan Airways +SE,SEU,XL Airways France +SF,DTH,Tassili Airlines +SG,JGO,JetsGo +SH,FLY,Fly Me Sweden +SI,SIH,Skynet Airlines +SJ,SJY,Sriwijaya Air +SK,SAS,Scandinavian Airlines System +SL,RSL,Rio Sul Servi +SM,SRL,Swedline Express +SN,DAT,Brussels Airlines +SO,HKA,Superior Aviation +SP,SAT,SATA Air Acores +SQ,SIA,Singapore Airlines +SR,SWR,Swissair +SS,CRL,Corsairfly +ST,GMI,Germania +SU,AFL,Aeroflot Russian Airlines +SV,SVA,Saudi Arabian Airlines +SW,NMB,Air Namibia +SX,SRK,Sky Work Airlines +SY,SCX,Sun Country Airlines +T1,TP3,TROPICAL LINHAS AEREAS +T2,TCG,Thai Air Cargo +T3,EZE,Eastern Airways +T4,HEJ,Hellas Jet +T5,TUA,Turkmenistan Airlines +T6,TVR,Tavrey Airlines +T7,TJT,Twin Jet +T9,TRZ,TransMeridian Airlines +TA,TAT,Grupo TACA +TB,TUB,TUI Airlines Belgium +TC,ATC,Air Tanzania +TD,LUR,Atlantis European Airways +TE,LIL,FlyLal +TF,SCW,Malmö Aviation +TG,THA,Thai Airways International +TH,TSE,Transmile Air Services +TI,TOL,Tol-Air Services +TJ,TJA,T.J. Air +TK,THY,Turkish Airlines +TL,ANO,Airnorth +TN,THT,Air Tahiti Nui +TO,PSD,President Airlines +TP,TAP,TAP Portugal +TQ,TDM,Tandem Aero +TR,TGW,Tiger Airways +TS,TSC,Air Transat +TT,KLA,Air Lithuania +TU,TAR,Tunisair +TV,VEX,Virgin Express +TW,TWA,Trans World Airlines +TX,FWI,Air Caraïbes +TY,TPC,Air Cal +TZ,SCO,Scoot +U1,001,AirOne Polska +U2,EZY,easyJet +U3,AIA,Avies +U4,PMT,PMTair +U5,GWY,USA3000 Airlines +U6,SVR,Ural Airlines +U7,JUS,USA Jet Airlines +U8,RNV,Armavia +U9,TAK,Tatarstan Airlines +UA,UAL,United Airlines +UB,UBA,Myanma Airways +UD,HER,Hex'Air +UE,NAS,Nasair +UF,UKM,UM Airlines +UG,TUI,Tuninter +UI,ECA,Eurocypria Airlines +UJ,LMU,AlMasria Universal Airlines +UK,BUZ,buzz +UL,ALK,SriLankan Airlines +UM,AZW,Air Zimbabwe +UN,TSO,Transaero Airlines +UO,HKE,Hong Kong Express Airways +UP,BHS,Bahamasair +UQ,OCM,O'Connor Airlines +US,USA,US Airways +UT,UTA,UTair Aviation +UU,REU,Air Austral +UX,AEA,Air Europa +UY,UYC,Cameroon Airlines +UZ,BRQ,El-Buraq Air Transport +V0,VCV,Conviasa +V1,VIA,VIA Líneas Aéreas +V2,AKT,Karat +V3,KRP,Carpatair +V4,REK,Reem Air +V5,VLI,Avolar Aerolineas +V7,SNG,Air Senegal International +V8,VAS,ATRAN Cargo Airlines +V9,BTC,BAL Bashkirian Airlines +VA,VAU,V Australia Airlines +VC,VCX,Ocean Airlines +VD,KPA,Kunpeng Airlines +VE,AVE,Avensa +VF,VLU,Valuair +VG,VLM,VLM Airlines +VH,VNP,Virgin Pacific +VI,VDA,Volga-Dnepr Airlines +VJ,JTY,Jatayu Airlines +VK,VGN,Virgin Nigeria Airways +VL,VIM,Air VIA +VM,VOA,Viaggio Air +VN,HVN,Vietnam Airlines +VO,TYR,Tyrolean Airways +VP,VSP,VASP +VQ,VKH,Viking Hellas +VR,TCV,TACV +VS,VIR,Virgin Atlantic Airways +VT,VTA,Air Tahiti +VU,VUN,Air Ivoire +VV,AEW,Aerosvit Airlines +VW,TAO,Aeromar +VX,VRD,Virgin America +VY,FOS,Formosa Airlines +VZ,MYT,MyTravel Airways +W1,WE1,World Experience Airline +W2,CWA,Canadian Western Airlines +W3,ARA,Arik Air +W4,BES,Aero Services Executive +W5,IRM,Mahan Air +W6,WZZ,Wizz Air +W8,CJT,Cargojet Airways +W9,AAB,Abelag Aviation +WA,KLC,KLM Cityhopper +WB,RWD,Rwandair Express +WC,ISV,Islena De Inversiones +WD,DSR,DAS Air Cargo +WE,CWC,Centurion Air Cargo +WF,WIF,Widerøe +WG,SWG,Sunwing Airlines +WH,CNW,China Northwest Airlines +WJ,WEB,WebJet Linhas A +WK,AFB,American Falcon +WL,FQR,CheapFlyingInternational +WN,SWA,Southwest Airlines +WO,WOA,World Airways +WP,MKU,Island Air (WP) +WQ,PQW,PanAm World Airways +WR,HRH,Royal Tongan Airlines +WS,WJA,WestJet +WU,WAU,Wizz Air Ukraine +WV,SWV,Swe Fly +WW,BMI,bmibaby +WX,BCY,CityJet +WY,OMA,Oman Air +WZ,RWZ,Red Wings +X3,HLX,TUIfly +X5,OTJ,Fly Romania +X7,CHF,Chitaavia +X9,X9F,FRA Air +XA,XAU,XAIR USA +XB,NXB,NEXT Brasil +XE,BTA,ExpressJet +XF,VLK,Vladivostok Air +XG,CLI,Calima Aviacion +XJ,MES,Mesaba Airlines +XK,CCM,Corse-Mediterranee +XL,LNE,Aerolane +XM,SMX,Alitalia Express +XO,CXH,China Xinhua Airlines +XP,CXP,Xtra Airways +XQ,SXS,SunExpress +XS,SIT,SITA +XT,AXL,Air Exel +XW,SXR,Sky Express +XX,GFY,Greenfly +XY,KNE,Nas Air +Y4,VOI,Volaris +Y5,PCE,Pace Airlines +Y8,YZR,Yangtze River Express +Y9,IRK,Kish Air +YC,YCC,Ciel Canadien +YE,YEL,Yellowtail +YL,LLM,Yamal Airlines +YM,MGX,Montenegro Airlines +YO,TYS,TransHolding System +YP,AEF,Aero Lloyd (YP) +YS,RAE,Régional +YT,TGA,Air Togo +YV,ASH,Mesa Airlines +YW,ANE,Air Nostrum +YX,MEP,Midwest Airlines +YY,VWA,Virginwings +YZ,YZZ,LSM AIRLINES +Z0,Z9H,All Argentina Express +Z3,SMJ,Avient Aviation +Z4,OOM,Zoom Airlines +Z5,IIR,INAVIA Internacional +Z6,ZTT,ZABAIKAL AIRLINES +Z7,ADK,ADC Airlines +Z8,AZN,Amaszonas +ZA,CYD,Access Air +ZB,BUB,Air Bourbon +ZC,KGO,Korongo Airlines +ZE,AZE,Arcus-Air Logistic +ZG,VVM,Viva Macau +ZH,CSZ,Shenzhen Airlines +ZI,AAF,Aigle Azur +ZK,GLA,Great Lakes Airlines +ZL,RXA,Regional Express +ZM,IWA,Apache Air +ZN,ZNA,Zenith International Airline +ZP,AZQ,Silk Way Airlines +ZQ,LOC,Locair +ZS,SMY,Sama Airlines +ZT,AWC,Titan Airways +ZU,HCY,Helios Airways +ZV,AMW,Air Midwest +ZW,AWI,Air Wisconsin +ZX,GGN,Air Georgian +ZY,ADE,Ada Air diff --git a/data/airports.csv b/data/airports.csv new file mode 100644 index 0000000..0ce41ad --- /dev/null +++ b/data/airports.csv @@ -0,0 +1,8257 @@ +iata,icao,name +AAA,NTGA,Anaa Airport +AAB,YARY,Arrabury Airport +AAC,HEAR,El Arish International Airport +AAE,DABB,Annaba Rabah Bitat Airport +AAF,KAAF,Apalachicola Regional Airport +AAH,EDKA,Aachen-Merzbrück Airport +AAJ,SMCA,Cayana Airstrip +AAK,NGUK,Aranuka Airport +AAL,EKYT,Aalborg Airport +AAM,FAMD,Malamala Airport +AAN,OMAL,Al Ain International Airport +AAO,SVAN,Anaco Airport +AAP,WALS,Aji Pangeran Tumenggung Pranoto International Airport +AAQ,URKA,Anapa Vityazevo Airport +AAR,EKAH,Aarhus Airport +AAT,ZWAT,Altay Xuedu Airport +AAU,NSAU,Asau Airport +AAV,RPMA,Allah Valley Airport +AAX,SBAX,Romeu Zema Airport +AAY,OYGD,Al Ghaydah International Airport +AAZ,MGQZ,Quezaltenango Airport +ABA,UNAA,Abakan International Airport +ABB,DNAS,Asaba International Airport +ABC,LEAB,Albacete Airport / Los Llanos Air Base +ABD,OIAA,Abadan Ayatollah Jami International Airport +ABE,KABE,Lehigh Valley International Airport +ABF,NGAB,Abaiang Airport +ABG,YABI,Abingdon Downs Airport +ABH,YAPH,Alpha Airport +ABI,KABI,Abilene Regional Airport +ABJ,DIAP,Félix-Houphouët-Boigny International Airport +ABK,HAKD,Kebri Dahar Airport +ABL,PAFM,Ambler Airport +ABM,YNPE,Northern Peninsula Airport +ABN,SMBN,Albina Airport +ABO,DIAO,Aboisso Airport +ABQ,KABQ,Albuquerque International Sunport +ABR,KABR,Aberdeen Regional Airport +ABS,HEBL,Abu Simbel Airport +ABT,OEBA,King Saud Bin Abdulaziz (Al Baha) Airport +ABU,WATA,AA Bere Tallo (Haliwen) Airport +ABV,DNAA,Nnamdi Azikiwe International Airport +ABX,YMAY,Albury Airport +ABY,KABY,Southwest Georgia Regional Airport +ABZ,EGPD,Aberdeen International Airport +ACA,MMAA,General Juan N. Álvarez International Airport +ACB,KACB,Antrim County Airport +ACC,DGAA,Kotoka International Airport +ACD,SKAD,Alcides Fernández Airport +ACE,GCRR,César Manrique-Lanzarote Airport +ACF,ZWAL,Aral Tarim Airport +ACH,LSZR,Sankt Gallen Altenrhein Airport +ACI,EGJA,Alderney Airport +ACJ,VCCA,Anuradhapura Airport +ACK,KACK,Nantucket Memorial Airport +ACN,MMCC,Ciudad Acuña International Airport +ACP,OITM,Sahand Airport +ACR,SKAC,Araracuara Airport +ACS,UNKS,Achinsk Airport +ACT,KACT,Waco Regional Airport +ACV,KACV,California Redwood Coast-Humboldt County Airport +ACX,ZUYI,Xingyi Wanfenglin Airport +ACY,KACY,Atlantic City International Airport +ACZ,OIZB,Zabol Airport +ADA,LTAF,Adana Şakirpaşa Airport +ADB,LTBJ,Adnan Menderes International Airport +ADC,AYAN,Andakombe Airport +ADD,HAAB,Addis Ababa Bole International Airport +ADE,OYAA,Aden International Airport +ADF,LTCP,Adıyaman Airport +ADG,KADG,Lenawee County Airport +ADH,UEEA,Aldan Airport +ADI,FYAR,Arandis Airport +ADJ,OJAM,Marka International (Amman Civil) Airport +ADK,PADK,Adak Airport +ADL,YPAD,Adelaide International Airport +ADM,KADM,Ardmore Municipal Airport +ADO,YAMK,Andamooka Airport +ADP,VCCG,Ampara Airport +ADQ,PADQ,Kodiak Airport +ADR,KPHH,Robert F Swinnie Airport +ADS,KADS,Addison Airport +ADT,KADH,Ada Regional Airport +ADU,OITL,Ardabil Airport +ADW,KADW,Joint Base Andrews +ADX,EGQL,Leuchars Station Airfield +ADY,FAAL,Alldays Airport +ADZ,SKSP,Gustavo Rojas Pinilla International Airport +AEA,NGTB,Abemama Airport +AEB,ZGBS,Baise (Bose) Bama Airport +AEG,WIME,Aek Godang Airport +AEH,FTTC,Abeche Airport +AEK,AYAX,Aseki Airport +AEL,KAEL,Albert Lea Municipal Airport +AEM,UHTG,Amgu Airport +AEO,GQNA,Aioun el Atrouss Airport +AEP,SABE,Aeroparque Jorge Newbery +AER,URSS,Sochi International Airport +AES,ENAL,Ålesund Airport +AET,PFAL,Allakaket Airport +AEU,OIBA,Abu Musa Island Airport +AEX,KAEX,Alexandria International Airport +AEY,BIAR,Akureyri International Airport +AFA,SAMR,Suboficial Ay Santiago Germano Airport +AFD,FAPA,Port Alfred Airport +AFF,KAFF,USAF Academy Airfield +AFI,SKAM,Amalfi Airport +AFL,SBAT,Piloto Osvaldo Marques Dias Airport +AFN,KAFN,Jaffrey Airfield Silver Ranch Airport +AFO,KAFO,Afton Municipal Airport +AFR,AYAF,Afore Airstrip +AFS,UTSN,Sugraly Airport +AFT,AGAF,Afutara Aerodrome +AFW,KAFW,Perot Field/Fort Worth Alliance Airport +AFY,LTAH,Afyon Air Base +AFZ,OIMS,Sabzevar National Airport +AGA,GMAD,Al Massira Airport +AGB,EDMA,Augsburg Airport +AGC,KAGC,Allegheny County Airport +AGE,EDWG,Wangerooge Airport +AGF,LFBA,Agen La Garenne airport +AGH,ESTA,Ängelholm-Helsingborg Airport +AGI,SMWA,Wageningen Airstrip +AGJ,RORA,Aguni Airport +AGL,AYWG,Wanigela Airport +AGM,BGAM,Tasiilaq Heliport +AGN,PAGN,Angoon Seaplane Base +AGO,KAGO,Magnolia Municipal Airport / Ralph C Weiser Field +AGP,LEMG,Málaga-Costa del Sol Airport +AGR,VIAG,Agra Airport / Agra Air Force Station +AGS,KAGS,Augusta Regional At Bush Field +AGT,SGES,Guaraní International Airport +AGU,MMAS,Aguascalientes International Airport +AGV,SVAC,Oswaldo Guevara Mujica Airport +AGX,VOAT,Agatti Airport +AGZ,FAAG,Aggeneys Airport +AHB,OEAB,Abha International Airport +AHC,KAHC,Amedee Army Air Field +AHD,K1F0,Ardmore Downtown Executive Airport +AHE,NTHE,Ahe Airport +AHF,K37V,Arapahoe Municipal Airport +AHH,KAHH,Amery Municipal Airport +AHI,WAPA,Amahai Airport +AHJ,ZUHY,Hongyuan Airport +AHL,SYAH,Aishalton Airport +AHM,KS03,Ashland Municipal Airport Sumner Parker Field +AHN,KAHN,Athens Ben Epps Airport +AHO,LIEA,Alghero-Fertilia Airport +AHS,MHAH,Ahuas Airport +AHU,GMTA,Cherif Al Idrissi Airport +AHZ,LFHU,L'Alpe d'Huez - Henri Giraud Altiport +AIA,KAIA,Alliance Municipal Airport +AID,KAID,Anderson Municipal Darlington Field +AIE,AYAO,Aiome Airport +AIF,SNAX,Marcelo Pires Halzhausen Airport +AIG,FEFY,Yalinga Airport +AIH,AYAK,Aiambak Airport +AII,HDAS,Ali-Sabieh Airport +AIK,KAIK,Aiken Regional Airport +AIN,PAWI,Wainwright Airport +AIO,KAIO,Atlantic Municipal Airport +AIP,VIAX,Adampur Airport +AIR,SSOU,Aripuanã Airport +AIS,NGTR,Arorae Island Airport +AIT,NCAI,Aitutaki Airport +AIU,NCAT,Enua Airport +AIV,KAIV,George Downer Airport +AIW,FYAA,Ai-Ais Airport +AIY,SNUI,Araçuaí Airport +AIZ,KAIZ,Lee C Fine Memorial Airport +AJA,LFKJ,Ajaccio Napoléon Bonaparte airport +AJF,OESK,Al-Jawf International Airport +AJI,LTCO,Ağrı Airport +AJJ,GQNJ,Akjoujt Airport +AJK,OIHR,Arak Airport +AJL,VELP,Lengpui Airport +AJN,FMCV,Ouani Airport +AJR,ESNX,Arvidsjaur Airport +AJU,SBAR,Aracaju - Santa Maria Airport +AJY,DRZA,Mano Dayak International Airport +AKA,ZLAK,Ankang Fuqiang Airport +AKB,PAAK,Atka Airport +AKC,KAKR,Akron Fulton International Airport +AKD,VAAK,Akola Airport +AKE,FOGA,Akieni Airport +AKF,HLKF,Kufra Airport +AKG,AYGU,Anguganak Airport +AKH,OEPS,Prince Sultan Air Base +AKI,PFAK,Akiak Airport +AKJ,RJEC,Asahikawa Airport +AKK,PAKH,Akhiok Airport +AKL,NZAA,Auckland International Airport +AKN,PAKN,King Salmon Airport +AKO,KAKO,Colorado Plains Regional Airport +AKP,PAKP,Anaktuvuk Pass Airport +AKR,DNAK,Akure Airport +AKS,AGGA,Gwaunaru'u Airport +AKT,LCRA,RAF Akrotiri +AKU,ZWAK,Aksu Hongqipo Airport +AKV,CYKO,Akulivik Airport +AKW,OIAG,Aghajari Airport +AKX,UATT,Aktobe International Airport +AKY,VYSW,Sittwe Airport +ALA,UAAA,Almaty International Airport +ALB,KALB,Albany International Airport +ALC,LEAL,Alicante-Elche Miguel Hernández Airport +ALD,SPAR,Alerta Airport +ALE,KE38,Alpine Casparis Municipal Airport +ALF,ENAT,Alta Airport +ALG,DAAG,Houari Boumediene Airport +ALH,YABA,Albany Airport +ALI,KALI,Alice International Airport +ALJ,FAAB,Alexander Bay Airport +ALM,KALM,Alamogordo White Sands Regional Airport +ALN,KALN,St Louis Regional Airport +ALO,KALO,Waterloo Regional Airport +ALP,OSAP,Aleppo International Airport +ALQ,SSLT,Alegrete Novo Airport +ALR,NZLX,Alexandra Aerodrome +ALS,KALS,San Luis Valley Regional Airport/Bergman Field +ALU,HCMA,Alula Airport +ALW,KALW,Walla Walla Regional Airport +ALX,KALX,Thomas C Russell Field +AMA,KAMA,Rick Husband Amarillo International Airport +AMB,FMNE,Ambilobe Airport +AMC,FTTN,Am Timan Airport +AMD,VAAH,Sardar Vallabh Patel International Airport +AMF,AYAA,Ama Airport +AMH,HAAM,Arba Minch Airport +AMJ,SNAR,Cirilo Queiróz Airport +AMK,K00C,Animas Air Park +AMM,OJAI,Queen Alia International Airport +AMN,KAMN,Gratiot Community Airport +AMO,FTTU,Mao Airport +AMP,FMSY,Ampanihy Airport +AMQ,WAPP,Pattimura International Airport +AMS,EHAM,Amsterdam Airport Schiphol +AMT,YAMT,Amata Airport +AMU,AYAM,Amanab Airport +AMV,ULDD,Amderma Airport +AMW,KAMW,Ames Municipal Airport +AMX,YAMM,Ammaroo Airport +AMZ,NZAR,Ardmore Airport +ANB,KANB,Anniston Regional Airport +ANC,PANC,Ted Stevens Anchorage International Airport +AND,KAND,Anderson Regional Airport +ANE,LFJR,Angers Marcé airport +ANF,SCFA,Andrés Sabella Gálvez International Airport +ANG,LFBU,Angoulême Brie-Champniers airport +ANI,PANI,Aniak Airport +ANJ,FCBZ,Zanaga Airport +ANK,LTAD,Etimesgut Air Base +ANM,FMNH,Antsirabe Airport +ANN,PANT,Annette Island Airport +ANO,FQAG,Angoche Airport +ANP,KANP,Lee Airport +ANQ,KANQ,Tri State Steuben County Airport +ANR,EBAW,Antwerp International Airport (Deurne) +ANS,SPHY,Andahuaylas Airport +ANT,LOIC,Sankt Anton am Arlberg Heliport +ANU,TAPA,V. C. Bird International Airport +ANV,PANV,Anvik Airport +ANW,KANW,Ainsworth Regional Airport +ANX,ENAN,"Andøya Airport, Andenes" +ANY,KANY,Anthony Municipal Airport +AOC,EDAC,Leipzig–Altenburg Airport +AOE,LTBY,Hasan Polatkan Airport +AOG,ZYAS,Anshan Teng'ao Airport / Anshan Air Base +AOH,KAOH,Lima Allen County Airport +AOI,LIPY,Marche Airport +AOJ,RJSA,Aomori Airport +AOK,LGKP,Karpathos Airport +AOL,SARL,Paso De Los Libres Airport +AOO,KAOO,Altoona Blair County Airport +AOP,SPAS,Alferez FAP Alfredo Vladimir Sara Bauer Airport +AOQ,BGAG,Aappilattoq Heliport +AOR,WMKA,Sultan Abdul Halim Airport +AOS,AK81,Amook Bay Seaplane Base +AOT,LIMW,Aosta Corrado Gex Airport +AOU,VLAP,Attopeu Airport +APA,KAPA,Centennial Airport +APB,SLAP,Apolo Airport +APC,KAPC,Napa County Airport +APD,WAWN,Arung Palakka Airport +APF,KAPF,Naples Municipal Airport +APG,KAPG,Phillips Army Air Field +APH,KAPH,Mary Walker LZ Airport +API,SKAP,Gomez Nino Apiay Air Base +APK,NTGD,Apataki Airport +APL,FQNP,Nampula Airport +APN,KAPN,Alpena County Regional Airport +APO,SKLC,Antonio Roldán Betancur Airport +APQ,SNAL,Arapiraca Airport +APR,AYPE,April River Airport +APS,SWNS,Anápolis Airport +APT,KAPT,Marion County Airport - Brown Field +APU,SSAP,Captain João Busse Airport +APV,KAPV,Apple Valley Airport +APW,NSFA,Faleolo International Airport +APX,SSOG,Arapongas Airport +APZ,SAHZ,Zapala Airport +AQA,SBAQ,Araraquara Airport +AQB,MGQC,Quiché Airport +AQG,ZSAQ,Anqing Tianzhushan Airport / Anqing North Air Base +AQI,OEPA,Qaisumah–Hafar Al-Batin International Airport +AQJ,OJAQ,King Hussein International Airport +AQM,SJOG,Ariquemes Airport +AQP,SPQU,Rodríguez Ballón International Airport +ARA,KARA,Acadiana Regional Airport +ARB,KARB,Ann Arbor Municipal Airport +ARC,PARC,Arctic Village Airport +ARD,WATM,Alor Island - Mali Airport +ARE,TJAB,Antonio Nery Juarbe Pol Airport +ARG,KARG,Walnut Ridge Regional Airport +ARH,ULAA,Talagi Airport +ARI,SCAR,Chacalluta International Airport +ARK,HTAR,Arusha Airport +ARL,DFER,Arly Airport +ARM,YARM,Armidale Airport +ARN,ESSA,Stockholm-Arlanda Airport +ARQ,SKAT,El Troncal Airport +ARR,SAVR,D. Casimiro Szlapelis Airport +ARS,SJVO,Aragarças Airport +ART,KART,Watertown International Airport +ARU,SBAU,Araçatuba Airport +ARV,KARV,Lakeland Airport Noble F Lee Memorial Field +ARW,LRAR,Arad International Airport +ARX,SBAC,Aracati Dragão do Mar Regional Airport +ARY,YARA,Ararat Airport +ARZ,FNZE,N'zeto Airport +ASA,HHSB,Assab International Airport +ASB,UTAA,Ashgabat International Airport +ASC,SLAS,Ascención de Guarayos Airport +ASD,MYAF,Andros Town Airport +ASE,KASE,Aspen-Pitkin County Airport (Sardy Field) +ASF,URWA,Astrakhan Narimanovo Boris M. Kustodiev International Airport +ASG,NZAS,Ashburton Airport +ASH,KASH,Nashua Airport / Boire Field +ASI,FHAW,RAF Ascension Island +ASJ,RJKA,Amami Airport +ASK,DIYO,Yamoussoukro International Airport +ASL,KASL,Harrison County Airport +ASM,HHAS,Asmara International Airport +ASN,KASN,Talladega Municipal Airport +ASO,HASO,Asosa Airport +ASP,YBAS,Alice Springs Airport +ASQ,K9U3,Austin Airport +ASR,LTAU,Kayseri Erkilet International Airport +ASS,FACC,Arathusa Safari Lodge Airport +AST,KAST,Astoria Regional Airport +ASU,SGAS,Silvio Pettirossi International Airport +ASV,HKAM,Amboseli Airport +ASW,HESN,Aswan International Airport +ASX,KASX,John F Kennedy Memorial Airport +ASY,KASY,Ashley Municipal Airport +ATA,SPHZ,Comandante FAP German Arias Graziani Airport +ATB,HSAT,Atbara Airport +ATC,MYCA,Arthur's Town Airport +ATD,AGAT,Uru Harbour Airport +ATE,K80F,Antlers Municipal Airport +ATF,SEAM,Chachoán Regional Airport +ATG,OPMS,Minhas Air Base +ATH,LGAV,Athens Eleftherios Venizelos International Airport +ATI,SUAG,Artigas International Airport +ATJ,FMME,Antsirabe Airport +ATK,PATQ,Atqasuk Edward Burnell Sr Memorial Airport +ATL,KATL,Hartsfield Jackson Atlanta International Airport +ATM,SBHT,Altamira Interstate Airport +ATN,AYNX,Namatanai Airport +ATO,KUNI,Ohio University Airport +ATP,AYAI,Aitape Airport +ATQ,VIAR,Sri Guru Ram Das Ji International Airport +ATR,GQPA,Atar International Airport +ATS,KATS,Artesia Municipal Airport +ATU,PAAT,Casco Cove Coast Guard Station +ATV,FTTI,Ati Airport +ATW,KATW,Appleton International Airport +ATY,KATY,Watertown Regional Airport +ATZ,HEAT,Asyut International Airport +AUA,TNCA,Queen Beatrix International Airport +AUC,SKUC,Santiago Perez Airport +AUD,YAGD,Augustus Downs Airport +AUF,LFLA,Auxerre Branches airport +AUG,KAUG,Augusta State Airport +AUH,OMAA,Zayed International Airport +AUI,AYND,Aua Island Airport +AUJ,AYAT,Ambunti Airport +AUK,PAUK,Alakanuk Airport +AUM,KAUM,Austin Municipal Airport +AUN,KAUN,Auburn Municipal Airport +AUO,KAUO,Auburn University Regional Airport +AUP,AYAG,Agaun Airport +AUQ,NTMN,Hiva Oa-Atuona Airport +AUR,LFLW,Aurillac airport +AUS,KAUS,Austin Bergstrom International Airport +AUT,WPAT,Atauro Airport +AUU,YAUR,Aurukun Airport +AUV,AYUM,Aumo Airport +AUW,KAUW,Wausau Downtown Airport +AUX,SWGN,Araguaína Airport +AUY,NVVA,Aneityum Airport +AUZ,KARR,Aurora Municipal Airport +AVA,ZUAS,Anshun Huangguoshu Airport +AVB,LIPA,Aviano Air Base +AVG,YAUV,Auvergne Airport +AVI,MUCA,Máximo Gómez Airport +AVK,ZMAH,Arvaikheer Airport +AVL,KAVL,Asheville Regional Airport +AVN,LFMV,Avignon Caumont airport +AVO,KAVO,Avon Park Executive Airport +AVP,KAVP,Wilkes-Barre/Scranton International Airport +AVU,AGGJ,Avu Avu Airport +AVV,YMAV,Melbourne Avalon International Airport +AVW,KAVQ,Marana Regional Airport +AVX,KAVX,Catalina Airport +AWA,HALA,Hawassa International Airport +AWB,AYAW,Awaba Airport +AWD,NVVB,Aniwa Airport +AWE,FOGW,Alowe Airport +AWK,PWAK,Wake Island Airfield +AWM,KAWM,West Memphis Municipal Airport +AWN,YADS,Alton Downs Airport +AWP,YAUS,Austral Downs Airport +AWZ,OIAW,Qasem Soleimani International Airport +AXA,TQPF,Clayton J. Lloyd International Airport +AXB,89NY,Maxson Airfield +AXC,YAMC,Aramac Airport +AXD,LGAL,Alexandroupoli Democritus Airport +AXE,SSXX,Xanxerê Airport +AXG,KAXA,Algona Municipal Airport +AXJ,RJDA,Amakusa Airport +AXK,OYAT,Ataq Airport +AXL,YALX,Alexandria Homestead Airport +AXM,SKAR,El Eden Airport +AXN,KAXN,Chandler Field +AXP,MYAP,Spring Point Airport +AXR,NTGU,Arutua Airport +AXS,KAXS,Altus Quartz Mountain Regional Airport +AXT,RJSK,Akita Airport +AXU,HAAX,Axum Airport +AXV,KAXV,Neil Armstrong Airport +AXX,KAXX,Angel Fire Airport +AYG,SKYA,Yaguara Airport +AYK,UAUR,Arkalyk North Airport +AYL,YANL,Anthony Lagoon Airport +AYN,ZHAY,Anyang Yindu Airport +AYO,SGAY,Aeropuerto Nacional Juan de Ayolas +AYP,SPHO,Air Force Colonel Alfredo Mendivil Duarte Airport +AYQ,YAYE,Ayers Rock Connellan Airport +AYR,YAYR,Ayr Airport +AYS,KAYS,Waycross Ware County Airport +AYT,LTAI,Antalya International Airport +AYU,AYAY,Aiyura Airport +AYW,WASA,Ayawasi Airport +AYX,SPAY,Teniente General Gerardo Pérez Pinedo Airport +AZA,KIWA,Mesa Gateway Airport +AZD,OIYY,Shahid Sadooghi Airport +AZH,VEAH,Azamgarh Airport +AZI,OMAD,Al Bateen Executive Airport +AZJ,ZSDL,Zhenjiang Dalu Airport +AZL,SWTU,Fazenda Tucunaré Airport +AZN,UTKA,Andijan International Airport +AZO,KAZO,Kalamazoo/Battle Creek International Airport +AZP,MMJC,Jorge Jiménez Cantú National Airport +AZR,DAUA,Touat-Cheikh Sidi Mohamed Belkebir Airport +AZS,MDCY,Samaná El Catey International Airport +AZZ,FNAM,Ambriz Airport +BAA,AYBL,Bialla Airport +BAB,KBAB,Beale Air Force Base +BAD,KBAD,Barksdale Air Force Base +BAE,LFMR,Barcelonnette - Saint-Pons Airfield +BAF,KBAF,Westfield-Barnes Regional Airport +BAG,RPUB,Loakan Airport +BAH,OBBI,Bahrain International Airport +BAI,MRBA,Buenos Aires Airport +BAL,LTCJ,Batman Airport +BAM,KBAM,Battle Mountain Airport +BAN,FZVR,Basongo Airport +BAQ,SKBQ,Ernesto Cortissoz International Airport +BAR,ZJQH,Qionghai Bo'ao Airport +BAS,AGGE,Ballalae Airport +BAT,SBBT,Chafei Amsei Airport +BAV,ZBOW,Baotou Donghe International Airport +BAX,UNBB,Barnaul Gherman Titov International Airport +BAY,LRBM,Maramureș International Airport +BAZ,SWBC,Barcelos Airport +BBA,SCBA,Balmaceda Airport +BBB,KBBB,Benson Municipal Airport +BBC,KBYY,Bay City Regional Airport +BBD,KBBD,Curtis Field +BBG,NGTU,Butaritari Airport +BBH,EDBH,Stralsund-Barth Airport +BBI,VEBS,Biju Patnaik International Airport +BBJ,EDRB,Bitburg Airport +BBK,FBKE,Kasane International Airport +BBL,YLLE,Ballera Airport +BBM,VDBG,Battambang Airport +BBN,WBGZ,Bario Airport +BBO,HCMI,Berbera Airport +BBP,EGHJ,Bembridge Airport +BBR,TFFB,Basse-Terre Baillif Airport +BBS,EGLK,Blackbushe Airport +BBT,FEFT,Berbérati Airport +BBU,LRBS,Bucharest Băneasa Aurel Vlaicu International Airport +BBV,DIGN,Nero-Mer Airport +BBW,KBBW,Broken Bow Municipal Airport +BBX,KLOM,Wings Field +BBY,FEFM,Bambari Airport +BBZ,FLZB,Zambezi Airport +BCA,MUBA,Gustavo Rizo Airport +BCB,KBCB,Virginia Tech Montgomery Executive Airport +BCD,RPVB,Bacolod-Silay International Airport +BCE,KBCE,Bryce Canyon Airport +BCF,FEGU,Bouca Airport +BCH,WPEC,Baucau Airport +BCI,YBAR,Barcaldine Airport +BCJ,ZUBC,Beichuan Yongchang Airport +BCK,YBWR,Bolwarra Airport +BCL,MRBC,Barra del Colorado Airport +BCM,LRBC,Bacău George Enescu International Airport +BCN,LEBL,Josep Tarradellas Barcelona-El Prat Airport +BCO,HAJK,Jinka Airport +BCP,AYBC,Bambu Airport +BCR,SWNK,Novo Campo Airport +BCS,65LA,Southern Seaplane Airport +BCT,KBCT,Boca Raton Airport +BCU,DNBC,Sir Abubakar Tafawa Balewa Bauchi State International Airport +BCX,UWUB,Beloretsk Airport +BDA,TXKF,L.F. Wade International Airport +BDB,YBUD,Bundaberg Airport +BDC,SNBC,Barra do Corda Airport +BDD,YBAU,Badu Island Airport +BDE,KBDE,Baudette International Airport +BDF,3IS8,Rinkenberger Restricted Landing Area +BDG,KBDG,Blanding Municipal Airport +BDH,OIBL,Bandar Lengeh International Airport +BDI,FSSB,Bird Island Airport +BDJ,WAOO,Syamsudin Noor International Airport +BDK,DIBU,Soko Airport +BDL,KBDL,Bradley International Airport +BDM,LTBG,Bandırma Airport +BDN,OPTH,Talhar Airport +BDO,WICC,Husein Sastranegara International Airport +BDP,VNCG,Bhadrapur Airport +BDQ,VABO,Vadodara International Airport +BDR,KBDR,Igor I Sikorsky Memorial Airport +BDS,LIBR,Brindisi Airport +BDT,FZFD,Gbadolite Airport +BDU,ENDU,Bardufoss Airport +BDV,FZRB,Moba Airport +BDW,YBDF,Bedford Downs Airport +BDX,K00F,Broadus Airport +BDY,KS05,Bandon State Airport +BDZ,AYBG,Baindoung Airport +BEB,EGPL,Benbecula Airport +BEC,KBEC,Beech Factory Airport +BED,KBED,Laurence G Hanscom Field +BEE,YBGB,Beagle Bay Airport +BEF,MNBL,Bluefields Airport +BEG,LYBE,Belgrade Nikola Tesla Airport +BEH,KBEH,Southwest Michigan Regional Airport +BEI,HABE,Beica Airport +BEJ,WAQT,Kalimarau Airport +BEK,VIBY,Bareilly Air Force Station +BEL,SBBE,Val de Cans/Júlio Cezar Ribeiro International Airport +BEM,GMMD,Beni Mellal Airport +BEN,HLLB,Benina International Airport +BEO,YLMQ,Lake Macquarie Airport +BEP,VOBI,Bellary Airport +BEQ,EGXH,RAF Honington +BER,EDDB,Berlin Brandenburg Airport +BES,LFRB,Brest Bretagne airport +BET,PABE,Bethel Airport +BEU,YBIE,Bedourie Airport +BEV,LLBS,Beersheba (Teyman) Airport +BEW,FQBR,Beira International Airport +BEX,EGUB,RAF Benson +BEY,OLBA,Beirut Rafic Hariri International Airport +BEZ,NGBR,Beru Airport +BFA,SGBN,Bahía Negra Airport +BFC,YBMD,Bloomfield River Airport +BFD,KBFD,Bradford Regional Airport +BFE,EDLI,Bielefeld Airport +BFF,KBFF,Western Neb. Rgnl/William B. Heilig Airport +BFG,KU07,Bullfrog Basin Airport +BFH,SBBI,Bacacheri Airport +BFI,KBFI,King County International Airport - Boeing Field +BFJ,ZUBJ,Bijie Feixiong Airport +BFK,KBKF,Buckley Space Force Base +BFL,KBFL,Meadows Field +BFM,KBFM,Mobile Downtown Airport +BFN,FABL,Bram Fischer International Airport +BFO,FVCZ,Buffalo Range Airport +BFP,KBVI,Beaver County Airport +BFR,KBFR,Virgil I Grissom Municipal Airport +BFS,EGAA,Belfast International Airport +BFT,KARW,Beaufort Executive Airport +BFU,ZSBB,Bengbu Renheji Airport +BFV,VTUO,Buri Ram Airport +BFW,DAOS,Sidi Bel Abbes Airport +BFX,FKKU,Bafoussam Airport +BGA,SKBG,Palonegro Airport +BGB,FOGB,Booue Airport +BGC,LPBG,Bragança Airport +BGD,KBGD,Hutchinson County Airport +BGE,KBGE,Decatur County Industrial Air Park +BGF,FEFF,Bangui M'Poko International Airport +BGG,LTCU,Bingöl Airport +BGH,GQNE,Abbaye Airport +BGI,TBPB,Grantley Adams International Airport +BGJ,BIBF,Borgarfjörður eystri Airport +BGL,VNBL,Baglung Airport +BGM,KBGM,Greater Binghamton/Edwin A Link field +BGN,UESG,Belaya Gora Airport +BGO,ENBR,"Bergen Airport, Flesland" +BGQ,PAGQ,Big Lake Airport +BGR,KBGR,Bangor International Airport +BGS,UNKB,Boguchany Airport +BGT,KE51,Bagdad Airport +BGU,FEFG,Bangassou Airport +BGV,SSBG,Aeroclube de Bento Gonçalves Airport +BGW,ORBI,Baghdad International Airport / New Al Muthana Air Base +BGX,SBBG,Comandante Gustavo Kraemer Airport +BGY,LIME,Il Caravaggio International Airport +BHA,SESV,Los Perales Airport +BHB,KBHB,Hancock County-Bar Harbor Airport +BHD,EGAC,George Best Belfast City Airport +BHE,NZWB,Woodbourne Airport +BHF,SKCP,Cupica Airport +BHG,MHBL,Brus Laguna Airport +BHH,OEBH,Bisha Airport +BHI,SAZB,Comandante Espora Airport +BHJ,VABJ,Bhuj Airport +BHK,UTSB,Bukhara International Airport +BHM,KBHM,Birmingham-Shuttlesworth International Airport +BHN,OYBN,Beihan Airport +BHO,VABP,Raja Bhoj International Airport +BHP,VNBJ,Bhojpur Airport +BHQ,YBHI,Broken Hill Airport +BHR,VNBP,Bharatpur Airport +BHS,YBTH,Bathurst Airport +BHU,VABV,Bhavnagar Airport +BHV,OPBW,Bahawalpur Airport +BHW,OPBG,Bhagatanwala Airport +BHX,EGBB,Birmingham Airport +BHY,ZGBH,Beihai Fucheng Airport +BIA,LFKB,Bastia-Poretta International airport +BIB,HCMB,Baidoa Airport +BIC,LFEA,Aérodrome de Belle Île +BID,KBID,Block Island State Airport +BIE,KBIE,Beatrice Municipal Airport +BIF,KBIF,Biggs Army Air Field (Fort Bliss) +BIG,PABI,Allen Army Airfield +BIH,KBIH,Eastern Sierra Regional Airport +BIK,WABB,Frans Kaisiepo Airport +BIL,KBIL,Billings Logan International Airport +BIM,MYBS,South Bimini Airport +BIN,OABN,Bamyan Airport +BIO,LEBB,Bilbao Airport +BIP,YBWM,Bulimba Airport +BIQ,LFBZ,Biarritz Pays Basque airport +BIR,VNVT,Biratnagar Airport +BIS,KBIS,Bismarck Municipal Airport +BIT,VNBT,Baitadi Airport +BIU,BIBD,Bildudalur Airport +BIV,FEFR,Bria Airport +BIW,YBIL,Billiluna Airport +BIX,KBIX,Keesler Air Force Base +BIY,FABE,Bisho Airport +BJA,DAAE,Soummam–Abane Ramdane Airport +BJB,OIMN,Bojnord Airport +BJC,KBJC,Rocky Mountain Metropolitan Airport +BJF,ENBS,Båtsfjord Airport +BJH,VNBG,Bajhang Airport +BJI,KBJI,Bemidji Regional Airport +BJJ,KBJJ,Wayne County Airport +BJK,WAPK,Benjina Airport +BJL,GBYD,Banjul International Airport +BJM,HBBA,Bujumbura Melchior Ndadaye International Airport +BJO,SLBJ,Bermejo Airport +BJP,SBBP,Estadual Arthur Siqueira Airport +BJR,HABD,Bahir Dar Airport +BJU,VNBR,Bajura Airport +BJV,LTFE,Milas Bodrum International Airport +BJW,WATB,Bajawa Soa (Turelelo) Airport +BJX,MMLO,Guanajuato International Airport +BJY,LYBT,Batajnica Air Base +BJZ,LEBZ,Badajoz Airport +BKA,UNIB,Baykit Airport +BKB,VIBK,Nal Airport +BKC,PABL,Buckland Airport +BKD,KBKD,Stephens County Airport +BKE,KBKE,Baker City Municipal Airport +BKG,KBBG,Branson Airport +BKH,PHBK,Barking Sands Airport +BKI,WBKK,Kota Kinabalu International Airport +BKJ,GUOK,Boké Baralande Airport +BKK,VTBS,Suvarnabhumi Airport +BKL,KBKL,Burke Lakefront Airport +BKM,WBGQ,Bakalalan Airport +BKO,GABS,Modibo Keita International Airport +BKP,YBAW,Barkly Downs Airport +BKQ,YBCK,Blackall Airport +BKR,FTTK,Bokoro Airport +BKS,WIPL,Fatmawati Soekarno Airport +BKT,KBKT,Allen C Perkinson Blackstone Army Air Field +BKU,FMSV,Betioky Airport +BKW,KBKW,Raleigh County Memorial Airport +BKX,KBKX,Brookings Regional Airport +BKY,FZMA,Bukavu Kavumu Airport +BKZ,HTBU,Bukoba Airport +BLA,SVBC,General José Antonio Anzoategui International Airport +BLB,MPHO,Panamá Pacífico International Airport +BLC,FKKG,Bali Airport +BLD,K61B,Boulder City Municipal Airport +BLE,ESSD,Dala Airport +BLF,KBLF,Mercer County Airport +BLG,WBGC,Belaga Airport +BLH,KBLH,Blythe Airport +BLI,KBLI,Bellingham International Airport +BLJ,DABT,Batna Mostefa Ben Boulaid Airport +BLK,EGNH,Blackpool Airport +BLL,EKBI,Billund Airport +BLM,KBLM,Monmouth Executive Airport +BLN,YBLA,Benalla Airport +BLO,BIBL,Blönduós Airport +BLQ,LIPE,Bologna Guglielmo Marconi Airport +BLR,VOBL,Kempegowda International Airport Bengaluru +BLS,YBLL,Bollon Airport +BLT,YBTR,Blackwater Airport +BLU,KBLU,Blue Canyon Nyack Airport +BLV,KBLV,Scott AFB/Midamerica Airport +BLW,HCMN,Beledweyne Airport +BLX,LIDB,Belluno Arturo dell'Oro Airport +BLY,EIBT,Belmullet Aerodrome +BLZ,FWCL,Chileka International Airport +BMA,ESSB,Stockholm-Bromma Airport +BMB,FZFU,Bumba Airport +BMC,KBMC,Brigham City Regional Airport +BMD,FMML,Belo sur Tsiribihina Airport +BME,YBRM,Broome International Airport +BMF,FEGM,Bakouma Airport +BMG,KBMG,Monroe County Airport +BMH,AYBO,Bomai Airport +BMI,KBMI,Central Illinois Regional Airport at Bloomington-Normal +BMJ,SYBR,Baramita Airport +BMK,EDWR,Borkum Airport +BML,KBML,Berlin Regional Airport +BMM,FOOB,Bitam Airport +BMN,ORBB,Bamarni Airport +BMO,VYBM,Banmaw Airport +BMP,YBPI,Brampton Island Airport +BMR,EDWZ,Baltrum Airport +BMS,SSXH,Sócrates Mariani Bittencourt Airport +BMT,KBMT,Beaumont Municipal Airport +BMU,WADB,Sultan Muhammad Salahuddin Airport +BMV,VVBM,Buon Ma Thuot Airport +BMW,DATM,Bordj Badji Mokhtar Airport +BMX,PABM,Big Mountain Airport +BMY,NWWC,Île Art - Waala Airport +BMZ,AYBF,Bamu Airport +BNA,KBNA,Nashville International Airport +BNB,FZGN,Boende Airport +BNC,FZNP,Beni Airport +BND,OIKB,Bandar Abbas International Airport +BNE,YBBN,Brisbane International Airport +BNG,KBNG,Banning Municipal Airport +BNI,DNBE,Benin Airport +BNK,YBNA,Ballina Byron Gateway Airport +BNL,KBNL,Barnwell Regional Airport +BNM,AYBD,Bodinumu Airport +BNN,ENBN,"Brønnøysund Airport, Brønnøy" +BNO,KBNO,Burns Municipal Airport +BNP,OPBN,Bannu Airport +BNR,DFOB,Banfora Airport +BNS,SVBI,Barinas Airport +BNT,AYDI,Bundi Airport +BNU,SSBL,Blumenau Airport +BNW,KBNW,Boone Municipal Airport +BNX,LQBK,Banja Luka International Airport +BNY,AGGB,Bellona/Anua Airport +BOA,FZAJ,Boma Airport +BOB,NTTB,Bora Bora Airport +BOC,MPBO,"Bocas del Toro ""Isla Colón"" International Airport" +BOD,LFBD,Bordeaux–Mérignac Airport +BOE,FCOB,Boundji Airport +BOG,SKBO,El Dorado International Airport +BOH,EGHH,Bournemouth Airport +BOI,KBOI,Boise Air Terminal/Gowen Field +BOJ,LBBG,Burgas Airport +BOK,KBOK,Brookings Airport +BOM,VABB,Chhatrapati Shivaji Maharaj International Airport +BON,TNCB,Flamingo International Airport +BOO,ENBO,Bodø Airport +BOP,FEFO,Bouar Airport +BOS,KBOS,Boston Logan International Airport +BOT,AYET,Bosset Airport +BOU,LFLD,Bourges airport +BOW,KBOW,Bartow Executive Airport +BOX,YBRL,Borroloola Airport +BOY,DFOO,Bobo Dioulasso Airport +BOZ,FEGZ,Bozoum Airport +BPA,RPVW,Borongan Airport +BPC,FKKV,Bamenda Airport +BPD,AYBP,Bapi Airstrip +BPE,ZBDH,Qinhuangdao Beidaihe Airport +BPF,AGBT,Batuna Aerodrome +BPG,SBBW,Barra do Garças Airport +BPH,RPMF,Bislig Airport +BPI,KBPI,Miley Memorial Field +BPK,AYBQ,Biangabip Airport +BPL,ZWBL,Bole Alashankou Airport +BPM,VOHY,Begumpet Airport +BPN,WALL,Sultan Aji Muhammad Sulaiman Sepinggan International Airport +BPS,SBPS,Porto Seguro International Airport +BPT,KBPT,Jack Brooks Regional Airport +BPX,ZUBD,Qamdo Bangda Airport +BPY,FMNQ,Besalampy Airport +BQA,RPUR,Dr. Juan C. Angara Airport +BQB,YBLN,Busselton Margaret River Regional Airport +BQE,GGBU,Bubaque Airport +BQG,UHNB,Bogorodskoye Airport +BQH,EGKB,London Biggin Hill Airport +BQJ,UEBB,Batagay Airport +BQK,KBQK,Brunswick Golden Isles Airport +BQL,YBOU,Boulia Airport +BQN,TJBQ,Rafael Hernández International Airport +BQO,DIBN,Bouna Airport +BQQ,SNBX,Barra Airport +BQR,WAFQ,Maulana Prins Mandapar Airstrip +BQS,UHBB,Ignatyevo Airport +BQT,UMBB,Brest International Airport +BQU,TVSB,J F Mitchell Airport +BQW,YBGO,Balgo Hill Airport +BRA,SNBR,Dom Ricardo Weberberger Airport +BRB,SBRR,Barreirinhas National Airport +BRC,SAZS,Teniente Luis Candelaria International Airport +BRD,KBRD,Brainerd Lakes Regional Airport +BRE,EDDW,Bremen Airport +BRG,WAMO,Siau/Sitaro Airport +BRI,LIBD,Bari Karol Wojtyła International Airport +BRK,YBKE,Bourke Airport +BRL,KBRL,Southeast Iowa Regional Airport +BRM,SVBM,Jacinto Lara International Airport +BRN,LSZB,Bern Airport +BRO,KBRO,Brownsville South Padre Island International Airport +BRP,AYBR,Biaru Airport +BRQ,LKTB,Brno-Tuřany Airport +BRR,EGPR,Barra Airport +BRS,EGGD,Bristol Airport +BRT,YBTI,Bathurst Island Airport +BRU,EBBR,Brussels Airport +BRW,PABR,Wiley Post Will Rogers Memorial Airport +BRX,MDBH,Maria Montez International Airport +BRY,KBRY,Samuels Field +BSA,HCMF,Bender Qassim International Airport +BSB,SBBR,Presidente Juscelino Kubitschek International Airport +BSC,SKBS,José Celestino Mutis Airport +BSD,ZPBS,Baoshan Yunrui Airport +BSE,WBGN,Sematan Airport +BSF,PHSF,Bradshaw Army Airfield +BSG,FGBT,Bata International Airport +BSI,RPLE,Balesin Island Airport +BSJ,YBNS,Bairnsdale Airport +BSK,DAUB,Biskra - Mohamed Khider Airport +BSL,LFSB,EuroAirport Basel–Mulhouse–Freiburg +BSM,OINJ,Bishe Kola Air Base +BSN,FEFS,Bossangoa Airport +BSO,RPUO,Basco Airport +BSP,AYBH,Bensbach Airport +BSQ,KP04,Bisbee Municipal Airport +BSR,ORMM,Basra International Airport +BSS,SNBS,Balsas Airport +BST,OABT,Bost Airport +BSU,FZEN,Basankusu Airport +BSW,AK97,Boswell Bay Airport +BSX,VYPN,Pathein Airport +BSY,HCMD,Baardheere Airport +BSZ,UAFM,Manas International Airport +BTA,FKKO,Bertoua Airport +BTB,FCOT,Betou Airport +BTC,VCCB,Batticaloa International Airport +BTD,YBRU,Brunette Downs Airport +BTF,KBTF,Skypark Airport +BTG,FEGF,Batangafo Airport +BTH,WIDD,Hang Nadim International Airport +BTI,PABA,Barter Island Long Range Radar Station Airport +BTJ,WITT,Sultan Iskandar Muda International Airport +BTK,UIBB,Bratsk Airport +BTL,KBTL,Battle Creek Executive Airport at Kellogg Field +BTM,KBTM,Bert Mooney Airport +BTN,KBBP,Marlboro County Jetport - H E Avent Field Airport +BTP,KBTP,Pittsburgh/Butler Regional Airport +BTQ,HRYI,Butare Airport +BTR,KBTR,Baton Rouge Metropolitan Airport +BTS,LZIB,M. R. Štefánik Airport +BTT,PABT,Bettles Airport +BTU,WBGB,Bintulu Airport +BTV,KBTV,Patrick Leahy Burlington International Airport +BTW,WAOC,Bersujud Airport +BTX,YBEO,Betoota Airport +BTY,KBTY,Beatty Airport +BUA,AYBK,Buka Airport +BUB,KBUB,Cram Field +BUC,YBKT,Burketown Airport +BUD,LHBP,Budapest Liszt Ferenc International Airport +BUF,KBUF,Buffalo Niagara International Airport +BUG,FNBG,Benguela Airport +BUI,WAJB,Bokondini Airport +BUJ,DAAD,Bou Saada Airport +BUK,OYBQ,Al-Bough Airport +BUL,AYBU,Bulolo Airport +BUM,KBUM,Butler Memorial Airport +BUN,SKBU,Gerardo Tobar López Airport +BUO,HCMV,Burao Airport +BUP,VIBT,Bhatinda Air Force Station +BUQ,FVBU,Joshua Mqabuko Nkomo International Airport +BUR,KBUR,Hollywood Burbank/Bob Hope Airport +BUS,UGSB,Alexander Kartveli Batumi International Airport +BUT,VQBT,Bathpalathang Airport +BUU,WIPI,Muara Bungo Airport +BUV,SUBU,Placeres Airport +BUW,WAWB,Betoambari Airport +BUX,FZKA,Bunia Airport +BUY,YBUN,Bunbury Airport +BUZ,OIBB,Bushehr Airport +BVA,LFOB,Beauvais-Tillé airport +BVB,SBBV,Atlas Brasil Cantanhede International Airport +BVC,GVBA,Aristides Pereira International Airport +BVE,LFSL,Brive Souillac airport +BVG,ENBV,Berlevåg Airport +BVH,SBVH,Brigadeiro Camarão Airport +BVI,YBDV,Birdsville Airport +BVJ,USDB,Bovanenkovo Airport +BVK,SLHJ,Huacaraje Airport +BVM,SD6P,Belmonte Airport +BVO,KBVO,Bartlesville Municipal Airport +BVS,SNVS,Breves Airport +BVU,PABG,Beluga Airport +BVV,UHSB,Burevestnik Airport +BVW,YBTV,Batavia Downs Airport +BVX,KBVX,Batesville Regional Airport +BVY,KBVY,Beverly Regional Airport +BVZ,YBYS,Beverley Springs Airport +BWA,VNBW,Gautam Buddha International Airport +BWB,YBWX,Barrow Island Airport +BWC,KBWC,Brawley Municipal Airport +BWD,KBWD,Brownwood Regional Airport +BWE,EDVE,Braunschweig-Wolfsburg Airport +BWF,EGNL,Barrow Walney Island Airport +BWG,KBWG,Bowling Green Warren County Regional Airport +BWH,WMKB,RMAF Butterworth Air Base +BWI,KBWI,Baltimore/Washington International Thurgood Marshall Airport +BWK,LDSB,Brač Airport +BWL,KBKN,Blackwell Tonkawa Municipal Airport +BWM,KBWW,Bowman Regional Airport +BWN,WBSB,Brunei International Airport +BWO,UWSB,Balakovo Airport +BWP,AYBI,Bewani Airport +BWQ,YBRW,Brewarrina Airport +BWT,YWYY,Wynyard Airport +BWU,YSBK,Sydney Bankstown Airport +BWW,MUBR,Las Brujas Airport +BWX,WADY,Banyuwangi Airport +BXA,KBXA,George R Carr Memorial Air Field +BXB,WASO,Babo Airport +BXD,WAKE,Bade Airport +BXE,GOTB,Bakel Airport +BXF,YBEB,Bellburn Airstrip +BXG,YBDG,Bendigo Airport +BXH,UAAH,Balkhash Airport +BXI,DIBI,Boundiali Airport +BXJ,UAAR,Boralday Airport +BXK,KBXK,Buckeye Municipal Airport +BXM,WAJG,Batom Airport +BXN,LTBV,Bodrum-Imsık Airport +BXO,LSZC,Buochs Airport +BXR,OIKM,Bam Airport +BXS,KL08,Borrego Valley Airport +BXT,WRLC,LNG Badak Airport +BXU,RPME,Bancasi Airport +BXV,BIBV,Breiðdalsvík Airport +BXW,WARW,Harun Thohir Airport +BXY,UAOL,Baikonur Krayniy International Airport +BXZ,AYNS,Bunsil Airport +BYC,SLYA,Yacuiba Airport +BYD,OYBI,Al-Bayda Airport +BYF,LFAQ,Albert Bray airport +BYG,KBYG,Johnson County Airport +BYH,KBYH,Arkansas International Airport +BYI,KBYI,Burley Municipal Airport +BYJ,LPBJ,Beja Airport / Airbase +BYK,DIBK,Bouaké Airport +BYM,MUBY,Carlos Manuel de Cespedes Airport +BYN,ZMBH,Bayankhongor Airport +BYO,SBDB,Bonito Airport +BYP,YBRY,Barimunya Airport +BYR,EKLS,Læsø Airport +BYS,KBYS,Bicycle Lake Army Air Field +BYT,EIBN,Bantry Aerodrome +BYU,EDQD,Bayreuth Airport +BYW,38WA,Blakely Island Airport +BZA,MNBZ,San Pedro Airport +BZC,SBBZ,Umberto Modiano Airport +BZD,YBRN,Balranald Airport +BZE,MZBZ,Philip S. W. Goldson International Airport +BZG,EPBY,Ignacy Jan Paderewski Bydgoszcz Airport +BZH,FVBM,Bumi Hills Airport +BZI,LTBF,Balıkesir Airport +BZK,UUBP,Bryansk International Airport +BZL,VGBR,Barisal Airport +BZN,KBZN,Bozeman Yellowstone International Airport +BZO,LIPB,Bolzano Airport +BZP,YBIZ,Bizant Airport +BZR,LFMU,Béziers Vias airport +BZT,2TE0,Eagle Air Park +BZU,FZKJ,Buta Zega Airport +BZV,FCBB,Maya-Maya International Airport +BZY,LUBL,Bălți-Leadoveni International Airport +BZZ,EGVN,RAF Brize Norton +CAA,MHGE,El Aguacate Airport +CAB,FNCA,Cabinda Airport +CAC,SBCA,Coronel Adalberto Mendes da Silva Airport +CAD,KCAD,Wexford County Airport +CAE,KCAE,Columbia Metropolitan Airport +CAF,SWCA,Carauari Airport +CAG,LIEE,Cagliari Elmas Airport +CAH,VVCM,Cà Mau Airport +CAI,HECA,Cairo International Airport +CAJ,SVCN,Canaima Airport +CAK,KCAK,Akron Canton Regional Airport +CAL,EGEC,Campbeltown Airport +CAM,SLCA,Camiri Airport +CAN,ZGGG,Guangzhou Baiyun International Airport +CAO,KCAO,Clayton Municipal Airpark +CAP,MTCH,Cap Haitien International Airport +CAQ,SKCU,Juan H White Airport +CAR,KCAR,Caribou Municipal Airport +CAT,LPCS,Cascais Airport +CAU,SNRU,Caruaru Airport +CAV,FNCZ,Cazombo Airport +CAW,SBCP,Bartolomeu Lisandro Airport +CAX,EGNC,Carlisle Lake District Airport +CAY,SOCA,Cayenne – Félix Eboué Airport +CAZ,YCBA,Cobar Airport +CBA,CAB7,Alpine Heliport +CBB,SLCB,Jorge Wilsterman International Airport +CBD,VOCX,Car Nicobar Air Force Base +CBE,KCBE,Greater Cumberland Regional Airport +CBF,KCBF,Council Bluffs Municipal Airport +CBG,EGSC,Cambridge City Airport +CBH,DAOR,Béchar Boudghene Ben Ali Lotfi Airport +CBI,YCBN,Cape Barren Island Airport +CBJ,MDCR,Cabo Rojo Airport +CBK,KCBK,Shalz Field +CBL,SVCB,General Tomas de Heres Airport +CBM,KCBM,Columbus Air Force Base +CBN,WICD,Cakrabhuwana Airport +CBO,RPMC,Cotabato (Awang) Airport +CBQ,DNCA,Margaret Ekpo International Airport +CBR,YSCB,Canberra Airport +CBS,SVON,Oro Negro Airport +CBT,FNCT,Catumbela Airport +CBV,MGCB,Coban Airport +CBW,SSKM,Campo Mourão Airport +CBX,YCDO,Condobolin Airport +CBY,YCBE,Canobie Airport +CCA,SLHI,Chimore Airport +CCB,KCCB,Upland-Cable Airport +CCC,MUCC,Jardines Del Rey Airport +CCD,84CL,Century City Heliport +CCE,HECP,Capital International Airport +CCF,LFMK,Carcassonne Salvaza Airport +CCG,KE13,Crane County Airport +CCH,SCCC,Chile Chico Airport +CCI,SSCK,Olavo Cecco Rigon Airport +CCJ,VOCL,Calicut International Airport +CCK,YPCC,Cocos (Keeling) Islands Airport +CCL,YCCA,Chinchilla Airport +CCM,SBCM,Forquilhinha - Criciúma Airport +CCN,OACC,Chaghcharan Airport +CCO,SKCI,Carimagua Airport +CCP,SCIE,Carriel Sur International Airport +CCR,KCCR,Buchanan Field +CCS,SVMI,Maiquetía Simón Bolívar International Airport +CCU,VECC,Netaji Subhash Chandra Bose International Airport +CCV,NVSF,Craig Cove Airport +CCW,YCWL,Cowell Airport +CCX,SWKC,Cáceres Airport +CCY,KCCY,Northeast Iowa Regional Airport +CCZ,MYBC,Chub Cay Airport +CDA,YCOO,Cooinda Airport +CDB,PACD,Cold Bay Airport +CDC,KCDC,Cedar City Regional Airport +CDD,MHCU,Cauquira Airport +CDE,ZBCD,Chengde Puning Airport +CDG,LFPG,Charles de Gaulle International Airport +CDH,KCDH,Harrell Field +CDI,SNKI,Cachoeiro do Itapemirim - Raimundo de Andrade Airport +CDJ,SBAA,Conceição do Araguaia Airport +CDK,KCDK,George T Lewis Airport +CDL,AK75,Candle 2 Airport +CDN,KCDN,Woodward Field +CDO,FACD,Cradock Airport +CDP,VOCP,Kadapa Airport +CDQ,YCRY,Croydon Airport +CDR,KCDR,Chadron Municipal Airport +CDS,KCDS,Childress Municipal Airport +CDT,LECH,Castellón-Costa Azahar Airport +CDU,YSCN,Camden Airport +CDV,PACV,Merle K (Mudhole) Smith Airport +CDW,KCDW,Essex County Airport +CDY,RPMU,Cagayan de Sulu Airport +CEA,KCEA,Cessna Aircraft Field +CEB,RPVM,Mactan Cebu International Airport +CEC,KCEC,Jack Mc Namara Field Airport +CED,YCDU,Ceduna Airport +CEE,ULWC,Cherepovets Airport +CEF,KCEF,Westover Metropolitan Airport / Westover Air Reserve Base +CEG,EGNR,Hawarden Airport +CEH,FWCD,Chelinda Airfield +CEI,VTCT,Mae Fah Luang - Chiang Rai International Airport +CEK,USCC,Kurchatov Chelyabinsk International Airport +CEL,SSCN,Canela Airport +CEM,PACE,Central Airport +CEN,MMCN,Ciudad Obregón International Airport +CEO,FNWK,Waco Kungo Airport +CEP,SLCP,Concepción Airport +CEQ,LFMD,Cannes Mandelieu Airport +CER,LFRC,Cherbourg Manche airport +CES,YCNK,Cessnock Airport +CET,LFOU,Cholet Le Pontreau airfield +CEU,KCEU,Oconee County Regional Airport +CEV,KCEV,Mettel Field +CEW,KCEW,Bob Sikes Airport +CEX,AK13,Chena Hot Springs Airport +CEY,KCEY,Murray-Calloway County Airport Kyle-Oakley Field +CEZ,KCEZ,Cortez Municipal Airport +CFB,SBCB,Cabo Frio Airport +CFC,SBCD,Doctor Carlos Alberto da Costa Neves Airport +CFD,KCFD,Coulter Field +CFE,LFLC,Clermont-Ferrand Auvergne airport +CFF,FNCF,Cafunfo Airport +CFG,MUCF,Jaime Gonzalez Airport +CFH,YCFH,Clifton Hills Airport +CFI,YCFD,Camfield Airport +CFK,DAOI,Chlef Aboubakr Belkaid International Airport +CFM,CET2,Conklin (Leismer) Airport +CFN,EIDL,Donegal Airport +CFO,SJHG,Confresa Airport +CFP,YCPN,Carpentaria Downs Airport +CFQ,CAJ3,Creston Valley Regional Airport - Art Sutcliffe Field +CFR,LFRK,Caen Carpiquet airport +CFS,YCFS,Coffs Harbour Airport +CFT,KCFT,Greenlee County Airport +CFU,LGKR,Corfu Ioannis Kapodistrias International Airport +CFV,KCFV,Coffeyville Municipal Airport +CGB,SBCY,Várzea Grande–Marechal Rondon International Airport +CGC,AYCG,Cape Gloucester Airport +CGD,ZGCD,Changde Taohuayuan Airport +CGE,KCGE,Cambridge Dorchester Airport +CGF,KCGF,Cuyahoga County Airport +CGH,SBSP,Congonhas–Deputado Freitas Nobre Airport +CGI,KCGI,Cape Girardeau Regional Airport +CGJ,FLKE,Kasompe Airport +CGK,WIII,Soekarno-Hatta International Airport +CGL,SPGL,Chagual Airport +CGM,RPMH,Camiguin Airport +CGN,EDDK,Cologne Bonn Airport +CGO,ZHCC,Zhengzhou Xinzheng International Airport +CGP,VGEG,Shah Amanat International Airport +CGQ,ZYCC,Changchun Longjia International Airport +CGR,SBCG,Campo Grande Airport +CGS,KCGS,College Park Airport +CGV,YCAG,Caiguna Airport +CGX,FLCU,Chunga Airstrip +CGY,RPMY,Laguindingan International Airport +CGZ,KCGZ,Casa Grande Municipal Airport +CHA,KCHA,Chattanooga Metropolitan Airport (Lovell Field) +CHB,OPCL,Chilas Airport +CHC,NZCH,Christchurch International Airport +CHD,SNQU,Mucugê Airport +CHE,EECL,Tallinn Linnahall Heliport +CHF,RKPE,Jinhae Air Base +CHG,ZYCY,Chaoyang Airport +CHH,SPPY,Chachapoyas Airport +CHJ,FVCH,Chipinge Airport +CHK,KCHK,Chickasha Municipal Airport +CHL,KLLJ,Challis Airport +CHM,SPEO,FAP Lieutenant Jaime Andres de Montreuil Morales Airport +CHN,RKJU,Jeonju (G 703) Air Base +CHO,KCHO,Charlottesville Albemarle Airport +CHQ,LGSA,Chania International Airport +CHR,LFLX,Châteauroux Déols airport +CHS,KCHS,Charleston International Airport +CHT,NZCI,Inia William Tuuta Memorial Airport +CHX,MPCH,Changuinola Captain Manuel Niño International Airport +CHY,AGGC,Choiseul Bay Airport +CHZ,K2S7,Chiloquin State Airport +CIA,LIRA,Ciampino–G. B. Pastine International Airport +CIC,KCIC,Chico Regional Airport +CID,KCID,The Eastern Iowa Airport +CIE,YCOI,Collie Airport +CIF,ZBCF,Chifeng Yulong Airport +CIG,KCAG,Craig Moffat Airport +CIH,ZBCZ,Changzhi Wangcun Airport +CII,LTBD,Aydın Çıldır Airport +CIJ,SLCO,Capitán Aníbal Arab Airport +CIK,PACI,Chalkyitsik Airport +CIM,SKCM,Cimitarra Airport +CIN,KCIN,Arthur N Neu Airport +CIO,SGCO,Lieutenant Colonel Carmelo Peralta National Airport +CIP,FLCP,Chipata Airport +CIR,KCIR,Cairo Regional Airport +CIS,PCIS,Canton Island Airport +CIT,UAII,Shymkent International Airport +CIU,KCIU,Chippewa County International Airport +CIW,TVSC,Canouan Airport +CIX,SPHI,Capitán FAP José A. Quiñones González International Airport +CIY,LICB,Comiso Airport +CIZ,SWKO,Danilson Municipal Airport +CJA,SPJR,Mayor General FAP Armando Revoredo Iglesias Airport +CJB,VOCB,Coimbatore International Airport +CJC,SCCF,El Loa Airport +CJF,YCWA,Coondewanna Airport +CJH,CAG3,Chilko Lake (Tsylos Park Lodge) Airport +CJJ,RKTU,Cheongju International Airport/Cheongju Air Base (K-59/G-513) +CJL,OPCH,Chitral Airport +CJM,VTSE,Chumphon Airport +CJN,WICN,Nusawiru Airport +CJS,MMCS,Abraham González International Airport +CJT,MMCO,San Antonio Copalar Airport +CJU,RKPC,Jeju International Airport +CKA,KCKA,Kegelman AF Aux Field +CKB,KCKB,North Central West Virginia Airport +CKC,UKKE,Cherkasy International Airport +CKE,K1O2,Lampson Field +CKG,ZUCK,Chongqing Jiangbei International Airport +CKH,UESO,Chokurdakh Airport +CKI,YCKI,Croker Island Airport +CKK,KCVK,Sharp County Regional Airport +CKL,UUMU,Chkalovskiy Air Base +CKM,KCKM,Fletcher Field +CKN,KCKN,Crookston Municipal Kirkwood Field +CKO,SSCP,Cornélio Procópio Airport +CKS,SBCJ,Carajás Airport +CKT,OIMC,Sarakhs Airport +CKV,KCKV,Clarksville–Montgomery County Regional Airport +CKW,YCHK,Christmas Creek Airport +CKY,GUCY,Ahmed Sékou Touré International Airport +CKZ,LTBH,Çanakkale Airport +CLA,VGCM,Comilla Airport +CLD,KCRQ,McClellan-Palomar Airport +CLE,KCLE,Cleveland Hopkins International Airport +CLG,KC80,New Coalinga Municipal Airport +CLH,YCAH,Coolah Airport +CLI,KCLI,Clintonville Municipal Airport +CLJ,LRCL,Avram Iancu Cluj International Airport +CLK,KCLK,Clinton Regional Airport +CLL,KCLL,Easterwood Field +CLM,KCLM,William R Fairchild International Airport +CLN,SBCI,Brig. Lysias Augusto Rodrigues Airport +CLO,SKCL,Alfonso Bonilla Aragon International Airport +CLP,PFCL,Clarks Point Airport +CLQ,MMIA,Licenciado Miguel de la Madrid International Airport +CLR,KCLR,Cliff Hatfield Memorial Airport +CLS,KCLS,Chehalis Centralia Airport +CLT,KCLT,Charlotte Douglas International Airport +CLU,KBAK,Columbus Municipal Airport +CLV,SBCN,Nelson Ribeiro Guimarães Airport +CLW,KCLW,Clearwater Air Park +CLX,SATC,Aeródromo de Clorinda +CLY,LFKC,Calvi Sainte Catherine Airport +CLZ,SVCL,Calabozo Airport +CMA,YCMU,Cunnamulla Airport +CMB,VCBI,Bandaranaike International Colombo Airport +CMC,SNWC,Camocim - Pinto Martins Airport +CMD,YCTM,Cootamundra Airport +CME,MMCE,Ciudad del Carmen International Airport +CMF,LFLB,Chambéry Aix les Bains airport +CMG,SBCR,Corumbá International Airport +CMH,KCMH,John Glenn Columbus International Airport +CMI,KCMI,University of Illinois Willard Airport +CMJ,RCCM,Qimei Airport +CMK,FWCM,Club Makokola Airport +CML,YCMW,Camooweal Airport +CMM,MGCR,Carmelita Airport +CMN,GMMN,Mohammed V International Airport +CMO,HCMO,Hobyo Airport +CMQ,YCMT,Clermont Airport +CMR,LFGA,Colmar Houssen airport +CMS,HCMS,Iskushuban Airport +CMU,AYCH,Chimbu Airport +CMV,NZCX,Coromandel Airport +CMW,MUCM,Ignacio Agramonte International Airport +CMX,KCMX,Houghton County Memorial Airport +CMY,KCMY,Sparta Fort McCoy Airport +CNA,MMCA,Cananea National Airport +CNB,YCNM,Coonamble Airport +CNC,YCCT,Coconut Island Airport +CND,LRCK,Mihail Kogălniceanu International Airport +CNE,K1V6,Fremont County Airport +CNF,SBCF,Tancredo Neves International Airport +CNG,LFBG,Cognac-Châteaubernard (BA 709) Air Base +CNH,KCNH,Claremont Municipal Airport +CNI,ZYCH,Changhai Dachangshandao Airport +CNJ,YCCY,Cloncurry Airport +CNK,KCNK,Blosser Municipal Airport +CNL,EKSN,Sindal Airport +CNM,KCNM,Cavern City Air Terminal +CNN,VOKN,Kannur International Airport +CNO,KCNO,Chino Airport +CNP,BGCO,Neerlerit Inaat Airport +CNQ,SARC,Corrientes Airport +CNR,SCRA,Chañaral Airport +CNS,YBCS,Cairns International Airport +CNU,KCNU,Chanute Martin Johnson Airport +CNV,SNED,Sócrates Rezende Airport +CNW,KCNW,TSTC Waco Airport +CNX,VTCC,Chiang Mai International Airport +CNY,KCNY,Canyonlands Regional Airport +COA,KO22,Columbia Airport +COC,SAAC,Comodoro Pierrestegui Airport +COD,KCOD,Yellowstone Regional Airport +COE,KCOE,Coeur D'Alene Airport - Pappy Boyington Field +COF,KCOF,Patrick Space Force Base +COG,SKCD,Mandinga Airport +COH,VECO,Cooch Behar Airport +COI,KCOI,Merritt Island Airport +COJ,YCBB,Coonabarabran Airport +COK,VOCI,Cochin International Airport +COL,EGEL,Coll Airport +COM,KCOM,Coleman Municipal Airport +CON,KCON,Concord Municipal Airport +COO,DBBB,Cotonou Cadjehoun International Airport +COQ,ZMCD,Choibalsan Airport +COR,SACO,Ingeniero Aeronáutico Ambrosio L.V. Taravella International Airport +COS,KCOS,City of Colorado Springs Municipal Airport +COT,KCOT,Cotulla-La Salle County Airport +COU,KCOU,Columbia Regional Airport +COV,LTDB,Çukurova International Airport +COW,SCCQ,Tambillos Airport +COY,YCWY,Coolawanyah Airport +COZ,MDCZ,Constanza - Expedición 14 de Junio National Airport +CPA,GLCP,Cape Palmas Airport +CPB,SKCA,Capurganá Airport +CPC,SAZY,Aviador C. Campos Airport +CPD,YCBP,Coober Pedy Airport +CPE,MMCP,Ingeniero Alberto Acuña Ongay International Airport +CPF,WARC,Ngloram Airport +CPH,EKCH,Copenhagen Kastrup Airport +CPL,SKHA,General Navas Pardo Airport +CPM,KCPM,Compton Woodley Airport +CPO,SCAT,Desierto de Atacama Airport +CPP,SCKP,Coposa Airport +CPR,KCPR,Casper-Natrona County International Airport +CPS,KCPS,St Louis Downtown Airport +CPT,FACT,Cape Town International Airport +CPV,SBKG,Presidente João Suassuna Airport +CPX,TJCP,Benjamin Rivera Noriega Airport +CQA,SWEK,Canarana Airport +CQD,OIFS,Shahrekord Airport +CQF,LFAC,Calais Marck Airport +CQM,LERL,Ciudad Real International Airport +CQP,YCFL,Cape Flattery Airport +CQS,SWCQ,Costa Marques Airport +CQW,ZUWL,Chongqing Xiannüshan Airport +CRA,LRCV,Craiova International Airport +CRB,YCBR,Collarenebri Airport +CRC,SKGO,Santa Ana Airport +CRD,SAVC,General Enrique Mosconi International Airport +CRE,KCRE,Grand Strand Airport +CRF,FEFC,Carnot Airport +CRG,KCRG,Jacksonville Executive at Craig Airport +CRH,YCHB,Cherrabah Airport +CRI,MYCI,Colonel Hill Airport +CRK,RPLC,Clark International Airport / Clark Air Base +CRL,EBCI,Brussels South Charleroi Airport +CRM,RPVF,Catarman National Airport +CRP,KCRP,Corpus Christi International Airport +CRQ,SBCV,Caravelas Airport +CRR,SANW,Ceres Airport +CRS,KCRS,C David Campbell Field Corsicana Municipal Airport +CRT,KCRT,Z M Jack Stell Field +CRU,TGPZ,Lauriston Airport +CRV,LIBC,Crotone Sant'Anna Pythagoras Airport +CRW,KCRW,Yeager Airport +CRX,KCRX,Roscoe Turner Airport +CRZ,UTAV,Türkmenabat International Airport +CSA,EGEY,Colonsay Airstrip +CSB,LRCS,Caransebeş Airport +CSC,MRMJ,Mojica Airport +CSE,0CO2,Crested Butte Airpark +CSF,LFPC,Creil Air Base +CSG,KCSG,Columbus Airport +CSH,ULAS,Solovki Airport +CSI,YCAS,Casino Airport +CSK,GOGS,Cap Skirring Airport +CSM,KCSM,Clinton Sherman Airport +CSN,KCXP,Carson Airport +CSO,EDBC,Cochstedt Airport +CSQ,KCSQ,Creston Municipal Airport +CSS,SSCL,Cassilândia Airport +CST,NFCS,Castaway Island Seaplane Base +CSU,SSSC,Santa Cruz do Sul Airport +CSV,KCSV,Crossville Memorial Airport Whitson Field +CSW,MMSL,Cabo San Lucas International Airport +CSX,ZGHA,Changsha Huanghua International Airport +CSY,UWKS,Cheboksary Airport +CSZ,SAZC,Brigadier D.H.E. Ruiz Airport +CTA,LICC,Catania-Fontanarossa Airport +CTB,KCTB,Cut Bank International Airport +CTC,SANC,Coronel Felipe Varela International Airport +CTD,MPCE,Alonso Valderrama Airport +CTF,MGCT,Coatepeque Airport +CTG,SKCG,Rafael Nuñez International Airport +CTH,KMQS,Chester County G O Carlson Airport +CTI,FNCV,Cuito Cuanavale Airport +CTK,K7G9,Canton Municipal Airport +CTL,YBCV,Charleville Airport +CTM,MMCM,Chetumal International Airport +CTN,YCKN,Cooktown Airport +CTO,K3C8,Calverton Executive Airpark +CTR,YCAC,Cattle Creek Airport +CTS,RJCC,New Chitose Airport +CTT,LFMQ,Le Castellet Airport +CTU,ZUUU,Chengdu Shuangliu International Airport +CTW,KP52,Cottonwood Airport +CTX,KN03,Cortland County Chase Field +CTY,KCTY,Cross City Airport +CTZ,KCTZ,Sampson County Airport +CUA,MMDA,Ciudad Constitución National Airport +CUB,KCUB,Jim Hamilton L.B. Owens Airport +CUC,SKCC,Camilo Daza International Airport +CUD,YCDR,Caloundra Airport +CUE,SECU,Mariscal Lamar Airport +CUF,LIMZ,Cuneo International Airport +CUG,YCUA,Cudal Airport +CUH,KCUH,Cushing Municipal Airport +CUL,MMCL,Bachigualato Federal International Airport +CUM,SVCU,Antonio José de Sucre Airport +CUN,MMUN,Cancún International Airport +CUO,SKCR,Carurú Airport +CUP,SVCP,General Francisco Bermúdez Airport +CUQ,YCOE,Coen Airport +CUR,TNCC,Hato International Airport +CUS,0NM0,Columbus Airport +CUT,SAZW,Cutral-Co Airport +CUU,MMCU,General Roberto Fierro Villalobos International Airport +CUV,SVCG,Casigua El Cubo Airport +CUY,YCUE,Cue Airport +CUZ,SPZO,Alejandro Velasco Astete International Airport +CVB,AYCB,Chungribu Airport +CVC,YCEE,Cleve Airport +CVE,SKCV,Coveñas Airport +CVF,LFLJ,Courchevel Altiport +CVG,KCVG,Cincinnati Northern Kentucky International Airport +CVH,SAHE,Caviahue Airport +CVJ,MMCB,General Mariano Matamoros International Airport +CVM,MMCV,General Pedro Jose Mendez International Airport +CVN,KCVN,Clovis Municipal Airport +CVO,KCVO,Corvallis Municipal Airport +CVQ,YCAR,Carnarvon Airport +CVS,KCVS,Cannon Air Force Base +CVU,LPCR,Corvo Airport +CWA,KCWA,Central Wisconsin Airport +CWB,SBCT,Curitiba-Afonso Pena International Airport +CWC,UKLN,Chernivtsi International Airport +CWF,KCWF,Chennault International Airport +CWI,KCWI,Clinton Municipal Airport +CWJ,ZPCW,Cangyuan Washan Airport +CWK,VECT,Chitrakoot Airport +CWL,EGFF,Cardiff International Airport +CWR,YCWI,Cowarie Airport +CWS,78WA,Center Island Airport +CWT,YCWR,Cowra Airport +CWW,YCOR,Corowa Airport +CWX,KP33,Cochise County Airport +CXA,SVCD,Caicara del Orinoco Airport +CXB,VGCB,Cox's Bazar Airport +CXF,PACX,Coldfoot Airport +CXH,CYHC,Vancouver Harbour Water Aerodrome +CXI,PLCH,Cassidy International Airport +CXJ,SBCX,Hugo Cantergiani Regional Airport +CXL,KCXL,Calexico International Airport +CXM,FNCX,Camaxilo Airport +CXN,HCMC,Candala Airport +CXO,KCXO,Conroe-North Houston Regional Airport +CXP,WAHL,Tunggul Wulung Airport +CXQ,YCRK,Christmas Creek Station Airport +CXR,VVCR,Cam Ranh International Airport / Cam Ranh Air Base +CXT,YCHT,Charters Towers Airport +CXY,MYCC,Cat Cay Airport +CYA,MTCA,Antoine-Simon International Airport +CYB,MWCB,Charles Kirkconnell International Airport +CYD,MZMF,San Ignacio Town (Maya Flats) Airstrip +CYF,PACK,Chefornak Airport +CYG,YCRG,Corryong Airport +CYI,RCKU,Chiayi Airport +CYL,MHCS,Coyoles Airport +CYO,MUCL,Vilo Acuña International Airport +CYP,RPVC,Calbayog Airport +CYR,SUCA,Colonia Laguna de Los Patos International Airport +CYS,KCYS,Cheyenne Regional Jerry Olson Field +CYT,PACY,Yakataga Airport +CYU,RPLO,Cuyo Airport +CYW,MMCY,Captain Rogelio Castillo National Airport +CYX,UESS,Cherskiy Airport +CYZ,RPUY,Cauayan Airport +CZA,MMCT,Chichén Itzá International Airport +CZB,SSAK,Carlos Ruhl Airport +CZE,SVCR,José Leonardo Chirinos Airport +CZF,PACZ,Cape Romanzof LRRS Airport +CZK,KCZK,Cascade Locks State Airport +CZL,DABC,Mohamed Boudiaf International Airport +CZM,MMCZ,Cozumel International Airport +CZR,UIAR,Chara Airport +CZS,SBCZ,Cruzeiro do Sul Airport +CZT,KCZT,Dimmit County Airport +CZU,SKCZ,Las Brujas Airport +CZX,ZSCG,Changzhou Benniu International Airport +CZY,YUNY,Cluny Airport +DAA,KDAA,Davison Army Air Field +DAB,KDAB,Daytona Beach International Airport +DAC,VGHS,Hazrat Shahjalal International Airport +DAD,VVDN,Da Nang International Airport +DAG,KDAG,Barstow Daggett Airport +DAK,HEDK,Dakhla Oasis Airport +DAL,KDAL,Dallas Love Field +DAM,OSDI,Damascus International Airport +DAN,KDAN,Danville Regional Airport +DAP,VNDL,Darchula Airport +DAR,HTDA,Julius Nyerere International Airport +DAS,CFF4,Great Bear Lake Airport +DAT,ZBDT,Datong Yungang International Airport +DAU,AYDU,Daru Airport +DAV,MPDA,Enrique Malek International Airport +DAX,ZUDX,Dachuan Airport +DAY,KDAY,James M. Cox Dayton International Airport +DAZ,OADZ,Darwaz Airport +DBA,OPDB,Dalbandin Airport +DBB,HEAL,El Alamein International Airport +DBC,ZYBA,Baicheng Chang'an Airport +DBD,VEDB,Dhanbad Airport +DBM,HADM,Debre Markos Airport +DBN,KDBN,W H 'Bud' Barron Airport +DBO,YSDU,Dubbo City Regional Airport +DBP,AYDB,Debepare Airport +DBQ,KDBQ,Dubuque Regional Airport +DBR,VEDH,Darbhanga Airport +DBT,HADT,Debre Tabor Airport +DBV,LDDU,Dubrovnik Ruđer Bošković Airport +DBY,YDAY,Dalby Airport +DCA,KDCA,Ronald Reagan Washington National Airport +DCF,TDCF,Canefield Airport +DCI,LIED,Decimomannu Air Base +DCM,LFCK,Castres Mazamet Airport +DCN,YCIN,RAAF Base Curtin +DCT,MYRD,Duncan Town Airport +DCU,KDCU,Pryor Field Regional Airport +DCY,ZUDC,Daocheng Yading Airport +DDC,KDDC,Dodge City Regional Airport +DDD,VRMU,Dhaalu Atoll Airport +DDG,ZYDD,Dandong Langtou International Airport +DDI,YDDI,Daydream Island Helipad +DDN,YDLT,Delta Downs Airport +DDU,OP17,Dadu West Airport +DEA,OPDG,Dera Ghazi Khan Airport +DEB,LHDC,Debrecen International Airport +DEC,KDEC,Decatur Airport +DED,VIDN,Dehradun Jolly Grant Airport +DEE,UHSM,Yuzhno-Kurilsk Mendeleyevo Airport +DEF,OIAD,Dezful Airport +DEH,KDEH,Decorah Municipal Airport +DEI,FSSD,Denis Island Airport +DEJ,ZUDJ,Tongren Dejiang Airport (Under Construction) +DEL,VIDP,Indira Gandhi International Airport +DEM,HADD,Dembidollo Airport +DEN,KDEN,Denver International Airport +DEP,VEDZ,Daporijo Airport +DER,AYDE,Derim Airport +DES,FSDR,Desroches Airport +DET,KDET,Coleman A. Young Municipal Airport +DEZ,OSDZ,Deir ez-Zor Airport +DFI,KDFI,Defiance Memorial Airport +DFP,YDDF,Drumduff Airport +DFW,KDFW,Dallas Fort Worth International Airport +DGD,YDGA,Dalgaranga Gold Mine Airport +DGE,YMDG,Mudgee Airport +DGF,CAL3,Douglas Lake Airport +DGH,VEDO,Deoghar Airport +DGL,KDGL,Douglas Municipal Airport +DGN,KNDY,Dahlgren Naval Surface Warfare Center Airport +DGO,MMDO,General Guadalupe Victoria International Airport +DGR,NZDA,Dargaville Aerodrome +DGT,RPVD,Sibulan Airport +DGU,DFOD,Dedougou Airport +DGW,KDGW,Converse County Airport +DHA,OEDR,King Abdulaziz Air Base +DHD,YDRH,Durham Downs Airport +DHF,OMAM,Al Dhafra Air Base +DHH,ZWLK,Barkol Dahe Airport +DHI,VNDH,Dhangarhi Airport +DHM,VIGG,Kangra Airport +DHN,KDHN,Dothan Regional Airport +DHR,EHKD,De Kooy Airfield / Den Helder Naval Air Station +DHT,KDHT,Dalhart Municipal Airport +DIA,OTBD,Doha International Airport +DIB,VEMN,Dibrugarh Airport +DIE,FMNA,Arrachart Airport +DIG,ZPDQ,Diqing Shangri-La Airport +DIJ,LFSD,Dijon Longvic airport +DIK,KDIK,Dickinson Theodore Roosevelt Regional Airport +DIL,WPDL,Presidente Nicolau Lobato International Airport +DIM,DIDK,Dimbokro Airport +DIN,VVDB,Dien Bien Phu Airport +DIP,DFED,Diapaga Airport +DIQ,SNDV,Brigadeiro Cabral Airport +DIR,HADR,Aba Tenna Dejazmach Yilma International Airport +DIS,FCPL,Ngot Nzoungou Airport +DIU,VA1P,Diu Airport +DIY,LTCC,Diyarbakır Airport +DJA,DBBD,Djougou Airport +DJB,WIPA,Sultan Thaha Airport +DJE,DTTJ,Djerba Zarzis International Airport +DJG,DAAJ,Tiska Djanet Airport +DJJ,WAJJ,Dortheys Hiyo Eluay International Airport +DJM,FCBD,Djambala Airport +DJO,DIDL,Daloa Airport +DJR,YDAJ,Dajarra Airport +DJU,BIDV,Djúpivogur Airport +DKA,DN57,Umaru Musa Yar'adua Airport +DKI,YDKI,Dunk Island Airport +DKK,KDKK,Chautauqua County-Dunkirk Airport +DKR,GOOY,Léopold Sédar Senghor International Airport +DKS,UODD,Dikson Airport +DKV,YDVR,Docker River Airport +DLA,FKKD,Douala International Airport +DLC,ZYTL,Dalian Zhoushuizi International Airport +DLE,LFGJ,Dole Tavaux Airport +DLF,KDLF,Laughlin Air Force Base +DLG,PADL,Dillingham Airport +DLH,KDLH,Duluth International Airport +DLI,VVDL,Lien Khuong Airport +DLK,YDLK,Dulkaninna Airport +DLL,KDLC,Dillon County Airport +DLM,LTBS,Dalaman International Airport +DLN,KDLN,Dillon Airport +DLS,KDLS,Columbia Gorge Regional Airport +DLU,ZPDL,Dali Fengyi Airport +DLV,YDLV,Delissaville Airport +DLY,NVVD,Dillon's Bay Airport +DLZ,ZMDZ,Dalanzadgad Airport +DMA,KDMA,Davis Monthan Air Force Base +DMB,UADD,Taraz International Airport +DMD,YDMG,Doomadgee Airport +DME,UUDD,Domodedovo International Airport +DMK,VTBD,Don Mueang International Airport +DMM,OEDF,King Fahd International Airport +DMN,KDMN,Deming Municipal Airport +DMO,KDMO,Sedalia Memorial Airport +DMT,SWDM,Diamantino Airport +DMU,VEMR,Dimapur Airport +DNA,RODN,Kadena Air Base +DNB,YDBR,Dunbar Airport +DND,EGPN,Dundee Airport +DNG,YDGN,Doongan Airport +DNH,ZLDH,Dunhuang Mogao International Airport +DNK,UKDD,Dnipro International Airport +DNL,KDNL,Daniel Field +DNN,KDNN,Dalton Municipal Airport +DNO,SWDN,Dianópolis Airport +DNP,VNDG,Tulsipur Airport +DNQ,YDLQ,Deniliquin Airport +DNR,LFRD,Dinard Pleurtuit Saint-Malo airport +DNS,KDNS,Denison Municipal Airport +DNU,AYDN,Dinangat Airport +DNV,KDNV,Vermilion Regional Airport +DNX,HSGG,Galegu Airport +DNZ,LTAY,Çardak Airport +DOB,WAPD,Rar Gwamar Airport +DOD,HTDO,Dodoma Airport +DOG,HSDN,Dongola Airport +DOH,OTHH,Hamad International Airport +DOI,AYDO,Doini Airport +DOL,LFRG,Deauville Normandie airport +DOM,TDPD,Douglas-Charles Airport +DOO,AYDR,Dorobisoro Airport +DOP,VNDP,Dolpa Airport +DOR,DFEE,Dori Airport +DOU,SBDO,Dourados Airport +DOV,KDOV,Dover Civil Air Terminal/Dover Air Force Base +DOX,YDRA,Dongara Airport +DOY,ZSDY,Dongying Shengli Airport +DPA,KDPA,Dupage Airport +DPB,SCBI,Pampa Guanaco Airport +DPE,LFAB,Dieppe-Saint-Aubin Airport +DPG,KDPG,Michael AAF (Dugway Proving Ground) Airport +DPL,RPMG,Dipolog Airport +DPO,YDPO,Devonport Airport +DPS,WADD,Denpasar I Gusti Ngurah Rai International Airport +DQA,ZYDQ,Daqing Sartu Airport +DRA,KDRA,Desert Rock Airport +DRB,YDBY,Derby Airport +DRD,YDOR,Dorunda Airport +DRE,KDRM,Drummond Island Airport +DRF,3AK5,Drift River Airport +DRG,PADE,Deering Airport +DRH,WAJC,Dabra Airport +DRI,KDRI,Beauregard Regional Airport +DRJ,SMDA,Drietabbetje Airport +DRK,MRDK,Drake Bay Airport +DRN,YDBI,Dirranbandi Airport +DRO,KDRO,Durango La Plata County Airport +DRP,RPLK,Bicol International Airport +DRR,YDRI,Durrie Airport +DRS,EDDC,Dresden Airport +DRT,KDRT,Del Rio International Airport +DRV,VRMD,Dharavandhoo Airport +DRW,YPDN,Darwin International Airport / RAAF Darwin +DRY,YDRD,Drysdale River Airport +DSC,FKKS,Dschang Airport +DSD,TFFA,La Désirade Airport +DSE,HADC,Kombolcha Airport +DSI,KDTS,Destin Executive Airport +DSK,OPDI,Dera Ismael Khan Airport [IN-ACTIVE] +DSM,KDSM,Des Moines International Airport +DSN,ZBDS,Ordos Ejin Horo International Airport +DSO,ZKSD,Sondok Airport +DSS,GOBD,Blaise Diagne International Airport +DSV,KDSV,Dansville Municipal Airport +DSX,RCLM,Dongsha Island (Pratas Island) Airport +DTA,KDTA,Delta Municipal Airport +DTB,WIMN,Silangit Airport +DTD,WALJ,Datadawai Airport +DTE,RPUD,Daet Airport +DTH,KL06,Furnace Creek Airport +DTI,SNDT,Diamantina Airport +DTL,KDTL,Detroit Lakes Airport +DTM,EDLW,Dortmund Airport +DTN,KDTN,Shreveport Downtown Airport +DTR,WN07,Decatur Shores Airport +DTU,ZYDU,Wudalianchi Dedu Airport +DTW,KDTW,Detroit Metropolitan Wayne County Airport +DTX,KTKI,McKinney National Airport +DUA,KDUA,Durant Regional Airport - Eaker Field +DUB,EIDW,Dublin Airport +DUC,KDUC,Halliburton Field +DUD,NZDN,Dunedin International Airport +DUE,FNDU,Dundo Airport +DUF,7NC2,Pine Island Airport +DUG,KDUG,Bisbee Douglas International Airport +DUJ,KDUJ,DuBois Regional Airport +DUK,FADK,Mubatuba Airport +DUM,WIBD,Pinang Kampai Airport +DUQ,CAM3,Duncan Airport +DUR,FALE,King Shaka International Airport +DUS,EDDL,Düsseldorf Airport +DUT,PADU,Tom Madsen (Dutch Harbor) Airport +DVK,CDK2,Diavik Airport +DVL,KDVL,Devils Lake Regional Airport +DVN,KDVN,Davenport Municipal Airport +DVO,RPMD,Francisco Bangoy International Airport +DVP,YDPD,Davenport Downs Airport +DVR,YDMN,Daly River Airport +DVT,KDVT,Phoenix Deer Valley Airport +DWA,FWDW,Dwangwa Airport +DWB,FMNO,Soalala Airport +DWC,OMDW,Al Maktoum International Airport +DWD,OEDM,Dawadmi Domestic Airport +DWH,KDWH,David Wayne Hooks Memorial Airport +DWR,OADY,Dwyer Airport +DXB,OMDB,Dubai International Airport +DXD,YDIX,Dixie Airport +DXE,KMBO,Bruce Campbell Field +DXJ,ZGXX,Xiangxi Biancheng Airport +DXR,KDXR,Danbury Municipal Airport +DYA,YDYS,Dysart Airport +DYG,ZGDY,Zhangjiajie Hehua International Airport +DYL,KDYL,Doylestown Airport +DYR,UHMA,Ugolny Yuri Ryktheu Airport +DYS,KDYS,Dyess Air Force Base +DYU,UTDD,Dushanbe International Airport +DYW,YDLW,Daly Waters Airport +DZA,FMCZ,Dzaoudzi Pamandzi International Airport +DZH,ZUDA,Dazhou Jinya Airport +DZN,UAKD,Zhezkazgan National Airport +DZO,SUDU,Santa Bernardina International Airport +DZU,ZUDZ,Dazu Air Base +EAA,PAEG,Eagle Airport +EAB,OYAB,Abs Airport +EAE,NVSE,Siwo Airport +EAM,OENG,Najran Domestic Airport +EAN,KEAN,Phifer Airfield +EAR,KEAR,Kearney Regional Airport +EAS,LESO,San Sebastián Airport +EAT,KEAT,Pangborn Memorial Airport +EAU,KEAU,Chippewa Valley Regional Airport +EBA,LIRJ,Marina di Campo Airport +EBB,HUEN,Entebbe International Airport +EBD,HSOB,El-Obeid Airport +EBG,SKEB,El Bagre Airport +EBH,DAOY,El Bayadh Airport +EBJ,EKEB,Esbjerg Airport +EBL,ORER,Erbil International Airport +EBM,DTTR,El Borma Airport +EBS,KEBS,Webster City Municipal Airport +EBU,LFMH,Saint-Étienne-Bouthéon Airport +EBW,FKKW,Ebolowa Airport +ECA,K6D9,Iosco County Airport +ECG,KECG,Elizabeth City Regional Airport & Coast Guard Air Station +ECH,YECH,Echuca Airport +ECI,MNCE,Costa Esmeralda Airport +ECN,LCEN,Ercan International Airport +ECP,KECP,Northwest Florida Beaches International Airport +ECR,SKEH,El Charco Airport +ECS,KECS,Mondell Field +EDB,HSDB,Al Dabbah Airport +EDD,YERL,Erldunda Airport +EDE,KEDE,Northeastern Regional Airport +EDF,PAED,Elmendorf Air Force Base +EDI,EGPH,Edinburgh Airport +EDK,KEQA,Captain Jack Thomas El Dorado Airport +EDL,HKEL,Eldoret International Airport +EDM,LFRI,La Roche-sur-Yon Les Ajoncs Airport +EDN,UHWE,Yedinka Airport +EDO,LTFD,Balıkesir Koca Seyit Airport +EDR,YPMP,Pormpuraaw Airport +EDW,KEDW,Edwards Air Force Base +EEA,SNCP,Planalto Serrano Regional Airport +EED,KEED,Needles Airport +EEK,PAEE,Eek Airport +EEN,KEEN,Dillant Hopkins Airport +EFD,KEFD,Ellington Airport +EFG,AYEF,Efogi Airport +EFK,KEFK,Northeast Kingdom International Airport +EFL,LGKF,Kefallinia Airport +EFW,KEFW,Jefferson Municipal Airport +EGA,AYEN,Engati Airstrip +EGC,LFBE,Bergerac Dordogne-Périgord airport +EGE,KEGE,Eagle County Regional Airport +EGH,HEGR,El Jora Airport +EGI,KEGI,Duke Field +EGL,HANG,Negele Airport +EGM,AGGS,Sege Airport +EGN,HSGN,Geneina Airport +EGO,UUOB,Belgorod International Airport +EGP,K5T9,Maverick County Memorial International Airport +EGS,BIEG,Egilsstaðir Airport +EGV,KEGV,Eagle River Union Airport +EGX,PAII,Egegik Airport +EHL,SAVB,El Bolsón Airfield +EHM,PAEH,Cape Newenham LRRS Airport +EHU,ZHEC,Ezhou Huahu International Airport +EIB,EDGE,Eisenach-Kindel Airport +EIE,UNII,Yeniseysk Airport +EIH,YEIN,Einasleigh Airport +EIL,PAEI,Eielson Air Force Base +EIN,EHEH,Eindhoven Airport +EIS,TUPJ,Terrance B. Lettsome International Airport +EIY,LLEY,Ein Yahav Airfield +EJA,SKEJ,Yariguíes Airport +EJH,OEWJ,Al Wajh Domestic Airport +EKA,KEKA,Murray Field +EKB,UASB,Ekibastuz Airport +EKD,YELK,Elkedra Airport +EKI,KEKM,Elkhart Municipal Airport +EKN,KEKN,Elkins-Randolph County Regional Airport +EKO,KEKO,Elko Regional Airport +EKS,UHSK,Shakhtyorsk Airport +EKT,ESSU,Eskilstuna Airport +EKX,KEKX,Addington Field / Elizabethtown Regional Airport +ELA,KELA,Eagle Lake Airport +ELB,SKBC,Las Flores Airport +ELC,YELD,Elcho Island Airport +ELD,KELD,South Arkansas Regional Airport at Goodwin Field +ELF,HSFS,El Fasher Airport +ELG,DAUE,El Golea Airport +ELH,MYEH,North Eleuthera Airport +ELI,PFEL,Elim Airport +ELK,KELK,Elk City Regional Business Airport +ELL,FAER,Ellisras Matimba Airport +ELM,KELM,Elmira Corning Regional Airport +ELN,KELN,Bowers Field +ELO,SATD,El Dorado Airport +ELP,KELP,El Paso International Airport +ELQ,OEGS,Prince Naif bin Abdulaziz International Airport +ELS,FAEL,King Phalo Airport +ELT,HETR,At Tur Airport +ELU,DAUO,Guemar Airport - مطار قمار بالوادي +ELV,PAEL,Elfin Cove Seaplane Base +ELY,KELY,Ely Airport Yelland Field +ELZ,KELZ,Wellsville Municipal Airport - Tarantine Field +EMA,EGNX,East Midlands Airport +EMD,YEML,Emerald Airport +EME,EDWE,Emden Airport +EMG,FAEM,Empangeni Airport +EMI,AYEE,Emirau Airport +EMK,PAEM,Emmonak Airport +EML,LSME,Emmen Air Base +EMM,KEMM,Kemmerer Municipal Airport +EMN,GQNI,Néma Airport +EMO,AYEO,Emo River Airstrip +EMP,KEMP,Emporia Municipal Airport +EMS,AYEB,Embessa Airport +EMT,KEMT,San Gabriel Valley Airport +EMX,SAVD,El Maitén Airport +EMY,HE25,El Minya Airport +ENA,PAEN,Kenai Municipal Airport +ENB,YEEB,Eneabba Airport +ENC,LFSN,Nancy-Essey Airport +END,KEND,Vance Air Force Base +ENE,WATE,H. Hasan Aroeboesman (Ende) Airport +ENF,EFET,Enontekio Airport +ENH,ZHES,Enshi Xujiaping Airport +ENI,RPEN,El Nido Airport +ENK,EGAB,Enniskillen/St Angelo Airport +ENL,KENL,Centralia Municipal Airport +ENN,PANN,Nenana Municipal Airport +ENO,SGEN,Teniente Ramon A. Ayub Gonzalez International Airport +ENS,EHTW,Twente Airport +ENT,PKMA,Eniwetok Airport +ENU,DNEN,Akanu Ibiam International Airport +ENV,KENV,Wendover Airport +ENW,KENW,Kenosha Regional Airport +ENY,ZLYA,Yan'an Nanniwan Airport +EOH,SKMD,Enrique Olaya Herrera Airport +EOI,EGED,Eday Airport +EOK,KEOK,Keokuk Municipal Airport +EOR,SVED,El Dorado Airport +EOS,KEOS,Neosho Hugh Robinson Airport +EOZ,SVEZ,Elorza Airport +EPA,SADP,El Palomar Airport +EPG,NE69,Browns Airport +EPH,KEPH,Ephrata Municipal Airport +EPL,LFSG,Épinal Mirecourt Airport +EPR,YESP,Esperance Airport +EPT,AYEL,Eliptamin Airport +EPU,EEPU,Pärnu Airport +EQS,SAVE,Esquel Brigadier Antonio Parodi International Airport +ERA,HCMU,Erigavo Airport +ERB,YERN,Ernabella Airport +ERC,LTCD,Erzincan Airport +ERD,UKDB,Berdyansk Airport +ERE,AYEV,Erave Airport +ERF,EDDE,Erfurt-Weimar Airport +ERG,UIKE,Yerbogachen Airport +ERH,GMFK,Moulay Ali Cherif Airport +ERI,KERI,Erie International Tom Ridge Field +ERL,ZBER,Erenhot Saiwusu International Airport +ERM,SSER,Erechim Airport +ERN,SWEI,Eirunepé Airport +ERQ,YESE,Elrose Airport +ERR,KERR,Errol Airport +ERS,FYWE,Eros Airport +ERU,AYER,Erume Airport +ERV,KERV,Kerrville / Kerr County Airport at Louis Schreiner Field +ERZ,LTCE,Erzurum International Airport +ESB,LTAC,Esenboğa International Airport +ESC,KESC,Delta County Airport +ESD,KORS,Orcas Island Airport +ESE,MMES,Ensenada International Airport / El Ciprés Air Base +ESF,KESF,Esler Army Airfield / Esler Regional Airport +ESG,SGME,Dr. Luis María Argaña International Airport +ESH,EGKA,Brighton City Airport +ESK,LTBI,Eskişehir Air Base +ESL,URWI,Elista Airport +ESM,SETN,Carlos Concha Torres International Airport +ESN,KESN,Easton Airport / Newnam Field +ESO,KE14,Ohkay Owingeh Airport +ESR,SCES,Ricardo García Posada Airport +ESS,EDLE,Essen-Mülheim Airport +EST,KEST,Estherville Municipal Airport +ESU,GMMI,Essaouira-Mogador Airport +ESW,KESW,Easton State Airport +ETB,KETB,West Bend Municipal Airport +ETD,YEDA,Etadunna Airport +ETE,HAMM,Metema Airport +ETL,UHTQ,Svetlaya Airport +ETM,LLER,Ramon International Airport +ETN,KETN,Eastland Municipal Airport +ETR,SERO,Santa Rosa - Artillery Colonel Victor Larrea International Airport +ETS,KEDN,Enterprise Municipal Airport +ETZ,LFJL,Metz-Nancy-Lorraine Airport +EUA,NFTE,Kaufana Airport +EUC,YECL,Eucla Airport +EUE,K05U,Eureka Airport +EUF,KEUF,Weedon Field +EUG,KEUG,Eugene Airport +EUM,EDHN,Neumünster Airport +EUN,GMML,Laayoune Hassan I International Airport +EUQ,RPVS,Evelio Javier Airport +EUX,TNCE,F. D. Roosevelt Airport +EVD,YEVA,Eva Downs Airport +EVE,ENEV,Harstad/Narvik Airport +EVG,ESND,Sveg Airport +EVH,YEVD,Evans Head Aerodrome +EVM,KEVM,Eveleth–Virginia Municipal Airport +EVN,UDYZ,Zvartnots International Airport +EVV,KEVV,Evansville Regional Airport +EVW,KEVW,Evanston-Uinta County Airport-Burns Field +EVX,LFOE,Évreux-Fauville (BA 105) Air Base +EWB,KEWB,New Bedford Regional Airport +EWI,WABT,Enarotali Airport +EWK,KEWK,Newton City-County Airport +EWN,KEWN,Coastal Carolina Regional Airport +EWO,FCOE,Ewo Airport +EWR,KEWR,Newark Liberty International Airport +EXM,YEXM,Exmouth Airport +EXT,EGTE,Exeter International Airport +EYA,UHBE,Zeya Airport +EYK,USHQ,Beloyarskiy Airport +EYL,GAYE,Yélimané Airport +EYP,SKYP,El Alcaravan - Yopal Airport +EYR,KO43,Yerington Municipal Airport +EYS,HKES,Eliye Springs Airport +EYW,KEYW,Key West International Airport +EZE,SAEZ,Ezeiza International Airport - Ministro Pistarini +EZS,LTCA,Elazığ Airport +EZV,USHB,Berezovo Airport +FAA,GUFH,Faranah Airport +FAB,EGLF,Farnborough Airport +FAC,NTKF,Faaite Airport +FAE,EKVG,Vágar Airport +FAF,KFAF,Felker Army Air Field +FAG,BIFM,Fagurhólsmýri Airport +FAH,OAFR,Farah Airport +FAI,PAFA,Fairbanks International Airport +FAM,KFAM,Farmington Regional Airport +FAO,LPFR,Faro - Gago Coutinho International Airport +FAQ,AYFR,Frieda River Airport +FAR,KFAR,Hector International Airport +FAT,KFAT,Fresno Yosemite International Airport +FAU,OOFD,Fahud Airport +FAV,NTGF,Fakarava Airport +FAY,KFAY,Fayetteville Regional Airport - Grannis Field +FAZ,OISF,Fasa Airport +FBA,SWOB,Fonte Boa Airport +FBD,OAFZ,Fayzabad Airport +FBE,SSFB,Paulo Abdala Airport +FBG,KFBG,Simmons Army Air Field +FBK,PAFB,Ladd Army Airfield +FBL,KFBL,Faribault Municipal Airport-Liz Wall Strohfus Field +FBM,FZQA,Lubumbashi International Airport +FBR,KFBR,Fort Bridger Airport +FBY,KFBY,Fairbury Municipal Airport +FCA,KGPI,Glacier Park International Airport +FCB,FAFB,Ficksburg Sentraoes Airport +FCH,KFCH,Fresno Chandler Executive Airport +FCM,KFCM,Flying Cloud Airport +FCN,ETMN,Sea-Airport Cuxhaven/Nordholz / Nordholz Naval Airbase +FCO,LIRF,Rome–Fiumicino Leonardo da Vinci International Airport +FCS,KFCS,Butts AAF (Fort Carson) Air Field +FCY,KFCY,Forrest City Municipal Airport +FDA,SKFU,Fundación Airport +FDE,ENBL,"Førde Airport, Bringeland" +FDF,TFFF,Martinique Aimé Césaire International Airport +FDH,EDNY,Bodensee Airport Friedrichshafen +FDK,KFDK,Frederick Municipal Airport +FDR,KFDR,Frederick Regional Airport +FDU,FZBO,Bandundu Airport +FDY,KFDY,Findlay Airport +FEB,VNSR,Sanfebagar Airport +FEC,SDIY,João Durval Carneiro Airport +FEG,UTKF,Fergana International Airport +FEJ,SNOU,Feijó Airport +FEN,SBFN,Fernando de Noronha Airport +FEP,KFEP,Albertus Airport +FET,KFET,Fremont Municipal Airport +FEZ,GMFF,Fes Saïss International Airport +FFA,KFFA,First Flight Airport +FFD,EGVA,RAF Fairford +FFL,KFFL,Fairfield Municipal Airport +FFM,KFFM,Fergus Falls Municipal Airport - Einar Mickelson Field +FFO,KFFO,Wright-Patterson Air Force Base +FFT,KFFT,Capital City Airport +FFU,SCFT,Futaleufú Airport +FGD,GQPF,Fderik Airport +FGI,NSFI,Fagali'i Airport +FGL,NZFH,Fox Heliport +FGU,NTGB,Fangatau Airport +FHU,KFHU,Sierra Vista Municipal Airport / Libby Army Air Field +FHZ,NTKH,Fakahina Airport +FID,K0B8,Elizabeth Field +FIE,EGEF,Fair Isle Airport +FIG,GUFA,Fria Airport +FIH,FZAA,Ndjili International Airport +FIK,YFNE,Finke Airport +FIL,KFOM,Fillmore Municipal Airport +FIN,AYFI,Finschhafen Airport +FIZ,YFTZ,Fitzroy Crossing Airport +FJR,OMFJ,Fujairah International Airport +FKB,EDSB,Karlsruhe Baden-Baden Airport +FKI,FZIC,Bangoka International Airport +FKJ,RJNF,Fukui Airport +FKL,KFKL,Venango Regional Airport +FKN,KFKN,Franklin Regional Airport +FKQ,WASF,Fakfak Airport +FKS,RJSF,Fukushima Airport +FLA,SKFL,Gustavo Artunduaga Paredes Airport +FLB,SNQG,Cangapara Airport +FLD,KFLD,Fond du Lac County Airport +FLF,EDXF,Flensburg-Schäferhaus Airport +FLG,KFLG,Flagstaff Pulliam Airport +FLL,KFLL,Fort Lauderdale Hollywood International Airport +FLM,SGFI,Aeródromo de Filadelfia +FLN,SBFL,Hercílio Luz International Airport +FLO,KFLO,Florence Regional Airport +FLP,KFLP,Marion County Regional Airport +FLR,LIRQ,"Florence Airport, Peretola" +FLS,YFLI,Flinders Island Airport +FLV,KFLV,Sherman Army Air Field +FLW,LPFL,Flores Airport +FLX,KFLX,Fallon Municipal Airport +FLY,YFIL,Finley Airport +FLZ,WIMS,Dr. Ferdinand Lumban Tobing Airport +FMA,SARF,Formosa National Airport +FME,KFME,Fort Meade Executive Airport +FMG,MRFL,Flamingo Airport +FMH,KFMH,Cape Cod Coast Guard Air Station +FMI,FZRF,Kalemie Airport +FMM,EDJA,Memmingen Allgau Airport +FMN,KFMN,Four Corners Regional Airport +FMO,EDDG,Münster Osnabrück Airport +FMS,KFSW,Fort Madison Municipal Airport +FMU,K6S2,Florence Municipal Airport +FMY,KFMY,Page Field +FNA,GFLL,Lungi International Airport +FNB,EDBN,Neubrandenburg Trollenhagen Airport +FNC,LPMA,Cristiano Ronaldo International Airport +FNE,AYFA,Fane Airport +FNG,DFEF,Fada N'gourma Airport +FNH,HAFN,Fincha Airport +FNI,LFTW,Nîmes-Arles-Camargue Airport +FNJ,ZKPY,Pyongyang Sunan International Airport +FNL,KFNL,Northern Colorado Regional Airport +FNR,PANR,Funter Bay Seaplane Base +FNT,KFNT,Bishop International Airport +FNU,LIER,Oristano-Fenosu Airport +FOB,82CL,Fort Bragg Airport +FOC,ZSFZ,Fuzhou Changle International Airport +FOD,KFOD,Fort Dodge Regional Airport +FOE,KFOE,Topeka Regional Airport +FOG,LIBF,Foggia Gino Lisa Airport +FOK,KFOK,Francis S Gabreski Airport +FOM,FKKM,Foumban Nkounja Airport +FON,MRAN,La Fortuna Arenal Airport +FOO,WABF,Kornasoren Airport +FOR,SBFZ,Pinto Martins International Airport +FOS,YFRT,Forrest Airport +FOT,YFST,Forster (Wallis Is) Airport +FOU,FOGF,Fougamou Airport +FPO,MYGF,Grand Bahama International Airport +FPR,KFPR,Treasure Coast International Airport +FPY,K40J,Perry-Foley Airport +FRA,EDDF,Frankfurt Main Airport +FRB,YFBS,Forbes Airport +FRC,SIMK,Tenente Lund Pressoto Airport +FRD,KFHR,Friday Harbor Airport +FRE,AGGF,Fera/Maringe Airport +FRG,KFRG,Republic Airport +FRH,KFRH,French Lick Municipal Airport +FRI,KFRI,Marshall Army Air Field +FRK,FSSF,Frégate Island Airport (UNUSABLE) +FRL,LIPK,Forlì-Luigi Ridolfi International Airport +FRM,KFRM,Fairmont Municipal Airport +FRN,PAFR,Bryant Army Airfield +FRO,ENFL,Florø Airport +FRQ,AYFE,Feramin Airport +FRR,KFRR,Front Royal Warren County Airport +FRS,MGTK,Mundo Maya International Airport +FRT,SCEV,El Avellano Airport +FRW,FBFT,Phillip Gaonwe Matante International Airport +FRY,KIZG,Eastern Slopes Regional Airport +FRZ,ETHF,Fritzlar Army Airfield +FSC,LFKF,Figari Sud-Corse Airport +FSD,KFSD,Sioux Falls Regional Airport +FSI,KFSI,Henry Post Army Air Field +FSK,KFSK,Fort Scott Municipal Airport +FSM,KFSM,Fort Smith Regional Airport +FSP,LFVP,Saint-Pierre Pointe-Blanche Airport +FST,KFST,Fort Stockton Pecos County Airport +FSU,KFSU,Fort Sumner Municipal Airport +FSZ,RJNS,Mount Fuji Shizuoka Airport +FTA,NVVF,Futuna Airport +FTE,SAWC,El Calafate - Commander Armando Tola International Airport +FTI,NSFQ,Fitiuta Airport +FTK,KFTK,Godman Army Air Field +FTU,FMSD,Tôlanaro Airport +FTW,KFTW,Fort Worth Meacham International Airport +FTX,FCOO,Owando Airport +FTY,KFTY,Fulton County Airport Brown Field +FUE,GCFV,Fuerteventura Airport +FUG,ZSFY,Fuyang Xiguan Airport +FUJ,RJFE,Fukue Airport +FUK,RJFF,Fukuoka Airport +FUL,KFUL,Fullerton Municipal Airport +FUM,AYFU,Fuma Airport +FUN,NGFU,Funafuti International Airport +FUO,ZGFS,Foshan Shadi Airport +FUT,NLWF,Pointe Vele Airport +FVL,YFLO,Flora Valley Airport +FVM,VRMF,Fuvahmulah Airport +FVR,YFRV,Oombulgurri Airport +FWA,KFWA,Fort Wayne International Airport +FWH,KNFW,NAS Fort Worth JRB / Carswell Field +FXE,KFXE,Fort Lauderdale Executive Airport +FXO,FQCB,Cuamba Airport +FXY,KFXY,Forest City Municipal Airport +FYJ,ZYFY,Fuyuan Dongji Airport +FYM,KFYM,Fayetteville Municipal Airport +FYN,ZWFY,Fuyun Koktokay Airport +FYT,FTTY,Faya-Largeau Airport +FYU,PFYU,Fort Yukon Airport +FYV,KFYV,Drake Field +FZL,UBBF,Fuzuli International Airport +GAB,KGAB,Gabbs Airport +GAC,MHGS,Celaque Gracias Airport +GAD,KGAD,Northeast Alabama Regional Airport +GAE,DTTG,Gabès Matmata International Airport +GAF,DTTF,Gafsa Ksar International Airport +GAG,KGAG,Gage Heibeck Airport +GAH,YGAY,Gayndah Airport +GAI,KGAI,Montgomery County Airpark +GAJ,RJSC,Yamagata Airport +GAL,PAGA,Edward G. Pitka Sr Airport +GAM,PAGM,Gambell Airport +GAN,VRMG,Gan International Airport +GAO,MUGT,Mariana Grajales Airport +GAP,AYGP,Gusap Airport +GAQ,GAGO,Gao International Airport +GAR,AYGI,Garaina Airport +GAS,HKGA,Garissa Airport +GAT,LFNA,Gap-Tallard Airfield +GAU,VEGT,Lokpriya Gopinath Bordoloi International Airport +GAW,VYGG,Gangaw Airport +GAY,VEGY,Gaya Airport +GAZ,AYGJ,Guasopa Airport +GBA,EGBP,Cotswold Airport +GBB,UBBQ,Gabala International Airport +GBC,AYGS,Gasuke Airport +GBD,KGBD,Great Bend Municipal Airport +GBE,FBSK,Sir Seretse Khama International Airport +GBF,AYNE,Negarbo(Negabo) Airport +GBG,KGBG,Galesburg Municipal Airport +GBH,PAGB,Galbraith Lake Airport +GBI,VOGB,Kalaburagi Airport +GBJ,TFFM,Marie-Galante Airport +GBK,GFGK,Gbangbatok Airport +GBL,YGBI,South Goulburn Is Airport +GBP,YGAM,Gamboola Airport +GBR,KGBR,Walter J. Koladza Airport +GBT,OING,Gorgan Airport +GBU,HSKG,Khashm El Girba Airport +GBV,YGIB,Gibb River Airport +GBW,YGIA,Ginbata Airport +GBZ,NZGB,Great Barrier Aerodrome +GCC,KGCC,Northeast Wyoming Regional Airport +GCD,K3W7,Grand Coulee Dam Airport +GCH,OIAH,Gachsaran Airport +GCI,EGJB,Guernsey Airport +GCJ,FAGC,Grand Central Airport +GCK,KGCK,Garden City Regional Airport +GCM,MWCR,Owen Roberts International Airport +GCN,KGCN,Grand Canyon National Park Airport +GCW,K1G4,Grand Canyon West Airport +GCY,KGCY,Greeneville Municipal Airport +GDB,VA2C,Gondia Airport +GDC,KGYH,Donaldson Field Airport +GDD,YGDN,Gordon Downs Airport +GDE,HAGO,Gode Airport +GDI,FEGL,Gordil Airport +GDL,MMGL,Guadalajara International Airport +GDM,KGDM,Gardner Municipal Airport +GDN,EPGD,Gdańsk Lech Wałęsa Airport +GDO,SVGD,Guasdualito Airport +GDP,SNGD,Guadalupe Airport +GDQ,HAGN,Gondar Airport +GDR,SDAG,Angra dos Reis Airport +GDT,MBGT,JAGS McCartney International Airport +GDV,KGDV,Dawson Community Airport +GDW,KGDW,Gladwin Zettel Memorial Airport +GDX,UHMM,Sokol Airport +GDZ,URKG,Gelendzhik Airport +GEA,NWWM,Nouméa Magenta Airport +GEB,WAMJ,Gebe Airport +GEC,LCGK,Lefkoniko Airport / Geçitkale Air Base +GED,KGED,Delaware Coastal Airport +GEE,YGTO,George Town Airport +GEF,AGEV,Geva Airport +GEG,KGEG,Spokane International Airport +GEL,SBNM,Santo Ângelo Airport +GEM,FGMY,President Obiang Nguema International Airport +GEO,SYCJ,Cheddi Jagan International Airport +GER,MUNG,Rafael Cabrera Airport +GES,RPMR,General Santos International Airport +GET,YGEL,Geraldton Airport +GEV,ESNG,Gällivare Airport +GEW,AYGC,Gewoia Airport +GEY,KGEY,South Big Horn County Airport +GFA,KGFA,Malmstrom Air Force Base +GFD,KGFD,Pope Field +GFE,YGNF,Grenfell Airport +GFF,YGTH,Griffith Airport +GFK,KGFK,Grand Forks International Airport +GFL,KGFL,Floyd Bennett Memorial Airport +GFN,YGFN,Clarence Valley Regional Airport +GFO,SYBT,Bartica A Airport +GFR,LFRF,Granville Airport +GFY,FYGF,Grootfontein Airport +GGB,SWHP,Frederico Carlos Müller Airport +GGC,FNBL,Lumbala Airport +GGD,YGDS,Gregory Downs Airport +GGE,KGGE,Georgetown County Airport +GGF,SNYA,Almeirim Airport +GGG,KGGG,East Texas Regional Airport +GGH,SSCT,Engenheiro Gastão de Mesquita Filho Airport +GGJ,SSGY,Guaíra Airport +GGM,HKKG,Kakamega Airport +GGN,DIGA,Gagnoa Airport +GGO,DIGL,Guiglo Airport +GGR,HCMW,Garowe Airport +GGS,SAWR,Gobernador Gregores Airport +GGT,MYEF,Exuma International Airport +GGW,KGGW,Glasgow Valley County Airport Wokal Field +GHA,DAUG,Noumérat - Moufdi Zakaria Airport +GHB,MYEM,Governor's Harbour Airport +GHC,MYBG,Great Harbour Cay Airport +GHF,EDQG,Giebelstadt Airport +GHK,CGK2,Gahcho Kue +GHM,KGHM,Centerville Municipal Airport +GHN,ZUGH,Guanghan Airport +GHS,WALE,Melalan Airport +GHT,HLGT,Ghat Airport +GHU,SAAG,Gualeguaychu Airport +GHV,LRBV,Brașov-Ghimbav International Airport +GIB,LXGB,Gibraltar Airport +GIC,YBOI,Boigu Island Airport +GID,HBBE,Gitega Airport +GIF,KGIF,Winter Haven Regional Airport - Gilbert Field +GIG,SBGL,Rio Galeão – Tom Jobim International Airport +GII,GUSI,Siguiri Airport +GIL,OPGT,Gilgit Airport +GIR,SKGI,Santiago Vila Airport +GIS,NZGS,Gisborne Airport +GIU,VCCS,Sigiriya Air Force Base +GIY,FAGI,Giyani Airport +GIZ,OEGN,Jizan Regional Airport / King Abdullah bin Abdulaziz Airport +GJA,MHNJ,La Laguna Airport +GJL,DAAV,Jijel Ferhat Abbas Airport +GJM,SBGM,Guajará-Mirim Airport +GJR,BIGJ,Gjögur Airport +GJT,KGJT,Grand Junction Regional Airport +GKA,AYGA,Goroka Airport +GKD,LTFK,Gökçeada Airport +GKE,ETNG,Geilenkirchen Air Base +GKH,VNGK,Palungtar Airport +GKK,VRMO,Kooddoo Airport +GKL,YGKL,Great Keppel Is Airport +GKN,PAGK,Gulkana Airport +GKT,KGKT,Gatlinburg-Pigeon Forge Airport +GLA,EGPF,Glasgow Airport +GLB,KP13,San Carlos Apache Airport +GLD,KGLD,Goodland Municipal Airport +GLE,KGLE,Gainesville Municipal Airport +GLF,MRGF,Golfito Airport +GLG,YGLE,Glengyle Airport +GLH,KGLH,Mid Delta Regional Airport +GLI,YGLI,Glen Innes Airport +GLK,HCMR,Galcaio Airport +GLL,ENKL,Gol Airport +GLM,YGLO,Glenormiston Airport +GLO,EGBJ,Gloucestershire Airport +GLP,AYUP,Gulgubip Airport +GLR,KGLR,Gaylord Regional Airport +GLS,KGLS,Scholes International At Galveston Airport +GLT,YGLA,Gladstone Airport +GLU,VQGP,Gelephu Airport +GLV,PAGL,Golovin Airport +GLW,KGLW,Glasgow Municipal Airport +GLX,WAMA,Gamarmalamo Airport +GLZ,EHGR,Gilze Rijen Air Base +GMA,FZFK,Gemena Airport +GMB,HAGM,Gambela Airport +GMD,GMMB,Ben Slimane Airport +GME,UMGG,Gomel Airport +GMI,AYGT,Gasmata Island Airport +GMM,FCOG,Gamboma Airport +GMN,NZGM,Greymouth Airport +GMO,DNGO,Gombe Lawanti International Airport +GMP,RKSS,Gimpo International Airport +GMQ,ZLGL,Golog Maqên Airport +GMR,NTGJ,Totegegie Airport +GMS,SNYW,Antônio Guerreiro Airport +GMT,PAGZ,Granite Mountain Air Station +GMU,KGMU,Greenville Downtown Airport +GMV,UT25,Monument Valley Airport +GMZ,GCGM,La Gomera Airport +GNA,UMMG,Hrodna Airport +GNB,LFLS,Grenoble Alpes Isère Airport +GND,TGPY,Maurice Bishop International Airport +GNE,EBGT,Ghent/Industry Zone Heliport +GNF,K2O1,Gansner Field +GNG,KGNG,Gooding Municipal Airport +GNI,RCGI,Lüdao Airport +GNJ,UBBG,Ganja International Airport +GNM,SNGI,Guanambi Airport +GNN,HAGH,Ghinnir Airport +GNR,SAHR,Dr. Arturo H. Illia Airport +GNS,WIMB,Binaka Airport +GNT,KGNT,Grants-Milan Municipal Airport +GNV,KGNV,Gainesville Regional Airport +GNY,LTCS,Şanlıurfa GAP Airport +GNZ,FBGZ,Ghanzi Airport +GOA,LIMJ,Genoa Cristoforo Colombo Airport +GOB,HAGB,Robe Airport +GOC,AYGX,Gora Airstrip +GOE,AYGL,Gonaili Airport +GOG,FYGB,Gobabis Airport +GOH,BGGH,Nuuk International Airport +GOI,VOGO,Goa Dabolim International Airport +GOJ,UWGG,Nizhny Novgorod / Strigino International Airport +GOK,KGOK,Guthrie-Edmond Regional Airport +GOL,K4S1,Gold Beach Municipal Airport +GOM,FZNA,Goma International Airport +GON,KGON,Groton New London Airport +GOO,YGDI,Goondiwindi Airport +GOP,VEGK,Gorakhpur Airport +GOQ,ZLGM,Golmud Airport +GOR,HAGR,Gore Airport +GOS,YSMB,Somersby Airstrip +GOT,ESGG,Göteborg Landvetter Airport +GOU,FKKR,Garoua International Airport +GOV,YPGV,Gove Airport +GOX,VOGA,Manohar International Airport +GOY,UNIT,Tura Mountain Airport +GOZ,LBGO,Gorna Oryahovitsa Airport +GPA,LGRX,Patras Araxos Agamemnon Airport +GPB,SBGU,Tancredo Thomas de Faria Airport +GPD,YGON,Mount Gordon Airport +GPI,SKGP,Guapi Airport +GPL,MRGP,Guapiles Airport +GPN,YGPT,Garden Point Airport +GPO,SAZG,General Pico Airport +GPS,SEGS,Seymour Galapagos Ecological Airport +GPT,KGPT,Gulfport Biloxi International Airport +GPZ,KGPZ,Grand Rapids Itasca Co-Gordon Newstrom field +GQQ,KGQQ,Galion Municipal Airport +GRB,KGRB,Austin Straubel International Airport +GRD,KGRD,Greenwood County Airport +GRE,KGRE,Greenville Airport +GRF,KGRF,Gray Army Air Field +GRG,OAGZ,Gardez Airport +GRI,KGRI,Central Nebraska Regional Airport +GRJ,FAGG,George Airport +GRK,KGRK,Killeen Regional Airport / Robert Gray Army Airfield +GRL,AYGG,Garasa Airport +GRM,KCKC,Grand Marais Cook County Airport +GRN,KGRN,Gordon Municipal Airport +GRO,LEGE,Girona-Costa Brava Airport +GRP,SWGI,Gurupi Airport +GRQ,EHGG,Groningen Airport Eelde +GRR,KGRR,Gerald R. Ford International Airport +GRS,LIRS,Grosseto Corrado Baccarini Air Base / Grosseto Airport +GRU,SBGR,São Paulo/Guarulhos–Governor André Franco Montoro International Airport +GRV,URMG,Akhmat Kadyrov Grozny International Airport +GRW,LPGR,Graciosa Airport +GRX,LEGR,F.G.L. Airport Granada-Jaén Airport +GRY,BIGR,Grímsey Airport +GRZ,LOWG,Graz Airport +GSA,WBKN,Long Pasia Airport +GSB,KGSB,Seymour Johnson Air Force Base +GSC,YGSC,Gascoyne Junction Airport +GSE,ESGP,Säve Airport +GSH,KGSH,Goshen Municipal Airport +GSI,SOGS,Grand-Santi Airport +GSJ,MGSJ,San José Airport +GSL,CFA7,Taltheilei Narrows Airport +GSM,OIKQ,Qeshm International Airport +GSN,YMGN,Mount Gunson Airport +GSO,KGSO,Piedmont Triad International Airport +GSP,KGSP,Greenville-Spartanburg International Airport +GSQ,HEOW,El Owainat East International Airport +GSR,HCMG,Gardo Airport +GSS,FASE,Sabi Sabi Airport +GST,PAGS,Gustavus Airport +GSV,UWSG,Gagarin International Airport +GTA,AGOK,Gatokae Aerodrome +GTC,HTGE,Chato/Geita Airport +GTE,YGTE,Groote Eylandt Airport +GTF,KGTF,Great Falls International Airport +GTG,KGTG,Grantsburg Municipal Airport +GTI,EDCG,Rügen Airport +GTN,NZGT,Glentanner Airport +GTO,WAMG,Jalaluddin Airport +GTP,K3S8,Grants Pass Airport +GTR,KGTR,Golden Triangle Regional Airport +GTS,YTGT,The Granites Airport +GTT,YGTN,Georgetown Airport +GTY,KW05,Gettysburg Regional Airport +GTZ,HTGR,Kirawira B Aerodrome +GUA,MGGT,La Aurora International Airport +GUB,MMGR,Guerrero Negro Airport +GUC,KGUC,Gunnison Crested Butte Regional Airport +GUD,GAGM,Goundam Airport +GUF,KJKA,Jack Edwards National Airport +GUG,AYGF,Guari Airport +GUH,YGDH,Gunnedah Airport +GUI,SVGI,Guiria Airport +GUJ,SBGW,Edu Chaves Field +GUL,YGLB,Goulburn Airport +GUM,PGUM,Antonio B. Won Pat International Airport +GUP,KGUP,Gallup Municipal Airport +GUQ,SVGU,Guanare Airport +GUR,AYGN,Gurney Airport +GUS,KGUS,Grissom Air Reserve Base +GUU,BIGF,Grundarfjörður Airport +GUV,AYML,Mougulu Airport +GUW,UATG,Atyrau International Airport +GUX,VAGN,Guna Airport +GUY,KGUY,Guymon Municipal Airport +GUZ,SNGA,Guarapari Airport +GVA,LSGG,Geneva International Airport +GVE,KGVE,Gordonsville Municipal Airport +GVI,AYGV,Green River Airport +GVL,KGVL,Lee Gilmer Memorial Airport +GVN,UHKM,Sovetskaya Gavan (Maygatka) Airport +GVP,YGNV,Greenvale Airport +GVR,SBGV,Coronel Altino Machado Airport +GVT,KGVT,Majors Airport +GVX,ESSK,Gävle Sandviken Airport +GWA,VYGW,Gwa Airport +GWD,OPGD,New Gwadar International Airport +GWE,FVTL,Josiah Tungamirai Air Force Base +GWL,VIGR,Gwalior Airport +GWO,KGWO,Greenwood–Leflore Airport +GWS,KGWS,Glenwood Springs Municipal Airport +GWT,EDXW,Westerland Sylt Airport +GWV,WV66,Glendale Fokker Field +GXF,OYSY,Seiyun Hadhramaut International Airport +GXG,FNNG,Negage Airport +GXH,ZLXH,Gannan Xiahe Airport +GXQ,SCCY,Teniente Vidal Airport +GXX,FKKJ,Yagoua Airport +GXY,KGXY,Greeley–Weld County Airport +GYA,SLGM,Guayaramerín Airport +GYB,YWGA,Port Hedland/Wodgina Airport +GYD,UBBB,Heydar Aliyev International Airport +GYE,SEGU,José Joaquín de Olmedo International Airport +GYG,UEMM,Magan Airport +GYI,HRYG,Gisenyi Airport +GYL,YARG,Argyle Airport +GYM,MMGM,General José María Yáñez International Airport +GYN,SBGO,Santa Genoveva International Airport +GYP,YGYM,Gympie Airport +GYR,KGYR,Phoenix Goodyear Airport +GYS,ZUGU,Guangyuan Panlong Airport +GYU,ZLGY,Guyuan Liupanshan Airport +GYY,KGYY,Gary/Chicago International Airport +GZG,ZUGZ,Garze Gesar Airport +GZI,OAGN,Ghazni Airport +GZM,LMMG,Xewkija Heliport +GZO,AGGN,Nusatupe Airport +GZP,LTFG,Gazipaşa-Alanya Airport +GZT,LTAJ,Gaziantep Oğuzeli International Airport +GZW,OIIK,Qazvin Airport +HAA,ENHK,Hasvik Airport +HAB,KHAB,Marion County Rankin Fite Airport +HAC,RJTH,Hachijojima Airport +HAD,ESMT,Halmstad Airport +HAE,AZ15,Lava Falls Heliport +HAF,KHAF,Half Moon Bay Airport +HAH,FMCH,Prince Said Ibrahim International Airport +HAI,KHAI,Three Rivers Municipal Dr Haines Airport +HAJ,EDDV,Hannover Airport +HAK,ZJHK,Haikou Meilan International Airport +HAL,FYHI,Halali Airport +HAM,EDDH,Hamburg Helmut Schmidt Airport +HAN,VVNB,Noi Bai International Airport +HAO,KHAO,Butler Co Regional Airport - Hogan Field +HAP,YHPB,Happy Bay Helipad +HAQ,VRMH,Hanimaadhoo International Airport +HAR,KCXY,Capital City Airport +HAS,OEHL,Hail International Airport +HAT,YHTL,Heathlands Airport +HAU,ENHD,"Haugesund Airport, Karmøy" +HAV,MUHA,José Martí International Airport +HAW,EGFE,Haverfordwest Airport +HAY,SKAG,Hacaritama Airport +HBA,YMHB,Hobart International Airport +HBB,NM83,Industrial Airpark +HBD,AYHB,Habi Airport +HBE,HEBA,Alexandria International Airport +HBG,KHBG,Hattiesburg Bobby L Chain Municipal Airport +HBK,KP14,Holbrook Municipal Airport +HBQ,ZLHB,Haibei Qilian Airport +HBR,KHBR,Hobart Regional Airport +HBU,ZMBS,Bulgan Sum Airport +HBX,VAHB,Hubballi Airport +HCA,KBPG,Big Spring Mc Mahon-Wrinkle Airport +HCC,K1B1,Columbia County Airport +HCJ,ZGHC,Hechi Jinchengjiang Airport +HCM,HCME,Eil Airport +HCN,RCKW,Hengchun Airport +HCQ,YHLC,Halls Creek Airport +HCR,PAHC,Holy Cross Airport +HCW,KCQW,Cheraw Municipal Airport/Lynch Bellinger Field +HCZ,ZGCZ,Chenzhou Beihu Airport +HDD,OPKD,Hyderabad Airport +HDE,KHDE,Brewster Field +HDF,EDAH,Heringsdorf Airport +HDG,ZBHD,Handan Airport +HDH,PHDH,Kawaihapai Airfield +HDK,VRBK,Kulhudhuffushi Airport +HDM,OIHH,Hamadan Airport +HDN,KHDN,Yampa Valley Airport +HDO,VIDX,Hindon Airport / Hindon Air Force Station +HDR,OIKP,Havadarya Airport +HDS,FAHT,Eastgate Airport / Air Force Base Hoedspruit +HDY,VTSS,Hat Yai International Airport +HEA,OAHR,Herat - Khwaja Abdullah Ansari International Airport +HED,AK33,Herendeen Bay Airport +HEE,KHEE,Thompson-Robbins Airport +HEG,HSHG,Heglig Airport +HEH,VYHH,Heho Airport +HEI,EDXB,Heide-Büsum Airport +HEK,ZYHE,Heihe Aihui Airport +HEL,EFHK,Helsinki Vantaa Airport +HEN,EFHE,Hernesaari Heliport +HER,LGIR,Heraklion International Nikos Kazantzakis Airport +HES,KHRI,Hermiston Municipal Airport +HET,ZBHH,Hohhot Baita International Airport +HEZ,KHEZ,Natchez–Adams County Airport / Hardy-Anders Field +HFA,LLHA,Uri Michaeli Haifa International Airport +HFD,KHFD,Hartford Brainard Airport +HFE,ZSOF,Hefei Xinqiao International Airport +HFF,KHFF,Mackall Army Air Field +HFN,BIHN,Hornafjörður Airport +HFS,ESOH,Hagfors Airport +HFT,ENHF,Hammerfest Airport +HGA,HCMH,Egal International Airport +HGD,YHUG,Hughenden Airport +HGE,SVHG,Higuerote Airport +HGH,ZSHC,Hangzhou Xiaoshan International Airport +HGL,EDXH,Helgoland-Düne Airport +HGN,VTCH,Mae Hong Son Airport +HGO,DIKO,Korhogo Airport +HGR,KHGR,Hagerstown Regional Richard A Henson Field +HGS,GFHA,Hastings Airport +HGU,AYMH,Mount Hagen Kagamuga Airport +HGZ,2AK6,Hog River Airport +HHE,RJSH,JMSDF Hachinohe Air Base / Hachinohe Airport +HHH,KHXD,Hilton Head Airport +HHI,PHHI,Wheeler Army Airfield +HHN,EDFH,Frankfurt-Hahn Airport +HHP,VHST,Shun Tak Heliport +HHQ,VTPH,Hua Hin Airport +HHR,KHHR,Jack Northrop Field Hawthorne Municipal Airport +HHZ,NTGH,Hikueru Airport +HIA,ZSSH,Huai'an Lianshui Airport +HIB,KHIB,Range Regional Airport +HID,YHID,Horn Island Airport +HIE,KHIE,Mount Washington Regional Airport +HIF,KHIF,Hill Air Force Base +HIG,YHHY,Highbury Airport +HII,KHII,Lake Havasu City Airport +HIJ,RJOA,Hiroshima Airport +HIL,HASL,Shilavo Airport +HIM,VCCH,Hingurakgoda Air Force Base +HIN,RKPS,Sacheon Airport / Sacheon Air Base +HIO,KHIO,Portland Hillsboro Airport +HIP,YHDY,Headingly Airport +HIR,AGGH,Honiara International Airport +HIT,AYHO,Haivaro Airport +HIW,RJBH,Hiroshima Heliport +HJJ,ZGCJ,Huaihua Zhijiang Airport +HJR,VAKJ,Khajuraho Airport +HJT,ZMHU,Khujirt Airport +HKA,KHKA,Blytheville Municipal Airport +HKD,RJCH,Hakodate Airport +HKG,VHHH,Hong Kong International Airport +HKK,NZHK,Hokitika Airfield +HKN,AYHK,Hoskins Airport +HKS,KHKS,Hawkins Field +HKT,VTSP,Phuket International Airport +HKY,KHKY,Hickory Regional Airport +HLA,FALA,Lanseria International Airport +HLB,KHLB,Batesville Airport +HLC,KHLC,Hill City Municipal Airport +HLD,ZBLA,Hulunbuir Hailar Airport +HLE,FHSH,Saint Helena International Airport +HLF,ESSF,Hultsfred Airport +HLG,KHLG,Wheeling Ohio County Airport +HLH,ZBUL,Ulanhot Yilelite Airport +HLI,KCVH,Hollister Municipal Airport +HLL,YHIL,Hillside Airport +HLN,KHLN,Helena Regional Airport +HLP,WIHH,Halim Perdanakusuma International Airport +HLR,KHLR,Hood Army Air Field +HLS,YSTH,St Helens Airport +HLT,YHML,Hamilton Airport +HLW,FAHL,Hluhluwe Airport +HLZ,NZHN,Hamilton International Airport +HMA,USHH,Khanty Mansiysk Airport +HMB,HESG,Suhaj International Airport +HME,DAUH,Hassi Messaoud-Oued Irara Krim Belkacem Airport +HMG,YHMB,Hermannsburg Airport +HMI,ZWHM,Hami Airport +HMJ,UKLH,Khmelnytskyi Airport +HMN,KHMN,Holloman Air Force Base +HMO,MMHO,General Ignacio L. Pesqueira International Airport +HMR,ENHA,"Hamar Lufthavn, Stavsberg" +HMS,WAGB,Haji Muhammad Sidik Airport +HMT,KHMT,Hemet Ryan Airport +HMV,ESUT,Hemavan Airport +HMY,RKTP,Seosan Air Base +HNA,RJSI,Iwate Hanamaki Airport +HNB,KHNB,Huntingburg Airport +HNC,KHSE,Billy Mitchell Airport +HND,RJTT,Tokyo Haneda International Airport +HNH,PAOH,Hoonah Airport +HNI,AYHE,Heiweni Airport +HNL,PHNL,Daniel K. Inouye International Airport +HNM,PHHN,Hana Airport +HNN,AYHH,Honinabi Airport +HNS,PAHN,Haines Airport +HNY,ZGHY,Hengyang Nanyue Airport +HOA,HKHO,Hola Airport +HOB,KHOB,Lea County Regional Airport +HOC,AYOK,Komako Airport +HOE,VLHS,Ban Huoeisay Airport +HOF,OEAH,Al-Ahsa International Airport +HOG,MUHG,Frank Pais International Airport +HOH,LOIH,Hohenems-Dornbirn Airfield +HOI,NTTO,Hao Airport +HOK,YHOO,Hooker Creek Airport +HOM,PAHO,Homer Airport +HON,KHON,Huron Regional Airport +HOP,KHOP,Campbell Army Airfield (Fort Campbell) +HOQ,EDQM,Hof-Plauen Airport +HOR,LPHR,Horta Airport +HOS,SAHC,Chos Malal Airport +HOT,KHOT,Memorial Field Airport +HOU,KHOU,William P. Hobby Airport +HOV,ENOV,"Ørsta-Volda Airport, Hovden" +HOX,VYHL,Hommalinn Airport +HPA,NFTL,Lifuka Island Airport +HPB,PAHP,Hooper Bay Airport +HPE,YHPV,Hope Vale Airport +HPG,ZHSN,Shennongjia Hongping Airport +HPH,VVCI,Cat Bi International Airport +HPN,KHPN,Westchester County Airport +HPT,KHPT,Hampton Municipal Airport +HPV,HI01,Princeville Airport +HPY,KHPY,Baytown Airport +HQM,KHQM,Bowerman Airport +HQQ,ZHQQ,Anyang Hongqiqu Airport +HRA,LKMH,Mnichovo Hradiště Airport +HRB,ZYHB,Harbin Taiping International Airport +HRE,FVHA,Robert Gabriel Mugabe International Airport +HRF,VRAH,Hoarafushi Airport +HRG,HEGN,Hurghada International Airport +HRH,VIAH,Aligarh Airport +HRI,VCRI,Mattala Rajapaksa International Airport +HRK,UKHH,Kharkiv International Airport +HRL,KHRL,Valley International Airport +HRM,DAFH,Hassi R'Mel Airport +HRO,KHRO,Boone County Airport +HRS,FAHR,Harrismith Airport +HRY,YHBY,Henbury Airport +HRZ,SSHZ,Walter Bündchen Airport +HSA,UAIT,Hazrat Sultan International Airport +HSB,KHSB,Harrisburg-Raleigh Airport +HSF,ZYSD,Suifenhe Dongning Airport +HSG,RJFS,Kyushu Saga International Airport +HSH,KHND,Henderson Executive Airport +HSI,KHSI,Hastings Municipal Airport +HSK,LEHC,Huesca-Pirineos Airport +HSL,PAHL,Huslia Airport +HSM,YHSM,Horsham Airport +HSN,ZSZS,Zhoushan Putuoshan International Airport +HSP,KHSP,Ingalls Field +HSR,VAHS,Rajkot International Airport +HSS,VIHR,Maharaja Agrasen International Airport +HST,KHST,Homestead Air Reserve Base +HSV,KHSV,Huntsville International Airport +HSZ,RCPO,Hsinchu Air Base +HTA,UIAA,Chita-Kadala International Airport +HTG,UOHH,Khatanga Airport +HTH,KHTH,Hawthorne Industrial Airport +HTI,YBHM,Hamilton Island Airport +HTL,KHTL,Roscommon County - Blodgett Memorial Airport +HTM,ZMHG,Khatgal Airport +HTN,ZWTN,Hotan Airport +HTO,KHTO,Town of East Hampton Airport +HTR,RORH,Hateruma Airport +HTS,KHTS,Tri-State Airport / Milton J. Ferguson Field +HTT,ZLHX,Huatugou Airport +HTU,YHPN,Hopetoun Airport +HTV,KUTS,Huntsville Regional Airport +HTW,KHTW,Lawrence County Airpark +HTY,LTDA,Hatay Airport +HTZ,SKHC,Hato Corozal Airport +HUA,KHUA,Redstone Army Air Field +HUB,YHBR,Humbert River Airport +HUD,K0K7,Humboldt Municipal Airport +HUE,HAHU,Humera Airport +HUF,KHUF,"Terre Haute Regional Airport, Hulman Field" +HUG,MGHT,Huehuetenango Airport +HUH,NTTH,Huahine-Fare Airport +HUI,VVPB,Phu Bai International Airport +HUJ,KHHW,Stan Stamper Municipal Airport +HUL,KHUL,Houlton International Airport +HUM,KHUM,Houma Terrebonne Airport +HUN,RCYU,Hualien Chiashan Airport +HUO,ZBHZ,Holingol Huolinhe Airport +HUQ,HLON,Hon Airport +HUS,PAHU,Hughes Airport +HUT,KHUT,Hutchinson Municipal Airport +HUU,SPNC,Alferez Fap David Figueroa Fernandini Airport +HUW,SWHT,Humaitá Airport +HUX,MMBT,Bahías de Huatulco International Airport +HUY,EGNJ,Humberside Airport +HUZ,ZGHZ,Huizhou Pingtan Airport +HVA,FMNL,Analalava Airport +HVB,YHBA,Hervey Bay Airport +HVD,ZMKD,Khovd Airport +HVE,KHVE,Hanksville Airport +HVG,ENHV,"Honningsvåg Airport, Valan" +HVK,BIHK,Hólmavík Airport +HVN,KHVN,Tweed New Haven Airport +HVR,KHVR,Havre City County Airport +HVS,KHVS,Hartsville Regional Airport +HWA,AYHU,Hawabango Airport +HWD,KHWD,Hayward Executive Airport +HWK,YHAW,Wilpena Pound Airport +HWN,FVWN,Hwange National Park Airport +HWO,KHWO,North Perry Airport +HWR,VIHX,Halwara International Airport +HXD,ZLDL,Haixi Delingha Airport +HXX,YHAY,Hay Airport +HYA,KHYA,Cape Cod Gateway Airport +HYC,EGTB,Wycombe Air Park +HYD,VOHS,Rajiv Gandhi International Airport +HYF,AYHF,Hayfields Airport +HYG,PAHY,Hydaburg Seaplane Base +HYN,ZSLQ,Taizhou Luqiao Airport +HYR,KHYR,Sawyer County Airport +HYS,KHYS,Hays Regional Airport +HYV,EFHV,Hyvinkää Airfield +HZA,ZSHZ,Heze Mudan Airport +HZB,LFQT,Merville-Calonne Airport +HZG,ZLHZ,Hanzhong Chenggu Airport +HZH,ZUNP,Liping Airport +HZK,BIHU,Húsavík Airport +HZL,KHZL,Hazleton Municipal Airport +HZP,CYNR,Fort Mackay / Horizon Airport +IAA,UOII,Igarka Airport +IAB,KIAB,McConnell Air Force Base +IAD,KIAD,Washington Dulles International Airport +IAG,KIAG,Niagara Falls International Airport +IAH,KIAH,George Bush Intercontinental Airport +IAL,AYIU,Ialibu Airport +IAM,DAUZ,Zarzaitine - In Aménas Airport +IAN,PAIK,Bob Baker Memorial Airport +IAO,RPNS,Siargao Airport +IAQ,OI20,Bahregan Airport +IAR,UUDL,Golden Ring Yaroslavl International Airport +IAS,LRIA,Iaşi International Airport +IAX,WAMS,Miangas Airport +IBA,DNIB,Ibadan Airport +IBB,SEII,General Villamil Airport +IBE,SKIB,Perales Airport +IBM,YIBO,Iron Bridge Mine Airport +IBO,FQIB,Ibo Airport +IBP,SPBR,Iberia Airport +IBR,RJAH,Ibaraki Airport +IBZ,LEIB,Ibiza Airport +ICA,SVIC,Ikabaru Airport +ICC,SVIE,Andrés Miguel Salazar Marcano Airport +ICI,NFCI,Cicia Airport +ICK,SMNI,Nieuw Nickerie - Major Henk Fernandes Airport +ICL,KICL,Schenck Field +ICN,RKSI,Incheon International Airport +ICS,KU70,Cascade Airport +ICT,KICT,Wichita Dwight D. Eisenhower National Airport +ICY,19AK,Icy Bay Airport +IDA,KIDA,Idaho Falls Regional Airport +IDB,ESUE,Idre Airport +IDF,FZCB,Idiofa Airport +IDG,KIDG,Ida Grove Municipal Airport +IDH,KGIC,Idaho County Airport +IDI,KIDI,Indiana County–Jimmy Stewart Airport +IDK,YIDK,Indulkana Airport +IDN,AYID,Indagen Airport +IDO,SWIY,Santa Izabel do Morro Airport +IDP,KIDP,Independence Municipal Airport +IDR,VAID,Devi Ahilya Bai Holkar International Airport +IDY,LFEY,Île d'Yeu Airport +IEG,EPZG,Zielona Góra-Babimost Airport +IEJ,RORE,Iejima Airport +IES,EDAU,Riesa-Göhlis Airport +IFA,KIFA,Iowa Falls Municipal Airport +IFF,YIFY,Iffley Airport +IFH,OIFE,Hesa Airport +IFJ,BIIS,Ísafjörður Airport +IFL,YIFL,Innisfail Airport +IFN,OIFM,Isfahan Shahid Beheshti International Airport +IFO,UKLI,Ivano-Frankivsk International Airport +IFP,KIFP,Laughlin Bullhead International Airport +IFU,VREI,Ifuru Airport +IGA,MYIG,Inagua Airport +IGB,SAVJ,Ingeniero Jacobacci - Captain H R Bordón Airport +IGD,LTCT,Iğdır Airport +IGE,FOOI,Tchongorove Airport +IGG,PAIG,Igiugig Airport +IGH,YIGM,Ingham Airport +IGL,LTBL,Çiğli Airbase +IGM,KIGM,Kingman Airport +IGN,RPMI,Maria Cristina (Iligan) Airport +IGO,SKIG,Jaime Ortiz Betancourt Airport +IGR,SARI,Cataratas Del Iguazú International Airport +IGS,ETSI,Ingolstadt Manching Airport +IGT,URMS,Magas Airport +IGU,SBFI,Cataratas International Airport +IHC,FQIA,Inhaca Airport +IHN,OYQN,Qishn Airport +IHO,FMSI,Ihosy Airport +IHR,OIZI,Iranshahr Airport +IIA,EIMN,Inishmaan Aerodrome +IIL,OICI,Ilam Airport +IIS,AYIA,Nissan Island Airport +IJK,USII,Izhevsk Airport +IJU,SSIJ,João Batista Bos Filho Airport +IJX,KIJX,Jacksonville Municipal Airport +IKA,OIIE,Imam Khomeini International Airport +IKB,KUKF,Wilkes County Airport +IKE,BGIA,Ikerasak Heliport +IKG,UAFP,Karakol International Airport +IKI,RJDB,Iki Airport +IKK,KIKK,Greater Kankakee Airport +IKL,FZGV,Ikela Airport +IKO,PAKO,Nikolski Air Station +IKP,YIKM,Inkerman Airport +IKS,UEST,Tiksi Airport +IKT,UIII,Irkutsk International Airport +IKU,UCFL,Issyk-Kul International Airport +ILA,WABL,Ilaga Airport +ILD,LEDA,Lleida-Alguaire Airport +ILE,KILE,Skylark Field +ILF,CZBD,Ilford Airport +ILG,KILG,Wilmington Airport +ILH,ETIK,Illesheim Army Heliport +ILI,PAIL,Iliamna Airport +ILK,FMMQ,Atsinanana Airport +ILL,KBDH,Willmar Municipal Airport John L Rice Field (2006) +ILM,KILM,Wilmington International Airport +ILN,KILN,Wilmington Airpark +ILO,RPVI,Iloilo International Airport +ILP,NWWE,Île des Pins Airport +ILQ,SPLO,General Jorge Fernandez Maldon Airport +ILR,DNIL,General Tunde Idiagbon International Airport +ILS,MSSS,Ilopango International Airport +ILU,HKKL,Kilaguni Airport +ILY,EGPI,Islay Airport +ILZ,LZZI,Žilina-Dolný Hričov Airport +IMB,SYIB,Imbaimadai Airport +IMD,AYIO,Imonda Airport +IMF,VEIM,Bir Tikendrajit International Airport +IMK,VNST,Simikot Airport +IML,KIML,Imperial Municipal Airport +IMM,KIMM,Immokalee Regional Airport +IMN,AYII,Imane Airport +IMO,FEFZ,Zemio Airport +IMP,SBIZ,Prefeito Renato Moreira Airport +IMQ,OITU,Maku National Airport +IMT,KIMT,Ford Airport +IMZ,OANZ,Nimroz Airport +INA,UUYI,Inta Airport +INC,ZLIC,Yinchuan Hedong International Airport +IND,KIND,Indianapolis International Airport +INF,DATG,In Guezzam Airport +INH,FQIN,Inhambane Airport +INI,LYNI,Niš Constantine the Great Airport +INJ,YINJ,Injune Airport +INK,KINK,Winkler County Airport +INL,KINL,Falls International Airport +INM,YINN,Innamincka Airport +INN,LOWI,Innsbruck Airport +INO,FZBA,Inongo Airport +INQ,EIIR,Inisheer Aerodrome +INS,KINS,Creech Air Force Base +INT,KINT,Smith Reynolds Airport +INU,ANYN,Nauru International Airport +INV,EGPE,Inverness Airport +INW,KINW,Winslow Lindbergh Regional Airport +INX,WASI,Inanwatan Airport +INZ,DAUI,In Salah Airport +IOA,LGIO,Ioannina King Pyrrhus National Airport +IOM,EGNS,Isle of Man Airport +ION,FCOI,Impfondo Airport +IOQ,BGIS,Isortoq Heliport +IOR,EIIM,Inishmore Aerodrome +IOS,SBIL,Bahia - Jorge Amado Airport +IOT,BGLL,Illorsuit Heliport +IOW,KIOW,Iowa City Municipal Airport +IPA,NVVI,Ipota Airport +IPC,SCIP,Mataveri International Airport +IPE,RPMV,Ipil Airport +IPG,SWII,Ipiranga Airport +IPH,WMKI,Sultan Azlan Shah Airport +IPI,SKIP,San Luis Airport +IPL,KIPL,Imperial County Airport +IPN,SBIP,Usiminas Airport +IPT,KIPT,Williamsport Regional Airport +IPU,SNIU,Ipiaú Airport +IPZ,MRSI,San Isidro del General Airport +IQA,ORAA,Al Asad Air Base +IQM,ZWCM,Qiemo Yudu Airport +IQN,ZLQY,Qingyang Xifeng Airport +IQQ,SCDA,Diego Aracena International Airport +IQT,SPQT,Coronel FAP Francisco Secada Vignetta International Airport +IRA,AGGK,Ngorangora Airport +IRB,K2F0,Iraan Municipal Airport +IRC,PACR,Circle City (New) Airport +IRD,VGIS,Ishurdi Airport +IRE,SNIC,Irecê Airport +IRG,YLHR,Lockhart River Airport +IRI,HTIR,Iringa Airport +IRJ,SANL,Capitan V A Almonacid Airport +IRK,KIRK,Kirksville Regional Airport +IRM,USHI,Igrim Airport +IRN,MHIR,Iriona Airport +IRO,FEFI,Birao Airport +IRP,FZJH,Matari Airport +IRS,KIRS,Kirsch Municipal Airport +IRZ,SWTP,Tapuruquara Airport +ISA,YBMA,Mount Isa Airport +ISB,OPIS,Islamabad International Airport +ISC,EGHE,St. Mary's Airport +ISE,LTFC,Süleyman Demirel International Airport +ISG,ROIG,New Ishigaki Airport +ISI,YISF,Isisford Airport +ISJ,MMIM,Isla Mujeres National Airport +ISK,VAOZ,Nashik International Airport +ISL,LTBA,İstanbul Atatürk Airport +ISM,KISM,Kissimmee Gateway Airport +ISO,KISO,Kinston Regional Jetport At Stallings Field +ISP,KISP,Long Island MacArthur Airport +ISQ,KISQ,Schoolcraft County Airport +ISS,KIWI,Wiscasset Airport +IST,LTFM,İstanbul Airport +ISU,ORSU,Jalal Talabani International Airport +ISW,KISW,Alexander Field South Wood County Airport +ITA,SBIC,Itacoatiara Airport +ITB,SBIH,Itaituba Airport +ITE,SNZW,Ituberá Airport +ITH,KITH,Ithaca Tompkins Regional Airport +ITI,SWZL,Fazenda Americana Airport +ITJ,SIJY,Campo Comandantes Airport +ITM,RJOO,Osaka Itami International Airport +ITO,PHTO,Hilo International Airport +ITP,SDUN,Itaperuna Airport +ITQ,SSIQ,Itaqui Airport +ITR,SBIT,Francisco Vilela do Amaral Airport +ITU,UHSI,Iturup Airport +IUE,NIUE,Niue International Airport +IUI,BGIN,Innarsuit Heliport +IUP,SWYN,Apuí Airport +IVA,FMNZ,Ampampamena Airport +IVC,NZNV,Invercargill Airport +IVG,LYBR,Berane Airport +IVL,EFIV,Ivalo Airport +IVR,YIVL,Inverell Airport +IVW,YINW,Inverway Airport +IWA,UUBI,Ivanovo South Airport +IWD,KIWD,Gogebic Iron County Airport +IWJ,RJOW,Iwami Airport +IWK,RJOI,Iwakuni Kintaikyo Airport +IWO,RJAW,Ioto (Iwo Jima) Airbase +IWS,KIWS,West Houston Airport +IXA,VEAT,Agartala - Maharaja Bir Bikram Airport +IXB,VEBD,Bagdogra Airport +IXC,VICG,Shaheed Bhagat Singh International Airport +IXD,VIAL,Prayagraj Airport +IXE,VOML,Mangaluru International Airport +IXG,VABM,Belagavi Airport +IXH,VEKR,Kailashahar Airport +IXI,VELR,Lilabari North Lakhimpur Airport +IXJ,VIJU,Jammu Airport +IXK,VAKS,Keshod Airport +IXL,VILH,Leh Kushok Bakula Rimpochee Airport +IXM,VOMD,Madurai Airport +IXN,VEKW,Khowai Airport +IXP,VIPK,Pathankot Airport +IXQ,VEKM,Kamalpur Airport +IXR,VERC,Birsa Munda Airport +IXS,VEKU,Silchar Airport +IXT,VEPG,Pasighat Airport +IXU,VAAU,Aurangabad Airport +IXV,VEAN,Along Airport +IXW,VEJS,Sonari Airport +IXX,VOBR,Bidar Airport / Bidar Air Force Station +IXY,VAKE,Kandla Airport +IXZ,VOPB,Veer Savarkar International Airport / INS Utkrosh +IYK,KIYK,Inyokern Airport +IZA,SBZM,Presidente Itamar Franco Airport +IZE,EDHF,Itzehoe Hungriger Wolf Airfield +IZM,LTFB,Selçuk Efes Airport +IZO,RJOC,Izumo Enmusubi Airport +IZT,MMIT,General Antonio Cárdenas Rodríguez National Airport / Ixtepec Air Base +JAA,OAJL,Jalalabad Airport +JAB,YJAB,Jabiru Airport +JAC,KJAC,Jackson Hole Airport +JAD,YPJT,Perth Jandakot Airport +JAE,SPJE,Shumba Airport +JAF,VCCJ,Jaffna International Airport +JAG,OPJA,Shahbaz Air Base +JAI,VIJP,Jaipur International Airport +JAK,MTJA,Jacmel Airport +JAL,MMJA,El Lencero Airport +JAN,KJAN,Jackson-Medgar Wiley Evers International Airport +JAP,MRCH,Chacarita Airport +JAR,OISJ,Jahrom Airport +JAS,KJAS,Jasper County Airport Bell Field +JAU,SPJJ,Francisco Carle Airport +JAV,BGJN,Ilulissat Airport +JAW,SNAB,Araripina Airport +JAX,KJAX,Jacksonville International Airport +JBB,WARE,Notohadinegoro Airport +JBQ,MDJB,La Isabela International Airport +JBR,KJBR,Jonesboro Municipal Airport +JBS,SSSB,São Borja Airport +JCB,SSJA,Santa Terezinha Airport +JCH,BGCH,Qasigiannguit Heliport +JCI,KIXD,New Century AirCenter Airport +JCK,YJLC,Julia Creek Airport +JCL,LKCS,České Budějovice South Bohemian Airport +JCM,SNJB,Jacobina Airport +JCR,SBEK,Jacareacanga Airport +JCS,SNWS,Crateús Airport +JCT,KJCT,Kimble County Airport +JCU,GECE,Ceuta Heliport +JCY,0TE7,LBJ Ranch Airport +JDA,KGCD,Grant County Regional Airport / Ogilvie Field +JDF,SBJF,Francisco de Assis Airport +JDG,RKPD,Jeongseok Airport +JDH,VIJO,Jodhpur Airport +JDN,KJDN,Jordan Airport +JDO,SBJU,Orlando Bezerra de Menezes Airport +JDR,SNJR,Prefeito Octávio de Almeida Neves Airport +JDZ,ZSJD,Jingdezhen Luojia Airport +JED,OEJN,King Abdulaziz International Airport +JEE,MTJE,Jérémie Airport +JEF,KJEF,Jefferson City Memorial Airport +JEG,BGAA,Aasiaat Airport +JEK,FLJK,Jeki Airport +JEQ,SNJK,Jequié Airport +JER,EGJJ,Jersey Airport +JFK,KJFK,John F. Kennedy International Airport +JFM,YFTL,Fremantle Heliport +JFN,KHZY,Northeast Ohio Regional Airport +JFR,BGPT,Paamiut Airport +JGA,VAJM,Jamnagar Airport +JGD,ZYJD,Daxing'anling Elunchun Airport +JGN,ZLJQ,Jiayuguan International Airport +JGO,BGGN,Qeqertarsuaq Heliport +JGR,BGGD,Kangilinnguit Heliport +JHB,WMKJ,Senai International Airport +JHF,SBJH,São Paulo Catarina Executive Airport +JHG,ZPJH,Xishuangbanna Gasa International Airport +JHL,CAL4,Fort MacKay/Albian Aerodrome +JHM,PHJH,Kapalua Airport +JHN,WIMF,Jenderal Besar Abdul Haris Nasution Airport +JHS,BGSS,Sisimiut Airport +JHW,KJHW,Chautauqua County-Jamestown Airport +JIA,SWJN,Juína Airport +JIB,HDAM,Djibouti-Ambouli Airport +JIC,ZLJC,Jinchang Jinchuan Airport +JID,9CA3,Recreation and Conference Center Heliport +JIJ,HAJJ,Gerad Wilwal International Airport +JIK,LGIK,Ikaria Airport +JIL,ZYJL,Jilin Ertaizi Airport +JIM,HAJM,Jimma Airport +JIN,HUJI,Jinja Airport +JIP,SEJI,Jipijapa Airport +JIQ,ZUQJ,Qianjiang Wulingshan Airport +JIR,VNJI,Jiri Airport +JIU,ZSJJ,Jiujiang Lushan Airport +JJD,SBJE,Comandante Ariston Pessoa Airport +JJG,SBJA,Humberto Ghizzo Bortoluzzi Regional Airport +JJI,SPJI,Juanjui Airport +JJM,HKMK,Mulika Lodge Airport +JJN,ZSQZ,Quanzhou Jinjiang International Airport +JKG,ESGJ,Jönköping Airport +JKH,LGHI,Chios Island National Airport +JKL,LGKY,Kalymnos Airport +JKR,VNJP,Janakpur Airport +JKV,KJSO,Cherokee County Airport +JLG,VAJL,Jalgaon Airport +JLN,KJLN,Joplin Regional Airport +JLR,VAJB,Jabalpur Airport +JLS,SDJL,Jales Airport +JMA,SNJM,Aeroporto Elias Breder Airport +JMJ,ZPJM,Lancang Jingmai Airport +JMK,LGMK,Mykonos Island National Airport +JMO,VNJS,Jomsom Airport +JMR,SDMC,Maricá Airport +JMS,KJMS,Jamestown Regional Airport +JMU,ZYJM,Jiamusi Songjiang International Airport +JNA,SNJN,Januária Airport +JNB,FAOR,O.R. Tambo International Airport +JNG,ZSJG,Jining Da'an Airport +JNJ,OOJA,Ja'Aluni Airport +JNN,BGNN,Nanortalik Heliport +JNS,BGNS,Narsaq Heliport +JNU,PAJN,Juneau International Airport +JNX,LGNX,Naxos Island National Airport +JNZ,ZYJZ,Jinzhou Bay Airport +JOE,EFJO,Joensuu Airport +JOG,WARJ,Adisutjipto International Airport +JOH,FAPJ,Port St Johns Airport +JOI,SBJV,Lauro Carneiro de Loyola Airport +JOJ,CDL7,Doris Lake +JOK,UWKJ,Yoshkar-Ola Airport +JOL,RPMJ,Jolo Airport +JOM,HTNJ,Njombe Airport +JOP,AYJS,Josephstaal Airport +JOS,DNJO,Yakubu Gowon Airport +JOT,KJOT,Joliet Regional Airport +JPA,SBJP,Presidente Castro Pinto International Airport +JPE,SNEB,Nagib Demachki Airport +JPO,SNTS,Aeroporto Brigadeiro Firmino Ayres +JPR,SBJI,Ji-Paraná Airport +JPY,SDTK,Paraty Airport +JQA,BGUQ,Qaarsut Airport +JQE,MPJE,Jaqué Airport +JRF,PHJR,Kalaeloa Airport +JRG,VEJH,Jharsuguda Airport +JRH,VEJT,Jorhat Airport +JRK,BGAR,Arsuk Heliport +JRO,HTKJ,Kilimanjaro International Airport +JRT,SJOH,Juruti Airport +JSA,VIJR,Jaisalmer Airport +JSB,SWBE,Walfrido Salmito de Almeida Airport +JSH,LGST,Sitia Airport +JSI,LGSK,Skiathos Island National Airport +JSJ,ZYJS,Jiansanjiang Shidi Airport +JSK,OIZJ,Jask Airport +JSM,SAWS,Jose De San Martin Airport +JSO,SN6L,Dr. Luciano de Arruda Coelho Regional Airport +JSR,VGJR,Jessore Airport +JST,KJST,John Murtha Johnstown Cambria County Airport +JSU,BGMQ,Maniitsoq Airport +JSY,LGSO,Syros Airport +JTA,SDZG,Pedro Teixeira Castelo Airport +JTC,SBAE,Bauru/Arealva–Moussa Nakhal Tobias State Airport +JTI,SWJW,Jataí Airport +JTN,SDIM,Itanhaém Airport +JTR,LGSR,Santorini International Airport +JTY,LGPL,Astypalaia Airport +JUA,SIZX,Inácio Luís do Nascimento Airport +JUB,HJJJ,Juba International Airport +JUI,EDWJ,Juist Airport +JUJ,SASJ,Gobernador Horacio Guzman International Airport +JUK,BGUT,Ukkusissat Heliport +JUL,SPJL,Inca Manco Capac International Airport +JUM,VNJL,Jumla Airport +JUN,YJDA,Jundah Airport +JUO,SKJU,Juradó Airport +JUR,YJNB,Jurien Bay Airport +JUT,MHJU,Jutigalpa airport +JUU,BGNQ,Nuugaatsiaq Heliport +JUV,BGUK,Upernavik Airport +JUZ,ZSJU,Quzhou Airport +JVA,FMMK,Ankavandra Airport +JVI,K47N,Central Jersey Regional Airport +JVL,KJVL,Southern Wisconsin Regional Airport +JWA,FBJW,Jwaneng Airport +JWN,OITZ,Zanjan Airport +JWO,RKTI,Jungwon Air Base/Chungju Airport +JXA,ZYJX,Jixi Xingkaihu Airport +JXN,KJXN,Jackson County Airport/Reynolds Field +JYR,OIKJ,Jiroft Airport +JYV,EFJY,Jyväskylä Airport +JZH,ZUJZ,Jiuzhai Huanglong Airport +KAA,FLKS,Kasama Airport +KAB,FVKB,Kariba Airport +KAC,OSKL,Qamishli International Airport +KAD,DNKA,Kaduna International Airport +KAG,RKNN,Gangneung Airport (K-18) +KAH,YBPK,"Melbourne Heliport, Batman Park" +KAI,SYKA,Kaieteur Airport +KAJ,EFKI,Kajaani Airport +KAL,PAKV,Kaltag Airport +KAM,OYKM,Kamaran Airport +KAN,DNKN,Mallam Aminu Kano International Airport +KAO,EFKS,Kuusamo Airport +KAP,FZSK,Kapanga Airport +KAQ,AYKH,Kamulai Airport +KAR,SYKM,Kamarang Airport +KAS,FYKB,Karasburg Airport +KAT,NZKT,Kaitaia Airport +KAU,EFKA,Kauhava Airfield +KAV,SVKA,Kavanayen Airport +KAW,VYKT,Kawthoung Airport +KAX,YKBR,Kalbarri Airport +KAY,NFNW,Wakaya Island Airport +KAZ,WAMK,Kuabang Airport +KBA,GFKB,Kabala Airport +KBB,YKIR,Kirkimbie Station Airport +KBF,WABK,Karubaga Airport +KBI,FKKB,Kribi Airport +KBJ,YKCA,Kings Canyon Airport +KBK,VEKI,Kushinagar International Airport +KBL,OAKB,Kabul International Airport +KBM,AYKB,Kabwum +KBN,FZWT,Tunta Airport +KBO,FZRM,Kabalo Airport +KBP,UKBB,Boryspil International Airport +KBQ,FWKG,Kasungu Airport +KBR,WMKC,Sultan Ismail Petra Airport +KBS,GFBO,Bo Airport +KBU,WAOK,Gusti Syamsir Alam Airport +KBV,VTSG,Krabi International Airport +KBX,WASU,Kambuaya Airport +KBY,YKBY,Streaky Bay Airport +KBZ,NZKI,Kaikoura Airport +KCA,ZWKC,Kuqa Qiuci Airport +KCB,SMTP,Tepoe Airstrip +KCD,WAKM,Kamur Airport +KCE,YCSV,Collinsville Airport +KCF,OP10,Thar Airport +KCG,PAJC,Chignik Airport +KCH,WBGG,Kuching International Airport +KCI,YKLC,Koolan Central Airport +KCJ,AYOQ,Komaio Airport +KCK,UIKK,Kirensk Airport +KCM,LTCN,Kahramanmaraş Airport +KCO,LTBQ,Cengiz Topel Airport +KCS,YKCS,Kings Creek Airport +KCT,VCCK,Koggala Airport +KCU,HUMI,Masindi Airport +KCY,UNKM,Krasnoyarsk Cheremshanka Airport +KCZ,RJOK,Kochi Ryoma Airport +KDA,GODK,Kolda Airport +KDB,YKBL,Kambalda Airport +KDC,DBBK,Kandi Airport +KDD,OPKH,Khuzdar Airport +KDE,AYOW,Koroba Airport +KDH,OAKN,Ahmad Shah Baba International Airport +KDI,WAWW,Haluoleo Airport +KDJ,FOGJ,Ville Airport +KDK,PAKD,Kodiak Municipal Airport +KDL,EEKA,Kärdla Airport +KDM,VRMT,Kaadedhdhoo Airport +KDN,FOGE,Ndende Airport +KDO,VRMK,Kadhdhoo Airport +KDP,AYNN,Kandep Airport +KDQ,AYTO,Kamberatoro Airport +KDR,AYKC,Kandrian Airport +KDT,VTBK,Kamphaeng Saen Airport +KDU,OPSD,Skardu International Airport +KDV,NFKD,Vunisea Airport +KDX,HSLI,Kadugli Airport +KDY,UEMH,Typliy Klyuch Airport +KEA,UTAE,Kerki Airport +KEC,FZQG,Kasenga Airport +KED,GQNK,Kaédi Airport +KEE,FCOK,Kelle Airport +KEF,BIKF,Keflavik International Airport +KEG,AYLG,Keglsugl Airport +KEI,WAKP,Kepi Airport +KEJ,UNEE,Alexei Leonov Kemerovo International Airport +KEL,EDHK,Kiel-Holtenau Airport +KEM,EFKE,Kemi-Tornio Airport +KEN,GFKE,Kenema Airport +KEO,DIOD,Odienne Airport +KEP,VNNG,Nepalgunj Airport +KEQ,WASE,Kebar Airport +KER,OIKK,Ayatollah Hashemi Rafsanjani International Airport +KES,CZEE,Kelsey Airport +KET,VYKG,Kengtung Airport +KEU,HKKE,Keekorok Airport +KEV,EFHA,Halli Airport +KEW,CPV8,Keewaywin Airport +KEX,AYNB,Kanabea Airport +KEY,HKKR,Kericho Airport +KFA,GQNF,Kiffa Airport +KFE,YFDF,Fortescue - Dave Forrest Aerodrome +KFG,YKKG,Kalkgurung Airport +KFM,CRL4,Kirby Lake Airport +KFP,PAKF,False Pass Airport +KFS,LTAL,Kastamonu Airport +KFZ,LAKU,Kukës International Airport +KGA,FZUA,Kananga Airport +KGB,AYOE,Konge Airport +KGC,YKSC,Kingscote Airport +KGD,UMKK,Khrabrovo Airport +KGE,AGKG,Kaghau Airport +KGF,UAKK,Sary-Arka Airport +KGG,GOTK,Kédougou Airport +KGH,AYJO,Yongai Airport +KGI,YPKG,Kalgoorlie Boulder Airport +KGJ,FWKA,Karonga Airport +KGK,PAJZ,Koliganek Airport +KGL,HRYR,Kigali International Airport +KGM,AYIM,Kungim Airport +KGO,UKKG,Kirovograd Airport +KGP,USRK,Kogalym International Airport +KGQ,BGKS,Kangersuatsiaq Heliport +KGS,LGKO,"Kos International Airport ""Ippokratis""" +KGT,ZUKD,Kangding Airport +KGU,WBKG,Keningau Airport +KGW,AYKQ,Kagi Airport +KGY,YKRY,Kingaroy Airport +KHA,OITH,Khaneh Airport +KHC,UKFK,Kerch Airport +KHD,OICK,Khoram Abad Airport +KHE,UKOH,Kherson International Airport +KHG,ZWSH,Kashgar Laining International Airport +KHH,RCKH,Kaohsiung International Airport +KHI,OPKC,Jinnah International Airport +KHJ,EFKJ,Kauhajoki Airfield +KHK,OIBQ,Khark Airport +KHM,VYKI,Kanti Airport +KHN,ZSCN,Nanchang Changbei International Airport +KHQ,BGKQ,Kullorsuaq Heliport +KHR,ZMHH,Kharkhorin Airport +KHS,OOKB,Khasab Airport +KHT,OAKS,Khost International Airport +KHV,UHHH,Khabarovsk Novy Airport +KHW,FBKR,Khwai River Lodge Airport +KHY,OITK,Khoy Airport +KHZ,NTKA,Kauehi Airport +KIC,KKIC,Mesa Del Rey Airport +KID,ESMK,Kristianstad Airport +KIE,AYIQ,Aropa Airport +KIF,CNM5,Kingfisher Lake Airport +KIH,OIBK,Kish International Airport +KII,AYLI,Kibuli Airstrip +KIJ,RJSN,Niigata Airport +KIK,ORKK,Kirkuk International Airport +KIM,FAKM,Kimberley Airport +KIN,MKJP,Norman Manley International Airport +KIP,KCWC,Kickapoo Downtown Airport +KIQ,AYRA,Kira Airport +KIR,EIKY,Kerry Airport +KIS,HKKI,Kisumu International Airport +KIT,LGKC,Kithira Airport +KIW,FLSO,Southdowns Airport +KIX,RJBB,Kansai International Airport +KIY,HTKI,Kilwa Airport +KJA,UNKL,Krasnoyarsk International Airport +KJB,VOKU,Kurnool Airport +KJH,ZUKJ,Kaili Huangping Airport +KJI,ZWKN,Burqin Kanas Airport +KJJ,HUKJ,Kajjansi Airfield +KJK,EBKT,Kortrijk-Wevelgem International Airport +KJP,ROKR,Kerama Airport +KJT,WICA,Kertajati International Airport +KKA,PAKK,Koyuk Alfred Adams Airport +KKC,VTUK,Khon Kaen Airport +KKD,AYKO,Kokoda Airport +KKE,NZKK,Kerikeri Airport +KKG,SYKZ,Konawaruk Airport +KKH,PADY,Kongiganak Airport +KKJ,RJFR,Kitakyushu Airport +KKM,VTBL,Khok Kathiam Airport +KKN,ENKR,"Kirkenes Airport, Høybuktmoen" +KKO,NZKO,Kaikohe Airport +KKP,YKLB,Koolburra Airport +KKQ,USDP,Krasnoselkup Airport +KKR,NTGK,Kaukura Airport +KKS,OIFK,Kashan Airport +KKT,K50I,Kentland Municipal Airport +KKW,FZCA,Kikwit Airport +KKX,RJKI,Kikai Airport +KKY,EIKK,Kilkenny Airport +KKZ,VDKK,Koh Kong Airport +KLB,FLKL,Kalabo Airport +KLC,GOOK,Kaolack Airport +KLD,UUEM,Migalovo Air Base +KLE,FKKH,Kaélé Airport +KLF,UUBC,Grabtsevo Airport +KLG,PALG,Kalskag Airport +KLH,VAKP,Kolhapur Airport +KLI,FZFP,Kotakoli Airbase +KLK,HKFG,Kalokol Airport +KLM,OINE,Kalaleh Airport +KLN,PALB,Larsen Bay Airport +KLO,RPVK,Kalibo International Airport +KLP,WAGF,Seruyan Kuala Pembuang Airport +KLR,ESMQ,Kalmar Airport +KLS,KKLS,Southwest Washington Regional Airport +KLU,LOWK,Klagenfurt Airport +KLV,LKKV,Karlovy Vary Airport +KLW,PAKW,Klawock Airport +KLX,LGKL,Kalamata Airport +KLY,FZOD,Kinkungwa Airport +KLZ,FAKZ,Kleinsee Airport +KMA,AYKM,Kerema Airport +KMC,OEKK,King Khaled Military City Airport +KME,HRZA,Kamembe Airport +KMF,AYKD,Kamina Airport +KMG,ZPPP,Kunming Changshui International Airport +KMH,FAKU,Johan Pienaar Airport +KMI,RJFM,Miyazaki Airport +KMJ,RJFT,Kumamoto Airport +KMK,FCPA,Makabana Airport +KML,YKML,Kamileroi Airport +KMN,FZSB,Kamina City Airport +KMO,PAMB,Manokotak Airport +KMP,FYKT,Keetmanshoop Airport +KMQ,RJNK,Komatsu Airport / JASDF Komatsu Air Base +KMR,AYRI,Karimui Airport +KMS,DGSI,Prempeh I International Airport +KMU,HCMK,Kismayo Airport +KMV,VYKL,Kalay Airport +KMW,UUBA,Kostroma Sokerkino Airport +KMX,OEKM,King Khalid Air Base +KMZ,FLKO,Kaoma Airport +KNA,SCVM,Viña del Mar Airport +KNB,KKNB,Kanab Municipal Airport +KND,FZOA,Kindu Airport +KNE,AYKJ,Kanainj Airport +KNF,EGYM,RAF Marham +KNG,WASK,Utarom Airport +KNH,RCBS,Kinmen Airport +KNI,YKNG,Katanning Airport +KNJ,FCBK,Kindamba Airport +KNK,PFKK,Kokhanok Airport +KNM,FZTK,Kaniama Airport +KNN,GXUD,Kankan Airport +KNO,WIMM,Kualanamu International Airport +KNP,FNCP,Kapanda Airport +KNQ,NWWD,Koné Airport +KNR,OIBJ,Jam Airport +KNS,YKII,King Island Airport +KNT,KTKX,Kennett Memorial Airport +KNU,VICX,Kanpur Airport +KNW,PANW,New Stuyahok Airport +KNX,YPKU,East Kimberley Regional (Kununurra) Airport +KNY,UNKI,Kodinsk Airport +KNZ,GAKA,Kenieba Airport +KOA,PHKO,Ellison Onizuka Kona International Airport at Keāhole +KOC,NWWK,Koumac Airport +KOE,WATT,El Tari Airport +KOF,FAKP,Komatipoort Airport +KOH,YKLA,Koolatah Airport +KOI,EGPA,Kirkwall Airport +KOJ,RJFK,Kagoshima Airport +KOK,EFKK,Kokkola-Pietarsaari Airport +KOM,AYOO,Komo-Manda Airport +KOO,FZRQ,Kongolo Airport +KOP,VTUW,Nakhon Phanom Airport +KOQ,EDCK,Köthen Airport +KOR,AYRO,Kakoro(Koroko) Airstrip +KOS,VDSV,Sihanouk International Airport +KOT,PFKO,Kotlik Airport +KOU,FOGK,Koulamoutou Mabimbi Airport +KOV,UACK,Kokshetau International Airport +KOW,ZSGZ,Ganzhou Huangjin Airport +KOX,WABN,Kokonao Airport +KPA,AYKG,Kopiago Airport +KPC,PAPC,Port Clarence Coast Guard Station +KPE,AYYP,Yapsiei Airport +KPF,AYDL,Kondobol Airport +KPI,WBGP,Kapit Airport +KPM,AYAQ,Kompiam Airport +KPN,PAKI,Kipnuk Airport +KPO,RKTH,Pohang Airport (G-815/K-3) +KPP,YKPR,Kalpowar Airport +KPS,YKMP,Kempsey Airport +KPT,K06U,Jackpot Airport/Hayden Field +KPV,PAPE,Perryville Airport +KPW,UHMK,Keperveem Airport +KQA,PAUT,Akutan Airport +KQH,VIKG,Kishangarh Airport Ajmer +KQL,AYOL,Kol Airport +KQR,YKAR,Karara Airport +KQT,UTDT,Bokhtar International Airport +KRA,YKER,Kerang Airport +KRB,YKMB,Karumba Airport +KRD,YKUR,Kurundi Airport +KRE,HBBO,Kirundo Airport +KRF,ESNK,Kramfors-Sollefteå Höga Kusten Airport +KRG,SYKS,Karasabai Airport +KRI,AYKK,Kikori Airport +KRJ,AYQA,Karawari Airstrip +KRK,EPKK,Kraków John Paul II International Airport +KRL,ZWKL,Korla Licheng Airport +KRM,SYKR,Karanambo Airport +KRN,ESNQ,Kiruna Airport +KRO,USUU,Kurgan Airport +KRP,EKKA,Midtjyllands Airport / Air Base Karup +KRQ,UKCK,Kramatorsk Airport +KRR,URKK,Krasnodar Pashkovsky International Airport +KRS,ENCN,Kristiansand Airport +KRT,HSSK,Khartoum International Airport +KRU,AYEA,Kerau Airport +KRW,UTAK,Turkmenbaşy International Airport +KRX,AYKR,Kar Kar Airport +KRY,ZWKM,Karamay Airport +KRZ,FZBT,Kiri Airport +KSA,PTSA,Kosrae International Airport +KSB,AYNM,Kasonombe Airport +KSC,LZKZ,Košice International Airport +KSD,ESOK,Karlstad Airport +KSE,HUKS,Kasese Airport +KSF,EDVK,Kassel Airport +KSH,OICC,Shahid Ashrafi Esfahani Airport +KSI,GUKU,Kissidougou Airport +KSJ,LGKS,Kasos Airport +KSK,ESKK,Karlskoga Airport +KSL,HSKA,Kassala Airport +KSM,PASM,St Mary's Airport +KSN,UAUU,Kostanay International Airport +KSO,LGKA,Kastoria National Airport Aristotle +KSP,AYOP,Kosipe Airport +KSQ,UTSK,Karshi Airport +KSR,WAWH,Selayar - Haji Aroeppala Airport +KSU,ENKB,"Kristiansund Airport, Kvernberget" +KSV,YSPV,Springvale Airport +KSW,LLKS,Kiryat Shmona Airport +KSX,AYYR,Yasuru Airport +KSY,LTCF,Kars Airport +KSZ,ULKK,Kotlas Airport +KTA,YPKA,Karratha Airport +KTD,RORK,Kitadaito Airport +KTE,WMKE,Kerteh Airport +KTF,NZTK,Takaka Airport +KTG,WIOK,Rahadi Osman Airport +KTH,AK56,Tikchik Lodge Seaplane Base +KTL,HKKT,Kitale Airport +KTM,VNKT,Tribhuvan International Airport +KTN,PAKT,Ketchikan International Airport +KTO,SYKT,Kato Airport +KTP,MKTP,Tinson Pen Airport +KTQ,EFIT,Kitee Airport +KTR,YPTN,Tindal Airport +KTS,PFKT,Brevig Mission Airport +KTT,EFKT,Kittilä International Airport +KTU,VIKO,Kota Airport +KTV,SVKM,Kamarata Airport +KTW,EPKT,Katowice Wojciech Korfanty International Airport +KTY,VCCN,Katukurunda Air Force Base +KUA,WMKD,Kuantan Airport +KUC,NGKT,Kuria Airport +KUD,WBKT,Kudat Airport +KUE,AGKU,Kukudu Airport +KUF,UWWW,Kurumoch International Airport +KUG,YKUB,Kubin Island Airport +KUH,RJCK,Kushiro Airport +KUK,PFKA,Kasigluk Airport +KUL,WMKK,Kuala Lumpur International Airport +KUM,RJFC,Yakushima Airport +KUN,EYKA,Kaunas International Airport +KUO,EFKU,Kuopio Airport +KUQ,AYKU,Kuri Airport +KUR,OARZ,Razer Airport +KUS,BGKK,Kulusuk Airport +KUT,UGKO,David the Builder Kutaisi International Airport +KUU,VIBR,Kullu Manali Airport +KUV,RKJK,Gunsan Airport / Gunsan Air Base +KUX,AYUY,Kuyol Airport +KUZ,BGKM,Kuummiut Heliport +KVA,LGKV,Kavala Alexander the Great International Airport +KVB,ESGR,Skövde Airport +KVC,PAVC,King Cove Airport +KVG,AYKV,Kavieng Airport +KVL,PAVL,Kivalina Airport +KVM,UHMO,Markovo Airport +KVO,LYKV,Morava Airport +KVR,UHWK,Kavalerovo Airport +KVX,USKK,Pobedilovo Airport +KWA,PKWA,Bucholz Army Air Field +KWB,WAHU,Dewadaru Airport +KWE,ZUGY,Guiyang Longdongbao International Airport +KWG,UKDR,Kryvyi Rih International Airport +KWH,OAHN,Khwahan Airport +KWI,OKKK,Kuwait International Airport +KWJ,RKJJ,Gwangju Airport +KWK,PAGG,Kwigillingok Airport +KWL,ZGKL,Guilin Liangjiang International Airport +KWM,YKOW,Kowanyama Airport +KWN,PAQH,Quinhagak Airport +KWO,AYKW,Kawito Airport +KWS,AGKW,Kwailabesi Airport +KWT,PFKW,Kwethluk Airport +KWZ,FZQM,Kolwezi Airport +KXB,WAWP,Sangia Nibandera Airport +KXD,USHK,Kondinskoye Airport +KXE,FAKD,P C Pelser Airport +KXF,NFNO,Koro Island Airport +KXK,UHKK,Komsomolsk-on-Amur Airport +KXU,NTKT,Katiu Airport +KYA,LTAN,Konya Airport +KYB,YKBA,Ken's Bore airport +KYD,RCLY,Lanyu Airport +KYE,OLKA,Rene Mouawad Air Base +KYF,YYLR,Yeelirrie Airport +KYI,YYTA,Yalata Mission Airport +KYK,PAKY,Karluk Airport +KYO,KX39,Tampa North Aero Park Airport +KYP,VYKP,Kyaukpyu Airport +KYS,GAKY,Kayes Dag Dag Airport +KYT,VYKU,Kyauktu Airport +KYU,PFKU,Koyukuk Airport +KYX,AYYE,Yalumet Airport +KYZ,UNKY,Kyzyl Airport +KZD,VDSY,Krakor Airport +KZF,AYKT,Kaintiba Airport +KZG,ETIN,Kitzingen Airfield +KZI,LGKZ,Kozani National Airport Filippos +KZN,UWKD,Kazan International Airport +KZO,UAOO,Korkyt Ata International Airport +KZR,LTBZ,Zafer Airport +KZS,LGKJ,Kastelorizo Airport +LAA,KLAA,Southeast Colorado Regional Airport +LAB,AYLB,Lab Lab Airport +LAD,FNLU,Quatro de Fevereiro International Airport +LAE,AYNZ,Nadzab Tomodachi International Airport +LAF,KLAF,Purdue University Airport +LAH,WAPH,Oesman Sadik Airport +LAI,LFRO,Lannion Airport +LAJ,SBLJ,Lages Airport +LAK,CYKD,Aklavik/Freddie Carmichael Airport +LAL,KLAL,Lakeland Linder International Airport +LAM,KLAM,Los Alamos Airport +LAN,KLAN,Capital Region International Airport +LAO,RPLI,Laoag International Airport +LAP,MMLP,Manuel Márquez de León International Airport +LAQ,HLLQ,Al Abraq International Airport +LAR,KLAR,Laramie Regional Airport +LAS,KLAS,Harry Reid International Airport +LAU,HKLU,Manda Airport +LAW,KLAW,Lawton Fort Sill Regional Airport +LAX,KLAX,Los Angeles International Airport +LAY,FALY,Ladysmith Airport +LAZ,SBLP,Bom Jesus da Lapa Airport +LBA,EGNM,Leeds Bradford Airport +LBB,KLBB,Lubbock Preston Smith International Airport +LBC,EDHL,Lübeck Blankensee Airport +LBD,UTDL,Khujand International Airport +LBE,KLBE,Arnold Palmer Regional Airport +LBF,KLBF,North Platte Regional Airport Lee Bird Field +LBG,LFPB,Paris-Le Bourget International Airport +LBI,LFCI,Albi Le Sequestre airport +LBJ,WATO,Komodo Airport +LBL,KLBL,Liberal Mid-America Regional Airport +LBO,FZVI,Lusambo Airport +LBQ,FOGR,Lambarene Airport +LBR,SWLB,Lábrea Airport +LBS,NFNL,Labasa Airport +LBT,KLBT,Lumberton Regional Airport +LBU,WBKL,Labuan Airport +LBV,FOOL,Libreville Leon M'ba International Airport +LBW,WRLB,Yuvai Semaring Airport +LBX,RPLU,Lubang Airport +LBY,LFRE,La Baule-Escoublac Airport +LBZ,FNLK,Lucapa Airport +LCA,LCLK,Larnaca International Airport +LCB,SWBG,André Antônio Maggi Airport +LCC,LIBN,Lecce Galatina Air Base / Galatina Fortunato Cesari Airport +LCD,FALO,Louis Trichardt Airport +LCE,MHLC,Golosón International Airport +LCF,MGRD,Las Vegas Airport +LCG,LECO,A Coruña Airport +LCH,KLCH,Lake Charles Regional Airport +LCI,KLCI,Laconia Municipal Airport +LCJ,EPLL,Łódź Władysław Reymont Airport +LCK,KLCK,Rickenbacker International Airport +LCM,SACC,La Cumbre Airport +LCN,YBLC,Balcanoona Airport +LCO,FCBL,Lague Airport +LCQ,KLCQ,Lake City Gateway Airport +LCX,ZSLO,Liancheng Guanzhishan Airport +LCY,EGLC,London City Airport +LDA,VEMH,Malda Airport +LDB,SBLO,Governor José Richa Airport +LDC,YLIN,Lindeman Island Airport +LDE,LFBT,Tarbes-Lourdes-Pyrénées Airport +LDG,ULAL,Leshukonskoye Airport +LDH,YLHI,Lord Howe Island Airport +LDI,HTLI,Lindi Airport +LDJ,KLDJ,Linden Airport +LDK,ESGL,Lidköping-Hovby Airport +LDM,KLDM,Mason County Airport +LDN,VNLD,Lamidanda Airport +LDO,SMDO,Ladouanie Airport +LDS,ZYLD,Yichun Lindu Airport +LDU,WBKD,Lahad Datu Airport +LDV,LFRJ,Landivisiau Air Base +LDX,SOOM,Saint-Laurent-du-Maroni Airport +LDY,EGAE,City of Derry Airport +LDZ,FALD,Londolozi Airport +LEA,YPLM,Learmonth Airport +LEB,KLEB,Lebanon Municipal Airport +LEC,SBLE,Coronel Horácio de Mattos Airport +LED,ULLI,Pulkovo Airport +LEE,KLEE,Leesburg International Airport +LEF,FXLK,Lebakeng Airport +LEH,LFOH,Le Havre-Octeville Airport +LEI,LEAM,Almería Airport +LEJ,EDDP,Leipzig/Halle Airport +LEK,GULB,Tata Airport +LEL,YLEV,Lake Evella Airport +LEM,KLEM,Lemmon Municipal Airport +LEN,LELN,León Airport +LEQ,EGHC,Land's End Airport +LER,YLST,Leinster Airport +LES,FXLS,Lesobeng Airport +LET,SKLT,Alfredo Vásquez Cobo International Airport +LEU,LESU,Pirineus - la Seu d'Urgel Airport +LEV,NFNB,Levuka Airfield +LEW,KLEW,Auburn Lewiston Municipal Airport +LEX,KLEX,Blue Grass Airport +LEY,EHLE,Lelystad Airport +LEZ,MHLE,La Esperanza Airport +LFB,FQLU,Lumbo Airport +LFI,KLFI,Langley Air Force Base +LFK,KLFK,Angelina County Airport +LFM,OISR,Lamerd Airport +LFN,KLHZ,Triangle North Executive Airport +LFO,HAKL,Kelafo East Airport +LFP,YLFD,Lakefield Airport +LFQ,ZBLF,Linfen Yaodu Airport +LFR,SVLF,La Fria Airport +LFT,KLFT,Lafayette Regional Airport +LFW,DXXX,Lomé–Tokoin International Airport +LGA,KLGA,LaGuardia Airport +LGB,KLGB,Long Beach International Airport +LGC,KLGC,LaGrange Callaway Airport +LGD,KLGD,La Grande/Union County Airport +LGF,KLGF,Laguna Army Airfield +LGG,EBLG,Liège Airport +LGH,YLEC,Leigh Creek Airport +LGI,MYLD,Deadman's Cay Airport +LGK,WMKL,Langkawi International Airport +LGL,WBGF,Long Lellang Airport +LGN,AYLL,Linga Linga Airport +LGO,EDWL,Langeoog Airport +LGQ,SENL,Nueva Loja Airport +LGR,SCHR,Cochrane Airport +LGS,SAMM,Comodoro D.R. Salomón Airport +LGT,SKGA,La Gaviota Airport +LGU,KLGU,Logan-Cache Airport +LGW,EGKK,London Gatwick Airport +LGX,HCMJ,Lugh Ganane Airport +LGZ,ZUSH,Shannan Longzi Airport +LHA,EDTL,Lahr Airport +LHE,OPLA,Allama Iqbal International Airport +LHG,YLRD,Lightning Ridge Airport +LHI,WAJL,Lereh Airport +LHK,ZHGH,Guangzhou MR Air Base / Guanghua Airport +LHL,UBLC,Lachin International Airport +LHN,SNLN,Linhares Municipal Airport +LHR,EGLL,London Heathrow Airport +LHS,SAVH,Las Heras Airport +LHU,FYLS,Lianshulu Lodge Airstrip +LHV,KLHV,William T. Piper Memorial Airport +LHW,ZLLL,Lanzhou Zhongchuan International Airport +LIA,ZULP,Liangping Airport +LIB,YLIM,Limbunya Airport +LIC,KLIC,Limon Municipal Airport +LIE,FZFA,Libenge Airport +LIF,NWWL,Lifou Airport +LIG,LFBL,Limoges Airport +LIH,PHLI,Lihue Airport +LII,WAJM,Mulia Airport +LIL,LFQQ,Lille Airport +LIM,SPIM,Jorge Chávez International Airport +LIN,LIML,Milano Linate Airport +LIO,MRLM,Limón International Airport +LIP,SBLN,Lins Airport +LIQ,FZGA,Lisala Airport +LIR,MRLB,Daniel Oduber Quirós International Airport +LIS,LPPT,Lisbon Humberto Delgado Airport +LIT,KLIT,Bill & Hillary Clinton National Airport/Adams Field +LIW,VYLK,Loikaw Airport +LIX,FWLK,Likoma Island Airport +LIY,KLHW,MidCoast Regional Airport at Wright Army Airfield +LIZ,ME16,Loring International Airport +LJA,FZVA,Lodja Airport +LJG,ZPLJ,Lijiang Sanyi International Airport +LJN,KLBX,Texas Gulf Coast Regional Airport +LJU,LJLJ,Ljubljana Jože Pučnik Airport +LKA,WATL,Larantuka Gewayentana Airport +LKB,NFNK,Lakeba Island Airport +LKD,YLND,Lakeland Airport +LKG,HKLK,Lokichogio Airport +LKH,WBGL,Long Akah Airport +LKI,WITG,Lasikin Airport +LKK,PAKL,Kulik Lake Airport +LKL,ENNA,"Lakselv Airport, Banak" +LKM,WAMI,Bolaang Mongondow Airport +LKN,ENLK,Leknes Airport +LKO,VILK,Chaudhary Charan Singh International Airport +LKP,KLKP,Lake Placid Airport +LKV,KLKV,Lake County Airport +LKW,OOLK,Lekhwair Airport +LKY,HTLM,Lake Manyara Airport +LKZ,EGUL,RAF Lakenheath +LLA,ESPA,Luleå Airport +LLB,ZULB,Libo Airport +LLC,RPLH,Cagayan North International Airport +LLE,FAMN,Malelane Airport +LLF,ZGLG,Yongzhou Lingling Airport +LLG,YCGO,Chillagoe Airport +LLI,HALL,Lalibela Airport +LLJ,WIPB,Silampari Airport +LLK,UBBL,Lankaran International Airport +LLM,AGLM,Lomlom Airport +LLO,WAFD,Bua - Palopo Lagaligo Airport +LLS,SATK,Alferez Armando Rodriguez Airport +LLT,FNLB,Lobito Airport +LLU,BGAP,Alluitsup Paa Heliport +LLV,ZBLL,Lüliang Dawu Airport +LLW,FWKI,Kamuzu International Airport +LLX,KCDA,Caledonia County Airport +LLY,KVAY,South Jersey Regional Airport +LMA,PAMH,Minchumina Airport +LMB,FWSM,Salima Airport +LMC,SKNA,La Macarena Airport +LME,LFRM,Le Mans-Arnage Airport +LMH,MHLN,Limon Airport +LMI,AYLU,Lumi Airport +LMM,MMLM,Valle del Fuerte International Airport +LMN,WBGJ,Limbang Airport +LMO,EGQS,RAF Lossiemouth +LMP,LICD,Lampedusa Airport +LMQ,HLMB,Marsa al Brega Airport +LMR,FALC,Lime Acres Finsch Mine Airport +LMS,KLMS,Louisville Winston County Airport +LMT,KLMT,Crater Lake-Klamath Regional Airport +LMU,WIDL,Letung Airport +LNA,KLNA,Palm Beach County Park Airport +LNB,NVSM,Lamen Bay Airport +LNC,AYLT,Lengbati Airport +LND,KLND,Hunt Field +LNE,NVSO,Lonorore Airport +LNF,AYYM,Munbil Airport +LNG,AYLS,Lese Airport +LNH,YLKN,Lake Nash Airport +LNI,PALN,Point Lonely Short Range Radar Site Airfield +LNJ,ZPLC,Lincang Boshang Airport +LNK,KLNK,Lincoln Airport +LNL,ZLLN,Longnan Chengzhou Airport +LNM,AYLN,Langimar Airport +LNN,KLNN,Lake County Executive Airport +LNO,YLEO,Leonora Airport +LNP,KLNP,Lonesome Pine Airport +LNR,KLNR,Tri-County Regional Airport +LNS,KLNS,Lancaster Airport +LNU,WAQM,Robert Atty Bessing +LNV,AYKY,Londolovit Airport +LNY,PHNY,Lanai Airport +LNZ,LOWL,Linz-Hörsching Airport +LOA,YLOR,Lorraine Airport +LOB,SCAN,San Rafael Airport +LOC,YLOK,Lock Airport +LOD,NVSG,Longana Airport +LOE,VTUL,Loei Airport +LOH,SETM,Ciudad de Catamayo Airport +LOI,SSLN,Helmuth Baungarten Airport +LOK,HKLO,Lodwar Airport +LOL,KLOL,Derby Field +LOO,DAUL,Laghouat - Molay Ahmed Medeghri Airport +LOP,WADL,Lombok International Airport +LOS,DNMM,Murtala Muhammed International Airport +LOT,KLOT,Lewis University Airport +LOU,KLOU,Bowman Field +LOV,MMMV,Monclova International Airport +LOW,KLKU,Louisa County Airport / Freeman Field +LOY,HKLY,Loiyangalani Airport +LOZ,KLOZ,London-Corbin Airport/Magee Field +LPA,GCLP,Gran Canaria Airport +LPB,SLLP,El Alto International Airport +LPC,KLPC,Lompoc Airport +LPD,SKLP,La Pedrera Airport +LPE,SKIM,La Primavera Airport +LPF,ZUPS,Liupanshui Yuezhao Airport +LPG,SADL,La Plata Airport +LPI,ESSL,Linköping City Airport +LPJ,SVAS,Armando Schwarck Airport +LPK,UUOL,Lipetsk Airport +LPL,EGGP,Liverpool John Lennon Airport +LPM,NVSL,Lamap Airport +LPN,AYLP,Leron Plains Airport +LPO,KPPO,La Porte Municipal Airport +LPP,EFLP,Lappeenranta Airport +LPQ,VLLB,Luang Phabang International Airport +LPT,VTCL,Lampang Airport +LPU,WRLP,Long Apung Airport +LPX,EVLA,Liepāja International Airport +LPY,LFHP,Le Puy-Loudes Airfield +LQK,KLQK,Pickens County Airport +LQM,SKLG,Caucaya Airport +LQN,OAQN,Qala-i-Naw Airport +LRA,LGLR,Larissa Air Base +LRB,FXLR,Leribe Airport +LRD,KLRD,Laredo International Airport +LRE,YLRE,Longreach Airport +LRF,KLRF,Little Rock Air Force Base +LRG,OPLL,Loralai Airport +LRH,LFBH,La Rochelle Île de Ré Airport +LRJ,KLRJ,Le Mars Municipal Airport +LRL,DXNG,Niamtougou International Airport +LRM,MDLR,Casa De Campo International Airport +LRQ,CJC8,Laurie River Airport +LRR,OISL,Lar Airport +LRS,LGLE,Leros Airport +LRT,LFRH,Lorient South Brittany (Bretagne Sud) Airport +LRU,KLRU,Las Cruces International Airport +LRV,SVRS,Los Roques Airport +LSA,AYKA,Losuia Airport +LSB,KLSB,Lordsburg Municipal Airport +LSC,SCSE,La Florida Airport +LSE,KLSE,La Crosse Regional Airport +LSF,KLSF,Lawson Army Air Field +LSH,VYLS,Lashio Airport +LSI,EGPB,Sumburgh Airport +LSJ,AYLX,Long Island Airport +LSK,KLSK,Lusk Municipal Airport +LSL,MRLC,Los Chiles Airport +LSM,WBGD,Long Semado Airport +LSN,KLSN,Los Banos Municipal Airport +LSO,LFOO,Les Sables-d'Olonne Talmont Airport +LSP,SVJC,Josefa Camejo International Airport +LSQ,SCGE,María Dolores Airport +LSR,WIMU,Alas Leuser Airport +LSS,TFFS,Terre-de-Haut Airport +LST,YMLT,Launceston Airport +LSU,WBGU,Long Sukang Airport +LSV,KLSV,Nellis Air Force Base +LSW,WIMA,Malikus Saleh Airport +LSX,WITL,Lhok Sukon Airport +LSY,YLIS,Lismore Airport +LSZ,LDLO,Lošinj Airport +LTA,FATZ,Tzaneen Airport +LTC,FTTH,Lai Airport +LTD,HLTD,Ghadames Airport +LTG,VNLT,Langtang Airport +LTI,ZMAT,Altai Airport +LTK,OSLK,Latakia International Airport +LTL,FOOR,Lastourville Airport +LTM,SYLT,Lethem Airport +LTN,EGGW,London Luton Airport +LTO,MMLT,Loreto International Airport +LTP,YLHS,Lyndhurst Airport +LTQ,LFAT,Le Touquet-Côte d'Opale Airport +LTS,KLTS,Altus Air Force Base +LTT,LFTZ,La Môle Airport +LTU,VALT,Murod Kond Airport +LTV,YLOV,Lotus Vale Airport +LTW,K2W6,St. Mary's County Regional Airport +LTX,SELT,Cotopaxi International Airport +LUA,VNLK,Tenzing-Hillary Airport +LUB,SYLP,Lumid Pau Airport +LUC,NFNH,Laucala Island Airport +LUD,FYLZ,Luderitz Airport +LUE,LZLU,Lučenec Airfield +LUF,KLUF,Luke Air Force Base +LUG,LSZA,Lugano Airport +LUH,VILD,Ludhiana Airport +LUI,MHCR,Carta Airport +LUK,KLUK,Cincinnati Municipal Airport Lunken Field +LUL,KLUL,Hesler Noble Field +LUM,ZPMS,Dehong Mangshi International Airport +LUN,FLLS,Kenneth Kaunda International Airport +LUO,FNUE,Luena Airport +LUP,PHLU,Kalaupapa Airport +LUQ,SAOU,Brigadier Mayor D Cesar Raul Ojeda Airport +LUR,PALU,Cape Lisburne LRRS Airport +LUT,YLRS,New Laura Airport +LUU,YLRA,Laura Airport +LUV,WAPF,Karel Sadsuitubun Airport +LUW,WAFW,Syukuran Aminuddin Amir Airport +LUX,ELLX,Luxembourg-Findel International Airport +LUZ,EPLB,Lublin Airport +LVA,LFOV,Laval-Entrammes Airport +LVI,FLLI,Harry Mwanga Nkumbula International Airport +LVK,KLVK,Livermore Municipal Airport +LVL,KLVL,Brunswick Municipal Airport +LVM,KLVM,Mission Field +LVO,YLTN,Laverton Airport +LVP,OIBV,Lavan Airport +LVR,SILC,Municipal Bom Futuro Airport +LVS,KLVS,Las Vegas Municipal Airport +LWB,KLWB,Greenbrier Valley Airport +LWC,KLWC,Lawrence Municipal Airport +LWE,WATW,Wonopito Airport +LWH,YLAH,Lawn Hill Airport +LWI,AYLO,Lowai Airport +LWK,EGET,Lerwick / Tingwall Airport +LWL,KLWL,Wells Municipal Airport/Harriet Field +LWM,KLWM,Lawrence Municipal Airport +LWN,UDSG,Shirak International Airport +LWO,UKLL,Lviv International Airport +LWR,EHLW,Leeuwarden Air Base +LWS,KLWS,Lewiston Nez Perce County Airport +LWT,KLWT,Lewistown Municipal Airport +LWV,KLWV,Lawrenceville Vincennes International Airport +LWY,WBGW,Lawas Airport +LXA,ZULS,Lhasa Gonggar International Airport +LXG,VLLN,Luang Namtha Airport +LXN,KLXN,Jim Kelly Field +LXR,HELX,Luxor International Airport +LXS,LGLM,Limnos Airport +LXU,FLLK,Lukulu Airport +LXV,KLXV,Lake County Airport +LYA,ZHLY,Luoyang Beijiao Airport +LYB,MWCL,Edward Bodden Little Cayman Airfield +LYC,ESNL,Lycksele Airport +LYG,ZSLG,Lianyungang Huaguoshan International Airport +LYH,KLYH,Lynchburg Regional Airport - Preston Glenn Field +LYI,ZSLY,Linyi Qiyang Airport +LYK,WADU,Lunyuk Airport +LYN,LFLY,Lyon Bron Airport +LYO,KLYO,Lyons-Rice County Municipal Airport +LYP,OPFA,Faisalabad International Airport +LYR,ENSB,"Svalbard Airport, Longyear" +LYS,LFLL,Lyon Saint-Exupéry Airport +LYU,KELO,Ely Municipal Airport +LYX,EGMD,Lydd London Ashford Airport +LZA,FZUG,Luiza Airport +LZC,MMLC,Lázaro Cárdenas Airport +LZH,ZGZH,Liuzhou Bailian Airport / Bailian Air Base +LZI,FZAL,Luozi Airport +LZM,FNLZ,Luzamba Airport +LZN,RCFG,Matsu Nangan Airport +LZO,ZULZ,Luzhou Yunlong Airport +LZR,YLZI,Lizard Island Airport +LZU,KLZU,Gwinnett County Briscoe Field +LZY,ZUNZ,Nyingchi Mainling Airport +MAA,VOMM,Chennai International Airport +MAB,SBMA,João Correa da Rocha Airport +MAC,KMAC,Macon Downtown Airport +MAD,LEMD,Adolfo Suárez Madrid–Barajas Airport +MAE,KMAE,Madera Municipal Airport +MAF,KMAF,Midland International Air and Space Port +MAG,AYMD,Madang Airport +MAH,LEMH,Menorca Airport +MAJ,PKMJ,Marshall Islands International Airport +MAK,HSSM,Malakal International Airport +MAL,WAPE,"Mangole Airport, Falabisahaya" +MAM,MMMA,General Servando Canales International Airport +MAN,EGCC,Manchester Airport +MAO,SBEG,Eduardo Gomes International Airport +MAQ,VTPM,Mae Sot Airport +MAR,SVMC,La Chinita International Airport +MAS,AYMO,Momote Airport +MAT,FZAM,Tshimpi Airport +MAU,NTTP,Maupiti Airport +MAW,KMAW,Malden Regional Airport +MAX,GOSM,Ouro Sogui Airport +MAY,MYAB,Clarence A. Bain Airport +MAZ,TJMZ,Eugenio Maria De Hostos Airport +MBA,HKMO,Moi International Airport +MBB,YMBL,Marble Bar Airport +MBC,FOGG,M'Bigou Airport +MBD,FAMM,Mmabatho International Airport +MBE,RJEB,Monbetsu Airport +MBF,YPOK,Porepunkah Airport +MBG,KMBG,Mobridge Municipal Airport +MBH,YMYB,Maryborough Airport +MBI,HTGW,Songwe Airport +MBJ,MKJS,Sangster International Airport +MBK,SWXM,Orlando Villas Boas Regional Airport +MBL,KMBL,Manistee County Blacker Airport +MBN,YBAN,Mount Barnett Airport +MBO,RPUM,Mamburao Airport +MBP,SPBB,Moyobamba Airport +MBQ,HUMA,Mbarara Airport +MBS,KMBS,MBS International Airport +MBT,RPVJ,Moises R. Espinosa Airport +MBU,AGGI,Babanakira Airport +MBV,AYSX,Masa Airport +MBW,YMMB,Melbourne Moorabbin Airport +MBX,LJMB,Maribor Edvard Rusjan Airport +MBY,KMBY,Omar N Bradley Airport +MBZ,SWMW,Maués Airport +MCA,GUMA,Macenta Airport +MCB,KMCB,McComb-Pike County Airport / John E Lewis Field +MCC,KMCC,McClellan Airfield +MCD,KMCD,Mackinac Island Airport +MCE,KMCE,Merced Regional Macready Field +MCF,KMCF,MacDill Air Force Base +MCG,PAMC,McGrath Airport +MCI,KMCI,Kansas City International Airport +MCJ,SKLM,Jorge Isaac Airport +MCK,KMCK,McCook Ben Nelson Regional Airport +MCL,PAIN,Denali National Park Airport +MCM,LNMC,Monaco Heliport +MCN,KMCN,Middle Georgia Regional Airport +MCO,KMCO,Orlando International Airport +MCP,SBMQ,Macapá - Alberto Alcolumbre International Airport +MCS,SARM,Monte Caseros Airport +MCT,OOMS,Muscat International Airport +MCU,LFBK,Montluçon-Guéret Airport +MCV,YMHU,McArthur River Mine Airport +MCW,KMCW,Mason City Municipal Airport +MCX,URML,Makhachkala Uytash International Airport +MCY,YBSU,Sunshine Coast Airport +MCZ,SBMO,Zumbi dos Palmares International Airport +MDA,KMDA,Martindale Army Heliport +MDC,WAMM,Sam Ratulangi International Airport +MDD,KMDD,Midland Airpark +MDE,SKRG,Jose Maria Córdova International Airport +MDF,KMDZ,Taylor County Airport +MDG,ZYMD,Mudanjiang Hailang International Airport +MDH,KMDH,Southern Illinois Airport +MDI,DNMK,Makurdi Airport +MDJ,KS33,Madras Municipal Airport +MDK,FZEA,Mbandaka Airport +MDL,VYMD,Mandalay International Airport +MDM,AYDK,Munduku Airport +MDN,KIMS,Madison Municipal Airport +MDO,PAMD,Middleton Island Airport +MDP,WAKD,Mindiptana Airport +MDQ,SAZM,Ástor Piazzola International Airport +MDS,MBMC,Middle Caicos Airport +MDT,KMDT,Harrisburg International Airport +MDU,AYMN,Mendi Airport +MDW,KMDW,Chicago Midway International Airport +MDX,SATM,Mercedes Airport +MDY,PMDY,Henderson Field +MDZ,SAME,Governor Francisco Gabrielli International Airport +MEA,SBME,Macaé Benedito Lacerda Airport +MEB,YMEN,Melbourne Essendon Airport +MEC,SEMT,Eloy Alfaro International Airport +MED,OEMA,Prince Mohammad Bin Abdulaziz Airport +MEE,NWWR,Maré Airport +MEG,FNMA,Malanje Airport +MEH,ENMH,Mehamn Airport +MEI,KMEI,Key Field / Meridian Regional Airport +MEJ,KGKJ,Port Meadville Airport +MEK,GMFM,Bassatine Airport +MEL,YMML,Melbourne Airport +MEM,KMEM,Memphis International Airport +MEN,LFNB,Mende-Brenoux Airfield +MEO,KMQI,Dare County Regional Airport +MEP,WMAU,Mersing Airport +MEQ,WITC,Cut Nyak Dhien Airport +MER,KMER,Castle Airport +MES,WIMK,Soewondo Air Force Base +MET,YMOT,Moreton Airport +MEU,SBMD,Monte Dourado - Serra do Areão Airport +MEV,KMEV,Minden-Tahoe Airport +MEW,FZVM,Mweka Airport +MEX,MMMX,Mexico City Benito Juárez International Airport +MEY,VNMG,Meghauli Airport +MEZ,FAMH,Musina(Messina) Airport +MFA,HTMA,Mafia Airport +MFC,FXMF,Mafeteng Airport +MFD,KMFD,Mansfield Lahm Regional Airport +MFE,KMFE,McAllen Miller International Airport +MFF,FOOD,Moanda Airport +MFG,OPMF,Muzaffarabad Airport +MFH,K67L,Mesquite Airport +MFI,KMFI,Marshfield Municipal Airport +MFJ,NFMO,Moala Airport +MFK,RCMT,Matsu Beigan Airport +MFL,YWDV,Mount Full Stop Airport +MFM,VMMC,Macau International Airport +MFN,NZMF,Milford Sound Airport +MFO,AYNG,Manguna Airport +MFP,YMCR,Manners Creek Airport +MFQ,DRRM,Maradi Airport +MFR,KMFR,Rogue Valley International-Medford Airport +MFS,SKMF,Miraflores Airport +MFU,FLMF,Mfuwe International Airport +MFV,KMFV,Accomack County Airport +MFX,LFKX,Méribel Altiport +MFZ,AYES,Meselia Airport +MGA,MNMG,Augusto C. Sandino (Managua) International Airport +MGB,YMTG,Mount Gambier Airport +MGC,KMGC,Michigan City Municipal Airport +MGD,SLMG,Magdalena Airport +MGE,KMGE,Dobbins Air Reserve Base +MGF,SBMG,Regional de Maringá - Sílvio Name Júnior Airport +MGH,FAMG,Margate Airport +MGJ,KMGJ,Orange County Airport +MGK,VYMT,Mong Tong Airport +MGL,EDLN,Mönchengladbach Airport +MGM,KMGM,Montgomery Regional (Dannelly Field) Airport +MGN,SKMG,Baracoa Airport +MGQ,HCMM,Aden Adde International Airport +MGR,KMGR,Moultrie Municipal Airport +MGS,NCMG,Mangaia Island Airport +MGT,YMGB,Milingimbi Airport +MGU,VYMN,Manaung Airport +MGV,YMGR,Margaret River (Station) Airport +MGW,KMGW,Morgantown Municipal Airport Walter L. (Bill) Hart Field +MGX,FOGI,Moabi Airport +MGY,KMGY,Dayton-Wright Brothers Airport +MGZ,VYME,Myeik Airport +MHA,SYMD,Mahdia Airport +MHB,NZMB,Mechanics Bay Heliport +MHC,SCPQ,Mocopulli Airport +MHD,OIMM,Mashhad International Airport +MHE,KMHE,Mitchell Municipal Airport +MHG,EDFM,Mannheim-City Airport +MHH,MYAM,Leonard M. Thompson International Airport +MHI,HDMO,Moucha Airport +MHK,KMHK,Manhattan Regional Airport +MHL,KMHL,Marshall Memorial Municipal Airport +MHM,AGOB,Manaoba Airport +MHO,YMHO,Mount House Airport +MHQ,EFMA,Mariehamn Airport +MHR,KMHR,Sacramento Mather Airport +MHT,KMHT,Manchester-Boston Regional Airport +MHU,YHOT,Mount Hotham Airport +MHV,KMHV,Mojave Air & Space Port +MHW,SLAG,Monteagudo Airport +MHX,NCMH,Manihiki Island Airport +MHY,AYEH,Morehead Airport +MHZ,EGUN,RAF Mildenhall +MIA,KMIA,Miami International Airport +MIB,KMIB,Minot Air Force Base +MIC,KMIC,Crystal Airport +MID,MMMD,Manuel Crescencio Rejón International Airport +MIE,KMIE,Delaware County Johnson Field +MIF,KE01,Roy Hurd Memorial Airport +MIG,ZUMY,Mianyang Nanjiao Airport +MIH,YMIP,Mitchell Plateau Airport +MII,SBML,Frank Miloye Milenkowichi–Marília State Airport +MIJ,MLIP,Mili Island Airport +MIK,EFMI,Mikkeli Airport +MIM,YMER,Merimbula Airport +MIN,YMPA,Minnipa Airport +MIO,KMIO,Miami Municipal Airport +MIP,LLMR,Mitzpe Ramon Airfield +MIQ,KMLE,Millard Airport +MIR,DTMB,Monastir Habib Bourguiba International Airport +MIS,AYMS,Misima Island Airport +MIT,KMIT,Shafter Airport - Minter Field +MIU,DNMA,Maiduguri International Airport +MIV,KMIV,Millville Municipal Airport +MIW,KMIW,Marshalltown Municipal Airport +MIY,YMTA,Mittebah Airport +MJA,FMSJ,Manja Airport +MJC,DIMN,Man Airport +MJD,OPMJ,Moenjodaro Airport +MJF,ENMS,"Mosjøen Airport, Kjærstad" +MJG,MUMJ,Mayajigua Airport +MJI,HLLM,Mitiga International Airport +MJK,YSHK,Shark Bay Airport +MJL,FOGM,Mouilla Ville Airport +MJM,FZWA,Mbuji Mayi Airport +MJN,FMNM,Amborovy Airport +MJO,FYME,Mount Etjo Airport +MJP,YMJM,Manjimup Airport +MJQ,KMJQ,Jackson Municipal Airport +MJR,SA14,Miramar Airport +MJT,LGMT,Mytilene International Airport +MJU,WAFJ,Tampa Padang Airport +MJW,FVMH,Mahenye Airport +MJX,KMJX,Ocean County Airport +MJZ,UERR,Mirny Airport +MKB,FOOE,Mekambo Airport +MKC,KMKC,Charles B. Wheeler Downtown Airport +MKE,KMKE,General Mitchell International Airport +MKG,KMKG,Muskegon County Airport +MKH,FXMK,Mokhotlong Airport +MKI,FEGE,M'Boki Airport +MKJ,FCOM,Makoua Airport +MKK,PHMK,Molokai Airport +MKL,KMKL,McKellar-Sipes Regional Airport +MKM,WBGK,Mukah Airport +MKN,AYMV,Malekolon Airport +MKO,KMKO,Muskogee-Davis Regional Airport +MKP,NTGM,Makemo Airport +MKQ,WAKK,Mopah International Airport +MKR,YMEK,Meekatharra Airport +MKS,HAMA,Mekane Selam Airport +MKT,KMKT,Mankato Regional Airport +MKU,FOOK,Makokou Airport +MKW,WASR,Rendani Airport +MKY,YBMK,Mackay Airport +MKZ,WMKM,Malacca International Airport +MLA,LMML,Malta International Airport +MLB,KMLB,Melbourne Orlando International Airport +MLC,KMLC,Mc Alester Regional Airport +MLD,KMLD,Malad City Airport +MLE,VRMM,Velana International Airport +MLF,KMLF,Milford Municipal-Ben and Judy Briscoe Field +MLG,WARA,Abdul Rachman Saleh Airport +MLI,KMLI,Quad City International Airport +MLJ,KMLJ,Baldwin County Regional Airport +MLK,KM75,Malta Airport +MLL,PADM,Marshall Don Hunter Sr Airport +MLM,MMMM,General Francisco J. Mujica International Airport +MLN,GEML,Melilla Airport +MLO,LGML,Milos Airport +MLP,RPMM,Malabang Airport +MLQ,AYMP,Malalaua Airport +MLR,YMCT,Millicent Airport +MLS,KMLS,Miles City Airport - Frank Wiley Field +MLT,KMLT,Millinocket Municipal Airport +MLU,KMLU,Monroe Regional Airport +MLV,YMEU,Merluna Airport +MLW,GLMR,Spriggs Payne Airport +MLX,LTAT,Malatya Erhaç Airport +MLY,PAML,Manley Hot Springs Airport +MLZ,SUMO,Cerro Largo International Airport +MMB,RJCM,Memanbetsu Airport +MMC,MMDM,Ciudad Mante Los Huastecas National Airport +MMD,ROMD,Minamidaito Airport +MME,EGNV,Teesside International Airport +MMF,FKKF,Mamfe Airport +MMG,YMOG,Mount Magnet Airport +MMH,KMMH,Mammoth Yosemite Airport +MMI,KMMI,McMinn County Airport +MMJ,RJAF,Shinshu-Matsumoto Airport +MMK,ULMM,Emperor Nicholas II Murmansk Airport +MML,KMML,Southwest Minnesota Regional Airport - Marshall/Ryan Field +MMM,YMMU,Middlemount Airport +MMO,GVMA,Maio Airport +MMP,SKMP,San Bernardo Airport +MMQ,FLBA,Mbala Airport +MMS,KMMS,Selfs Airport +MMT,KMMT,Mc Entire Joint National Guard Base +MMU,KMMU,Morristown Municipal Airport +MMX,ESMS,Malmö Sturup Airport +MMY,ROMY,Miyako Airport +MMZ,OAMN,Maymana Zahiraddin Faryabi Airport +MNA,WAMN,Melangguane Airport +MNB,FZAG,Muanda Airport +MNC,FQNC,Nacala International Airport +MNE,YMUG,Mungeranie Airport +MNF,NFMA,Mana Island Airport +MNG,YMGD,Maningrida Airport +MNI,TRPG,John A. Osborne Airport +MNJ,FMSM,Mananjary Airport +MNK,NGMA,Maiana Airport +MNL,RPLL,Ninoy Aquino International Airport +MNM,KMNM,Menominee–Marinette Twin County Airport +MNN,KMNN,Marion Municipal Airport +MNO,FZRA,Manono Airport +MNQ,YMTO,Monto Airport +MNR,FLMG,Mongu Airport +MNS,FLMA,Mansa Airport +MNU,VYMM,Mawlamyine Airport +MNV,YMVY,Mount Valley Airport +MNW,YMDS,Macdonald Downs Airport +MNX,SBMY,Manicoré Airport +MNY,AGGO,Mono Airport +MNZ,KHEF,Washington Manassas Harry P. Davis Field +MOA,MUMO,Orestes Acosta Airport +MOB,KMOB,Mobile Regional Airport +MOC,SBMK,Mário Ribeiro Airport +MOD,KMOD,Modesto City Co-Harry Sham Field +MOE,VYMO,Momeik Airport +MOF,WATC,Frans Xavier Seda Airport +MOG,VYMS,Mong Hsat Airport +MOI,NCMR,Mitiaro Island Airport +MOJ,SMMO,Moengo Airstrip +MOK,UTNM,Muynak Airport +MOL,ENML,"Molde Airport, Årø" +MOM,GQNL,Letfotar Airport +MON,NZMC,Mount Cook Airport +MOO,YOOM,Moomba Airport +MOP,KMOP,Mount Pleasant Municipal Airport +MOQ,FMMV,Morondava Airport +MOR,KMOR,Morristown Regional Airport +MOT,KMOT,Minot International Airport +MOU,PAMO,Mountain Village Airport +MOV,YMRB,Moranbah Airport +MOX,KMOX,Morris Municipal Airport Charlie Schmidt Field +MOZ,NTTM,Moorea Temae Airport +MPA,FYKM,Katima Mulilo Airport +MPC,WIGM,Muko Muko Airport +MPD,OPMP,Sindhri Tharparkar Airport +MPF,AYPO,Mapoda Airport +MPG,AYMJ,Makini Airport +MPH,RPVE,Godofredo P. Ramos Airport +MPJ,KMPJ,Petit Jean Park Airport +MPL,LFMT,Montpellier-Méditerranée Airport +MPM,FQMA,Maputo Airport +MPN,EGYP,Mount Pleasant Airport / RAF Mount Pleasant +MPO,KMPO,Pocono Mountains Municipal Airport +MPR,KMPR,Mc Pherson Airport +MPS,KOSA,Mount Pleasant Regional Airport +MPT,WPMN,Maliana Airport +MPU,AYMZ,Mapua(Mabua) Airport +MPV,KMPV,Edward F Knapp State Airport +MPW,UKCM,Mariupol International Airport +MPX,AYIY,Miyanmin Airport +MPY,SOOA,Maripasoula Airport +MPZ,KMPZ,Mount Pleasant Municipal Airport +MQA,YMDI,Mandora Airport +MQB,KMQB,Macomb Municipal Airport +MQC,LFVM,Miquelon Airport +MQD,SAVQ,Maquinchao Airport +MQE,YMQA,Marqua Airport +MQF,USCM,Magnitogorsk International Airport +MQG,FYMG,Midgard Airport +MQH,SBMC,Minaçu Airport +MQJ,UEMA,Moma Airport +MQK,SLTI,San Matías Airport +MQL,YMIA,Mildura Airport +MQM,LTCR,Mardin Airport +MQN,ENRA,"Mo i Rana Airport, Røssvoll" +MQO,AYMQ,Malam Airport +MQP,FAKN,Kruger Mpumalanga International Airport +MQQ,FTTD,Moundou Airport +MQS,TVSM,Mustique Airport +MQT,KSAW,Marquette/Sawyer International Airport +MQU,SKQU,Mariquita Airport +MQV,DA14,Mostaganem Airport +MQW,KMQW,Telfair Wheeler Airport +MQX,HAMK,Mekele Alula Aba Nega Airport +MQY,KMQY,Smyrna Airport +MQZ,YMGT,Margaret River Airport +MRA,HLMS,Misrata International Airport +MRB,KMRB,Eastern WV Regional Airport/Shepherd Field +MRC,KMRC,Maury County Airport +MRD,SVMD,Alberto Carnevalli Airport +MRE,HKMS,Mara Serena Lodge Airstrip +MRF,KMRF,Marfa Municipal Airport +MRG,YMBA,Mareeba Airport +MRH,AYRV,May River Airstrip +MRI,PAMR,Merrill Field +MRK,KMKY,Marco Island Executive Airport +MRM,AYMA,Manari Airport +MRN,KMRN,Foothills Regional Airport +MRO,NZMS,Hood Airport +MRP,YALA,Marla Airport +MRQ,RPUW,Marinduque Airport +MRR,SEMA,Jose Maria Velasco Ibarra Airport +MRS,LFML,Marseille Provence Airport +MRU,FIMP,Sir Seewoosagur Ramgoolam International Airport +MRV,URMM,Mineralnye Vody Airport +MRW,EKMB,Lolland Falster Maribo Airport +MRX,OIAM,Mahshahr Airport +MRY,KMRY,Monterey Regional Airport +MRZ,YMOR,Moree Airport +MSA,CZMD,Muskrat Dam Airport +MSC,KFFZ,Falcon Field +MSF,YMNS,Mount Swan Airport +MSG,FXMA,Matsaile Airport +MSH,OOMA,RAFO Masirah +MSJ,RJSM,Misawa Airport / Misawa Air Base +MSL,KMSL,Northwest Alabama Regional Airport +MSM,FZCV,Masi Manimba Airport +MSN,KMSN,Dane County Regional Truax Field +MSO,KMSO,Missoula Montana Airport +MSP,KMSP,Minneapolis–Saint Paul International Airport / Wold–Chamberlain Field +MSQ,UMMS,Minsk National Airport +MSR,LTCK,Muş Airport +MSS,KMSS,Massena International Airport Richards Field +MST,EHBK,Maastricht Aachen Airport +MSU,FXMM,Moshoeshoe I International Airport +MSV,KMSV,Sullivan County International Airport +MSW,HHMS,Massawa International Airport +MSX,FCMM,Mossendjo Airport +MSY,KMSY,Louis Armstrong New Orleans International Airport +MSZ,FNMO,Welwitschia Mirabilis International Airport +MTA,NZMA,Matamata Glider Airport +MTB,SKML,Montelibano Airport +MTC,KMTC,Selfridge Air National Guard Base Airport +MTD,YMSF,Mount Sanford Station Airport +MTE,SNMA,Monte Alegre Airport +MTF,HAMT,Mizan Teferi Airport +MTH,KMTH,Florida Keys Marathon International Airport +MTI,GVMT,Mosteiros Airport +MTJ,KMTJ,Montrose Regional Airport +MTK,NGMN,Makin Island Airport +MTL,YMND,Maitland Airport +MTM,PAMM,Metlakatla Seaplane Base +MTN,KMTN,Martin State Airport +MTO,KMTO,Coles County Memorial Airport +MTP,KMTP,Montauk Airport +MTQ,YMIT,Mitchell Airport +MTR,SKMR,Los Garzones Airport +MTS,FDMS,Matsapha International Airport +MTT,MMMT,Minatitlán/Coatzacoalcos International Airport +MTV,NVSA,Mota Lava Airport +MTW,KMTW,Manitowoc County Airport +MTY,MMMY,Monterrey International Airport +MTZ,LLMZ,Bar Yehuda Airfield +MUA,AGGM,Munda Airport +MUB,FBMN,Maun International Airport +MUC,EDDM,Munich Airport +MUD,FQMD,Mueda Airport +MUE,PHMU,Waimea Kohala Airport +MUG,MMMG,Mulege Airport +MUH,HEMM,Mersa Matruh International Airport +MUI,KMUI,Muir Army Air Field (Fort Indiantown Gap) Airport +MUJ,HAMR,Mui River Airport +MUK,NCMK,Mauke Airport +MUL,KMUL,Spence Airport +MUN,SVMT,José Tadeo Monagas International Airport +MUO,KMUO,Mountain Home Air Force Base +MUP,YMUP,Mulga Park Airport +MUQ,YMUC,Muccan Station Airport +MUR,WBGM,Marudi Airport +MUS,RJAM,JMSDF Minami Torishima Air Base +MUT,KMUT,Muscatine Municipal Airport +MUU,SIRI,Barra Grande Airport +MUW,DAOV,Ghriss Airport +MUX,OPMT,Multan International Airport +MUY,FCBM,Mouyondzi Airport +MUZ,HTMU,Musoma Airport +MVA,BIRL,Mývatn Airport +MVB,FOON,M'Vengue El Hadj Omar Bongo Ondimba International Airport +MVC,KMVC,Monroe County Aeroplex Airport +MVD,SUMU,Carrasco General Cesáreo L. Berisso International Airport +MVE,KMVE,Montevideo Chippewa County Airport +MVF,SBMS,Dix-Sept Rosado Airport +MVK,YMUK,Mulka Airport +MVL,KMVL,Morrisville-Stowe State Airport +MVM,K0V7,Kayenta Airport +MVN,KMVN,Mount Vernon Outland Airport +MVO,FTTM,Mongo Airport +MVP,SKMU,Fabio Alberto Leon Bentley Airport +MVQ,UMOO,Mogilev Airport +MVR,FKKL,Salak Airport +MVS,SNMU,Mucuri Airport +MVT,NTGV,Mataiva Airport +MVU,YMGV,Musgrave Airport +MVV,LFHM,Megève Altiport +MVW,KBVS,Skagit Regional Airport +MVX,FOGV,Minvoul Airport +MVY,KMVY,Martha's Vineyard Airport +MVZ,FVMV,Masvingo International Airport +MWA,KMWA,Veterans Airport of Southern Illinois +MWB,YMRW,Morawa Airport +MWC,KMWC,Lawrence J Timmerman Airport +MWD,OPMI,Mianwali Air Base +MWE,HSMN,Merowe Airport +MWF,NVSN,Maewo-Naone Airport +MWG,AYMW,Marawaka Airport +MWH,KMWH,Grant County International Airport +MWI,AYRM,Maramuni Airport +MWJ,SYMR,Matthews Ridge Airport +MWK,WIDM,Matak Airport +MWL,KMWL,Mineral Wells Regional Airport +MWM,KMWM,Windom Municipal Airport +MWN,HTMD,Mwadui Airport +MWO,KMWO,Middletown Regional Airport +MWQ,VYMW,Magway Airport +MWS,WAMP,Indonesia Morowali Industrial Park (IMIP) Airport +MWT,YMWT,Moolawatana Airport +MWV,VDMK,Mondulkiri Airport +MWX,RKJB,Muan International Airport +MWY,YMIR,Miranda Downs Airport +MWZ,HTMW,Mwanza International Airport +MXA,KMXA,Manila Municipal Airport +MXB,WAFM,Andi Jemma Airport +MXD,YMWX,Marion Downs Airport +MXE,KMEB,Laurinburg Maxton Airport +MXF,KMXF,Maxwell Air Force Base +MXH,AYMR,Moro Airport +MXI,RPMQ,Mati National Airport +MXJ,DNMN,Minna Airport +MXK,AYMI,Mindik Airport +MXL,MMML,General Rodolfo Sánchez Taboada International Airport +MXM,FMSR,Morombe Airport +MXN,LFRU,Morlaix-Ploujean Airport +MXO,KMXO,Monticello Regional Airport +MXP,LIMC,Milan Malpensa International Airport +MXQ,SNCL,Lorenzo Airport +MXS,NSMA,Maota Airport +MXT,FMMO,Maintirano Airport +MXU,YMWA,Mullewa Airport +MXV,ZMMN,Mörön Airport +MXW,ZMMG,Mandalgobi Airport +MXX,ESKM,Mora Airport +MXY,PAMX,Mc Carthy Airport +MXZ,ZGMX,Meizhou Meixian Changgangji International Airport +MYA,YMRY,Moruya Airport +MYB,FOOY,Mayumba Airport +MYC,SVBS,Escuela Mariscal Sucre Airport +MYD,HKML,Malindi International Airport +MYE,RJTQ,Miyakejima Airport +MYF,KMYF,Montgomery-Gibbs Executive Airport +MYG,MYMM,Mayaguana Airport +MYH,KL41,Marble Canyon Airport +MYI,YMAE,Murray Island Airport +MYJ,RJOM,Matsuyama Airport +MYL,KMYL,McCall Municipal Airport +MYM,SYMM,Monkey Mountain Airport +MYN,OYMB,Marib Airport +MYO,YMYR,Myroodan Station Airport +MYP,UTAM,Mary International Airport +MYQ,VOMY,Mysore Airport +MYR,KMYR,Myrtle Beach International Airport +MYT,VYMK,Myitkyina Airport +MYU,PAMY,Mekoryuk Airport +MYV,KMYV,Yuba County Airport +MYW,HTMT,Mtwara Airport +MYX,AYMC,Menyamya Airport +MYY,WBGR,Miri Airport +MYZ,FWMY,Monkey Bay Airport +MZA,SPMF,Mayor PNP Nancy Flores Paucar Airport +MZB,FQMP,Mocímboa da Praia Airport +MZC,FOOM,Mitzic Airport +MZG,RCQC,Penghu Magong Airport +MZH,LTAP,Amasya Merzifon Airport +MZI,GAMB,Mopti Airport +MZJ,KMZJ,Pinal Airpark +MZK,NGMK,Marakei Airport +MZL,SKMZ,La Nubia Airport +MZO,MUMZ,Sierra Maestra International Airport +MZP,NZMK,Motueka Airport +MZQ,FAMU,Mkuze Airport +MZR,OAMS,Mazar-i-Sharif International Airport +MZS,VIMB,Moradabad Airport +MZT,MMMZ,General Rafael Buelna International Airport +MZU,VEMZ,Muzaffarpur Airport +MZV,WBMU,Mulu Airport +MZW,DAAY,Mecheria Airport +MZY,FAMO,Mossel Bay Airport +MZZ,KMZZ,Marion Municipal Airport +NAA,YNBR,Narrabri Airport +NAC,YNRC,Naracoorte Airport +NAE,DBBN,Natitingou Airport +NAG,VANP,Dr. Babasaheb Ambedkar International Airport +NAH,WAMH,Naha Airport +NAI,SYAN,Annai Airport +NAJ,UBBN,Nakhchivan International Airport +NAK,VTUQ,Nakhon Ratchasima Airport +NAL,URMN,Nalchik Airport +NAM,WAPN,Namniwel Airport +NAN,NFFN,Nadi International Airport +NAO,ZUNC,Nanchong Gaoping Airport +NAP,LIRN,Naples International Airport +NAQ,BGQQ,Qaanaaq Airport +NAR,SKPN,Puerto Nare Airport +NAS,MYNN,Lynden Pindling International Airport +NAT,SBSG,Rio Grande do Norte/São Gonçalo do Amarante–Governador Aluízio Alves International Airport +NAU,NTGN,Napuka Island Airport +NAV,LTAZ,Nevşehir Kapadokya Airport +NAW,VTSC,Narathiwat Airport +NAZ,AGNA,Nana Airport +NBA,AYNY,Nambaiyufa Airport +NBB,SKBM,Barranco Minas Airport +NBC,UWKE,Begishevo Airport +NBE,DTNH,Enfidha - Hammamet International Airport +NBG,KNBG,New Orleans NAS JRB/Alvin Callender Field +NBH,YNHS,Nambucca Heads Airport +NBJ,FNBJ,Dr. Antonio Agostinho Neto International Airport +NBL,MPWN,Wannukandi Airport +NBN,FGAB,Annobón Airport +NBO,HKJK,Jomo Kenyatta International Airport +NBS,ZYBS,Changbaishan Airport +NBW,MUGM,Leeward Point Field +NBX,WABI,Douw Aturure Airport +NCA,MBNC,North Caicos Airport +NCE,LFMN,Nice-Côte d'Azur Airport +NCG,MMCG,Aeropuerto Municipal de Nuevo Casas Grandes +NCH,HTNA,Nachingwea Airport +NCI,SKNC,Necocli Airport +NCJ,SAFS,Sunchales Aeroclub Airport +NCL,EGNT,Newcastle International Airport +NCN,PFCB,Chenega Bay Airport +NCO,KOQU,Quonset State Airport +NCR,MNSC,San Carlos Airport +NCS,FANC,Newcastle Airport +NCT,MRNC,Guanacaste Airport +NCU,UTNN,Nukus International Airport +NCY,LFLP,Annecy Meythet airport +NDA,WAPC,Bandanaira Airport +NDB,GQPP,Nouadhibou International Airport +NDC,VAND,Nanded Airport +NDD,FNSU,Sumbe Airport +NDE,HKMA,Mandera Airport +NDG,ZYQQ,Qiqihar Sanjiazi Airport +NDI,AYNJ,Namudi Airport +NDJ,FTTJ,N'Djamena International Airport +NDL,FEFN,N'Délé Airport +NDM,HAMN,Mendi Airport +NDN,AYNC,Nadunumu Airport +NDR,GMMW,Nador Al Aaroui International Airport +NDS,YSAN,Sandstone Airport +NDU,FYRU,Rundu Airport +NDY,EGES,Sanday Airport +NEC,SAZO,Necochea Airport +NEG,MKNG,Negril Airport +NEI,UHWT,Terney Airport +NEJ,HANJ,Nejjo Airport +NEK,HANK,Nekemte Airport +NEL,KNEL,Lakehurst Maxfield Field Airport +NEN,KNEN,Whitehouse Naval Outlying Field +NER,UELL,Chulman Airport +NEU,VLSN,Sam Neua Airport +NEV,TKPN,Vance W. Amory International Airport +NEW,KNEW,Lakefront Airport +NFG,USRN,Nefteyugansk Airport +NFL,KNFL,Fallon Naval Air Station +NFO,NFTO,Mata'aho Airport +NFR,HLNR,Nafurah 1 Airport +NGA,YYNG,Young Airport +NGB,ZSNB,Ningbo Lishe International Airport +NGD,TUPA,Captain Auguste George Airport +NGE,FKKN,N'Gaoundéré Airport +NGF,PHNG,Kaneohe Bay MCAS (Marion E. Carl Field) Airport +NGI,NFNG,Ngau Airport +NGK,UHSN,Nogliki Airport +NGL,FANG,Ngala Airport +NGO,RJGG,Chubu Centrair International Airport +NGP,KNGP,Naval Air Station Corpus Christi Truax Field +NGQ,ZUAL,Ngari Gunsa Airport +NGS,RJFU,Nagasaki Airport +NGU,KNGU,Norfolk Naval Station (Chambers Field) +NGW,KNGW,Cabaniss Field Naval Outlying Landing Field +NGX,VNMA,Manang Airport +NHD,OMDM,Al Minhad Air Base +NHF,HSNW,New Halfa Airport +NHK,KNHK,Patuxent River Naval Air Station (Trapnell Field) +NHT,EGWU,RAF Northolt +NHV,NTMD,Nuku Hiva Airport +NHX,KNBJ,Naval Outlying Field Barin +NHZ,KBXM,Brunswick Executive Airport +NIA,GLNA,Nimba Airport +NIB,PAFS,Nikolai Airport +NIF,YCNF,Camp Nifty Airport +NIG,NGNU,Nikunau Airport +NIM,DRRN,Diori Hamani International Airport +NIO,FZBI,Nioki Airport +NIP,KNIP,Jacksonville Naval Air Station (Towers Field) +NIQ,BGNT,Niaqornat Heliport +NIR,1XA2,Chase Field Industrial Airport +NIS,AYSE,Simberi Airport +NIT,LFBN,Niort - Marais Poitevin Airport +NIU,NTKN,Naiu Airport +NIX,GANR,Nioro du Sahel Airport +NJA,RJTA,JMSDF Atsugi Air Base / Naval Air Facility Atsugi +NJC,USNN,Nizhnevartovsk Airport +NJF,ORNI,Al Najaf International Airport +NJK,KNJK,El Centro NAF Airport (Vraciu Field) +NKB,YNKA,Noonkanbah Airport +NKC,GQNO,Nouakchott–Oumtounsy International Airport +NKG,ZSNJ,Nanjing Lukou International Airport +NKI,AK62,Naukati Bay Seaplane Base +NKL,FZAR,N'Kolo-Fuma Airport +NKM,RJNA,Nagoya Airport / JASDF Komaki Air Base +NKN,AYNA,Nankina Airport +NKP,NTKU,Nukutepipi Airport +NKT,LTCV,Şırnak Şerafettin Elçi Airport +NKU,FXNK,Nkaus Airport +NKW,FJDG,Naval Support Facility Diego Garcia +NKX,KNKX,Miramar Marine Corps Air Station - Mitscher Field +NKY,FCBY,Yokangassi Airport +NLA,FLSK,Simon Mwansa Kapwepwe International Airport +NLC,KNLC,Lemoore Naval Air Station (Reeves Field) Airport +NLD,MMNL,Quetzalcóatl International Airport +NLE,K3TR,Jerry Tyler Memorial Airport +NLF,YDNI,Darnley Island Airport +NLG,PAOU,Nelson Lagoon Airport +NLI,UHNN,Nikolayevsk-na-Amure Airport +NLK,YSNF,Norfolk Island International Airport +NLL,YNUL,Nullagine Airport +NLO,FZAB,Ndolo Airport +NLP,FANS,Nelspruit Airport +NLS,YNIC,Nicholson Airport +NLT,ZWNL,Xinyuan Nalati Airport +NLU,MMSM,Felipe Ángeles International Airport +NMA,UTFN,Namangan International Airport +NMB,VADN,Daman Airport +NMC,MYEN,Normans Cay Airport +NME,PAGT,Nightmute Airport +NMF,VRDA,Maafaru International Airport +NML,CER4,Fort McMurray / Mildred Lake Airport +NMN,AYNO,Nomane Airport +NMP,YNMN,New Moon Airport +NMR,YNAP,Nappa Merrie Airport +NMS,VYNS,Namsang Airport +NMT,VYNU,Namtu Airport +NNA,GMMY,Kenitra Air Base +NNB,AGGT,Santa Ana Airport +NNG,ZGNN,Nanning Wuxu International Airport +NNI,FYNA,Namutoni Airport +NNL,PANO,Nondalton Airport +NNM,ULAM,Naryan Mar Airport +NNR,EICA,Connemara Regional Airport +NNT,VTCN,Nan Airport +NNU,SNNU,Nanuque Airport +NNX,WRLF,Nunukan Airport +NNY,ZHNY,Nanyang Jiangying Airport +NOA,YSNW,Naval Air Station Nowra - HMAS Albatross +NOB,MRNS,Nosara Airport +NOC,EIKN,Ireland West Airport Knock +NOD,EDWS,Norden-Norddeich Airport +NOG,MMNG,Nogales International Airport +NOJ,USRO,Noyabrsk Airport +NOK,SWXV,Xavantina Airport +NON,NGTO,Nonouti Airport +NOP,LTCM,Sinop Airport +NOR,BINF,Norðfjörður Airport +NOS,FMNN,Nosy Be International Airport +NOT,KDVO,Marin County Airport - Gnoss Field +NOU,NWWW,La Tontouta International Airport +NOV,FNHU,Albano Machado Airport +NOZ,UNWW,Spichenkovo Airport +NPA,KNPA,Naval Air Station Pensacola Forrest Sherman Field +NPE,NZNR,Hawke's Bay Airport +NPH,KU14,J. Randy McKnight Nephi Municipal Airport +NPL,NZNP,New Plymouth Airport +NPO,WIOG,Nanga Pinoh Airport +NPP,YNPB,Napperby Airport +NPR,SJNP,Novo Progresso Airport +NPT,KUUU,Newport State Airport +NPY,HTMP,Mpanda Airport +NQA,KNQA,Millington-Memphis Airport +NQI,KNQI,Kingsville Naval Air Station +NQL,SWNQ,Niquelândia Airport +NQN,SAZN,Presidente Perón International Airport +NQT,EGBN,Nottingham City Airport +NQU,SKNQ,Reyes Murillo Airport +NQX,KNQX,Naval Air Station Key West/Boca Chica Field +NQY,EGHQ,Cornwall Airport Newquay +NQZ,UACC,Nursultan Nazarbayev International Airport +NRA,YNAR,Narrandera Airport +NRB,KNRB,Naval Station Mayport / Admiral David L McDonald Field +NRD,EDWY,Norderney Airport +NRE,WAPG,Namrole Airport +NRG,YNRG,Narrogin Airport +NRI,K3O9,Grand Lake Regional Airport +NRK,ESSP,Norrköping Airport +NRL,EGEN,North Ronaldsay Airport +NRM,GANK,Nara Airport +NRN,EDLV,Weeze (Niederrhein) Airport +NRR,TJRV,José Aponte de la Torre Airport +NRS,KNRS,Naval Outlying Field Imperial Beach (Ream Field) +NRT,RJAA,Narita International Airport +NSE,KNSE,Whiting Field Naval Air Station - North +NSH,OINN,Nowshahr Airport +NSI,FKYS,Yaoundé Nsimalen International Airport +NSK,UOOO,Alykel International Airport +NSL,KDVP,Slayton Municipal Airport +NSM,YNSM,Norseman Aerodrome +NSN,NZNS,Nelson Airport +NSO,YSCO,Scone Airport +NSQ,BGNU,Nuussuaq Heliport +NSR,SWKQ,Serra da Capivara Airport +NST,VTSF,Nakhon Si Thammarat Airport +NSV,YNSH,Noosa Airport +NTB,ENNO,Notodden Airport +NTD,KNTD,Point Mugu Naval Air Station (Naval Base Ventura Co) +NTE,LFRS,Nantes Atlantique Airport +NTG,ZSNT,Nantong Xingdong International Airport +NTI,WASB,Stenkol Airport +NTJ,K41U,Manti-Ephraim Airport +NTL,YWLM,Newcastle Airport +NTN,YNTN,Normanton Airport +NTO,GVAN,Agostinho Neto Airport +NTQ,RJNW,Noto Satoyama Airport +NTR,MMAN,Del Norte International Airport +NTT,NFTP,Kuini Lavenia Airport +NTU,KNTU,Oceana Naval Air Station +NTX,WION,Ranai Airport +NTY,FAPN,Pilanesberg International Airport +NUB,YNUM,Numbulwar Airport +NUD,HSNH,En Nahud Airport +NUE,EDDN,Nuremberg Airport +NUG,AYNI,Nuguria Airstrip +NUI,PAQT,Nuiqsut Airport +NUJ,OIHS,Nojeh Air Base +NUK,NTGW,Nukutavake Airport +NUL,PANU,Nulato Airport +NUM,OENN,Neom Bay Airport +NUQ,KNUQ,Moffett Federal Airfield +NUR,YNUB,Nullabor Motel Airport +NUS,NVSP,Norsup Airport +NUU,HKNK,Nakuru Lanet Airport +NUW,KNUW,Whidbey Island Naval Air Station (Ault Field) +NUX,USMU,Novy Urengoy Airport +NVA,SKNV,Benito Salas Airport +NVD,KNVD,Nevada Municipal Airport +NVI,UTSA,Navoi International Airport +NVM,SDNM,Brigadeiro Eduardo Gomes Airport +NVN,KO02,Nervino Airport +NVP,SWNA,Novo Aripuanã Airport +NVS,LFQG,Nevers-Fourchambault Airport +NVT,SBNF,Ministro Victor Konder International Airport +NVY,VONV,Neyveli Airport +NWA,FMCI,Mohéli Bandar Es Eslam Airport +NWH,K2B3,Parlin Field +NWI,EGSH,Norwich Airport +NYA,USHN,Nyagan Airport +NYE,HKNI,Nyeri Airport +NYG,KNYG,Quantico Marine Corps Airfield / Turner Field +NYI,DGSN,Sunyani Airport +NYK,HKNL,Nanyuki Civil Airport +NYM,USMM,Nadym Airport +NYN,YNYN,Nyngan Airport +NYO,ESKN,Stockholm Skavsta Airport +NYR,UENN,Nyurba Airport +NYT,VYNT,Nay Pyi Taw International Airport +NYU,VYBG,Bagan Airport +NYW,VYMY,Monywar Airport +NZA,FNZG,Nzagi Airport +NZC,SPZA,Maria Reiche Neuman Airport +NZE,GUNZ,Nzérékoré Airport +NZG,UIUN,Nizhneangarsk International Airport +NZH,ZBMZ,Manzhouli Xijiao Airport +NZL,ZBZL,Zhalantun Genghis Khan Airport +NZY,KNZY,North Island Naval Air Station-Halsey Field +OAA,OASH,Shank Air Base +OAG,YORG,Orange Airport +OAH,OASD,Shindand Air Base +OAI,OAIX,Bagram Airfield +OAJ,KOAJ,Albert J Ellis Airport +OAK,KOAK,Oakland San Francisco Bay Airport +OAL,SSKW,Cacoal Airport +OAM,NZOU,Oamaru Airport +OAN,MHEA,El Arrayán Airport +OAR,KOAR,Marina Municipal Airport +OAS,OASA,Sharana Airstrip +OAX,MMOX,Xoxocotlán International Airport +OAZ,OAZI,Camp Shorabak Airfield +OBC,HDOB,Obock Airport +OBE,KOBE,Okeechobee County Airport +OBF,EDMO,Oberpfaffenhofen Airport +OBI,SNTI,Óbidos Municipal Airport +OBL,EBZR,Oostmalle Airfield +OBM,AYMB,Morobe Airport +OBN,EGEO,Oban Airport +OBO,RJCB,Tokachi-Obihiro Airport +OBS,LFHO,Aubenas-South Ardèche Airport +OBU,PAOB,Kobuk Airport +OBX,AYOB,Obo Airport +OBY,BGSC,Ittoqqortoormiit Heliport +OCA,07FA,Ocean Reef Club Airport +OCC,SECO,Francisco De Orellana Airport +OCE,KOXB,Ocean City Municipal Airport +OCF,KOCF,Ocala International Airport - Jim Taylor Field +OCH,KOCH,A L Mangham Jr. Regional Airport +OCJ,MKBS,Ian Fleming International Airport +OCM,YBGD,Boolgeeda +OCN,KOKB,Oceanside Municipal Airport +OCV,SKOC,Aguas Claras Airport +OCW,KOCW,Warren Field +ODA,FEFW,Ouadda Airport +ODB,LEBA,Córdoba Airport +ODC,KO27,Oakdale Airport +ODD,YOOD,Oodnadatta Airport +ODE,EKOD,Odense Hans Christian Andersen Airport +ODH,EGVO,RAF Odiham +ODJ,FEGO,Ouanda Djallé Airport +ODL,YCOD,Cordillo Downs Airport +ODM,K2G4,Garrett County Airport +ODN,WBGI,Long Seridan Airport +ODO,UIKB,Bodaybo Airport +ODR,YORV,Ord River Airport +ODS,UKOO,Odesa International Airport +ODT,KODO,Odessa Schlemeyer Field +ODW,KOKH,AJ Eisenberg Airport +ODY,VLOS,Oudomsay Airport +OEA,KOEA,O'Neal Airport +OEC,WPOC,Oecusse Route of the Sandalwood International Airport +OEM,SMPA,Vincent Fayks Airport +OEO,KOEO,L O Simenstad Municipal Airport +OER,ESNO,Örnsköldsvik Airport +OES,SAVN,Antoine de Saint Exupéry Airport +OFF,KOFF,Offutt Air Force Base +OFI,DIOF,Ouango Fitini Airport +OFK,KOFK,Karl Stefan Memorial Airport +OFU,NSAS,Ofu Airport +OGA,KOGA,Ogallala Municipal Airport Searle Field +OGB,KOGB,Orangeburg Municipal Airport +OGD,KOGD,Ogden Hinckley Airport +OGE,AYOG,Ogeranang Airport +OGG,PHOG,Kahului International Airport +OGL,SYGO,Eugene F. Correia International Airport +OGN,ROYN,Yonaguni Airport +OGO,DIAU,Abengourou Airport +OGR,FTTB,Bongor Airport +OGS,KOGS,Ogdensburg International Airport +OGU,LTCB,Ordu–Giresun Airport +OGX,DAUU,Ain Beida Airport +OGZ,URMO,Vladikavkaz Beslan International Airport +OHA,NZOH,RNZAF Base Ohakea +OHB,FMFE,Ambohibary Airport +OHD,LWOH,Ohrid St. Paul the Apostle Airport +OHE,ZYMH,Mohe Gulian Airport +OHH,UHSH,Okha Airport +OHI,FYOS,Oshakati Airport +OHO,UHOO,Okhotsk Airport +OHR,EDXY,Wyk auf Föhr Airport +OHS,OOSH,Suhar International Airport +OHT,OPKT,Kohat Airport +OIA,SDOW,Ourilândia do Norte Airport +OIC,KOIC,Lt Warren Eaton Airport +OIM,RJTO,Oshima Airport +OIR,RJEO,Okushiri Airport +OIT,RJFO,Oita Airport +OJC,KOJC,Johnson County Executive Airport +OJU,WAFU,Tanjung Api Airport +OKA,ROAH,Naha International Airport +OKB,YORC,Orchid Beach Airport +OKC,KOKC,OKC Will Rogers World Airport +OKD,RJCO,Sapporo Okadama Airport +OKE,RJKB,Okinoerabu Airport +OKF,FYOO,Okaukuejo Airport +OKI,RJNO,Oki Global Geopark Airport +OKJ,RJOB,Okayama Momotaro Airport +OKK,KOKK,Kokomo Municipal Airport +OKL,WAJO,Oksibil Airport +OKM,KOKM,Okmulgee Regional Airport +OKN,FOGQ,Okondja Airport +OKO,RJTY,Yokota Air Base +OKP,AYOJ,Oksapmin Airport +OKQ,WAKO,Okaba Airport +OKR,YYKI,Yorke Island Airport +OKS,KOKS,Garden County Airport/King Rhiley Field +OKT,UWUK,Oktyabrskiy Airport +OKU,FYMO,Mokuti Lodge Airport +OKV,AYOF,Okao Airport +OKY,YBOK,Oakey Army Aviation Centre +OLA,ENOL,Ørland Airport +OLB,LIEO,Olbia Costa Smeralda Airport +OLC,SDCG,Senadora Eunice Micheles Airport +OLD,KOLD,Dewitt Field - Old Town Municipal Airport +OLE,KOLE,Cattaraugus County-Olean Airport +OLF,KOLF,L M Clayton Airport +OLI,BIRF,Rif Airport +OLJ,NVSZ,North West Santo Airport +OLK,SGOL,Aeródromo de Fuerte +OLL,FCOD,Oyo Ollombo Airport +OLM,KOLM,Olympia Regional Airport +OLN,SAVM,Lago Musters Airport +OLO,LKOL,Olomouc Airport +OLP,YOLD,Olympic Dam Airport +OLQ,AYOV,Olsobip Airport +OLR,OASL,Salerno Airport +OLS,KOLS,Nogales International Airport +OLU,KOLU,Columbus Municipal Airport +OLV,KOLV,Olive Branch Airport +OLY,KOLY,Olney Noble Airport +OLZ,UEMO,Olyokminsk Airport +OMA,KOMA,Eppley Airfield +OMB,FOOH,Omboue Hospital Airport +OMC,RPVO,Ormoc Airport +OMD,FYOG,Oranjemund Airport +OME,PAOM,Nome Airport +OMF,OJMF,King Hussein Air College +OMG,FYOE,Omega Airport +OMH,OITR,Urmia Airport +OMI,OIAJ,Omidiyeh Airport +OMJ,RJDU,JMSDF Omura Air Base +OMK,KOMK,Omak Airport +OMM,OOMX,Marmul Airport +OMN,UTTZ,Zomin Airport +OMO,LQMO,Mostar International Airport +OMR,LROD,Oradea International Airport +OMS,UNOO,Omsk Central Airport +ONA,KONA,Winona Municipal Airport Max Conrad Field +ONB,AYQQ,Ononge Airport +OND,FYOA,Ondangwa Airport +ONG,YMTI,Mornington Island Airport +ONH,KN66,Albert S Nader Regional Airport +ONI,WABD,Moanamani Airport +ONJ,RJSR,Odate Noshiro Airport +ONK,UERO,Olenyok Airport +ONL,KONL,O'Neill Municipal Airport–John L Baker Field +ONM,KONM,Socorro Municipal Airport +ONO,KONO,Ontario Municipal Airport +ONP,KONP,Newport Municipal Airport +ONQ,LTAS,Zonguldak Çaycuma Airport +ONR,YMNK,Monkira Airport +ONS,YOLW,Onslow Airport +ONT,KONT,Ontario International Airport +ONU,NFOL,Ono-i-Lau Airport +ONX,MPEJ,Enrique Adolfo Jimenez Airport +ONY,KONY,Olney Municipal Airport +OOA,KOOA,Oskaloosa Municipal Airport +OOD,YKDD,Koodaideri Mine Airport +OOK,PAOO,Toksook Bay Airport +OOL,YBCG,Gold Coast Airport +OOM,YCOM,Cooma Snowy Mountains Airport +OOR,YMOO,Mooraberree Airport +OOT,NGON,Onotoa Airport +OPA,BIKP,Kópasker Airport +OPB,AYOY,Open Bay Airport +OPF,KOPF,Miami-Opa Locka Executive Airport +OPI,YOEN,Oenpelli Airport +OPL,KOPL,St Landry Parish Ahart Field +OPO,LPPR,Francisco de Sá Carneiro Airport +OPP,SNSM,Salinópolis Airport +OPS,SBSI,Presidente João Batista Figueiredo Airport +OPU,AYBM,Balimo Airport +OPW,FYOP,Opuwa Airport +OQN,UTKK,Kokand Airport +ORA,SASO,Orán Airport +ORB,ESOE,Örebro Airport +ORC,SKOE,Orocue Airport +ORD,KORD,Chicago O'Hare International Airport +ORE,LFOZ,Orléans–Saint-Denis-de-l'Hôtel Airport +ORF,KORF,Norfolk International Airport +ORG,SMZO,Zorg en Hoop Airport +ORH,KORH,Worcester Regional Airport +ORJ,SYOR,Orinduik Airport +ORK,EICK,Cork International Airport +ORL,KORL,Orlando Executive Airport +ORM,EGBK,Sywell Aerodrome +ORN,DAOO,Oran Es-Sénia (Ahmed Ben Bella) International Airport +ORO,MHYR,Yoro Airport +ORP,FBOR,Orapa Airport +ORR,YYOR,Yorketown Airport +ORT,PAOR,Northway Airport +ORU,SLOR,Juan Mendoza International Airport +ORV,PFNO,Robert (Bob) Curtis Memorial Airport +ORW,OPOR,Ormara Airport +ORX,SNOX,Oriximiná Airport +ORY,LFPO,Paris-Orly Airport +OSB,KK15,Grand Glaize Osage Beach Airport +OSC,KOSC,Oscoda Wurtsmith Airport +OSD,ESNZ,Åre Östersund Airport +OSE,AYOM,Omora Airport +OSG,AYZS,Ossima Airport +OSH,KOSH,Wittman Regional Airport +OSI,LDOS,Osijek Airport +OSK,ESMO,Oskarshamn Airport +OSL,ENGM,Oslo-Gardermoen International Airport +OSM,ORBM,Mosul International Airport +OSN,RKSO,Osan Air Base +OSO,YOSB,Osborne Mine Airport +OSR,LKMT,Leoš Janáček Airport Ostrava +OSS,UAFO,Osh International Airport +OST,EBOS,Ostend-Bruges International Airport +OSU,KOSU,The Ohio State University Airport - Don Scott Field +OSW,UWOR,Orsk Airport +OSX,KOSX,Kosciusko Attala County Airport +OSY,ENNM,Namsos Airport +OTC,FTTL,Bol-Berim Airport +OTG,KOTG,Worthington Municipal Airport +OTH,KOTH,Southwest Oregon Regional Airport +OTI,WAEW,Pitu Airport +OTJ,FYOW,Otjiwarongo Airport +OTK,KTMK,Tillamook Airport +OTL,GQNB,Boutilimit Airport +OTM,KOTM,Ottumwa Regional Airport +OTN,2IG4,Ed-Air Airport +OTP,LROP,Bucharest Henri Coandă International Airport +OTR,MRCC,Coto 47 Airport +OTS,K74S,Anacortes Airport +OTU,SKOT,Otu Airport +OTZ,PAOT,Ralph Wien Memorial Airport +OUA,DFFD,Ouagadougou Thomas Sankara International Airport +OUD,GMFO,Oujda Angads Airport +OUE,FCOU,Ouesso Airport +OUG,DFCC,Ouahigouya Airport +OUH,FAOH,Oudtshoorn Airport +OUI,LFEC,Ouessant Airport +OUL,EFOU,Oulu Airport +OUN,KOUN,University of Oklahoma Westheimer Airport +OUR,FKKI,Batouri Airport +OUS,SDOU,Jornalista Benedito Pimentel Airport +OUT,FTTS,Bousso Airport +OUZ,GQPZ,Tazadit Airport +OVA,FMSL,Bekily Airport +OVB,UNNT,Novosibirsk Tolmachevo Airport +OVD,LEAS,Asturias Airport +OVE,KOVE,Oroville Municipal Airport +OVG,FAOB,Overberg Airport +OVL,SCOV,El Tuqui Airport +OVR,SAZF,Olavarria Airport +OVS,USHS,Sovetskiy Airport +OWA,KOWA,Owatonna Degner Regional Airport +OWB,KOWB,Owensboro Daviess County Airport +OWD,KOWD,Norwood Memorial Airport +OWK,KOWK,Central Maine/Norridgewock Airport +OXB,GGOV,Osvaldo Vieira International Airport +OXC,KOXC,Waterbury Oxford Airport +OXD,KOXD,Miami University Airport +OXF,EGTK,London Oxford Airport +OXR,KOXR,Oxnard Airport +OXY,YMNY,Morney Airport +OYA,SATG,Goya Airport +OYE,FOGO,Oyem Airport +OYK,SBOI,Oiapoque Airport +OYL,HKMY,Moyale Airport +OYN,YOUY,Ouyen Airport +OYO,SAZH,Tres Arroyos Airport +OYP,SOOG,Saint-Georges-de-l'Oyapock Airport +OZA,KOZA,Ozona Municipal Airport +OZC,RPMO,Labo Airport +OZG,GMAZ,Zagora Airport +OZH,UKDE,Zaporizhzhia International Airport +OZP,LEMO,Moron Air Base +OZR,KOZR,Cairns AAF (Fort Rucker) Air Field +OZZ,GMMZ,Ouarzazate International Airport +PAA,VYPA,Hpa-N Airport +PAB,VEBU,Bilaspur Airport +PAC,MPMG,Marcos A. Gelabert International Airport +PAD,EDLP,Paderborn Lippstadt Airport +PAE,KPAE,Seattle Paine Field International Airport +PAF,HUPA,Pakuba Airport +PAG,RPMP,Pagadian Airport +PAH,KPAH,Barkley Regional Airport +PAJ,OPPC,Parachinar Airport +PAK,PHPA,Port Allen Airport +PAL,SKPQ,German Olano Air Base +PAM,KPAM,Tyndall Air Force Base +PAN,VTSK,Pattani Airport +PAO,KPAO,Palo Alto Airport +PAP,MTPP,Toussaint Louverture International Airport +PAQ,PAAQ,"Warren ""Bud"" Woods Palmer Municipal Airport" +PAS,LGPA,Paros National Airport +PAT,VEPT,Jay Prakash Narayan Airport +PAU,VYPK,Pauk Airport +PAV,SBUF,Paulo Afonso Airport +PAX,MTPX,Port-de-Paix Airport +PAY,WBKP,Pamol Airport +PAZ,MMPA,El Tajín National Airport +PBA,SDLO,Fábio Perini Airport +PBB,SSPN,Paranaíba Airport +PBC,MMPB,Hermanos Serdán International Airport +PBD,VAPR,Porbandar Airport +PBE,SKPR,Puerto Berrio Airport +PBF,KPBF,"Pine Bluff Regional Airport, Grider Field" +PBG,KPBG,Plattsburgh International Airport +PBH,VQPR,Paro International Airport +PBI,KPBI,President Donald J. Trump International Airport +PBJ,NVSI,Tavie Airport +PBL,SVPC,General Bartolome Salom International Airport +PBM,SMJP,Johan Adolf Pengel International Airport +PBN,FNPA,Porto Amboim Airport +PBO,YPBO,Paraburdoo Airport +PBP,MRIA,Islita Airport +PBQ,SWPM,Pimenta Bueno Airport +PBR,MGPB,Puerto Barrios Airport +PBU,VYPT,Putao Airport +PBX,SWPQ,Fazenda Piraguassu Airport +PBZ,FAPG,Plettenberg Bay Airport +PCA,PAOC,Portage Creek Airport +PCB,WIHP,Pondok Cabe Air Base +PCD,KPDC,Prairie Du Chien Municipal Airport +PCF,FAPS,Potchefstroom Airport +PCH,MHPC,Palacios Airport +PCL,SPCL,Cap FAP David Abenzur Rengifo International Airport +PCN,NZPN,Picton Aerodrome +PCO,MMPL,Punta Colorada Airport +PCP,FPPR,Principe Airport +PCR,SKPC,German Olano Airport +PCS,SNPC,Picos Airport +PCT,K39N,Princeton Airport +PCU,KM13,Poplarville Pearl River County Airport +PDA,SKPD,Obando Cesar Gaviria Trujillo Airport +PDC,NWWQ,Mueo Airport +PDD,FQPO,Ponta do Ouro Airport +PDE,YPDI,Pandie Pandie Airport +PDF,SNRD,Prado Airport +PDG,WIPT,Minangkabau International Airport +PDI,AYPD,Pindiu Airport +PDK,KPDK,DeKalb Peachtree Airport +PDL,LPPD,João Paulo II Airport +PDM,MPPD,Capt. J. Montenegro Airport +PDN,YPDA,Parndana Airport +PDO,WIPQ,Pendopo Airport +PDP,SULS,Capitan Corbeta CA Curbelo International Airport +PDS,MMPG,Piedras Negras International Airport +PDT,KPDT,Eastern Oregon Regional Airport at Pendleton +PDU,SUPU,Tydeo Larre Borges Airport +PDV,LBPD,Plovdiv International Airport +PDX,KPDX,Portland International Airport +PDZ,SVPE,Pedernales Airport +PEA,YPSH,Penneshaw Airport +PED,LKPD,Pardubice Airport +PEE,USPP,Perm International Airport +PEF,EDCP,Peenemünde Airport +PEG,LIRZ,Perugia San Francesco d'Assisi – Umbria International Airport +PEH,SAZP,Comodoro Pedro Zanni Airport +PEI,SKPE,Matecaña International Airport +PEK,ZBAA,Beijing Capital International Airport +PEL,FXPG,Pelaneng Airport +PEM,SPTU,Padre Aldamiz International Airport +PEN,WMKP,Penang International Airport +PEQ,KPEQ,Pecos Municipal Airport +PER,YPPH,Perth International Airport +PES,ULPB,Petrozavodsk Airport +PET,SBPK,João Simões Lopes Neto International Airport +PEU,MHPL,Puerto Lempira Airport +PEV,LHPP,Pécs-Pogány International Airport +PEW,OPPS,Bacha Khan International Airport +PEX,UUYP,Pechora Airport +PEY,YPNG,Penong Airport +PEZ,UWPP,Penza Airport +PFB,SBPF,Lauro Kurtz Airport +PFC,KPFC,Pacific City State Airport +PFO,LCPH,Paphos International Airport +PFQ,OITP,Parsabad-Moghan Airport +PFR,FZVS,Ilebo Airport +PGA,KPGA,Page Municipal Airport +PGB,AYPC,Pangoa Airport +PGC,KW99,Grant County Airport +PGD,KPGD,Punta Gorda Airport +PGF,LFMP,Perpignan-Rivesaltes (Llabanère) Airport +PGH,VIPT,Pantnagar Airport +PGI,FNCH,Chitato Airport +PGK,WIPK,Depati Amir Airport +PGL,KPQL,Trent Lott International Airport +PGN,AYPG,Pangia Airport +PGO,KPSO,Stevens Field +PGQ,WAME,Buli Airport +PGR,KPGR,Kirk Field +PGU,OIBP,Persian Gulf International Airport +PGV,KPGV,Pitt-Greenville Airport +PGX,LFBX,Périgueux-Bassillac Airport +PGZ,SBPG,Ponta Grossa Airport - Comandante Antonio Amilton Beraldo +PHA,VVPR,Phan Rang Airport +PHB,SBPB,Parnaíba - Prefeito Doutor João Silva Filho International Airport +PHC,DNPO,Port Harcourt International Airport +PHD,KPHD,Harry Clever Field +PHE,YPPD,Port Hedland International Airport +PHF,KPHF,Newport News Williamsburg International Airport +PHI,SNYE,Pinheiro Airport +PHK,KPHK,Palm Beach County Glades Airport +PHL,KPHL,Philadelphia International Airport +PHN,KPHN,St Clair County International Airport +PHO,PAPO,Point Hope Airport +PHP,KPHP,Philip Airport +PHQ,YTMO,The Monument Airport +PHR,NFND,Nanuku Airport +PHS,VTPP,Phitsanulok Airport +PHT,KPHT,Henry County Airport +PHW,FAPH,Hendrik Van Eck Airport +PHX,KPHX,Phoenix Sky Harbor International Airport +PHY,VTPB,Phetchabun Airport +PIA,KPIA,General Wayne A. Downing Peoria International Airport +PIB,KPIB,Hattiesburg Laurel Regional Airport +PIC,MBPI,Pine Cay Airport +PIE,KPIE,St. Petersburg Clearwater International Airport +PIH,KPIH,Pocatello Regional Airport +PIK,EGPK,Glasgow Prestwick Airport +PIL,SGPI,Aeródromo Don Carlos Miguel Gimenez +PIM,KPIM,Harris County Airport +PIN,SWPI,Parintins Airport +PIO,SPSO,Captain Renán Elías Olivera International Airport +PIP,PAPN,Pilot Point Airport +PIQ,SYPL,Pipillipai Airport +PIR,KPIR,Pierre Regional Airport +PIS,LFBI,Poitiers-Biard Airport +PIT,KPIT,Pittsburgh International Airport +PIU,SPUR,PAF Captain Guillermo Concha Iberico International Airport +PIV,SNPX,Pirapora Airport +PIW,CZMN,Pikwitonei Airport +PIX,LPPI,Pico Airport +PIZ,PPIZ,Point Lay LRRS Airport +PJA,ESUP,Pajala Airport +PJB,KPAN,Payson Airport +PJC,SGPJ,Aeropuerto Nacional Dr. Augusto Roberto Fuster +PJG,OPPG,Panjgur Airport +PJM,MRPJ,Puerto Jimenez Airport +PKA,PAPK,Napaskiak Airport +PKB,KPKB,Mid Ohio Valley Regional Airport +PKC,UHPP,Yelizovo Airport +PKD,KPKD,Park Rapids Municipal Airport Konshok Field +PKE,YPKS,Parkes Airport +PKF,KPKF,Park Falls Municipal Airport +PKG,WMPA,Pulau Pangkor Airport +PKJ,MGPG,Playa Grande Airport +PKK,VYPU,Pakhokku Airport +PKM,SYPK,Port Kaituma Airport +PKN,WAOI,Iskandar Airport +PKO,DBBP,Parakou Airport +PKP,NTGP,Puka Puka Airport +PKR,VNPK,Pokhara Domestic Airport +PKT,YPKT,Port Keats Airport +PKU,WIBB,Sultan Syarif Kasim II International Airport / Roesmin Nurjadin AFB +PKV,ULOO,Princess Olga Pskov International Airport +PKW,FBSP,Selebi Phikwe Airport +PKX,ZBAD,Beijing Daxing International Airport +PKY,WAGG,Tjilik Riwut Airport +PKZ,VLPS,Pakse International Airport +PLD,MRCR,Playa Samara/Carrillo Airport +PLE,AYPB,Paiela Airport +PLF,FTTP,Pala Airport +PLJ,MZPL,Placencia Airport +PLK,KPLK,M. Graham Clark Downtown Airport +PLL,SBMN,Ponta Pelada Airport / Manaus Air Base +PLM,WIPP,Sultan Mahmud Badaruddin II Airport +PLN,KPLN,Pellston Regional Airport of Emmet County Airport +PLO,YPLC,Port Lincoln Airport +PLQ,EYPA,Palanga International Airport +PLR,KPLR,St Clair County Airport +PLS,MBPV,Providenciales International Airport +PLT,SKPL,Plato Airport +PLU,SBBH,Pampulha - Carlos Drummond de Andrade Airport +PLV,UKHP,Suprunovka Airport +PLW,WAFF,Mutiara - SIS Al-Jufrie Airport +PLX,UASS,Semei International Airport +PLY,KC65,Plymouth Municipal Airport +PLZ,FAPE,Chief Dawid Stuurman International Airport +PMA,HTPE,Pemba Airport +PMB,KPMB,Pembina Municipal Airport +PMC,SCTE,El Tepual International Airport +PMD,KPMD,Palmdale Regional Airport / USAF Plant 42 Airport +PMF,LIMP,Parma Airport +PMG,SBPP,Ponta Porã Airport +PMH,KPMH,Greater Portsmouth Regional Airport +PMI,LEPA,Palma de Mallorca Airport +PMK,YPAM,Palm Island Airport +PML,PAAL,Port Moller Airport +PMN,AYPQ,Pumani Airport +PMO,LICJ,Falcone–Borsellino Airport +PMP,AYPJ,Pimaga Airport +PMQ,SAWP,Perito Moreno Jalil Hamer Airport +PMR,NZPM,Palmerston North Airport +PMS,OSPR,Palmyra Airport +PMT,SYPM,Paramakatoi Airport +PMV,SVMG,Del Caribe Santiago Mariño International Airport +PMW,SBPJ,Brigadeiro Lysias Rodrigues Airport +PMY,SAVY,El Tehuelche Airport +PMZ,MRPM,Palmar Sur Airport +PNA,LEPP,Pamplona Airport +PNB,SBPN,Porto Nacional Airport +PNC,KPNC,Ponca City Regional Airport +PNE,KPNE,Northeast Philadelphia Airport +PNG,SSPG,Paranaguá Airport +PNH,VDPP,Phnom Penh International Airport +PNI,PTPN,Pohnpei International Airport +PNK,WIOO,Supadio International Airport +PNL,LICG,Pantelleria Airport +PNN,KPNN,Princeton Municipal Airport +PNP,AYGR,Girua Airport +PNQ,VAPO,Pune International Airport +PNR,FCPP,Antonio Agostinho-Neto International Airport +PNS,KPNS,Pensacola International Airport +PNT,SCNT,Lieutenant Julio Gallardo Airport +PNU,KU55,Panguitch Municipal Airport +PNV,EYPP,Panevėžys Air Base +PNX,KGYI,North Texas Regional Airport Perrin Field +PNY,VOPC,Pondicherry Airport +PNZ,SBPL,Senador Nilo Coelho Airport +POA,SBPA,Porto Alegre-Salgado Filho International Airport +POB,KPOB,Pope Field +POC,KPOC,Brackett Field +POD,GOSP,Podor Airport +POE,KPOE,Polk Army Air Field +POF,KPOF,Poplar Bluff Municipal Airport +POG,FOOG,Port Gentil International Airport +POH,KPOH,Pocahontas Municipal Airport +POI,SLPO,Capitan Nicolas Rojas Airport +POJ,SNPD,Patos de Minas Airport +POL,FQPB,Pemba Airport +POM,AYPY,Port Moresby Jacksons International Airport +PON,MGPP,Poptún Airport +POO,SBPC,Poços de Caldas - Embaixador Walther Moreira Salles Airport +POP,MDPP,Gregorio Luperon International Airport +POR,EFPO,Pori Airport +POS,TTPP,Piarco International Airport +POT,MKKJ,Ken Jones Airport +POU,KPOU,Dutchess County Airport +POV,LZPW,Prešov Air Base +POW,LJPZ,Portorož Airport +POX,LFPT,Pontoise-Cormeilles Aerodrome +POY,KPOY,Powell Municipal Airport +POZ,EPPO,Poznań-Ławica Airport +PPA,KPPA,Perry Lefors Field +PPB,SBDN,Presidente Prudente Airport +PPC,PAPR,Prospect Creek Airport +PPE,MMPE,Mar de Cortés International Airport +PPF,KPPF,Tri-City Airport +PPG,NSTU,Pago Pago International Airport +PPH,SVPH,Paraitepuy Airstrip +PPI,YPIR,Port Pirie Airport +PPK,UACP,Petropavl International Airport +PPL,VNPL,Phaplu Airport +PPM,KPMP,Pompano Beach Airpark +PPN,SKPP,Guillermo León Valencia Airport +PPP,YBPN,Proserpine Whitsunday Coast Airport +PPQ,NZPP,Paraparaumu Airport +PPR,WIDE,Tuanku Tambusai Airport +PPS,RPVP,Puerto Princesa International Airport / PAF Antonio Bautista Air Base +PPT,NTAA,Fa'a'ā International Airport +PPU,VYPP,Hpapun Airport +PPW,EGEP,Papa Westray Airport +PPY,SNZA,Pouso Alegre Airport +PPZ,SVDZ,Puerto Paez Airport +PQC,VVPQ,Phú Quốc International Airport +PQI,KPQI,Presque Isle International Airport +PQM,MMPQ,Palenque International Airport +PQQ,YPMQ,Port Macquarie Airport +PQT,BGQE,Qeqertaq Heliport +PRA,SAAP,General Urquiza Airport +PRB,KPRB,Paso Robles Municipal Airport +PRC,KPRC,Prescott Regional Airport - Ernest A. Love Field +PRD,YPDO,Pardoo Airport +PRG,LKPR,Václav Havel Airport Prague +PRH,VTCP,Phrae Airport +PRI,FSPP,Praslin Island Airport +PRK,FAPK,Prieska Airport +PRM,LPPM,Portimão Airport +PRN,BKPR,Priština Adem Jashari International Airport +PRO,KPRO,Perry Municipal Airport +PRP,LFKO,Propriano Airport +PRQ,SARS,Termal Airport +PRR,SYPR,Paruima Airport +PRS,AGGP,Parasi Airport +PRU,VYPY,Pyay Airport +PRV,LKPO,Přerov Air Base +PRW,K5N2,Prentice Airport +PRX,KPRX,Cox Field +PRY,FAWB,Wonderboom Airport +PRZ,KS39,Prineville Airport +PSA,LIRP,Pisa International Airport +PSB,KPSB,Mid-State Regional Airport +PSC,KPSC,Tri Cities Airport +PSD,HEPS,Port Said International Airport +PSE,TJPS,Mercedita International Airport +PSF,KPSF,Pittsfield Municipal Airport +PSG,PAPG,Petersburg James A Johnson Airport +PSH,EDXO,Sankt Peter-Ording Airport +PSI,OPPI,Pasni Airport +PSJ,WAFP,Kasiguncu Airport +PSK,KPSK,New River Valley Airport +PSL,EGPT,Perth/Scone Airport +PSM,KPSM,Portsmouth International Airport at Pease +PSN,KPSN,Palestine Municipal Airport +PSO,SKPS,Antonio Nariño Airport +PSP,KPSP,Palm Springs International Airport +PSR,LIBP,Abruzzo Airport +PSS,SARP,Libertador Gral D Jose De San Martin Airport +PSU,WIOP,Pangsuma Airport +PSW,SNOS,José Figueiredo Municipal Airport +PSX,KPSX,Palacios Municipal Airport +PSY,SFAL,Port Stanley Airport +PSZ,SLPS,Capitán Av. Salvador Ogaya G. airport +PTA,PALJ,Port Alsworth Airport +PTB,KPTB,Dinwiddie County Airport +PTD,PAAP,Port Alexander Seaplane Base +PTF,NFFO,Malolo Lailai Island Airport +PTG,FAPP,Polokwane International Airport +PTH,PAPH,Port Heiden Airport +PTJ,YPOD,Portland Airport +PTK,KPTK,Oakland County International Airport +PTM,SVPT,Palmarito Airport +PTN,KPTN,Harry P Williams Memorial Airport +PTO,SBPO,Juvenal Loureiro Cardoso Airport +PTP,TFFR,Maryse Condé International Airport +PTQ,SNMZ,Porto de Moz Airport +PTS,KPTS,Atkinson Municipal Airport +PTT,KPTT,Pratt Regional Airport +PTU,PAPM,Platinum Airport +PTV,KPTV,Porterville Municipal Airport +PTW,KPTW,Heritage Field +PTX,SKPI,Pitalito Airport +PTY,MPTO,Tocumen International Airport +PTZ,SESM,Rio Amazonas Airport +PUB,KPUB,Pueblo Memorial Airport +PUC,KPUC,Carbon County Regional Airport / Buck Davis Field +PUD,SAWD,Puerto Deseado Airport +PUE,MPOA,Puerto Obaldía Airport +PUF,LFBP,Pau Pyrénées Airport +PUG,YPAG,Port Augusta Airport +PUJ,MDPC,Punta Cana International Airport +PUK,NTGQ,Pukaruha Airport +PUN,FZOP,Punia Airport +PUP,DFCP,Po Airport +PUQ,SCCI,President Carlos Ibáñez International Airport +PUR,SLPR,Puerto Rico Airport +PUS,RKPK,Gimhae International Airport +PUT,VOPN,Sri Sathya Sai Airport +PUU,SKAS,Tres De Mayo Airport +PUV,NWWP,Poum / Malabou Airport +PUW,KPUW,Pullman-Moscow Regional Airport +PUX,SCPV,El Mirador Airport +PUY,LDPL,Pula Airport +PUZ,MNPC,Puerto Cabezas Airport +PVA,SKPV,El Embrujo Airport +PVC,KPVC,Provincetown Municipal Airport +PVD,KPVD,Rhode Island T. F. Green International Airport +PVF,KPVF,Placerville Airport +PVG,ZSPD,Shanghai Pudong International Airport +PVH,SBPV,Governador Jorge Teixeira de Oliveira International Airport +PVI,SSPI,Paranavaí Airport +PVK,LGPZ,Aktion National Airport +PVL,KPBX,Pike County Airport Hatcher Field +PVO,SEPV,Reales Tamarindos Airport +PVR,MMPR,Puerto Vallarta International Airport +PVS,UHMD,Provideniya Bay Airport +PVU,KPVU,Provo Municipal Airport +PVW,KPVW,Hale County Airport +PWA,KPWA,Wiley Post Airport +PWD,KPWD,Sher-Wood Airport +PWE,UHMP,Pevek Airport +PWI,HAPW,Beles Airport +PWK,KPWK,Chicago Executive Airport +PWL,WAHP,Jenderal Besar Soedirman Airport +PWM,KPWM,Portland International Jetport +PWN,MYCP,Pitts Town Airport +PWO,FZQC,Pweto Airport +PWQ,UASP,Pavlodar International Airport +PWT,KPWT,Bremerton National Airport +PWY,KPNA,Ralph Wenz Field +PXA,WIPY,Atung Bungsu Airport +PXH,YPMH,Prominent Hill Airport +PXL,KP10,Polacca Airport +PXM,MMPS,Puerto Escondido International Airport +PXO,LPPS,Porto Santo Airport +PXR,VTUJ,Surin Airport +PXU,VVPK,Pleiku Airport +PYA,SKVL,Velásquez Airport +PYB,VEJP,Jeypore Airport +PYE,NCPY,Tongareva Airport +PYH,SVPA,Cacique Aramare Airport +PYJ,UERP,Polyarny Airport +PYK,OIIP,Payam International Airport +PYM,KPYM,Plymouth Municipal Airport +PYO,SEPT,Putumayo Airport +PYR,LGAD,Andravida Air Base +PYS,CA92,Paradise Skypark Airport +PYT,SNZR,Pedro Rabelo de Souza Airport +PYY,VTCI,Pai Airport +PZA,SKPZ,Paz de Ariporo Airport +PZB,FAPM,Pietermaritzburg Airport +PZH,OPZB,Zhob Airport +PZI,ZUZH,Panzhihua Bao'anying Airport +PZK,NCPK,Pukapuka Island Airport +PZL,FADQ,Zulu Inyala Airport +PZO,SVPR,General Manuel Carlos Piar International Airport +PZS,SCTC,Maquehue Airport +PZU,HSPN,Port Sudan New International Airport +PZY,LZPP,Piešťany Airport +QBC,CYBD,Bella Coola Airport +QCH,SNCX,Colatina Airport +QCP,SNKN,Currais Novos Airport +QCY,EGXC,RAF Coningsby +QDB,SSKS,Cachoeira do Sul Airport +QDV,SBJD,Comte. Rolim Adolfo Amaro–Jundiaí State Airport +QDY,RKTA,Taean Airport +QFG,BGET,Eqalugaarsuit Heliport +QFI,BGIG,Iginniarfik Heliport +QFN,BGFD,Narsarmijit Heliport +QGF,SSNG,Montenegro Airport +QGP,SNGN,Garanhuns Airport +QGQ,BGAT,Attu Heliport +QGU,RJNG,Gifu Airport +QHR,HAHM,Harar Meda Airport +QHU,EDXJ,Husum-Schwesing Airport +QHV,SSNH,Novo Hamburgo Airport +QIG,SNIG,Iguatu Airport +QIT,SNIP,Itapetinga Airport +QJE,BGKT,Kitsissuarsuit Heliport +QJH,BGQT,Qassimiut Heliport +QJI,BGIT,Ikamiut Heliport +QMJ,OIAI,Shahid Asiyaee Airport +QNS,SBCO,Canoas Air Force Base +QOQ,BGSO,Saarloq Heliport +QOW,DNIM,Sam Mbakwe International Cargo Airport +QPG,WSAP,Paya Lebar Air Base +QPW,BGKA,Kangaatsiaq Heliport +QRA,FAGM,Rand Airport +QRM,YNRM,Narromine Airport +QRO,MMQT,Querétaro Intercontinental Airport +QRW,DNSU,Warri Airport +QRY,BGIK,Ikerassaarsuk Heliport +QSC,SDSC,Mário Pereira Lopes–São Carlos International Airport +QSF,DAAS,Ain Arnat Airport +QSI,HTMS,Moshi Airport +QSR,LIRI,Salerno Costa d'Amalfi Airport +QSX,SYNA,New Amsterdam Airport +QSZ,ZWSC,Shache Airport +QUB,HLUB,Ubari Airport +QUG,EGHR,Goodwood Aerodrome +QUO,DNAI,Akwa Ibom International Airport +QUV,BGAQ,Aappilattoq Heliport +QUW,BGAS,Ammassivik Heliport +RAB,AYTK,Tokua Airport +RAC,KRAC,John H Batten Airport +RAE,OERR,Arar Domestic Airport +RAF,SAFR,Rafaela Airport +RAG,NZRA,Raglan Aerodrome +RAH,OERF,Rafha Domestic Airport +RAI,GVNP,Nelson Mandela International Airport +RAJ,VARK,Rajkot Airport +RAK,GMMX,Marrakesh Menara Airport +RAL,KRAL,Riverside Municipal Airport +RAM,YRNG,Ramingining Airport +RAN,LIDR,Ravenna Airport +RAO,SBRP,Leite Lopes Airport +RAP,KRAP,Rapid City Regional Airport +RAQ,WAWR,Sugimanuru Airport +RAR,NCRG,Rarotonga International Airport +RAS,OIGG,Sardar-e-Jangal Airport +RAV,SKCN,Cravo Norte Airport +RAX,AYYO,Oram Airport +RAZ,OPRT,Rawalakot Airport +RBA,GMME,Rabat-Salé Airport +RBB,SWBR,Borba Airport +RBC,YROI,Robinvale Airport +RBD,KRBD,Dallas Executive Airport +RBE,VDRK,Ratanakiri Airport +RBF,KL35,Big Bear City Airport +RBG,KRBG,Roseburg Regional Airport +RBI,NFFR,Rabi Island Airport +RBJ,RJCR,Rebun Airport +RBK,KF70,French Valley Airport +RBL,KRBL,Red Bluff Municipal Airport +RBM,EDMS,Straubing Airport +RBO,SLRB,Roboré Airport +RBP,AYRE,Raba Raba Airport +RBQ,SLRQ,Rurrenabaque Airport +RBR,SBRB,Rio Branco-Plácido de Castro International Airport +RBS,YORB,Orbost Airport +RBT,HKMB,Marsabit Airport +RBU,YROE,Roebourne Airport +RBV,AGRM,Ramata Airport +RBW,KRBW,Lowcountry Regional Airport +RBX,HSMK,Rumbek Airport +RBY,PARY,Ruby Airport +RCA,KRCA,Ellsworth Air Force Base +RCB,FARB,Richards Bay Airport +RCE,WA09,Roche Harbor Airport +RCH,SKRH,Almirante Padilla Airport +RCK,KRCK,H H Coffield Regional Airport +RCL,NVSR,Redcliffe Airport +RCM,YRMD,Richmond Airport +RCO,LFDN,Rochefort-Saint-Agnant (BA 721) Airport +RCQ,SATR,Reconquista Airport +RCR,KRCR,Fulton County Airport +RCS,EGTO,Rochester Airport +RCU,SAOC,Area De Material Airport +RCY,MYRP,Rum Cay International Airport +RDB,PADG,Red Dog Airport +RDC,SNDC,Redenção Airport +RDD,KRDD,Redding Municipal Airport +RDE,WASM,Merdey Airport +RDG,KRDG,Reading Regional Airport (Carl A Spaatz Field) +RDL,HE36,Bardawil International Airport +RDM,KRDM,Roberts Field +RDN,WMPR,LTS Pulau Redang Airport +RDO,EPRA,Warsaw Radom Airport +RDP,VEDG,Kazi Nazrul Islam Airport +RDR,KRDR,Grand Forks Air Force Base +RDS,SAHS,Rincon De Los Sauces Airport +RDT,GOSR,Richard Toll Airport +RDU,KRDU,Raleigh-Durham International Airport +RDZ,LFCR,Rodez–Aveyron Airport +REA,NTGE,Reao Airport +REB,EDAX,Müritz Airpark +REC,SBRF,Recife/Guararapes - Gilberto Freyre International Airport +RED,KRVL,Mifflin County Airport +REE,8XS8,Reese Airpark +REG,LICR,Reggio Calabria Airport +REI,SOOR,Régina Airport +REL,SAVT,Almirante Marco Andres Zar Airport +REN,UWOO,Orenburg Central Airport +REO,KREO,Rome State Airport +RER,MGRT,Retalhuleu Airport +RES,SARE,Resistencia International Airport +RET,ENRS,Røst Airport +REU,LERS,Reus Airport +REW,VA1G,"Rewa Airport, Chorhata, REWA" +REX,MMRX,General Lucio Blanco International Airport +REY,SLRY,Reyes Airport +REZ,SDRS,Resende Airport +RFA,FEGR,Rafaï Airport +RFD,KRFD,Chicago Rockford International Airport +RFG,KRFG,Rooke Field +RFK,5MS1,Rollang Field +RFN,BIRG,Raufarhöfn Airport +RFP,NTTR,Raiatea Airport +RFR,MRRF,Rio Frio / Progreso Airport +RFS,MNRT,Rosita Airport +RGA,SAWE,Gobernador Ramón Trejo Noel International Airport +RGH,VEBG,Balurghat Airport +RGI,NTTG,Rangiroa Airport +RGK,UNBG,Gorno-Altaysk Airport +RGL,SAWG,Piloto Civil Norberto Fernández International Airport +RGN,VYYY,Yangon International Airport +RGO,ZKHM,Orang (Chongjin) Airport +RGS,LEBG,Burgos Airport +RGT,WIBJ,Japura Airport +RHA,BIRE,Reykhólar Airport +RHD,SANR,Termas de Río Hondo international Airport +RHG,HRYU,Ruhengeri Airport +RHI,KRHI,Rhinelander Oneida County Airport +RHL,YRYH,Roy Hill Station Airport +RHN,FYSA,Skorpion Mine Airport +RHO,LGRP,"Rhodes International Airport ""Diagoras""" +RHP,VNRC,Ramechhap Airport +RHV,KRHV,Reid-Hillview Airport of Santa Clara County +RIA,SBSM,Santa Maria Airport +RIB,SLRI,Capitán Av. Selin Zeitun Lopez Airport +RIC,KRIC,Richmond International Airport +RID,KRID,Richmond Municipal Airport +RIE,KRPD,Rice Lake Regional Airport - Carl's Field +RIF,KRIF,Richfield Municipal Airport +RIG,SJRG,Rio Grande Regional Airport +RIH,MPSM,Scarlett Martinez International Airport +RIJ,SPJA,Juan Simons Vela Airport +RIL,KRIL,Garfield County Regional Airport +RIM,SPLN,San Nicolas Airport +RIN,AGRC,Ringi Cove Airport +RIR,KRIR,Flabob Airport +RIS,RJER,Rishiri Airport +RIV,KRIV,March Air Reserve Base +RIW,KRIW,Central Wyoming Regional Airport +RIX,EVRA,Riga International Airport +RIY,OYRN,Riyan International Airport +RIZ,ZSRZ,Rizhao Shanzihe Airport +RJA,VORY,Rajahmundry Airport +RJB,VNRB,Rajbiraj Airport +RJH,VGRJ,Shah Makhdum Airport +RJK,LDRI,Rijeka Airport +RJL,LELO,Logroño-Agoncillo Airport +RJM,WASN,Marinda Airport +RJN,OIKR,Rafsanjan Airport +RKA,NTKK,Aratika Nord Airport +RKD,KRKD,Knox County Regional Airport +RKE,EKRK,Copenhagen Roskilde Airport +RKH,KUZA,Rock Hill - York County Airport +RKP,KRKP,Aransas County Airport +RKR,KRKR,Robert S Kerr Airport +RKS,KRKS,Southwest Wyoming Regional Airport +RKT,OMRK,Ras Al Khaimah International Airport +RKU,AYRK,Kairuku Airport +RKV,BIRK,Reykjavík Domestic Airport +RKW,KRKW,Rockwood Municipal Airport +RKZ,ZURK,Xigaze Peace Airport / Shigatse Air Base +RLD,KRLD,Richland Airport +RLG,ETNL,Rostock-Laage Airport +RLK,ZBYZ,Bayannur Tianjitai Airport +RLO,SAOS,Valle Del Conlara International Airport +RLT,DRZL,Arlit Airport +RMA,YROM,Roma Airport +RMB,OOBR,Buraimi Airport +RMD,VORG,Basanth Nagar Airport +RME,KRME,Griffiss International Airport +RMF,HEMA,Marsa Alam International Airport +RMG,KRMG,Richard B Russell Airport +RMI,LIPR,Federico Fellini International Airport +RMK,YREN,Renmark Airport +RML,VCCC,Colombo Ratmalana International Airport +RMN,AYRG,Rumginae Airport +RMO,LUKK,Chişinău International Airport +RMQ,RCMQ,Taichung International Airport / Ching Chuang Kang Air Base +RMS,ETAR,Ramstein Air Base +RMT,NTAM,Rimatara Airport +RMU,LEMI,Region of Murcia International Airport +RMY,KMPI,Mariposa Yosemite Airport +RMZ,USTJ,Tobolsk Remezov Airport +RNA,AGAR,Ulawa Airport +RNB,ESDF,Ronneby Airport +RNC,KRNC,Warren County Memorial Airport +RND,KRND,Randolph Air Force Base +RNE,LFLO,Roanne-Renaison Airport +RNH,KRNH,New Richmond Regional Airport +RNI,MNCI,Corn Island Airport +RNJ,RORY,Yoron Airport +RNL,AGGR,Rennell/Tingoa Airport +RNM,OOGB,Qarn Alam Airport +RNN,EKRN,Bornholm Airport +RNO,KRNO,Reno Tahoe International Airport +RNS,LFRN,Rennes-Saint-Jacques Airport +RNT,KRNT,Renton Municipal Airport +RNU,WBKR,Ranau Airport +RNZ,KRZL,Jasper County Airport +ROA,KROA,Roanoke–Blacksburg Regional Airport +ROB,GLRB,Roberts International Airport +ROC,KROC,Frederick Douglass Greater Rochester International Airport +ROD,FARS,Robertson Airport +ROF,K1O5,Montague-Yreka Rohrer Field +ROG,KROG,Rogers Municipal Airport-Carter Field +ROH,YROB,Robinhood Airport +ROI,VTUV,Roi Et Airport +ROK,YBRK,Rockhampton Airport +ROL,K74V,Roosevelt Municipal Airport +RON,SKPA,Juan Jose Rondon Airport +ROO,SBRD,Maestro Marinho Franco Airport +ROP,PGRO,Rota International Airport +ROR,PTRO,Roman Tmetuchl International Airport +ROS,SAAR,Rosario Islas Malvinas International Airport +ROT,NZRO,Rotorua Regional Airport +ROU,LBRS,Ruse Airport +ROV,URRP,Platov International Airport +ROW,KROW,Roswell Air Center Airport +ROX,KROX,Roseau Municipal Rudy Billberg Field +ROY,SAWM,Rio Mayo Airport +ROZ,LERT,Rota Naval Station Airport +RPA,VNRP,Rolpa Airport +RPB,YRRB,Roper Bar Airport +RPM,YNGU,Ngukurr Airport +RPN,LLIB,Rosh Pina Airport +RPR,VARP,Swami Vivekananda Airport +RPU,SBUY,Urucu Airport +RPX,KRPX,Roundup Airport +RQA,ZWRQ,Ruoqiang Loulan Airport +RQO,KRQO,El Reno Regional Airport +RQW,ORQW,Qayyarah West Airport +RRE,YMRE,Marree Airport +RRG,FIMR,Sir Charles Gaetan Duval Airport +RRJ,SBJR,Jacarepaguá - Roberto Marinho Airport +RRK,VERK,Rourkela Airport +RRL,KRRL,Merrill Municipal Airport +RRR,NTKO,Raroia Airport +RRS,ENRO,Røros Airport +RRT,KRRT,Warroad International Memorial Airport +RRV,YRBR,Robinson River Airport +RSA,SAZR,Santa Rosa Airport +RSB,YRSB,Roseberth Airport +RSD,MYER,Rock Sound International Airport +RSH,PARS,Russian Mission Airport +RSK,WASC,Abresso Airport +RSL,KRSL,Russell Municipal Airport +RSN,KRSN,Ruston Regional Airport +RSS,HSDZ,Damazin Airport +RST,KRST,Rochester International Airport +RSU,RKJY,Yeosu Airport +RSW,KRSW,Southwest Florida International Airport +RTA,NFNR,Rotuma Airport +RTB,MHRO,Juan Manuel Gálvez International Airport +RTC,VARG,Ratnagiri Airport +RTE,SBMT,Campo de Marte Airport +RTG,WATG,Frans Sales Lega Airport +RTI,WATR,David Constantijn Saudale Airport +RTM,EHRD,Rotterdam The Hague Airport +RTN,KRTN,Raton Municipal Airport / Crews Field +RTO,WICB,Budiarto Airport +RTP,YRTP,Rutland Plains Airport +RTS,YRTI,Rottnest Island Airport +RTU,WAQC,Maratua Airport +RTY,YMYT,Merty Merty Airport +RUA,HUAR,Arua Airport +RUD,OIMJ,Shahrud International Airport +RUE,FZMB,Rughenda Airfield +RUG,ZSRG,Rugao Air Base +RUH,OERK,King Khalid International Airport +RUI,KSRR,Sierra Blanca Regional Airport +RUK,VNRK,Rukum Chaurjahari Airport +RUL,VRQM,Maavaarulaa Airport +RUM,VNRT,Rumjatar Airport +RUN,FMEE,Roland Garros Airport +RUP,VERU,Rupsi Airport +RUR,NTAR,Rurutu Airport +RUS,AGGU,Marau Airport +RUT,KRUT,Rutland - Southern Vermont Regional Airport +RUV,MGRB,Rubelsanto Airport +RUY,MHRU,Rioamarillo Airport +RVA,FMSG,Farafangana Airport +RVD,SWLC,General Leite de Castro Airport +RVE,SKSA,Los Colonizadores Airport +RVK,ENRM,"Rørvik Airport, Ryum" +RVN,EFRO,Rovaniemi Airport +RVO,FARI,Reivilo Airport +RVR,KU34,Green River Municipal Airport +RVS,KRVS,Tulsa Riverside Airport +RVT,YNRV,Ravensthorpe Airport +RVV,NTAV,Raivavae Airport +RVY,SURV,Pres. Gral. Óscar D. Gestido Binational Airport +RWF,KRWF,Redwood Falls Municipal Airport +RWI,KRWI,Rocky Mount Wilson Regional Airport +RWL,KRWL,Rawlins Municipal Airport/Harvey Field +RWN,UKLR,Rivne International Airport +RXE,KRXE,Rexburg Madison County Airport +RXS,RPVR,Roxas Airport +RYB,UUBK,Staroselye Airport +RYK,OPRK,Shaikh Zaid Airport +RYL,FLRZ,Royal Zambezi Lodge Airstrip +RYN,LFCY,Royan-Médis Airport +RYO,SAWT,28 de Noviembre Airport +RZA,SAWU,Santa Cruz Airport +RZE,EPRZ,Rzeszów-Jasionka Airport +RZH,UIKP,Preobrazheniye Airport +RZP,RPSD,Cesar Lim Rodriguez (Taytay-Sandoval) Airport +RZR,OINR,Ramsar Airport +RZS,OPSW,Sawan Airport +RZV,LTFO,Rize–Artvin Airport +SAA,KSAA,Shively Field +SAB,TNCS,Juancho E. Yrausquin Airport +SAC,KSAC,Sacramento Executive Airport +SAD,KSAD,Safford Regional Airport +SAE,BGST,Saattut Heliport +SAF,KSAF,Santa Fe Municipal Airport +SAG,VASD,Shirdi International Airport +SAH,OYSN,Sanaa International Airport +SAI,VDSA,Siem Reap-Angkor International Airport +SAK,BIKR,Sauðárkrókur Airport +SAL,MSLP,El Salvador International Airport Saint Óscar Arnulfo Romero y Galdámez +SAN,KSAN,San Diego International Airport +SAP,MHLM,Ramón Villeda Morales International Airport +SAQ,MYAN,San Andros Airport +SAR,KSAR,Sparta Community Airport - Hunter Field +SAS,KSAS,Salton Sea Airport +SAT,KSAT,San Antonio International Airport +SAU,WATS,Sabu-Tardanu Airport +SAV,KSAV,Savannah Hilton Head International Airport +SAW,LTFJ,Istanbul Sabiha Gökçen International Airport +SAZ,GLST,Sasstown Airport +SBA,KSBA,Santa Barbara Municipal Airport +SBB,SVSB,Santa Bárbara de Barinas Airport +SBC,AYSO,Selbang Airport +SBD,KSBD,San Bernardino International Airport +SBE,AYSA,Suabi Airport +SBF,OADS,Sardeh Band Airport +SBG,WITN,Maimun Saleh Airport +SBH,TFFJ,St. Jean Airport +SBI,GUSB,Sambailo Airport +SBJ,SNMX,São Mateus - Ernesto Bonomo Airport +SBK,LFRT,Saint-Brieuc-Armor Airport +SBL,SLSA,Santa Ana Del Yacuma Airport +SBM,KSBM,Sheboygan County Memorial Airport +SBN,KSBN,South Bend International Airport +SBO,K44U,Salina Gunnison Airport +SBP,KSBP,San Luis County Regional Airport +SBQ,OPSB,Sibi Airport +SBR,YSII,Saibai Island Airport +SBS,KSBS,Steamboat Springs Bob Adams Field +SBT,USDA,Sabetta International Airport +SBU,FASB,Springbok Airport +SBV,AYSH,Sabah Airport +SBW,WBGS,Sibu Airport +SBX,KSBX,Shelby Airport +SBY,KSBY,Salisbury Ocean City Wicomico Regional Airport +SBZ,LRSB,Sibiu International Airport +SCB,KSCB,Scribner State Airport +SCC,PASC,Deadhorse Airport +SCD,MHUL,Sulaco Airport +SCE,KUNV,State College Regional Airport +SCF,KSDL,Scottsdale Airport +SCG,YSPK,Spring Creek Airport +SCH,KSCH,Schenectady County Airport +SCI,SVPM,Paramillo Airport +SCK,KSCK,Stockton Metropolitan Airport +SCL,SCEL,Comodoro Arturo Merino Benítez International Airport +SCM,PACM,Scammon Bay Airport +SCN,EDDR,Saarbrücken Airport +SCO,UATE,Aktau International Airport +SCP,LFNC,Mont-Dauphin Saint-Crépin Airfield +SCQ,LEST,Santiago-Rosalía de Castro Airport +SCR,ESKS,Scandinavian Mountains Airport +SCT,OYSQ,Socotra Airport +SCU,MUCU,Antonio Maceo International Airport +SCV,LRSV,Suceava Ștefan cel Mare International Airport +SCW,UUYY,Syktyvkar Airport +SCX,MMSZ,Estación Aeronaval de Salina Cruz +SCY,SEST,San Cristóbal Airport +SCZ,AGGL,Santa Cruz/Graciosa Bay/Luova Airport +SDB,FALW,Langebaanweg Airport +SDC,SYSC,Sand Creek Airport +SDD,FNUB,Lubango Mukanka International Airport +SDE,SANE,Vicecomodoro Angel D. La Paz Aragonés Airport +SDF,KSDF,Louisville Muhammad Ali International Airport +SDG,OICS,Sanandaj Airport +SDI,AYSD,Saidor Airport +SDJ,RJSS,Sendai Airport +SDK,WBKS,Sandakan Airport +SDL,ESNN,Sundsvall-Härnösand Airport +SDM,KSDM,Brown Field Municipal Airport +SDN,ENSD,"Sandane Airport, Anda" +SDP,PASD,Sand Point Airport +SDQ,MDSD,Las Américas International Airport +SDR,LEXJ,Seve Ballesteros-Santander Airport +SDS,RJSD,Sado Airport +SDT,OPSS,Saidu Sharif Airport +SDU,SBRJ,Santos Dumont Airport +SDX,KSEZ,Sedona Airport +SDY,KSDY,Sidney - Richland Regional Airport +SEA,KSEA,Seattle–Tacoma International Airport +SEB,HLLS,Sabha Airport +SEE,KSEE,Gillespie Field +SEF,KSEF,Sebring Regional Airport +SEG,KSEG,Penn Valley Airport +SEH,WAJS,Senggeh Airport +SEK,UESK,Srednekolymsk Airport +SEM,KSEM,Craig Field +SEN,EGMC,London Southend Airport +SEO,DISG,Séguéla Airport +SEP,KSEP,Stephenville Clark Regional Airport +SEQ,WIBS,Sungai Pakning Bengkalis Airport +SER,KSER,Freeman Municipal Airport +SES,UOIG,Svetlogorsk Airport +SET,SNHS,Santa Magalhães Airport +SEU,HTSN,Seronera Airport +SEW,HESW,Siwa Oasis North Airport +SEY,GQNS,Sélibaby Airport +SEZ,FSIA,Seychelles International Airport +SFA,DTTX,Sfax Thyna International Airport +SFB,KSFB,Orlando Sanford International Airport +SFC,TFFC,St-François Airport +SFD,SVSR,San Fernando de Apure Las Flecheras National Airport +SFE,RPUS,San Fernando Airport +SFF,KSFF,Felts Field +SFG,TFFG,Grand Case-l'Espérance Airport +SFH,MMSF,San Felipe International Airport +SFJ,BGSF,Kangerlussuaq International Airport +SFK,SNSW,Soure Airport +SFL,GVSF,São Filipe Airport +SFM,KSFM,Sanford Seacoast Regional Airport +SFN,SAAV,Sauce Viejo Airport +SFO,KSFO,San Francisco International Airport +SFS,RPLB,Subic Bay International Airport / Naval Air Station Cubi Point +SFT,ESNS,Skellefteå Airport +SFU,AYSF,Safia Airport +SFV,SILT,Santa Fé do Sul Airport +SFZ,KSFZ,North Central State Airport +SGA,OASN,Sheghnan Airport +SGC,USRR,Surgut International Airport +SGD,EKSB,Sønderborg Airport +SGE,EDGS,Siegerland Airport +SGF,KSGF,Springfield Branson National Airport +SGG,BGSG,Sermiligaaq Heliport +SGH,KSGH,Springfield-Beckley Municipal Airport +SGI,OPSR,Mushaf Air Base +SGK,AYSK,Sengapi Airstrip +SGL,RPLS,Danilo Atienza Air Base +SGN,VVTS,Tan Son Nhat International Airport +SGO,YSGE,St George Airport +SGP,YSHG,Shay Gap Airport +SGQ,WRLA,Sangkimah Airport +SGR,KSGR,Sugar Land Regional Airport +SGT,KSGT,Stuttgart Municipal Airport / Carl Humphrey Field +SGU,KSGU,St George Regional Airport +SGV,SAVS,Sierra Grande Airport +SGX,HTSO,Songea Airport +SGY,PAGY,Skagway Airport +SGZ,VTSH,Songkhla Airport +SHA,ZSSS,Shanghai Hongqiao International Airport +SHB,RJCN,Nakashibetsu Airport +SHD,KSHD,Shenandoah Valley Regional Airport +SHE,ZYTX,Shenyang Taoxian International Airport +SHF,ZWHZ,Shihezi Huayuan Airport +SHG,PAGH,Shungnak Airport +SHH,PASH,Shishmaref Airport +SHI,RORS,Shimojishima Airport +SHJ,OMSJ,Sharjah International Airport +SHK,FXSH,Sehonghong Airport +SHL,VEBI,Shillong Airport +SHM,RJBD,Nanki Shirahama Airport +SHN,KSHN,Sanderson Field +SHO,FDSK,King Mswati III International Airport +SHQ,YSPT,Southport Airport +SHR,KSHR,Sheridan County Airport +SHS,ZHJZ,Jingzhou Shashi Airport +SHT,YSHT,Shepparton Airport +SHU,YSMP,Smith Point Airport +SHV,KSHV,Shreveport Regional Airport +SHW,OESH,Sharurah Domestic Airport +SHX,PAHX,Shageluk Airport +SHY,HTSY,Shinyanga Airport +SHZ,FXSS,Seshutes Airport +SIA,ZLSN,Xi'an Xiguan Airport +SIB,FCBS,Sibiti Airport +SID,GVAC,Amílcar Cabral International Airport +SIF,VNSI,Simara Airport +SIG,TJIG,Fernando Luis Ribas Dominicci Airport +SIH,VNDT,Silgadi Doti Airport +SIJ,BISI,Siglufjörður Airport +SIK,KSIK,Sikeston Memorial Municipal Airport +SIL,AYSG,Sila Airport +SIM,AYSJ,Simbai Airport +SIN,WSSS,Singapore Changi Airport +SIO,YSMI,Smithton Airport +SIP,UKFF,Simferopol International Airport +SIQ,WIDS,Dabo Airport +SIR,LSGS,Sion Airport +SIS,FASS,Sishen Airport +SIT,PASI,Sitka Rocky Gutierrez Airport +SIU,MNSI,Siuna +SIV,KSIV,Sullivan County Airport +SIW,WIMP,Sibisa Airport +SIX,YSGT,Singleton Airport +SIY,KSIY,Siskiyou County Airport +SIZ,AYZN,Sissano Airport +SJA,SPJN,San Juan de Marcona Airport +SJB,SLJO,San Joaquín Airport +SJC,KSJC,Norman Y. Mineta San Jose International Airport +SJD,MMSD,Los Cabos International Airport +SJE,SKSJ,Jorge E. Gonzalez Torres Airport +SJI,RPUH,San Jose Airport +SJJ,LQSA,Sarajevo International Airport +SJK,SBSJ,Professor Urbano Ernesto Stumpf Airport +SJL,SBUA,São Gabriel da Cachoeira Airport +SJN,KSJN,St Johns Industrial Air Park +SJO,MROC,Juan Santamaría International Airport +SJP,SBSR,Prof. Eribelto Manoel Reino State Airport +SJQ,FLSS,Sesheke Airport +SJS,SLJE,San José De Chiquitos Airport +SJT,KSJT,San Angelo Regional Mathis Field +SJU,TJSJ,Luis Munoz Marin International Airport +SJV,SLJV,San Javier Airport +SJW,ZBSJ,Shijiazhuang Zhengding International Airport +SJY,EFSI,Seinäjoki Airport +SJZ,LPSJ,São Jorge Airport +SKA,KSKA,Fairchild Air Force Base +SKB,TKPK,Robert L. Bradshaw International Airport +SKC,AYSU,Suki Airport +SKD,UTSS,Samarkand International Airport +SKF,KSKF,Lackland Air Force Base +SKG,LGTS,Thessaloniki Macedonia International Airport +SKH,VNSK,Surkhet Airport +SKK,PFSH,Shaktoolik Airport +SKL,EGEI,Broadford Airstrip +SKM,SYSK,Skeldon Airport +SKN,ENSK,"Stokmarknes Airport, Skagen" +SKO,DNSO,Sadiq Abubakar III International Airport +SKP,LWSK,Skopje International Airport +SKQ,FXSK,Sekakes Airport +SKR,HASK,Shakiso Airport +SKS,EKSP,Skrydstrup Air Base +SKT,OPST,Sialkot International Airport +SKU,LGSY,Skiros Airport +SKV,HESC,Saint Catherine International Airport +SKW,PASW,Skwentna Airport +SKX,UWPS,Saransk International Airport +SKZ,OPSK,Begum Nusrat Bhutto International Airport Sukkur +SLA,SASA,Martín Miguel de Güemes International Airport +SLB,KSLB,Storm Lake Municipal Airport +SLC,KSLC,Salt Lake City International Airport +SLD,LZSL,Sliač Airport +SLE,KSLE,Salem-Willamette Valley Airport/McNary Field +SLF,OESL,As-Sulayyil Airport +SLG,KSLG,Smith Field +SLH,NVSC,Sola Airport +SLI,FLSW,Solwesi Airport +SLJ,YSOL,Solomon Airport +SLK,KSLK,Adirondack Regional Airport +SLL,OOSA,Salalah International Airport +SLM,LESA,Salamanca Airport +SLN,KSLN,Salina Municipal Airport +SLO,KSLO,Salem–Leckrone Airport +SLP,MMSP,Ponciano Arriaga International Airport +SLQ,PASL,Sleetmute Airport +SLR,KSLR,Sulphur Springs Municipal Airport +SLT,KANK,Salida Airport - Harriet Alexander Field +SLU,TLPC,George F. L. Charles Airport +SLV,VISM,Shimla Airport +SLW,MMIO,Plan de Guadalupe International Airport +SLX,MBSY,Salt Cay Airport +SLY,USDD,Salekhard Airport +SLZ,SBSL,Marechal Cunha Machado International Airport +SMA,LPAZ,Santa Maria Airport +SMB,SCSB,Franco Bianco Airport +SMD,KSMD,Smith Field +SME,KSME,Lake Cumberland Regional Airport +SMF,KSMF,Sacramento International Airport +SMH,AYSP,Sapmanga Airport +SMI,LGSM,Samos Airport +SMJ,AYXI,Sim Airport +SMK,PAMK,St Michael Airport +SML,MYLS,Stella Maris Airport +SMM,WBKA,Semporna Airport +SMN,KSMN,Lemhi County Airport +SMO,KSMO,Santa Monica Municipal Airport +SMQ,WAOS,Sampit (H.Asan) Airport +SMR,SKSM,Simón Bolívar International Airport +SMS,FMMS,Sainte Marie Airport +SMT,SBSO,Adolino Bedin Regional Airport +SMU,PASP,Sheep Mountain Airport +SMV,LSZS,Engadin Airport +SMW,GMMA,Smara Airport +SMX,KSMX,Santa Maria Public Airport Captain G Allan Hancock Field +SMY,GOTS,Simenti Airport +SMZ,SMST,Stoelmanseiland Airport +SNA,KSNA,John Wayne Orange County International Airport +SNB,YSNB,Snake Bay Airport +SNC,SESA,General Ulpiano Paez International Airport +SNE,GVSN,Preguiça Airport +SNF,SVSP,Sub Teniente Nestor Arias Airport +SNG,SLSI,Capitán Av. Juan Cochamanidis S. Airport +SNH,YSPE,Stanthorpe Airport +SNI,GLGE,Greenville/Sinoe Airport +SNJ,MUSJ,San Julián Air Base +SNK,KSNK,Winston Field +SNL,KSNL,Shawnee Regional Airport +SNM,SLSM,San Ignacio de Moxos Airport +SNN,EINN,Shannon Airport +SNO,VTUI,Sakon Nakhon Airport +SNP,PASN,St Paul Island Airport +SNR,LFRZ,Saint-Nazaire-Montoir Airport +SNS,KSNS,Salinas Municipal Airport +SNT,SKRU,Las Cruces Airport +SNU,MUSC,Abel Santamaria International Airport +SNV,SVSE,Santa Elena de Uairén Airport +SNW,VYTD,Thandwe Airport +SNX,OIIS,Semnan Municipal Airport +SNY,KSNY,Sidney Municipal Airport Lloyd W Carr Field +SNZ,SBSC,Santa Cruz Air Force Base +SOB,LHSM,Hévíz–Balaton Airport +SOC,WARQ,Adisoemarmo International Airport +SOD,SDCO,Sorocaba Airport +SOE,FCOS,Souanke Airport +SOF,LBSF,Sofia Airport +SOG,ENSG,"Sogndal Airport, Haukåsen" +SOI,YSML,South Molle Island Helipad +SOJ,ENSR,Sørkjosen Airport +SOK,FXSM,Semonkong Airport +SOL,AK26,Solomon State Field +SOM,SVST,San Tomé Airport +SON,NVSS,Santo Pekoa International Airport +SOO,ESNY,Söderhamn Airport +SOP,KSOP,Moore County Airport +SOQ,WASS,Domine Eduard Osok Airport +SOT,EFSO,Sodankyla Airport +SOU,EGHI,Southampton Airport +SOV,PASO,Seldovia Airport +SOW,KSOW,Show Low Regional Airport +SOX,SKSO,Alberto Lleras Camargo Airport +SOY,EGER,Stronsay Airport +SOZ,LFKS,Solenzara (BA 126) Air Base +SPA,KSPA,Spartanburg Downtown Memorial Airport +SPB,VI22,Charlotte Amalie Harbor Seaplane Base +SPC,GCLA,La Palma Airport +SPD,VGSD,Saidpur Airport +SPE,WBKO,Sepulot Airport +SPF,KSPF,Black Hills Airport-Clyde Ice Field +SPG,KSPG,Albert Whitted Airport +SPH,AYQO,Sopu Airport +SPI,KSPI,Abraham Lincoln Capital Airport +SPJ,LGSP,Sparti Airfield +SPM,ETAD,Spangdahlem Air Base +SPN,PGSN,Saipan International Airport +SPP,FNME,Menongue Airport +SPQ,6CA3,Catalina Air-Sea Terminal Heliport +SPS,KSPS,Wichita Falls Municipal Airport / Sheppard Air Force Base +SPU,LDSP,Split Saint Jerome Airport +SPV,AYSQ,Sepik Plains Airport +SPW,KSPW,Spencer Municipal Airport +SPX,HESX,Sphinx International Airport +SPY,DISP,San Pedro Airport +SPZ,KASG,Springdale Municipal Airport +SQA,KIZA,Santa Ynez Airport +SQC,YSCR,Southern Cross Airport +SQD,ZSSR,Shangrao Sanqingshan Airport +SQG,WIOS,Tebelian Airport +SQH,VVNS,Na San Airport +SQI,KSQI,Whiteside County Airport - Joseph H Bittorf Field +SQJ,ZSSM,Sanming Shaxian Airport +SQK,HE40,Sidi EL Barrani Airport +SQL,KSQL,San Carlos Airport +SQM,SWUA,São Miguel do Araguaia Airport +SQN,WAES,Emalamo Airport +SQO,ESUD,Storuman Airport +SQQ,EYSA,Šiauliai International Airport +SQR,WAWS,Soroako Airport +SQT,AYCS,China Strait Airstrip +SQU,SPOA,Saposoa Airport +SQV,KW28,Sequim Valley Airport +SQW,EKSV,Skive Airport +SQX,SSOE,São Miguel do Oeste Hélio Wasum Airport +SQY,SSRU,São Lourenço do Sul Airport +SRA,SSZR,Luis Alberto Lehr Airport +SRB,SLSR,Santa Rosa de Yacuma Airport +SRC,KSRC,Searcy Municipal Airport +SRD,SLRA,San Ramón Airport +SRE,SLAL,Alcantarí International Airport +SRG,WARS,Jenderal Ahmad Yani Airport +SRH,FTTA,Sarh Airport +SRJ,SLSB,Capitán Av. German Quiroga G. Airport +SRK,BGSI,Siorapaluk Heliport +SRN,YSRN,Strahan Airport +SRP,ENSO,"Stord Airport, Sørstokken" +SRQ,KSRQ,Sarasota Bradenton International Airport +SRR,YDUN,Dunwich Airport +SRS,SKSR,San Marcos Airport +SRT,HUSO,Soroti Airport +SRU,VYFS,Surbung Airport +SRW,KRUQ,Mid-Carolina Regional Airport +SRX,HLGD,Sirt International Airport / Ghardabiya Airbase +SRY,OINZ,Sari Dasht-e Naz International Airport +SRZ,SLET,El Trompillo Airport +SSA,SBSV,Deputado Luiz Eduardo Magalhães International Airport +SSB,VI32,Christiansted Harbor Seaplane Base +SSC,KSSC,Shaw Air Force Base +SSD,SCSF,Víctor Lafón Airport +SSE,VASL,Solapur Airport +SSF,KSSF,Stinson Municipal Airport +SSG,FGSL,Malabo International Airport +SSH,HESH,Sharm El Sheikh International Airport +SSI,KSSI,St Simons Island Airport +SSJ,ENST,"Sandnessjøen Airport, Stokka" +SSL,SKSL,Santa Rosalia Airport +SSN,RKSM,Seoul Air Base (K-16) +SSO,SNLO,São Lourenço Airport +SSP,YSVP,Silver Plains Airport +SSQ,CSR8,La Sarre Airport +SSR,NVSH,Sara Airport +SST,SAZL,Santa Teresita Airport +SSW,7WA5,Stuart Island Airpark +SSY,FNBC,Mbanza Congo Airport +SSZ,SBST,Santos Nero Moura Air Base / Guarujá Airport +STA,EKVJ,Stauning Vestjylland Airport +STB,SVSZ,Miguel Urdaneta Fernández Airport +STC,KSTC,Saint Cloud Regional Airport +STD,SVSO,Mayor Buenaventura Vivas International Airport +STE,KSTE,Stevens Point Municipal Airport +STF,YSTI,Stephens Island Seaplane Base +STG,PAPB,St George Airport +STH,YSMR,Strathmore Airport +STI,MDST,Cibao International Airport +STJ,KSTJ,Rosecrans Memorial Airport +STK,KSTK,Sterling Municipal Airport +STL,KSTL,St. Louis Lambert International Airport +STM,SBSN,Santarém - Maestro Wilson Fonseca International Airport +STN,EGSS,London Stansted Airport +STP,KSTP,Saint Paul Downtown Holman Field +STQ,KOYM,St Marys Municipal Airport +STR,EDDS,Stuttgart Airport +STS,KSTS,Charles M. Schulz Sonoma County Airport +STT,TIST,Cyril E. King Airport +STV,VASU,Surat International Airport +STW,URMT,Stavropol Shpakovskoye Airport +STX,TISX,Henry E. Rohlsen Airport +STY,SUSO,Nueva Hesperides International Airport +SUA,KSUA,Witham Field +SUB,WARR,Juanda International Airport +SUD,KSUD,Stroud Municipal Airport +SUE,KSUE,Door County Cherryland Airport +SUF,LICA,Lamezia Terme Sant'Eufemia International Airport +SUG,RPMS,Surigao Airport +SUI,UGSS,Vladislav Ardzinba Sukhum International Airport +SUJ,LRSM,Satu Mare International Airport +SUK,UEBS,Sakkyryr Airport +SUL,OPSU,Sui Airport +SUM,KSMS,Sumter Airport +SUN,KSUN,Friedman Memorial Airport +SUO,KS21,Sunriver Airport +SUP,WART,Trunojoyo Airport +SUQ,SESC,Sucúa Airport +SUR,CJV7,Summer Beaver Airport +SUS,KSUS,Spirit of St Louis Airport +SUT,HTSU,Sumbawanga Airport +SUU,KSUU,Travis Air Force Base +SUV,NFNA,Nausori International Airport +SUW,KSUW,Richard I Bong Memorial Airport +SUX,KSUX,Sioux Gateway Airport / Brigadier General Bud Day Field +SUY,UENS,Suntar Airport +SVA,PASA,Savoonga Airport +SVB,FMNS,Sambava Airport +SVC,KSVC,Grant County Airport +SVD,TVSA,Argyle International Airport +SVE,KSVE,Susanville Municipal Airport +SVF,DBBS,Savé Airport +SVG,ENZV,"Stavanger Airport, Sola" +SVH,KSVH,Statesville Regional Airport +SVI,SKSV,Eduardo Falla Solano Airport +SVJ,ENSH,"Svolvær Airport, Helle" +SVL,EFSA,Savonlinna Airport +SVN,KSVN,Hunter Army Air Field +SVO,UUEE,Sheremetyevo International Airport +SVP,FNKU,Kuito Airport +SVQ,LEZL,Seville Airport +SVR,BGSV,Savissivik Heliport +SVT,FBSV,Savuti Airport +SVU,NFNS,Savusavu Airport +SVW,PASV,Sparrevohn LRRS Airport +SVX,USSS,Koltsovo Airport +SVZ,SVSA,Juan Vicente Gómez International Airport +SWA,ZGOW,Jieyang Chaoshan International Airport +SWC,YSWL,Stawell Airport +SWD,PAWD,Seward Airport +SWE,AYEW,Siwea Airport +SWF,KSWF,New York Stewart International Airport +SWG,AYSW,Satwag Airport +SWH,YSWH,Swan Hill Airport +SWJ,NVSX,Southwest Bay Airport +SWL,RPSV,San Vicente Airport +SWN,VISP,Sarsawa Air Force Station +SWO,KSWO,Stillwater Regional Airport +SWP,FYSM,Swakopmund Municipal Aerodrome +SWQ,WADS,Sultan Muhammad Kaharuddin III Airport +SWR,AYZI,Silur Airport +SWS,EGFH,Swansea Airport +SWT,UNSS,Strezhevoy Airport +SWU,RKSW,Suwon Airport +SWV,UHMW,Severo-Evensk Airport +SWW,KSWW,Avenger Field +SWX,FBSW,Shakawe Airport +SWY,WMBA,Sitiawan Airport +SXA,AYQS,Sialum Airport +SXB,LFST,Strasbourg Airport +SXE,YWSL,West Sale Airport +SXG,FLSN,Senanga Airport +SXH,AYSL,Sehulea Airport +SXI,OIBS,Siri Airport +SXJ,ZWSS,Shanshan Airport +SXK,WPAS,Mathilda Batlayeri Airport +SXL,EISG,Sligo Airport +SXM,TNCM,Princess Juliana International Airport +SXN,FBSN,Sua Pan Airport +SXO,SWFX,São Félix do Araguaia Airport +SXQ,PASX,Soldotna Airport +SXR,VISR,Sheikh ul Alam International Airport +SXS,WBKH,Sahabat [Sahabat 16] Airport +SXT,WMAN,Sungai Tiang Airport +SXU,HASD,Soddu Airport +SXV,VOSM,Salem Airport +SXW,AYSV,Sauren Airport +SXX,SNFX,São Félix do Xingu Airport +SXY,KN23,Sidney Municipal Airport +SXZ,LTCL,Siirt Airport +SYA,PASY,Eareckson Air Station +SYC,SPSY,Shiringayoc Airport +SYD,YSSY,Sydney Kingsford Smith International Airport +SYE,OYSH,Sadah Airport +SYH,VNSB,Syangboche Airport +SYI,KSYI,Bomar Field / Shelbyville Municipal Airport +SYJ,OIKY,Sirjan Airport +SYK,BIST,Stykkishólmur Airport +SYM,ZPSM,Pu'er Simao Airport +SYN,KSYN,Stanton Airfield +SYO,RJSY,Shonai Airport +SYP,MPSA,Ruben Cantu Airport +SYQ,MRPV,Tobías Bolaños International Airport +SYR,KSYR,Syracuse Hancock International Airport +SYS,UERS,Saskylakh Airport +SYT,LFLN,Saint-Yan Airport +SYU,YWBS,Warraber Island Airport +SYV,KSYV,Sylvester Airport +SYW,OPSN,Sehwan Sharif Airport +SYX,ZJSY,Sanya Phoenix International Airport +SYY,EGPO,Stornoway Airport +SYZ,OISS,Shiraz Shahid Dastghaib International Airport +SZA,FNSO,Soyo Airport +SZB,WMSA,Sultan Abdul Aziz Shah International Airport +SZE,HASM,Semera Airport +SZF,LTFH,Samsun-Çarşamba Airport +SZG,LOWS,Salzburg Airport +SZH,ZBSG,Shuozhou Zirun Airport +SZI,UASZ,Zaysan Airport +SZJ,MUSN,Siguanea Airport +SZK,FASZ,Skukuza Airport +SZL,KSZL,Whiteman Air Force Base +SZM,FYSS,Sesriem Airport +SZN,KSZN,Santa Cruz Island Airport +SZP,KSZP,Santa Paula Airport +SZS,NZRC,Ryan's Creek Aerodrome +SZV,ZSSZ,Suzhou Guangfu Airport +SZX,ZGSZ,Shenzhen Bao'an International Airport +SZY,EPSY,Olsztyn-Mazury Airport +SZZ,EPSC,Solidarity Szczecin–Goleniów Airport +TAB,TTCP,A.N.R. Robinson International Airport +TAC,RPVA,Daniel Z. Romualdez Airport +TAD,KTAD,Perry Stokes Airport +TAE,RKTN,Daegu International Airport +TAF,DAOL,Oran Tafraoui Airport +TAG,RPSP,Bohol-Panglao International Airport +TAH,NVVW,Whitegrass Airport +TAI,OYTZ,Taiz International Airport +TAK,RJOT,Takamatsu Airport +TAL,PATA,Ralph M Calhoun Memorial Airport +TAM,MMTM,General Francisco Javier Mina International Airport +TAN,YTGA,Tangalooma Airport +TAO,ZSQD,Qingdao Jiaodong International Airport +TAP,MMTP,Tapachula International Airport +TAQ,YTAR,Tarcoola Airport +TAR,LIBG,Taranto-Grottaglie Marcello Arlotta Airport +TAS,UTTT,Tashkent International Airport +TAT,LZTT,Poprad-Tatry Airport +TAU,SKTA,Tauramena Airport +TAW,SUTB,Tacuarembo Airport +TAX,WAPT,Taliabu Island Airport +TAY,EETU,Tartu Airport +TAZ,UTAT,Dashoguz International Airport +TBB,VVTH,Dong Tac Airport +TBC,KT03,Tuba City Airport +TBD,SKMB,Timbiqui Airport +TBE,AYTV,Timbunke Airport +TBF,NGTE,Tabiteuea North Airport +TBG,AYTB,Tabubil Airport +TBH,RPVU,Tugdan Airport +TBI,MYCB,New Bight Airport +TBJ,DTKA,Tabarka-Aïn Draham International Airport +TBK,YTBR,Timber Creek Airport +TBL,YTAB,Tableland Homestead Airport +TBM,WAOW,Tumbang Samba Airport +TBN,KTBN,Waynesville-St. Robert Regional Airport-Forney Field +TBO,HTTB,Tabora Airport +TBP,SPME,Captain Pedro Canga Rodríguez International Airport +TBQ,AYTR,Tarabo Airport +TBR,KTBR,Statesboro Bulloch County Airport +TBS,UGTB,Tbilisi International Airport +TBT,SBTT,Tabatinga International Airport +TBU,NFTF,Fua'amotu International Airport +TBW,UUOT,Donskoye Airport +TBX,WIDB,Tambelan Airport +TBY,FBTS,Tshabong Airport +TBZ,OITT,Tabriz International Airport +TCA,YTNK,Tennant Creek Airport +TCB,MYAT,Treasure Cay Airport +TCC,KTCC,Tucumcari Municipal Airport +TCD,SKRA,Tarapacá Airport +TCE,LRTC,Tulcea Danube Delta Airport +TCF,MHTO,Tocoa Airport +TCG,ZWTC,Tacheng Qianquan Airport +TCH,FOOT,Tchibanga Airport +TCJ,AYVM,Torembi Airport +TCK,AYYL,Tinboli Airport +TCL,KTCL,Tuscaloosa National Airport +TCM,KTCM,McChord Air Force Base +TCN,MMHC,Tehuacán National Airport +TCO,SKCO,La Florida Airport +TCP,HETB,Taba International Airport +TCQ,SPTN,Coronel FAP Carlos Ciriani Santa Rosa International Airport +TCR,VOTK,Tuticorin Airport +TCS,KTCS,Truth or Consequences Municipal Airport +TCU,FATN,Thaba Nchu Tar Airport +TCW,YTOC,Tocumwal Airport +TCX,OIMT,Tabas Airport +TCY,FYTE,Terrace Bay Airport +TCZ,ZUTC,Tengchong Tuofeng Airport +TDA,SKTD,Trinidad Airport +TDB,AYTF,Tetebedi Airport +TDD,SLTR,Teniente Av. Jorge Henrich Arauz Airport +TDG,RPMW,Tandag Airport +TDJ,HDTJ,Tadjoura Airport +TDK,UAAT,Taldykorgan Airport +TDL,SAZT,Héroes de Malvinas Airport +TDN,YTHD,Theda Station Airport +TDO,KTDO,Ed Carlson Memorial Field South Lewis County Airport +TDP,SPDR,Trompeteros Airport +TDR,YTDR,Theodore Airport +TDS,AYSS,Sasereme Airport +TDV,FMSN,Samangoky Airport +TDW,KTDW,Tradewind Airport +TDX,VTBO,Trat Airport +TDZ,KTDZ,Toledo Executive Airport +TEA,MHTE,Tela Airport +TEB,KTEB,Teterboro Airport +TEC,SBTL,Telêmaco Borba Airport +TED,EKTS,Thisted Airport +TEE,DABS,Cheikh Larbi Tébessi Airport +TEF,YTEF,Telfer Airport +TEG,DFET,Tenkodogo Airport +TEI,VETJ,Tezu Airport +TEL,WBKE,Telupid Airport +TEM,YTEM,Temora Airport +TEN,ZUTR,Tongren Fenghuang Airport +TEO,AYTY,Terapo Airport +TEP,AYTP,Tep Tep Airport +TEQ,LTBU,Tekirdağ Çorlu Airport +TER,LPLA,Lajes Airport +TES,HHTS,Tessenei Airport +TET,FQTT,Tete Airport +TEU,NZMO,Manapouri Airport +TEV,LETL,Teruel Airport +TEX,KTEX,Telluride Regional Airport +TEY,BITE,Þingeyri Airport +TEZ,VETZ,Tezpur Airport +TFB,AYTH,Tifalmin Airport +TFF,SBTF,Tefé Airport +TFI,AYTU,Tufi Airport +TFL,SNTO,Juscelino Kubitscheck Airport +TFM,AYTE,Telefomin Airport +TFN,GCXO,Tenerife Norte-Ciudad de La Laguna Airport +TFS,GCTS,Tenerife Sur Airport +TFT,OPTT,Taftan Airport +TFU,ZUTF,Chengdu Tianfu International Airport +TFY,WILP,Muhammad Taufiq Kiemas Airport +TGA,WSAT,Tengah Air Base +TGC,WBTM,Tanjung Manis Airport +TGD,LYPG,Podgorica Airport / Podgorica Golubovci Airbase +TGG,WMKN,Sultan Mahmud Airport +TGH,NVST,Tongoa Airport +TGI,SPGM,Tingo Maria Airport +TGJ,NWWA,Tiga Airport +TGK,URRT,Taganrog Yuzhny Airport +TGL,AYTG,Tagula Airport +TGM,LRTM,Târgu Mureş Transilvania International Airport +TGN,YLTV,Latrobe Valley Airport +TGO,ZBTL,Tongliao Airport +TGP,UNIP,Podkamennaya Tunguska Airport +TGQ,SWTS,Tangará da Serra Airport +TGR,DAUK,Touggourt Sidi Madhi Airport +TGT,HTTG,Tanga Airport +TGU,MHTG,Toncontín Airport +TGZ,MMTG,Angel Albino Corzo International Airport +THA,KTHA,Tullahoma Regional Airport William Northern Field +THB,FXTA,Thaba-Tseka Airport +THC,GLTN,Tchien Airport +THD,VVTX,Tho Xuan Airport +THE,SBTE,Senador Petrônio Portela Airport +THG,YTNG,Thangool Airport +THI,GQNC,Tichitt Airport +THK,VLTK,Thakhek Airport +THL,VYTL,Tachileik Airport +THM,KTHM,Thompson Falls Airport +THN,ESGT,Trollhättan-Vänersborg Airport +THO,BITN,Þórshöfn Airport +THP,KHSG,Hot Springs County Airport +THQ,ZLTS,Tianshui Maijishan Airport +THR,OIII,Mehrabad International Airport +THS,VTPO,Sukhothai Airport +THT,GQNT,Tamchakett Airport +THU,BGTL,Pituffik Space Base +THV,KTHV,York Airport +THX,UOTT,Turukhansk Airport +THY,FATH,Thohoyandou Airport +THZ,DRRT,Tahoua Airport +TIA,LATI,Tirana International Airport Mother Teresa +TIB,SKTB,Tibú Airport +TID,DAOB,Abdelhafid Boussouf Bou Chekif Airport +TIE,HATP,Tippi Airport +TIF,OETF,Taif International Airport +TIH,NTGC,Tikehau Airport +TII,OATN,Tarinkot Airport +TIJ,MMTJ,General Abelardo L. Rodriguez International Airport +TIK,KTIK,Tinker Air Force Base +TIL,CFQ4,Cheadle Airport +TIM,WABP,Mozes Kilangin Airport +TIN,DAOF,Tindouf Airport +TIO,VYHN,Tilin Airport +TIQ,PGWT,Francisco Manglona Borja / Tinian International Airport +TIR,VOTP,Tirupati International Airport +TIU,NZTU,Timaru Airport +TIV,LYTV,Tivat Airport +TIW,KTIW,Tacoma Narrows Airport +TIX,KTIX,Space Coast Regional Airport +TIY,GQND,Tidjikja Airport +TIZ,AYTA,Tari Airport +TJA,SLTJ,Capitan Oriel Lea Plaza Airport +TJB,WIBT,Raja Haji Abdullah Airport +TJG,WAON,Warukin Airport +TJH,RJBT,Konotori Tajima Airport +TJI,MHTJ,Trujillo Airport +TJK,LTAW,Tokat Airport +TJL,SBTG,Plínio Alarcom Airport +TJM,USTR,Roshchino International Airport +TJN,NTKM,Takume Airport +TJQ,WIOD,H A S Hanandjoeddin International Airport +TJS,WALG,Tanjung Harapan Airport +TJU,UTDK,Kulob International Airport +TJV,VOTJ,Thanjavur Air Force Station +TKA,PATK,Talkeetna Airport +TKB,AYTZ,Tekadu Airport +TKC,FKKC,Tiko Airport +TKD,DGTK,Takoradi Airport +TKF,KTRK,Truckee Tahoe Airport +TKG,WILL,Radin Inten II International Airport +TKH,VTPI,Takhli Royal Thai Air Force Base +TKJ,PFTO,Tok Junction Airport +TKK,PTKK,Chuuk International Airport +TKN,RJKN,Tokunoshima Airport +TKO,FXTK,Tlokoeng Airport +TKP,NTGT,Takapoto Airport +TKQ,HTKA,Kigoma Airport +TKR,VGSG,Thakurgaon Airport +TKS,RJOS,Tokushima Awaodori Airport / JMSDF Tokushima Air Base +TKT,VTPT,Tak Airport +TKU,EFTU,Turku Airport +TKV,NTGO,Tatakoto Airport +TKW,AYTN,Tekin Airport +TKX,NTKR,Takaroa Airport +TKY,YTKY,Turkey Creek Airport +TKZ,NZTO,Tokoroa Airfield +TLA,PATE,Teller Airport +TLB,OPTA,Tarbela Dam Airport +TLC,MMTO,Adolfo López Mateos International Airport +TLD,FBTL,Tuli Lodge Airport +TLE,FMST,Toliara Airport +TLG,AGTI,Tulaghi Heliport +TLH,KTLH,Tallahassee International Airport +TLI,WAFL,Sultan Bantilan Airport +TLJ,PATL,Tatalina LRRS Airport +TLK,UECT,Talakan Airport +TLL,EETN,Lennart Meri Tallinn Airport +TLM,DAON,Zenata – Messali El Hadj Airport +TLN,LFTH,Toulon-Hyères Airport +TLO,AYXO,Tol Airport +TLP,AYQL,Tumolbil Airport +TLQ,ZWTL,Turpan Jiaohe Airport +TLR,KTLR,Mefford Field +TLS,LFBO,Toulouse-Blagnac Airport +TLU,SKTL,Golfo de Morrosquillo Airport +TLV,LLBG,Ben Gurion International Airport +TLW,AYVL,Talasea Airport +TLX,SCTL,Panguilemo Airport +TLY,UHWP,Plastun Airport +TLZ,SWKT,Catalão Airport +TMA,KTMA,Henry Tift Myers Airport +TMB,KTMB,Miami Executive Airport +TMC,WADT,Tambolaka Airport +TMD,GQNH,Timbedra Airport +TME,SKTM,Gustavo Vargas Airport +TMF,VRNT,Thimarafushi Airport +TMG,WBKM,Tomanggong Airport +TMH,WAKT,Tanah Merah Airport +TMI,VNTR,Tumling Tar Airport +TMJ,UTST,Termez Airport +TML,DGLE,Yakubu Tali International Airport +TMM,FMMT,Toamasina Ambalamanasy Airport +TMN,NGTM,Tamana Island Airport +TMO,SVTM,Tumeremo Airport +TMP,EFTP,Tampere-Pirkkala Airport +TMQ,DFEM,Tambao Airport +TMR,DAAT,Aguenar – Hadj Bey Akhamok Airport +TMS,FPST,São Tomé International Airport +TMT,SBTB,Trombetas Airport +TMU,MRTR,Tambor Airport +TMW,YSTW,Tamworth Airport +TMX,DAUT,Timimoun Airport +TMZ,NZTH,Thames Aerodrome +TNA,ZSJN,Jinan Yaoqiang International Airport +TNB,WRLH,Tanah Grogot Airport +TNC,PATC,Tin City Long Range Radar Station Airport +TND,MUTD,Alberto Delgado Airport +TNE,RJFG,New Tanegashima Airport +TNF,LFPN,Toussus-le-Noble Airport +TNG,GMTT,Tangier Ibn Battuta Airport +TNH,ZYTN,Tonghua Sanyuanpu Airport +TNI,VIST,Satna Airport +TNJ,WIDN,Raja Haji Fisabilillah International Airport +TNL,UKLT,Ternopil International Airport +TNM,SCRM,Teniente Rodolfo Marsh Martin Airport +TNN,RCNN,Tainan International Airport / Tainan Air Base +TNO,MRTM,Tamarindo Airport +TNP,KTNP,Twentynine Palms Airport +TNQ,PLWN,Washington Island Airstrip +TNR,FMMI,Ivato International Airport +TNS,CBX5,Tungsten (Cantung) Airport +TNT,KTNT,Dade Collier Training and Transition Airport +TNU,KTNU,Newton Municipal Airport +TNV,PLFA,Tabuaeran Island Airport +TNW,SEJD,Jumandy Airport +TNZ,ZMTL,Tosontsengel Airport +TOA,KTOA,Zamperini Field +TOB,HLTQ,Tobruk International Airport +TOC,KTOC,Toccoa Airport - R.G. Letourneau Field +TOD,WMBT,Tioman Airport +TOE,DTTZ,Tozeur Nefta International Airport +TOF,UNTT,Tomsk Kamov Airport +TOG,PATG,Togiak Airport +TOH,NVSD,Torres Airstrip +TOI,KTOI,Troy Municipal Airport at N Kenneth Campbell Field +TOJ,LETO,Madrid–Torrejón Airport / Torrejón Air Base +TOL,KTOL,Eugene F. Kranz Toledo Express Airport +TOM,GATB,Tombouktou Airport +TON,AYVO,Tonu Airport +TOO,MRSV,San Vito de Java Airport +TOP,KTOP,Philip Billard Municipal Airport +TOQ,SCBE,Barriles Airport +TOR,KTOR,Torrington Municipal Airport +TOS,ENTC,Tromsø Airport +TOT,SMCO,Totness Airport +TOU,NWWU,Touho Airport +TOW,SBTD,Toledo - Luiz Dalcanale Filho Municipal Airport +TOX,USTO,Tobolsk Airport +TOY,RJNT,Toyama Kitokito Airport +TOZ,DITM,Mahana Airport +TPA,KTPA,Tampa International Airport +TPC,SETR,Tarapoa Airport +TPE,RCTP,Taiwan Taoyuan International Airport +TPF,KTPF,Peter O Knight Airport +TPG,WMBI,Taiping (Tekah) Airport +TPH,KTPH,Tonopah Airport +TPI,AYTI,Tapini Airport +TPJ,VNTJ,Taplejung Airport +TPK,WITA,Teuku Cut Ali Airport +TPL,KTPL,Draughon Miller Central Texas Regional Airport +TPN,SETI,Tiputini Airport +TPP,SPST,Cadete FAP Guillermo Del Castillo Paredes Airport +TPQ,MMEP,Amado Nervo National Airport +TPR,YTMP,Tom Price Airport +TPS,LICT,Vincenzo Florio Airport Trapani-Birgi +TPU,VNTP,Tikapur Airport +TPX,NTTU,Tupai Airport +TQA,BGTA,Tasiusaq Heliport +TQD,ORAT,Al Taqaddum Air Base +TQI,BGTN,Tiniteqilaaq Heliport +TQL,USDS,Tarko-Sale Airport +TQN,OATQ,Taleqan Airport +TQO,MMTL,Felipe Carrillo Puerto International Airport Tulum +TQP,YTEE,Trepell Airport +TQQ,WA44,Maranggo Airport +TQS,SKTQ,Captain Ernesto Esguerra Cubides Air Base +TRA,RORT,Tarama Airport +TRB,SKTU,Gonzalo Mejía Airport +TRC,MMTC,Francisco Sarabia Tinoco International Airport +TRD,ENVA,"Trondheim Airport, Værnes" +TRE,EGPU,Tiree Airport +TRF,ENTO,"Sandefjord Airport, Torp" +TRG,NZTG,Tauranga Airport +TRH,KL72,Trona Airport +TRI,KTRI,Tri-Cities Regional TN/VA Airport +TRJ,AYTT,Tarakbits Airport +TRK,WALR,Juwata International Airport / Suharnoko Harbani AFB +TRL,KTRL,Terrell Municipal Airport +TRM,KTRM,Jacqueline Cochran Regional Airport +TRN,LIMF,Turin Airport +TRO,YTRE,Taree Airport +TRQ,SBTK,Tarauacá Airport +TRR,VCCT,China Bay Airport +TRS,LIPQ,Trieste Airport +TRT,WAFB,Toraja Airport +TRU,SPRU,Capitán FAP Carlos Martínez de Pinillos International Airport +TRV,VOTV,Thiruvananthapuram International Airport +TRW,NGTA,Bonriki International Airport +TRX,KTRX,Trenton Municipal Airport +TRY,HUTO,Tororo Airport +TRZ,VOTR,Tiruchirappalli International Airport +TSA,RCSS,Taipei Songshan International Airport +TSB,FYTM,Tsumeb Airport +TSC,SETH,Taisha Airport +TSF,LIPH,Treviso Airport +TSH,FZUK,Tshikapa Airport +TSJ,RJDT,Tsushima Airport +TSL,MMTN,Tamuín National Airport +TSM,KSKX,Taos Regional Airport +TSN,ZBTJ,Tianjin Binhai International Airport +TSP,KTSP,Tehachapi Municipal Airport +TSQ,SBTR,Torres Airport +TSR,LRTR,Timișoara Traian Vuia International Airport +TST,VTST,Trang Airport +TSU,NGTS,Tabiteuea South Airport +TSV,YBTL,Townsville Airport / RAAF Base Townsville +TSW,AYTS,Tsewi Airport +TSY,WICM,Cibeureum Airport +TSZ,ZMTG,Tsetserleg Airport +TTA,GMAT,Tan Tan Airport +TTC,SCTT,Las Breas Airport +TTD,KTTD,Portland Troutdale Airport +TTE,WAEE,Sultan Babullah Airport +TTG,SAST,General Enrique Mosconi Airport +TTH,OOTH,Thumrait Air Base +TTI,NTTE,Tetiaroa Airport +TTJ,RJOR,Tottori Sand Dunes Conan Airport +TTL,NFUL,Turtle Island Seaplane Base +TTN,KTTN,Trenton Mercer Airport +TTO,KBTN,Britton Municipal Airport +TTQ,MRBT,Barra del Tortuguero +TTR,WAWT,Pongtiku Airport +TTS,FMNT,Tsaratanana Airport +TTT,RCFN,Taitung Airport +TTU,GMTN,Sania Ramel Airport +TTX,YTST,Truscott-Mungalalu Airport +TUA,SETU,Lieutenant Colonel Luis A. Mantilla International Airport +TUB,NTAT,Tubuai Airport +TUC,SANT,Teniente Benjamín Matienzo International Airport +TUD,GOTT,Tambacounda Airport +TUF,LFOT,Tours Val de Loire Airport +TUG,RPUT,Tuguegarao Airport +TUH,KAYX,Arnold Air Force Base +TUI,OETR,Turaif Domestic Airport +TUK,OPTU,Turbat International Airport +TUL,KTUL,Tulsa International Airport +TUM,YTMU,Tumut Aerodrome +TUN,DTTA,Tunis Carthage International Airport +TUO,NZAP,Taupo Airport +TUP,KTUP,Tupelo Regional Airport +TUQ,DFOT,Tougan Airport +TUR,SBTU,Tucuruí Airport +TUS,KTUS,Tucson International Airport +TUU,OETB,Prince Sultan bin Abdulaziz International Airport +TUV,SVTC,Tucupita Airport +TUX,CBX7,Tumbler Ridge Airport +TUY,MMTU,Base Aeronaval de Tulum +TVA,FMMR,Morafenobe Airport +TVC,KTVC,Cherry Capital Airport +TVF,KTVF,Thief River Falls Regional Airport +TVI,KTVI,Thomasville Regional Airport +TVL,KTVL,Lake Tahoe Airport +TVS,ZBSN,Tangshan Sannühe Airport +TVT,UTTP,Tashkent-Khumo International Airport +TVU,NFNM,Matei Airport +TVY,VYDW,Dawei Airport +TWB,YTWB,Toowoomba Airport +TWD,K0S9,Jefferson County International Airport +TWE,AK49,Taylor Airport +TWF,KTWF,Joslin Field Magic Valley Regional Airport +TWT,RPMN,Sanga Sanga Airport +TWU,WBKW,Tawau Airport +TWY,AYTW,Tawa Airport +TWZ,NZUK,Pukaki Airport +TXE,WITK,Rembele Airport +TXF,SNTF,9 de Maio - Teixeira de Freitas Airport +TXK,KTXK,Texarkana Regional Airport (Webb Field) +TXM,WAST,Teminabuan Airport +TXN,ZSTX,Huangshan Tunxi International Airport +TXR,YTNB,Tanbar Airport +TXU,DITB,Tabou Airport +TYB,YTIB,Tibooburra Airport +TYD,UHBW,Tynda Airport +TYF,ESST,Torsby Airport +TYG,YTHY,Thylungra Airport +TYL,SPYL,Captain Victor Montes Arias International Airport +TYM,MYES,Staniel Cay Airport +TYN,ZBYN,Taiyuan Wusu International Airport +TYP,YTMY,Tobermorey Airport +TYR,KTYR,Tyler Pounds Regional Airport +TYS,KTYS,McGhee Tyson Airport +TYT,SUTR,Treinta y Tres Airport +TYZ,KTYL,Taylor Airport +TZC,KCFS,Tuscola Area Airport +TZL,LQTZ,Tuzla International Airport +TZM,MM72,Aeródromo de Cupul +TZN,MYAK,Congo Town Airport +TZX,LTCG,Trabzon International Airport +UAB,LTAG,İncirlik Air Base +UAE,AYAE,Mount Aue Airport +UAH,NTMU,Ua Huka Airport +UAI,WPDB,"Commander in Chief of FALINTIL, Kay Rala Xanana Gusmão, International Airport" +UAK,BGBW,Narsarsuaq Airport +UAL,FNUA,Luau Airport +UAM,PGUA,Andersen Air Force Base +UAP,NTMP,Ua Pou Airport +UAQ,SANU,Domingo Faustino Sarmiento Airport +UAR,GMFB,Bouarfa Airport +UAS,HKSB,Samburu Airport +UBA,SBUR,Mário de Almeida Franco Airport +UBB,YMAA,Mabuiag Island Airport +UBI,AYUI,Buin Airport +UBJ,RJDC,Yamaguchi Ube Airport +UBN,ZMCK,Ulaanbaatar Chinggis Khaan International Airport +UBP,VTUU,Ubon Ratchathani Airport +UBS,KUBS,Columbus Lowndes County Airport +UBT,SDUB,Ubatuba Gastão Madeira State Airport +UBU,YKAL,Kalumburu Airport +UCB,ZBUC,Ulanqab Jining Airport +UCC,NV11,Yucca Airstrip +UCE,K4R7,Eunice Airport +UCK,UKLC,Lutsk Airport +UCN,GLBU,Buchanan Airport +UCT,UUYH,Ukhta Airport +UCY,KUCY,Everett-Stewart Regional Airport +UCZ,SPIZ,Uchiza Airport +UDA,YUDA,Undara Airport +UDD,KUDD,Bermuda Dunes Airport +UDE,EHVK,Volkel Air Base +UDI,SBUL,Ten. Cel. Aviador César Bombonato Airport +UDJ,UKLU,Uzhhorod International Airport +UDR,VAUD,Maharana Pratap Airport +UEE,YQNS,Queenstown Airport +UEL,FQQL,Quelimane Airport +UEN,USDU,Urengoy Airport +UEO,ROKJ,Kumejima Airport +UES,KUES,Waukesha County Airport +UET,OPQT,Quetta International Airport +UFA,UWUU,Ufa International Airport +UGA,ZMBN,Bulgan Airport +UGC,UTNU,Urgench International Airport +UGL,SCGC,Union Glacier Blue-Ice Runway +UGN,KUGN,Waukegan National Airport +UGO,FNUG,Uige Airport +UGT,ZMBR,Bulagtai Resort Airport +UHE,LKKU,Kunovice Airport +UIB,SKUI,El Caraño Airport +UIH,VVPC,Phu Cat Airport +UII,MHUT,Utila Airport +UIK,UIBS,Ust-Ilimsk Airport +UIL,KUIL,Quillayute Airport +UIN,KUIN,Quincy Regional Airport Baldwin Field +UIO,SEQM,Mariscal Sucre International Airport +UIP,LFRQ,Quimper-Cornouaille Airport +UIR,YQDI,Quirindi Airport +UJN,RKTL,Uljin Airport +UJU,ZKUJ,Uiju Airport +UKA,HKUK,Ukunda Airstrip +UKB,RJBE,Kobe Airport +UKE,VEUK,Utkela Airport +UKG,UEBT,Ust-Kuyga Airport +UKI,KUKI,Ukiah Municipal Airport +UKK,UASK,Oskemen International Airport +UKR,OYMS,Mukeiras Airport +UKS,UKFB,Sevastopol International Airport / Belbek Air Base +UKT,KUKT,Quakertown Airport +UKU,AYNU,Nuku Airport +UKX,UITT,Ust-Kut Airport +ULA,SAWJ,Capitan D Daniel Vazquez Airport +ULB,NVSU,Uléi Airport +ULD,FAUL,Prince Mangosuthu Buthelezi Airport +ULG,ZMUL,Ölgii Mongolei International Airport +ULH,OEAO,Al-Ula International Airport +ULK,UERL,Lensk Airport +ULM,KULM,New Ulm Municipal Airport +ULN,ZMUB,Buyant-Ukhaa International Airport +ULO,ZMUG,Ulaangom Airport +ULP,YQLP,Quilpie Airport +ULQ,SKUL,Heriberto Gíl Martínez Airport +ULU,HUGU,Gulu Airport +ULV,UWLL,Ulyanovsk Baratayevka Airport +ULX,FAUS,Ulusaba Airport +ULY,UWLW,Ulyanovsk Vostochny Airport +ULZ,ZMDN,Donoi Airport +UMA,MUMA,Alfredo Noa Díaz Airport +UMC,AYUC,Umba Airport +UMD,BGUM,Uummannaq Heliport +UME,ESNU,Umeå Airport +UMI,SPIL,Quincemil Air Base +UMM,PAST,Summit Airport +UMR,YPWR,Woomera Airfield +UMS,UEMU,Ust-Maya Airport +UMT,PAUM,Umiat Airport +UMU,SSUM,Orlando de Carvalho Airport +UMY,UKHS,Sumy Airport +UMZ,KMEZ,Mena Intermountain Municipal Airport +UNA,SBTC,Una-Comandatuba Airport +UND,OAUZ,Kunduz Airport +UNE,FXQN,Qacha's Nek Airport +UNG,AYKI,Kiunga Airport +UNI,TVSU,Union Island International Airport +UNK,PAUN,Unalakleet Airport +UNN,VTSR,Ranong Airport +UNR,ZMUH,Öndörkhaan Airport +UNU,KUNU,Dodge County Airport +UOA,NTTX,Moruroa Airport +UOL,WAMY,Buol - Pogogul Airport +UOS,KUOS,Franklin County Airport +UOX,KUOX,University Oxford Airport +UPB,MUPB,Playa Baracoa Airport +UPG,WAAA,Sultan Hasanuddin International Airport +UPL,MRUP,Upala Airport +UPN,MMPN,Uruapan - Licenciado y General Ignacio Lopez Rayon International Airport +UPP,PHUP,Upolu Airport +UPR,AYUR,Upiara Airport +UPV,EGDJ,Upavon Aerodrome +URA,UARR,Manshuk Mametova International Airport +URC,ZWWW,Ürümqi Tianshan International Airport +URD,EDQE,Burg Feuerstein Airport +URE,EEKE,Kuressaare Airport +URG,SBUG,Rubem Berta Airport +URI,SKUB,Uribe Airport +URJ,USHU,Uray Airport +URM,SVUM,Uriman Airport +URN,OAOG,Urgun Airport +URO,LFOP,Rouen Vallée de Seine Airport +URR,SKUR,Urrao Airport +URS,UUOK,Kursk East Airport +URT,VTSB,Surat Thani Airport +URU,AYUE,Uroubi Airport +URY,OEGT,Gurayat Domestic Airport +URZ,OARG,Orūzgān Airport +USA,KJQF,Concord-Padgett Regional Airport +USC,K35A,"Union County, Troy Shelton Field" +USH,SAWH,Ushuaia - Malvinas Argentinas International Airport +USI,SYMB,Mabaruma Airport +USJ,UAAL,Usharal Airport +USK,UUYS,Usinsk Airport +USL,YUSL,Useless Loop Airport +USM,VTSM,Samui International Airport +USN,RKPU,Ulsan Airport +USQ,LTBO,Uşak Airport +USR,UEMT,Ust-Nera Airport +USS,MUSS,Sancti Spiritus Airport +UST,KSGJ,Northeast Florida Regional Airport +USU,RPVV,Francisco B. Reyes (Busuanga) Airport +UTA,FVMU,Mutare Airport +UTB,YMTB,Muttaburra Airport +UTD,YNUT,Nutwood Downs Airport +UTE,FABU,Bultfontein Airport +UTG,FXQG,Quthing Airport +UTH,VTUD,Udon Thani International Airport +UTI,EFUT,Utti Air Base +UTM,KUTA,Tunica Municipal Airport +UTN,FAUP,Upington Airport +UTO,PAIM,Indian Mountain LRRS Airport +UTP,VTBU,U-Tapao–Rayong–Pattaya International Airport +UTS,UUYX,Ust-Tsylma Airport +UTT,FAUT,K. D. Matanzima Airport +UTW,FAQT,Queenstown Airport +UUA,UWKB,Bugulma Airport +UUD,UIUU,Baikal International Airport +UUK,PAKU,Ugnu-Kuparuk Airport +UUN,ZMBU,Baruun Urt Airport +UUS,UHSS,Yuzhno-Sakhalinsk International Airport +UVA,KUVA,Garner Field +UVE,NWWV,Ouvéa Airport +UVF,TLPL,Hewanorra International Airport +UVI,SSUV,José Cleto Airport +UVL,HEKG,El Kharja Airport +UVO,AYUZ,Uvol Airport +UWA,MA53,Ware Airport +UYL,HSNN,Nyala Airport +UYN,ZLYL,Yulin Yuyang Airport +UYU,SLUY,Joya Andina International Airport +UZC,LYUZ,Ponikve Airport +UZU,SATU,Curuzu Cuatia Airport +VAA,EFVA,Vaasa Airport +VAC,EDWU,Varrelbusch Airfield +VAD,KVAD,Moody Air Force Base +VAF,LFLU,Valence-Chabeuil Airport +VAG,SBVG,Major Brigadeiro Trompowsky Airport +VAH,SLVG,Capitán Av. Vidal Villagomez Toledo Airport +VAI,AYVN,Vanimo Airport +VAK,PAVA,Chevak Airport +VAL,SNVB,Valença Airport +VAM,VRMV,Villa International Airport Maamigili +VAN,LTCI,Van Ferit Melen Airport +VAO,AGGV,Suavanao Airport +VAP,SCRD,Rodelillo Airport +VAQ,UNIW,Vanavara Airport +VAR,LBWN,Varna Airport +VAS,LTAR,Sivas Nuri Demirağ Airport +VAT,FMMY,Vatomandry Airport +VAV,NFTV,Vava'u International Airport +VAW,ENSS,"Vardø Airport, Svartnes" +VBA,VYAN,Ann Airport +VBC,VYCZ,Chanmyathazi Airport +VBG,KVBG,Vandenberg Space Force Base +VBP,VYBP,Bokpyinn Airport +VBS,LIPO,Brescia Gabriele d'Annunzio Airport +VBV,NFVB,Vanua Balavu Airport +VBY,ESSV,Visby Airport +VCA,VVCT,Can Tho International Airport +VCC,SNEE,Vacaria Airport +VCD,YVRD,Victoria River Downs Airport +VCE,LIPZ,Venice Marco Polo Airport +VCH,SUVO,Vichadero Airport +VCL,VVCA,Chu Lai Airport +VCP,SBKP,Viracopos International Airport +VCS,VVCS,Con Dao Airport +VCT,KVCT,Victoria Regional Airport +VCV,KVCV,Southern California Logistics Airport +VDA,LLOV,Ovda Airport +VDE,GCHI,El Hierro Airport +VDH,VVDH,Dong Hoi Airport +VDI,KVDI,Vidalia Regional Airport +VDM,SAVV,Gobernador Castello Airport +VDO,VVVD,Van Don International Airport +VDP,SVVP,Valle de La Pascua Airport +VDR,SAOD,Villa Dolores Airport +VDS,ENVD,Vadsø Airport +VDY,VOJV,Jindal Vijaynagar Airport +VDZ,PAVD,Valdez Pioneer Field +VEE,PAVE,Venetie Airport +VEG,SYMK,Maikwak Airport +VEL,KVEL,Vernal Regional Airport +VEO,UNIS,Severo-Yeniseysk Airport +VER,MMVR,General Heriberto Jara International Airport +VEV,AGBA,Barakoma Airport +VEX,KD60,Tioga Municipal Airport +VEY,BIVM,Vestmannaeyjar Airport +VFA,FVFA,Victoria Falls International Airport +VGA,VOBZ,Vijayawada International Airport +VGD,ULWW,Vologda Airport +VGO,LEVX,Vigo Airport +VGT,KVGT,North Las Vegas Airport +VGZ,SKVG,Villa Garzón Airport +VHC,FNSA,Saurimo Airport +VHM,ESNV,Vilhelmina South Lapland Airport +VHN,KVHN,Culberson County Airport +VHV,UENI,Verkhnevilyuisk Airport +VHY,LFLV,Vichy-Charmeil Airport +VHZ,NTUV,Vahitahi Airport +VIA,SSVI,Videira Airport +VIE,LOWW,Vienna International Airport +VIG,SVVG,Juan Pablo Pérez Alfonso Airport +VIH,KVIH,Rolla National Airport +VII,VVVH,Vinh Airport +VIJ,TUPW,Virgin Gorda Airport +VIL,GMMH,Dakhla Airport +VIN,UKWW,Vinnytsia/Gavyryshivka International Airport +VIP,LSMP,Payerne Air Base +VIQ,WPVQ,Viqueque Airport +VIR,FAVG,Virginia Airport +VIS,KVIS,Visalia Municipal Airport +VIT,LEVT,Vitoria Airport +VIX,SBVT,Eurico de Aguiar Salles International Airport +VIY,LFPV,Vélizy-Villacoublay Air Base +VJB,FQXA,Xai-Xai Chongoene Airport +VJI,KVJI,Virginia Highlands Airport +VKG,VVRG,Rach Gia Airport +VKO,UUWW,Vnukovo International Airport +VKS,KVKS,Vicksburg Municipal Airport +VKT,UUYW,Vorkuta Airport +VKV,ULAH,Vaskovo Airport +VLA,KVLA,Vandalia Municipal Airport +VLC,LEVC,Valencia Airport +VLD,KVLD,Valdosta Regional Airport +VLE,K40G,Valle Airport +VLG,SAZV,Villa Gesell Airport +VLI,NVVV,Bauerfield International Airport +VLL,LEVD,Valladolid Airport +VLM,SLVM,Teniente Coronel Rafael Pabón Airport +VLN,SVVA,Arturo Michelena International Airport +VLP,SWVC,Vila Rica Airport +VLR,SCLL,Vallenar Airport +VLS,NVSV,Valesdir Airport +VLV,SVVL,Dr. Antonio Nicolás Briceño Airport +VLY,EGOV,Anglesey Airport +VME,SAOR,Villa Reynolds Airport +VMU,AYBA,Baimuru Airport +VNA,VLSV,Salavan Airport +VNC,KVNC,Venice Municipal Airport +VND,FMSU,Vangaindrano Airport +VNE,LFRV,Vannes-Meucon Airport +VNO,EYVI,Vilnius International Airport +VNR,YVRS,Vanrook Station Airport +VNS,VEBN,Lal Bahadur Shastri International Airport +VNT,EVVA,Ventspils International Airport +VNX,FQVL,Vilankulo Airport +VNY,KVNY,Van Nuys Airport +VOD,LKVO,Vodochody Airport +VOG,URWW,Volgograd International Airport +VOH,FMNV,Vohemar Airport +VOI,GLVA,Voinjama Airport +VOK,KVOK,Volk Field +VOL,LGBL,Nea Anchialos National Airport +VOT,SDVG,Domingos Pignatari Airport +VOZ,UUOO,Voronezh International Airport +VPE,FNGI,Ngjiva Pereira Airport +VPN,BIVO,Vopnafjörður Airport +VPS,KVPS,Destin-Fort Walton Beach Airport +VPY,FQCH,Chimoio Airport +VPZ,KVPZ,Porter County Municipal Airport +VQQ,KVQQ,Cecil Airport +VQS,TJVQ,Antonio Rivera Rodriguez Airport +VRA,MUVR,Juan Gualberto Gomez International Airport +VRB,KVRB,Vero Beach Regional Airport +VRC,RPUV,Virac Airport +VRE,FAVR,Vredendal Airport +VRI,ULDW,Varandey Airport +VRK,EFVR,Varkaus Airport +VRL,LPVR,Vila Real Airport +VRN,LIPX,Verona Villafranca Valerio Catullo Airport +VRO,MUKW,Kawama Airport +VRU,FAVB,Vryburg Airport +VRY,ENVR,Værøy Heliport +VRZ,SSOL,Padre Israel Airport +VSA,MMVA,Carlos Rovirosa Pérez International Airport +VSE,LPVZ,Aerodromo Goncalves Lobato (Viseu Airport) +VSF,KVSF,Hartness State Airport +VST,ESOW,Stockholm Västerås Airport +VSV,VISV,Shravasti Airport +VTB,UMII,Vitebsk Vostochny Airport +VTE,VLVT,Wattay International Airport +VTF,NFVL,Vatulele Airport +VTG,VVVT,Vung Tau Airport +VTM,LLNV,Nevatim Air Base +VTN,KVTN,Miller Field +VTU,MUVT,Hermanos Ameijeiras Airport +VTZ,VEVZ,Visakhapatnam International Airport +VUP,SKVP,Alfonso López Pumarejo Airport +VUS,ULWU,Velikiy Ustyug Airport +VVB,FMMH,Mahanoro Airport +VVC,SKVV,Vanguardia Airport +VVI,SLVR,Viru Viru International Airport +VVK,ESSW,Västervik Airport +VVO,UHWW,Vladivostok International Airport +VVZ,DAAP,Illizi Takhamalt Airport +VXC,FQLC,Lichinga Airport +VXE,GVSV,Cesaria Evora International Airport +VXO,ESMX,Växjö Kronoberg Airport +VYD,FAVY,Vryheid Airport +VYI,UENW,Vilyuisk Airport +VYS,KVYS,Illinois Valley Regional Airport Walter A Duncan Field +WAA,PAIW,Wales Airport +WAE,OEWD,Wadi Al Dawasir Domestic Airport +WAF,OPWN,Wana Airport +WAG,NZWU,Wanganui Airport +WAH,KBWP,Harry Stern Airport +WAI,FMNW,Ambalabe Airport +WAJ,AYWF,Wawoi Falls Airport +WAK,FMSZ,Ankazoabo Airport +WAL,KWAL,Wallops Flight Facility Airport +WAM,FMMZ,Ambatondrazaka Airport +WAO,AYWB,Wabo Airport +WAP,SCAP,Alto Palena Airport +WAQ,FMMG,Antsalova Airport +WAT,EIWF,Waterford Airport +WAU,YWAC,Wauchope Airport +WAV,YWAV,Wave Hill Airport +WAW,EPWA,Warsaw Chopin Airport +WAX,HLZW,Zuwarah International Airport +WAY,KWAY,Greene County Airport +WAZ,YWCK,Warwick Airport +WBA,WAPV,Wahai Airport +WBC,AYWJ,Wapolu Airport +WBD,FMNF,Avaratra Airport +WBE,FMNB,Ankaizina Airport +WBG,ETNS,Schleswig Air Base +WBK,KY31,West Branch Community Airport +WBM,AYWD,Wapenamanda Airport +WBO,FMSB,Antsoa Airport +WBQ,PAWB,Beaver Airport +WBR,KRQB,Roben Hood Airport +WBU,KBDU,Boulder Municipal Airport +WBW,KWBW,Wilkes Barre Wyoming Valley Airport +WCA,SCST,Gamboa Airport +WCD,YSCD,Carosue Dam Airport +WCH,SCTN,Nuevo Chaitén Airport +WCR,PALR,Chandalar Lake Airport +WDG,KWDG,Enid Woodring Regional Airport +WDH,FYWH,Hosea Kutako International Airport +WDI,YWND,Wondai Airport +WDN,90WA,Waldron Airstrip +WDR,KWDR,Barrow County Airport +WDS,ZHSY,Shiyan Wudangshan Airport +WEA,KWEA,Parker County Airport +WEF,ZSWF,Weifang Nanyuan Airport +WEH,ZSWH,Weihai Dashuibo Airport +WEI,YBWP,Weipa Airport +WEL,FAWM,Welkom Airport +WEP,AYXW,Weam Airport +WET,WABG,Deiyai / Waghete Baru Airport +WEW,YWWA,Wee Waa Airport +WFI,FMSF,Fianarantsoa Airport +WFK,KFVE,Northern Aroostook Regional Airport +WFR,AT98,[Duplicate] Wolf's Fang Runway +WGA,YSWG,Wagga Wagga Airport +WGB,OPBR,Bahawalnagar Airport +WGC,VOWA,Warangal Airport +WGE,YWLG,Walgett Airport +WGN,ZGSY,Shaoyang Wugang Airport +WGO,KOKV,Winchester Regional Airport +WGP,WADW,Umbu Mehang Kunda Airport +WGT,YWGT,Wangaratta Airport +WHA,ZSWA,Wuhu Xuanzhou Airport +WHB,YEWA,Eliwana +WHF,HSSW,Wadi Halfa Airport +WHK,NZWK,Whakatāne Airport +WHO,NZFJ,Franz Josef Aerodrome +WHP,KWHP,Whiteman Airport +WHS,EGEH,Whalsay Airstrip +WHT,KARM,Wharton Regional Airport +WHU,ZSWU,Wuhu Wanli Airport / Wuhu Air Base +WIB,KF05,Wilbarger County Airport +WIC,EGPC,Wick John O'Groats Airport +WIE,ETOU,Wiesbaden Army Airfield +WIK,NZKE,Waiheke Island Aerodrome +WIL,HKNW,Nairobi Wilson Airport +WIN,YWTN,Winton Airport +WIO,YWCA,Wilcannia Airport +WIR,NZWO,Wairoa Airport +WIU,AYIX,Witu Airport +WJF,KWJF,General William J Fox Airfield +WJR,HKWJ,Wajir Airport +WJU,RKNW,Wonju Airport / Hoengseong Air Base (K-38/K-46) +WKA,NZWF,Wanaka Airport +WKB,YWKB,Warracknabeal Airport +WKF,FAWK,Waterkloof Air Force Base +WKI,FVWT,Hwange (Town) Airport +WKJ,RJCW,Wakkanai Airport +WKL,HI07,Waikoloa Heliport +WKN,AYWQ,Wakunai Airport +WKR,MYAW,Walkers Cay Airport +WLA,YWAL,Wallal Downs Airport +WLC,YWCH,Walcha Airport +WLD,KWLD,Strother Field +WLE,YMLS,Miles Airport +WLG,NZWN,Wellington International Airport +WLH,NVSW,Walaha Airport +WLK,PASK,Selawik Airport +WLL,YWOR,Wollogorang Airport +WLO,YWTL,Waterloo Airport +WLP,YANG,West Angelas Airport +WLS,NLWW,Hihifo Airport +WLU,AYPU,Walluanda Airport +WLW,KWLW,Willows Glenn County Airport +WMA,FMNX,Mandritsara Airport +WMB,YWBL,Warrnambool Airport +WMC,KWMC,Winnemucca Municipal Airport +WMD,FMSC,Mandabe Airport +WME,YMNE,Mount Keith Airport +WMH,KBPK,Ozark Regional Airport +WMI,EPMO,Warsaw Modlin Airport +WML,FMMC,Malaimbandy Airport +WMN,FMNR,Maroantsetra Airport +WMO,PAWM,White Mountain Airport +WMP,FMNP,Mampikony Airport +WMR,FMNC,Mananara Nord Airport +WMT,ZUMT,Zunyi Maotai Airport +WMX,WAVV,Wamena Airport +WNA,PANA,Napakiak Airport +WND,YWDA,Windarra Airport +WNH,ZPWS,Wenshan Puzhehei Airport +WNI,WAWD,Matahora Airport +WNN,CKL3,Wunnumin Lake Airport +WNP,RPUN,Naga Airport +WNR,YWDH,Windorah Airport +WNS,OPNH,Shaheed Benazirabad Airport +WNU,AYWH,Wanuma Airport +WNZ,ZSWZ,Wenzhou Longwan International Airport +WOA,AYWO,Wonenara Airport +WOE,EHWO,Woensdrecht Air Base +WOK,SVUQ,Uon Quen Airport +WOL,YSHL,Shellharbour Airport +WON,YWDL,Wondoola Airport +WOS,ZKWS,Wonsan Kalma Airport +WOT,RCWA,Wang'an Airport +WOW,PAUO,Willow Airport +WPA,SCAS,Cabo Juan Román Airfield +WPB,FMNG,Port Bergé Airport +WPC,CZPC,Pincher Creek Airport +WPK,YWMP,Wrotham Park Airport +WPL,CAQ8,Powell Lake Seaplane Base +WPM,AYXP,Wipim Airport +WPO,K7V2,North Fork Valley Airport +WPR,SCFM,Captain Fuentes Martinez Airport +WPU,SCGZ,Guardia Marina Zañartu Airport +WRA,HAWR,Warder Airport +WRB,KWRB,Robins Air Force Base +WRE,NZWR,Whangarei Airport +WRG,PAWG,Wrangell Airport +WRI,KWRI,Mc Guire Air Force Base +WRL,KWRL,Worland Municipal Airport +WRN,YWDG,Windarling Airport +WRO,EPWR,Copernicus Wrocław Airport +WRT,EGNO,Warton Aerodrome +WRW,YWWG,Warrawagine Airport +WRY,EGEW,Westray Airport +WRZ,VCCW,Weerawila Airport +WSA,AYIW,Wasua Airport +WSF,PACS,Cape Sarichef Airport +WSG,KAFJ,Washington County Airport +WSH,KHWV,Brookhaven Calabro Airport +WSI,YSWS,[Duplicate] Western Sydney International Airport +WSK,ZUWS,Chongqing Wushan Airport +WSN,PFWS,South Naknek Number 2 Airport +WSO,SMWS,Washabo Airport +WSP,MNWP,Waspam Airport +WSR,WASW,Wasior Airport +WST,KWST,Westerly State Airport +WSU,AYWS,Wasu Airport +WSX,WA83,Westsound/WSX Seaplane Base +WSY,YSHR,Shute Harbour/Whitsunday Airport +WSZ,NZWS,Westport Airport +WTA,FMMU,Tambohorano Airport +WTB,YBWW,Toowoomba Wellcamp Airport +WTD,MYGW,West End Airport +WTK,PAWN,Noatak Airport +WTN,EGXW,RAF Waddington +WTP,AYWT,Woitape Airport +WTR,KE24,Whiteriver Airport +WTS,FMMX,Tsiroanomandidy Airport +WTT,AYWC,Wantoat Airport +WTZ,NZWT,Whitianga Airport +WUA,ZBUH,Wuhai Airport +WUD,YWUD,Wudinna Airport +WUG,AYWU,Wau Airport +WUH,ZHHH,Wuhan Tianhe International Airport +WUI,YMMI,Murrin Murrin Airport +WUM,AYZM,Wasum Airport +WUN,YWLU,Wiluna Airport +WUS,ZSWY,Nanping Wuyishan Airport +WUT,ZBXZ,Xinzhou Wutaishan Airport +WUU,HSWW,Wau Airport +WUV,AYVW,Wuvulu Island Airport +WUX,ZSWX,Sunan Shuofang International Airport +WUZ,ZGWZ,Wuzhou Xijiang Airport +WVB,FYWB,Walvis Bay International Airport +WVI,KWVI,Watsonville Municipal Airport +WVK,FMSK,Manakara Airport +WVL,KWVL,Waterville Robert Lafleur Airport +WVN,EDWI,JadeWeser Airport +WWA,PAWS,Wasilla Airport +WWD,KWWD,Cape May County Airport +WWI,YWWI,Woodie Woodie Airport +WWK,AYWK,Wewak International Airport +WWR,KWWR,West Woodward Airport +WWT,PAEW,Mertarvik Airport +WWY,YWWL,West Wyalong Airport +WXN,ZUWX,Wanzhou Wuqiao Airport +WYA,YWHA,Whyalla Airport +WYE,GFYE,Yengema Airport +WYN,YWYM,Wyndham Airport +WYS,KWYS,Yellowstone Airport +WZA,DGLW,Wa Airport +XAI,ZHXY,Xinyang Minggang Airport +XAP,SBCH,Serafin Enoss Bertaso Airport +XAR,DFOY,Aribinda Airport +XAU,SOOS,Saül Airport +XBE,CNE3,Bearskin Lake Airport +XBG,DFEB,Bogande Airport +XBJ,OIMB,Birjand International Airport +XBN,AYBZ,Biniguni Airport +XBO,DFEA,Boulsa Airport +XBR,CNL3,Brockville - Thousand Islands Regional Tackaberry Airport +XCH,YPXM,Christmas Island International Airport +XCL,CJS3,Cluff Lake Airport +XCM,CYCK,Chatham Kent Airport +XCO,YOLA,Colac Airport +XCR,LFOK,Chalons Vatry airport +XDE,DFOU,Diebougou Airport +XDJ,DFCJ,Djibo Airport +XEN,ZYXC,Xingcheng Air Base +XEQ,BGTQ,Tasiusaq Heliport +XES,KC02,Grand Geneva Resort Airport +XFN,ZHXF,Xiangyang Liuji Airport +XFW,EDHI,Hamburg-Finkenwerder Airport +XGA,DFOG,Gaoua Airport +XGG,DFEG,Gorom-Gorom Airport +XGN,FNXA,Xangongo Airport +XGR,CYLU,Kangiqsualujjuaq (Georges River) Airport +XIC,ZUXC,Xichang Qingshan Airport +XIE,VLXL,Xienglom Airport +XIJ,OKAJ,Ahmed Al Jaber Air Base +XIL,ZBXH,Xilinhot Airport +XIN,ZGXN,Xingning Air Base +XIQ,BGIL,Ilimanaq Heliport +XIY,ZLXY,Xi'an Xianyang International Airport +XJD,OTBH,Al Udeid Air Base +XJM,OPMA,Mangla Airport +XKA,DFEL,Kantchari Airport +XKH,VLXK,Xieng Khouang Airport +XKS,CYAQ,Kasabonika Airport +XKY,DFCA,Kaya Airport +XLB,CZWH,Lac Brochet Airport +XLS,GOSS,Saint Louis Airport +XLU,DFCL,Leo Airport +XMC,YMCO,Mallacoota Airport +XMD,KMDS,Madison Municipal Airport +XMG,VNMN,Mahendranagar Airport +XMH,NTGI,Manihi Airport +XMI,HTMI,Masasi Airport +XML,YMIN,Minlaton Airport +XMN,ZSAM,Xiamen Gaoqi International Airport +XMP,CFC4,Macmillan Pass Airport +XMS,SEMC,Coronel E Carvajal Airport +XMY,YYMI,Yam Island Airport +XNA,KXNA,Northwest Arkansas National Airport +XNH,ORTL,Ali Air Base +XNN,ZLXN,Xining Caojiabao International Airport +XNT,ZBXT,Xingtai Dalian Airport +XNU,DFON,Nouna Airport +XPA,DFEP,Pama Airport +XPK,CZFG,Pukatawagan Airport +XPL,MHSC,Palmerola International Airport +XPP,CZNG,Poplar River Airport +XPR,KIEN,Pine Ridge Airport +XQP,MRQP,Quepos Managua Airport +XQU,CAT4,Qualicum Beach Airport +XRH,YSRI,RAAF Base Richmond +XRR,CYDM,Ross River Airport +XRY,LEJR,Jerez Airport +XSB,OMBY,Sir Bani Yas Airport +XSC,MBSC,South Caicos Airport +XSD,KTNX,Tonopah Test Range Airport +XSE,DFES,Sebba Airport +XSI,CZSN,South Indian Lake Airport +XSO,PRNO,Siocon Airport +XSP,WSSL,Seletar Airport +XTG,YTGM,Thargomindah Airport +XTL,CYBQ,Tadoule Lake Airport +XTO,YTAM,Taroom Airport +XTR,YTAA,Tara Airport +XUZ,ZSXZ,Xuzhou Guanyin International Airport +XWA,KXWA,Williston Basin International Airport +XYA,AGGY,Yandina Airport +XYE,VYYE,Ye Airport +XYR,AYED,Edwaki Airport +XZA,DFEZ,Zabré Airport +YAA,CAJ4,Anahim Lake Airport +YAB,CYAB,Arctic Bay Airport +YAC,CYAC,Cat Lake Airport +YAE,UNIJ,Yartsevo Airport +YAG,CYAG,Fort Frances Municipal Airport +YAH,CYAH,La Grande-4 Airport +YAI,SCCH,Gral. Bernardo O´Higgins Airport +YAK,PAYA,Yakutat Airport +YAL,CYAL,Alert Bay Airport +YAM,CYAM,Sault Ste Marie Airport +YAN,FZIR,Yangambi Airport +YAO,FKKY,Yaoundé Ville Airport +YAP,PTYA,Yap International Airport +YAR,CYAD,La Grande-3 Airport +YAS,NFSW,Yasawa Island Airport +YAT,CYAT,Attawapiskat Airport +YAU,CTP9,Donaldson Airport +YAV,CAW7,Mayne Island Seaplane Base +YAX,CKB6,Wapekeka Airport +YAY,CYAY,St. Anthony Airport +YAZ,CYAZ,Tofino / Long Beach Airport +YBA,CYBA,Banff Airport +YBB,CYBB,Kugaaruk Airport +YBC,CYBC,Baie-Comeau Airport +YBE,CYBE,Uranium City Airport +YBF,CAE9,Bamfield Seaplane Base +YBG,CYBG,Saguenay-Bagotville Airport +YBI,CCE4,Black Tickle Airport +YBK,CYBK,Baker Lake Airport +YBL,CYBL,Campbell River Airport +YBO,CBW4,Bob Quinn Lake Airport +YBP,ZUYB,Yibin Wuliangye Airport +YBR,CYBR,Brandon Municipal Airport +YBS,CKM8,Opapimiskan Lake Airport +YBT,CYBT,Brochet Airport +YBV,CYBV,Berens River Airport +YBW,CAB3,Bedwell Harbour Seaplane Base +YBX,CYBX,Lourdes-de-Blanc-Sablon Airport +YBY,CYBF,Bonnyville Airport +YCA,CAH3,Courtenay Airpark +YCB,CYCB,Cambridge Bay Airport +YCC,CYCC,Cornwall Regional Airport +YCD,CYCD,Nanaimo Airport +YCE,CYCE,Centralia / James T. Field Memorial Aerodrome +YCG,CYCG,Castlegar/West Kootenay Regional Airport +YCH,CYCH,Miramichi Airport +YCK,CYVL,Tommy Kochon Airport +YCL,CYCL,Charlo Airport +YCM,CYSN,Niagara District Airport +YCN,CYCN,Cochrane Airport +YCO,CYCO,Kugluktuk Airport +YCQ,CYCQ,Chetwynd Airport +YCR,CYCR,Cross Lake (Charlie Sinclair Memorial) Airport +YCS,CYCS,Chesterfield Inlet Airport +YCT,CYCT,Coronation Airport +YCU,ZBYC,Yuncheng Yanhu International Airport +YCW,CYCW,Chilliwack Airport +YCY,CYCY,Clyde River Airport +YCZ,CYCZ,Fairmont Hot Springs Airport +YDA,CYDA,Dawson City Airport +YDB,CYDB,Burwash Airport +YDC,CER3,Drayton Valley Industrial Airport +YDF,CYDF,Deer Lake Airport +YDG,CYID,Digby / Annapolis Regional Airport +YDJ,CJL2,Hatchet Lake Airport +YDL,CYDL,Dease Lake Airport +YDN,CYDN,Dauphin Barker Airport +YDO,CYDO,Dolbeau-Saint-Felicien Airport +YDP,CYDP,Nain Airport +YDQ,CYDQ,Dawson Creek Airport +YDT,CZBB,Boundary Bay Airport +YDU,CJL8,Kasba Lake Airport +YDV,CZTA,Bloodvein River Airport +YDW,CKV4,North of Sixty Airport +YEB,CPF2,Bar River Airport +YEC,RKTY,Yecheon Airbase +YEG,CYEG,Edmonton International Airport +YEI,LTBR,Bursa Yenişehir Airport +YEK,CYEK,Arviat Airport +YEL,CYEL,Elliot Lake Municipal Airport +YEM,CYEM,Manitoulin East Municipal Airport +YEN,CYEN,Estevan Airport +YEO,EGDY,RNAS Yeovilton +YEQ,AYYK,Yenkis(Yankisa) Airport +YER,CYER,Fort Severn Airport +YES,OISY,Yasuj Airport +YET,CYET,Edson Airport +YEU,CYEU,Eureka Airport +YEV,CYEV,Inuvik Mike Zubko Airport +YEY,CYEY,Amos/Magny Airport +YFA,CYFA,Fort Albany Airport +YFB,CYFB,Iqaluit Airport +YFC,CYFC,Fredericton International Airport +YFE,CYFE,Forestville Airport +YFG,CTU2,Fontanges Airport +YFH,CYFH,Fort Hope Airport +YFI,CFG6,Fort Mackay / Firebag +YFJ,CYWE,Wekweètì Airport +YFL,CJN8,Fort Reliance Seaplane Base +YFO,CYFO,Flin Flon Airport +YFR,CYFR,Fort Resolution Airport +YFS,CYFS,Fort Simpson Airport +YFX,CCK4,St. Lewis (Fox Harbour) Airport +YGB,CYGB,Texada Gillies Bay Airport +YGG,CAX6,Ganges Seaplane Base +YGH,CYGH,Fort Good Hope Airport +YGJ,RJOH,Yonago Kitaro Airport / JASDF Miho Air Base +YGK,CYGK,Kingston Norman Rogers Airport +YGL,CYGL,La Grande Rivière Airport +YGM,CYGM,Gimli Industrial Park Airport +YGO,CYGO,Gods Lake Narrows Airport +YGP,CYGP,Michel-Pouliot Gaspé Airport +YGQ,CYGQ,Geraldton Greenstone Regional Airport +YGR,CYGR,Îles-de-la-Madeleine Airport +YGT,CYGT,Igloolik Airport +YGV,CYGV,Havre-Saint-Pierre Airport +YGW,CYGW,Kuujjuarapik Airport +YGX,CYGX,Gillam Airport +YGZ,CYGZ,Grise Fiord Airport +YHA,CCP4,Port Hope Simpson Airport +YHB,CYHB,Hudson Bay Airport +YHD,CYHD,Dryden Regional Airport +YHE,CYHE,Hope Airport / FVRD Regional Airpark +YHF,CYHF,Hearst René Fontaine Municipal Airport +YHG,CCH4,Charlottetown Airport +YHH,CAE3,Campbell River Seaplane Base +YHI,CYHI,Ulukhaktok Holman Airport +YHK,CYHK,Gjoa Haven Airport +YHM,CYHM,John C. Munro Hamilton International Airport +YHN,CYHN,Hornepayne Municipal Airport +YHO,CYHO,Hopedale Airport +YHP,CYHP,Poplar Hill Airport +YHR,CYHR,Chevery Airport +YHS,CAP3,Sechelt-Gibsons Airport +YHT,CYHT,Haines Junction Airport +YHU,CYHU,Montréal / Saint-Hubert Metropolitan Airport +YHY,CYHY,Hay River / Merlyn Carter Airport +YHZ,CYHZ,Halifax / Stanfield International Airport +YIA,WAHI,Yogyakarta International Airport +YIB,CYIB,Atikokan Municipal Airport +YIC,ZSYC,Yichun Mingyueshan Airport +YIE,ZBES,Arxan Yi'ershi Airport +YIF,CYIF,St Augustin Airport +YIG,CAF6,Big Bay Seaplane Base +YIH,ZHYC,Yichang Sanxia Airport +YIK,CYIK,Ivujivik Airport +YIN,ZWYN,Ili Yining International Airport +YIO,CYIO,Pond Inlet Airport +YIP,KYIP,Willow Run Airport +YIV,CYIV,Island Lake Airport +YIW,ZSYW,Yiwu Airport +YJA,CYJA,Jasper Airport +YJF,CYJF,Fort Liard Airport +YJN,CYJN,St Jean Airport +YJP,CEC4,Jasper-Hinton Airport +YJS,ZKSE,Samjiyŏn Airport +YJT,CYJT,Stephenville Dymond International Airport +YKA,CYKA,Kamloops John Moose Fulton Field Regional Airport +YKC,CYKC,Collins Bay Airport +YKD,CYKM,Kincardine Municipal Airport +YKE,CJT3,Knee Lake Airport +YKF,CYKF,Region of Waterloo International Airport +YKG,CYAS,Kangirsuk Airport +YKH,ZYYK,Yingkou Lanqi Airport +YKJ,CYKJ,Key Lake Airport +YKK,CAP7,Kitkatla Seaplane Base +YKL,CYKL,Schefferville Airport +YKM,KYKM,Yakima Air Terminal McAllister Field +YKN,KYKN,Chan Gurney Municipal Airport +YKO,LTCW,Hakkari Yüksekova Airport +YKQ,CYKQ,Waskaganish Airport +YKS,UEEE,Platon Oyunsky Yakutsk International Airport +YKU,CSU2,Chisasibi Airport +YKX,CYKX,Kirkland Lake Airport +YKY,CYKY,Kindersley Airport +YLB,CYLB,Lac La Biche Airport +YLC,CYLC,Kimmirut Airport +YLD,CYLD,Chapleau Airport +YLE,CEM3,Whatì Airport +YLG,YYAL,Yalgoo Airport +YLH,CYLH,Lansdowne House Airport +YLI,EFYL,Ylivieska Airfield +YLJ,CYLJ,Meadow Lake Airport +YLK,CYLS,Barrie-Lake Simcoe Regional Airport +YLL,CYLL,Lloydminster Airport +YLQ,CYLQ,La Tuque Airport +YLR,CYLR,Leaf Rapids Airport +YLS,CSH4,Lebel-sur-Quevillon Airport +YLT,CYLT,Alert Airport +YLV,UBEE,Yevlakh Airport +YLW,CYLW,Kelowna International Airport +YLX,ZGYL,Yulin Fumian Airport +YLY,CYNJ,Langley Airport +YMA,CYMA,Mayo Airport +YMB,CAD5,Merritt Airport +YME,CYME,Matane Airport +YMG,CYMG,Manitouwadge Airport +YMH,CYMH,Mary's Harbour Airport +YMJ,CYMJ,Moose Jaw Air Vice Marshal C. M. McEwen Airport +YMK,USDK,Mys Kamenny Airport +YML,CYML,Charlevoix Airport +YMM,CYMM,Fort McMurray International Airport +YMN,CYFT,Makkovik Airport +YMO,CYMO,Moosonee Airport +YMP,CAT5,Port McNeill Airport +YMS,SPMS,Moises Benzaquen Rengifo Airport +YMT,CYMT,Chapais Airport +YMU,CAV7,Mansons Landing Seaplane Base +YMW,CYMW,Maniwaki Airport +YMX,CYMX,Montreal Mirabel International Airport +YNA,CYNA,Natashquan Airport +YNB,OEYN,Prince Abdulmohsen Bin Abdulaziz International Airport +YNC,CYNC,Wemindji Airport +YND,CYND,Ottawa / Gatineau Airport +YNE,CYNE,Norway House Airport +YNG,KYNG,Youngstown Warren Regional Airport +YNH,CYNH,Hudson's Hope Airport +YNJ,ZYYJ,Yanji Chaoyangchuan Airport +YNL,CYNL,Points North Landing Airport +YNM,CYNM,Matagami Airport +YNO,CKQ3,North Spirit Lake Airport +YNP,CNH2,Natuashish Airport +YNS,CYHH,Nemiscau Airport +YNT,ZSYT,Yantai Penglai International Airport +YNX,CSK6,Snap Lake Airport +YNY,RKNY,Yangyang International Airport +YNZ,ZSYN,Yancheng Nanyang International Airport +YOA,CYOA,Ekati Airport +YOC,CYOC,Old Crow Airport +YOD,CYOD,CFB Cold Lake +YOE,CFM4,Donnelly Airport +YOG,CYKP,Ogoki Post Airport +YOH,CYOH,Oxford House Airport +YOJ,CYOJ,High Level Airport +YOL,DNYO,Yola Airport +YON,VQTY,Yongphulla Airport +YOO,CYOO,Oshawa Executive Airport +YOP,CYOP,Rainbow Lake Airport +YOS,CYOS,Owen Sound / Billy Bishop Regional Airport +YOW,CYOW,Ottawa Macdonald-Cartier International Airport +YPA,CYPA,Prince Albert Glass Field +YPB,CBS8,Alberni Valley Regional Airport +YPC,CYPC,Paulatuk (Nora Aliqatchialuk Ruben) Airport +YPD,CNK4,Parry Sound Area Municipal Airport +YPE,CYPE,Peace River Airport +YPG,CYPG,Portage-la-Prairie / Southport Airport +YPH,CYPH,Inukjuak Airport +YPJ,CYLA,Aupaluk Airport +YPL,CYPL,Pickle Lake Airport +YPM,CYPM,Pikangikum Airport +YPN,CYPN,Port-Menier Airport +YPO,CYPO,Peawanuck Airport +YPQ,CYPQ,Peterborough Regional Airport +YPR,CYPR,Prince Rupert Airport +YPS,CYPD,Port Hawkesbury Airport +YPT,CAG8,Pender Harbour Seaplane Base +YPW,CYPW,Powell River Airport +YPX,CYPX,Puvirnituq Airport +YPY,CYPY,Fort Chipewyan Airport +YPZ,CYPZ,Burns Lake Airport +YQA,CYQA,Muskoka Airport +YQB,CYQB,Quebec Jean Lesage International Airport +YQC,CYHA,Quaqtaq Airport +YQD,CYQD,The Pas Airport +YQF,CYQF,Red Deer Regional Airport +YQG,CYQG,Windsor International Airport +YQH,CYQH,Watson Lake Airport +YQI,CYQI,Yarmouth Airport +YQK,CYQK,Kenora Airport +YQL,CYQL,Lethbridge County Airport +YQM,CYQM,Greater Moncton Roméo LeBlanc International Airport +YQN,CYQN,Nakina Airport +YQQ,CYQQ,Comox Valley International Airport / CFB Comox +YQR,CYQR,Regina International Airport +YQS,CYQS,St Thomas Municipal Airport +YQT,CYQT,Thunder Bay International Airport +YQU,CYQU,Grande Prairie Airport +YQV,CYQV,Yorkton Municipal Airport +YQW,CYQW,North Battleford Airport +YQX,CYQX,Gander International Airport +YQY,CYQY,Sydney / J.A. Douglas McCurdy Airport +YQZ,CYQZ,Quesnel Airport +YRA,CYRA,Rae Lakes Airport +YRB,CYRB,Resolute Bay Airport +YRF,CYCA,Cartwright Airport +YRG,CCZ2,Rigolet Airport +YRI,CYRI,Rivière-du-Loup Airport +YRJ,CYRJ,Roberval Airport +YRL,CYRL,Red Lake Airport +YRM,CYRM,Rocky Mountain House Airport +YRN,CAU8,Rivers Inlet Seaplane Base +YRO,CYRO,Ottawa / Rockcliffe Airport +YRQ,CYRQ,Trois-Rivières Airport +YRS,CYRS,Red Sucker Lake Airport +YRT,CYRT,Rankin Inlet Airport +YRV,CYRV,Revelstoke Airport +YSA,CSB2,Sable Island Airport. +YSB,CYSB,Sudbury Airport +YSC,CYSC,Sherbrooke Airport +YSD,CYSD,Canadian Forces Base Suffield Heliport +YSE,CYSE,Squamish Airport +YSF,CYSF,Stony Rapids Airport +YSG,CYLK,Lutselk'e Airport +YSH,CYSH,Smiths Falls-Montague (Russ Beach) Airport +YSI,CPS9,Parry Sound/Frying Pan Island-Sans Souci Seaplane Base +YSJ,CYSJ,Saint John Airport +YSK,CYSK,Sanikiluaq Airport +YSL,CYSL,Saint-Léonard Airport +YSM,CYSM,Fort Smith Airport +YSN,CZAM,Shuswap Regional Airport +YSO,CCD4,Postville Airport +YSP,CYSP,Marathon Airport +YSQ,ZYSQ,Songyuan Chaganhu Airport +YST,CYST,St. Theresa Point Airport +YSU,CYSU,Summerside Airport +YSX,CAW8,Bella Bella/Shearwater Seaplane Base +YSY,CYSY,Sachs Harbour (David Nasogaluak Jr. Saaryuaq) Airport +YTA,CYTA,Pembroke Airport +YTB,CAY4,Hartley Bay Seaplane Base +YTD,CZLQ,Thicket Portage Airport +YTE,CYTE,Cape Dorset Airport +YTF,CYTF,Alma Airport +YTG,CAV5,Sullivan Bay Seaplane Base +YTH,CYTH,Thompson Airport +YTL,CYTL,Big Trout Lake Airport +YTM,CYFJ,Mont-Tremblant International Airport +YTP,CAB4,Tofino Harbour Seaplane Base +YTQ,CYTQ,Tasiujaq Airport +YTR,CYTR,CFB Trenton +YTS,CYTS,Timmins/Victor M. Power +YTT,CJY3,Tisdale Airport +YTW,ZWYT,Yutian Wanfang Airport +YTY,ZSYA,Yangzhou Taizhou Airport +YTZ,CYTZ,Billy Bishop Toronto City Airport +YUA,ZPYM,Yuanmou Air Base +YUB,CYUB,Tuktoyaktuk / James Gruben Airport +YUD,CYMU,Umiujaq Airport +YUE,YYND,Yuendumu Airport +YUL,CYUL,Montreal / Pierre Elliott Trudeau International Airport +YUM,KNYL,Yuma International Airport / Marine Corps Air Station Yuma +YUS,ZLYS,Yushu Batang Airport +YUT,CYUT,Naujaat Airport +YUX,CYUX,Hall Beach Airport +YUY,CYUY,Rouyn Noranda Airport +YVB,CYVB,Bonaventure Airport +YVC,CYVC,La Ronge Airport +YVD,AYXE,Yeva Airport +YVE,CYVK,Vernon Regional Airport +YVG,CYVG,Vermilion Airport +YVM,CYVM,Qikiqtarjuaq Airport +YVO,CYVO,Val-d'Or Airport +YVP,CYVP,Kuujjuaq Airport +YVQ,CYVQ,Norman Wells Airport +YVR,CYVR,Vancouver International Airport +YVT,CYVT,Buffalo Narrows Airport +YVV,CYVV,Wiarton Airport +YVZ,CYVZ,Deer Lake Airport +YWA,CYWA,Petawawa Heliport +YWB,CYKG,Kangiqsujuaq (Wakeham Bay) Airport +YWG,CYWG,Winnipeg / James Armstrong Richardson International Airport +YWH,CYWH,Victoria Harbour Seaplane Base +YWJ,CYWJ,Déline Airport +YWK,CYWK,Wabush Airport +YWL,CYWL,Williams Lake Airport +YWM,CCA6,Williams Harbour Airport +YWP,CYWP,Webequie Airport +YWQ,CTM3,Chute-Des-Passes/Lac Margane Seaplane Base +YWR,CNJ8,White River Seaplane Base +YWS,CAE5,Whistler/Green Lake Water Aerodrome +YWY,CYWY,Wrigley Airport +YXC,CYXC,Cranbrook/Canadian Rockies International Airport +YXE,CYXE,Saskatoon John G. Diefenbaker International Airport +YXH,CYXH,Medicine Hat Regional Airport +YXJ,CYXJ,Fort St John / North Peace Regional Airport +YXK,CYXK,Rimouski Airport +YXL,CYXL,Sioux Lookout Airport +YXN,CYXN,Whale Cove Airport +YXP,CYXP,Pangnirtung Airport +YXQ,CYXQ,Beaver Creek Airport +YXR,CYXR,Earlton (Timiskaming Regional) Airport +YXS,CYXS,Prince George (International) Airport +YXT,CYXT,Northwest Regional Airport Terrace-Kitimat +YXU,CYXU,London International Airport +YXX,CYXX,Abbotsford International Airport +YXY,CYXY,Whitehorse / Erik Nielsen International Airport +YXZ,CYXZ,Wawa Airport +YYA,ZGYY,Yueyang Sanhe Airport +YYB,CYYB,North Bay Jack Garland Airport +YYC,CYYC,Calgary International Airport +YYD,CYYD,Smithers Airport +YYE,CYYE,Fort Nelson Airport +YYF,CYYF,Penticton Airport +YYG,CYYG,Charlottetown Airport +YYH,CYYH,Taloyoak Airport +YYJ,CYYJ,Victoria International Airport +YYL,CYYL,Lynn Lake Airport +YYM,CYYM,Cowley Airport +YYN,CYYN,Swift Current Airport +YYQ,CYYQ,Churchill Airport +YYR,CYYR,Goose Bay Airport +YYT,CYYT,St. John's International Airport +YYU,CYYU,Kapuskasing Airport +YYW,CYYW,Armstrong Airport +YYY,CYYY,Mont Joli Airport +YYZ,CYYZ,Toronto Pearson International Airport +YZA,CAZ5,Cache Creek-Ashcroft Regional Airport +YZE,CYZE,Gore Bay Manitoulin Airport +YZF,CYZF,Yellowknife International Airport +YZG,CYZG,Salluit Airport +YZH,CYZH,Slave Lake Airport +YZP,CYZP,Sandspit Airport +YZR,CYZR,Chris Hadfield Airport +YZS,CYZS,Coral Harbour Airport +YZT,CYZT,Port Hardy Airport +YZU,CYZU,Whitecourt Airport +YZV,CYZV,Sept-Îles Airport +YZW,CYZW,Teslin Airport +YZX,CYZX,CFB Greenwood +YZY,ZLZY,Zhangye Ganzhou Airport +YZZ,CAD4,Trail Regional Airport +ZAC,CZAC,York Landing Airport +ZAD,LDZD,Zadar Airport +ZAG,LDZA,Zagreb Franjo Tuđman International Airport +ZAH,OIZH,Zahedan International Airport +ZAL,SCVD,Pichoy Airport +ZAM,RPMZ,Zamboanga International Airport +ZAO,LFCC,Cahors Lalbenque airport +ZAR,DNZA,Zaria Airport +ZAZ,LEZG,Zaragoza Airport +ZBE,LKZA,Zábřeh Dolní Benešov Airfield +ZBF,CZBF,Bathurst Airport +ZBL,YBLE,Biloela Airport +ZBM,CZBM,Bromont (Roland Désourdy) Airport +ZBO,YBWN,Bowen Airport +ZBR,OIZC,Chabahar Konarak International Airport +ZBY,VLSB,Sayaboury Airport +ZCL,MMZC,General Leobardo C. Ruiz International Airport +ZCO,SCQP,La Araucanía International Airport +ZDY,OMDL,Delma Airport +ZEC,FASC,Secunda Airport +ZEG,WAKQ,Senggo Airport +ZEL,CBBC,Bella Bella (Campbell Island) Airport +ZEM,CZEM,Eastmain River Airport +ZEN,AYZA,Zenag Airport +ZER,VEZO,Ziro Airport +ZFA,CZFA,Faro Airport +ZFD,CZFD,Fond-du-Lac Airport +ZFM,CZFM,Fort Mcpherson Airport +ZFN,CZFN,Tulita Airport +ZFU,SSUO,Unifly Heliport +ZFW,CEB5,Fairview Airport +ZGF,CZGF,Grand Forks Airport +ZGI,CZGI,Gods River Airport +ZGL,YSGW,South Galway Airport +ZGM,FLNA,Ngoma Airport +ZGR,CZGR,Little Grand Rapids Airport +ZGS,CTT5,La Romaine Airport +ZGU,NVSQ,Gaua Island Airport +ZHA,ZGZJ,Zhanjiang Wuchuan International Airport +ZHM,VGSH,Shamshernagar Airport +ZHP,CZHP,High Prairie Airport +ZHY,ZLZW,Zhongwei Shapotou Airport +ZIA,UUBW,Zhukovsky International Airport +ZIC,SCTO,Victoria Airport +ZIG,GOGG,Ziguinchor Airport +ZIH,MMZH,Ixtapa-Zihuatanejo International Airport +ZIS,HLZN,Alzintan Airport +ZIX,UEVV,Zhigansk Airport +ZJG,CZJG,Jenpeg Airport +ZJN,CZJN,Swan River Airport +ZKB,FLKY,Kasaba Bay Airport +ZKE,CZKE,Kashechewan Airport +ZKG,CTK6,Kégashka Airport +ZKP,UESU,Zyryanka Airport +ZLO,MMZO,Playa de Oro International Airport +ZLR,SCLN,Municipal de Linares Airport +ZLT,CTU5,La Tabatière Airport +ZLX,HSZA,Zalingei Airport +ZMH,CZML,South Cariboo Region / 108 Mile Airport +ZMM,MMZM,Zamora Airport +ZMT,CZMT,Masset Airport +ZNA,CAC8,Nanaimo Harbour Water Aerodrome +ZND,DRZR,Zinder Airport +ZNE,YNWN,Newman Airport +ZNZ,HTZA,Abeid Amani Karume International Airport +ZOE,EDGL,Ludwigshafen Accident Hospital Heliport +ZOF,CAH2,Ocean Falls Seaplane Base +ZOS,SCJO,Cañal Bajo Carlos Hott Siebert Airport +ZPB,CZPB,Sachigo Lake Airport +ZPC,SCPC,Pucón Airport +ZPH,KZPH,Zephyrhills Municipal Airport +ZPO,CZPO,Pinehouse Lake Airport +ZQN,NZQN,Queenstown Airport +ZQS,CAQ6,Queen Charlotte City Seaplane Base +ZQW,EDRZ,Zweibrücken Airport +ZQZ,ZBZJ,Zhangjiakou Ningyuan Airport +ZRH,LSZH,Zürich Airport +ZRI,WABO,Stevanus Rumbewas Airport +ZRJ,CZRJ,Round Lake (Weagamow Lake) Airport +ZRM,WAJI,Mararena Sarmi Airport +ZSA,MYSM,San Salvador International Airport +ZSE,FMEP,Saint-Pierre Pierrefonds Airport +ZSJ,CZSJ,Sandy Lake Airport +ZSS,DISS,Sassandra Airport +ZST,CZST,Stewart Airport +ZSW,CZSW,Prince Rupert/Seal Cove Seaplane Base +ZTA,NTGY,Tureia Airport +ZTB,CTB6,Tête-à-la-Baleine Airport +ZTH,LGZA,Zakynthos International Airport Dionysios Solomos +ZTM,CZTM,Shamattawa Airport +ZTR,UKKV,Zhytomyr Airport +ZTS,CAL9,Tahsis Seaplane Base +ZTU,UBBY,Zaqatala International Airport +ZUC,CZUC,Ignace Municipal Airport +ZUD,SCAC,Pupelde Airport +ZUH,ZGSD,Zhuhai Jinwan Airport +ZUL,OEZL,Zilfi Airport +ZUM,CZUM,Churchill Falls Airport +ZVA,FMMN,Miandrivazo Airport +ZVK,VLSK,Savannakhet Airport +ZWA,FMND,Andapa Airport +ZWL,CZWL,Wollaston Lake Airport +ZYI,ZUZY,Zunyi Xinzhou Airport +ZYL,VGSY,Osmany International Airport +ZZE,UBBZ,Zangilan International Airport +ZZO,UHSO,Zonalnoye Airport +ZZU,FWUU,Mzuzu Airport +ZZV,KZZV,Zanesville Municipal Airport diff --git a/db.py b/db.py new file mode 100644 index 0000000..3cd82ff --- /dev/null +++ b/db.py @@ -0,0 +1,73 @@ +import sqlite3 +from contextlib import contextmanager + +import config + +SCHEMA = """ +CREATE TABLE IF NOT EXISTS pending_flights ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL, + status TEXT NOT NULL DEFAULT 'queued' + CHECK (status IN ('queued','pending_review','track_unavailable', + 'approved','rejected','decode_failed')), + image_path TEXT NOT NULL, + raw_bcbp TEXT, + passenger_name TEXT, + pnr TEXT, + from_iata TEXT, + to_iata TEXT, + from_icao TEXT, + to_icao TEXT, + operating_carrier_iata TEXT, + operating_carrier_icao TEXT, + flight_number TEXT, + julian_day INTEGER, + flight_date TEXT, + known_departure_time TEXT, + compartment TEXT, + seat TEXT, + process_after TEXT, + fetch_attempts INTEGER NOT NULL DEFAULT 0, + track_coordinates TEXT, + track_times TEXT, + track_point_count INTEGER, + flightaware_url TEXT, + airtrail_flight_id INTEGER, + parse_warnings TEXT, + error_message TEXT, + reviewed_at TEXT, + approved_at TEXT +); +CREATE INDEX IF NOT EXISTS idx_pending_flights_status_process_after + ON pending_flights(status, process_after); + +CREATE TABLE IF NOT EXISTS settings ( + key TEXT PRIMARY KEY, + value TEXT +); +""" + + +def get_connection() -> sqlite3.Connection: + config.ensure_dirs() + conn = sqlite3.connect(config.DB_PATH, timeout=30) + conn.row_factory = sqlite3.Row + conn.execute("PRAGMA journal_mode=WAL") + conn.execute("PRAGMA foreign_keys=ON") + return conn + + +@contextmanager +def connect(): + conn = get_connection() + try: + yield conn + conn.commit() + finally: + conn.close() + + +def init_db() -> None: + with connect() as conn: + conn.executescript(SCHEMA) diff --git a/decode.py b/decode.py new file mode 100644 index 0000000..028f042 --- /dev/null +++ b/decode.py @@ -0,0 +1,60 @@ +"""PDF417 barcode decoding for boarding pass photos. + +zxing-cpp is used as the primary (and only) decoder: it ships prebuilt wheels +for common platforms and has more reliable PDF417 support on real-world +skewed/glare phone photos than pyzbar/zbar. Kept behind this single function +so the library can be swapped later without touching call sites, per the +brief's note that decoder reliability should be validated against real +captures rather than assumed. +""" + +import io + +import zxingcpp +from PIL import Image, ImageOps + +MIN_DIMENSION = 800 +MAX_DIMENSION = 3000 + +# IATA Resolution 792 (BCBP) permits any of these 2D symbologies - PDF417 is +# typical for printed passes, Aztec/QR/DataMatrix are common for on-screen +# mobile passes (e.g. Emirates' app uses Aztec). +BARCODE_FORMATS = ( + zxingcpp.BarcodeFormat.PDF417 + | zxingcpp.BarcodeFormat.Aztec + | zxingcpp.BarcodeFormat.QRCode + | zxingcpp.BarcodeFormat.DataMatrix +) + + +def _prepare(img: Image.Image) -> Image.Image: + img = ImageOps.exif_transpose(img) + img = img.convert("L") + w, h = img.size + if min(w, h) < MIN_DIMENSION: + scale = MIN_DIMENSION / min(w, h) + img = img.resize((int(w * scale), int(h * scale)), Image.LANCZOS) + elif max(w, h) > MAX_DIMENSION: + scale = MAX_DIMENSION / max(w, h) + img = img.resize((int(w * scale), int(h * scale)), Image.LANCZOS) + return img + + +def decode_boarding_pass(image_bytes: bytes) -> str | None: + try: + img = Image.open(io.BytesIO(image_bytes)) + img = _prepare(img) + except Exception: + return None + + results = zxingcpp.read_barcodes(img, formats=BARCODE_FORMATS) + if results: + return results[0].text + + # One retry with autocontrast - cheap, catches glare/low-contrast photos. + contrasted = ImageOps.autocontrast(img) + results = zxingcpp.read_barcodes(contrasted, formats=BARCODE_FORMATS) + if results: + return results[0].text + + return None diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6a52f91 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +services: + boarding-pass: + build: . + container_name: boarding-pass + restart: unless-stopped + env_file: .env + environment: + TZ: ${TZ:-Etc/UTC} + volumes: + - ./instance:/app/instance + # No host port published by default - reach this via NPMplus on the + # shared proxy network (see README for the network + bypass config). + networks: + - proxy + +networks: + proxy: + external: true diff --git a/flightaware.py b/flightaware.py new file mode 100644 index 0000000..17701e0 --- /dev/null +++ b/flightaware.py @@ -0,0 +1,115 @@ +"""Scrape a public FlightAware history page for a specific past flight's +track, without using AeroAPI (whose free tier excludes historical data). + +Two requests per flight, verified against a real flight (QFA1) during design: + +1. GET the flight's public activity page, which lists direct links to every + recent/upcoming specific instance of that flight number in the form + /live/flight/{callsign}/history/{YYYYMMDD}/{HHMM}Z/{FROM_ICAO}/{TO_ICAO} + - this sidesteps the fact that a BCBP barcode never encodes a + time-of-day, which the history URL otherwise requires. +2. GET that specific history URL + "/google_earth", which returns a KML file + with a gx:Track of / pairs. + +Low volume by design (one flight per day) - no retry-hammering on failure, +a transient error just leaves the row queued for next day's run. +""" + +import re +import urllib.error +import urllib.request +import xml.etree.ElementTree as ET +from datetime import date, datetime + +import config + +BASE = "https://www.flightaware.com" +KML_NAMESPACES = { + "kml": "http://www.opengis.net/kml/2.2", + "gx": "http://www.google.com/kml/ext/2.2", +} + + +class FlightAwareTransientError(Exception): + """Network/timeout/5xx - safe to retry on a later run.""" + + +def _fetch(url: str) -> bytes: + req = urllib.request.Request(url, headers={"User-Agent": config.FLIGHTAWARE_USER_AGENT}) + try: + with urllib.request.urlopen(req, timeout=20) as resp: + return resp.read() + except urllib.error.HTTPError as e: + if e.code == 404: + raise + raise FlightAwareTransientError(f"HTTP {e.code} fetching {url}") from e + except urllib.error.URLError as e: + raise FlightAwareTransientError(f"error fetching {url}: {e}") from e + + +def find_history_url( + icao_callsign: str, flight_date: date, from_icao: str, to_icao: str +) -> str | None: + """Returns the specific history page URL for this flight instance, or + None if no matching link is found on the activity page (definitive - + the flight isn't there, don't retry). Raises FlightAwareTransientError + on network-level failures (retry next run).""" + activity_url = f"{BASE}/live/flight/{icao_callsign}" + try: + html = _fetch(activity_url).decode("utf-8", errors="replace") + except urllib.error.HTTPError: + return None + + date_str = flight_date.strftime("%Y%m%d") + pattern = re.compile( + rf"/live/flight/{re.escape(icao_callsign)}/history/{date_str}/" + rf"(\d{{4}})Z/{re.escape(from_icao)}/{re.escape(to_icao)}" + ) + match = pattern.search(html) + if not match: + return None + return f"{BASE}{match.group(0)}" + + +def fetch_kml(history_url: str) -> bytes | None: + """Fetches the KML for a history URL found by find_history_url. Returns + None if the specific flight has no track available (definitive).""" + kml_url = history_url.rstrip("/") + "/google_earth" + try: + return _fetch(kml_url) + except urllib.error.HTTPError: + return None + + +def parse_kml(kml_bytes: bytes) -> tuple[list[list[float]], list[int]] | None: + """Returns (coordinates, times) where coordinates is [[lon,lat,elev],...] + and times is [unix_seconds,...], aligned. None if no track found.""" + try: + root = ET.fromstring(kml_bytes) + except ET.ParseError: + return None + + track = root.find(".//gx:Track", KML_NAMESPACES) + if track is None: + return None + + coordinates: list[list[float]] = [] + times: list[int] = [] + for child in track: + tag = child.tag.split("}")[-1] + if tag == "when": + ts = child.text.strip() + dt = datetime.fromisoformat(ts.replace("Z", "+00:00")) + times.append(int(dt.timestamp())) + elif tag == "coord": + parts = child.text.strip().split() + lon, lat = float(parts[0]), float(parts[1]) + elev = float(parts[2]) if len(parts) > 2 else 0.0 + coordinates.append([lon, lat, elev]) + + if not coordinates: + return None + if len(times) != len(coordinates): + times = [] + + return coordinates, times diff --git a/models.py b/models.py new file mode 100644 index 0000000..ee9fc27 --- /dev/null +++ b/models.py @@ -0,0 +1,146 @@ +import json +import secrets +from datetime import datetime, timezone + +import db + +JSON_FIELDS = {"track_coordinates", "track_times", "parse_warnings"} + + +def _now() -> str: + return datetime.now(timezone.utc).isoformat() + + +def _row_to_dict(row) -> dict: + if row is None: + return None + d = dict(row) + for field in JSON_FIELDS: + if d.get(field): + try: + d[field] = json.loads(d[field]) + except (TypeError, ValueError): + d[field] = None + return d + + +# --- settings ----------------------------------------------------------- + +def get_setting(key: str, default: str | None = None) -> str | None: + with db.connect() as conn: + row = conn.execute("SELECT value FROM settings WHERE key = ?", (key,)).fetchone() + return row["value"] if row else default + + +def set_setting(key: str, value: str) -> None: + with db.connect() as conn: + conn.execute( + "INSERT INTO settings (key, value) VALUES (?, ?) " + "ON CONFLICT(key) DO UPDATE SET value = excluded.value", + (key, value), + ) + + +def get_or_create_secret_key() -> str: + existing = get_setting("secret_key") + if existing: + return existing + new_key = secrets.token_hex(32) + set_setting("secret_key", new_key) + return new_key + + +DEFAULT_SETTINGS = { + "notify_backend": "ntfy", + "ntfy_server_url": "https://ntfy.sh", + "ntfy_topic": "", + "ntfy_auth_token": "", + "daily_run_time": "03:00", +} + + +def get_all_settings() -> dict: + return {key: get_setting(key, default) for key, default in DEFAULT_SETTINGS.items()} + + +# --- pending_flights ------------------------------------------------------ + +INSERT_FIELDS = [ + "image_path", "raw_bcbp", "passenger_name", "pnr", "from_iata", "to_iata", + "from_icao", "to_icao", "operating_carrier_iata", "operating_carrier_icao", + "flight_number", "julian_day", "flight_date", "known_departure_time", + "compartment", "seat", "process_after", "parse_warnings", "error_message", + "status", +] + + +def create_pending_flight(**fields) -> int: + now = _now() + cols = ["created_at", "updated_at"] + vals = [now, now] + for f in INSERT_FIELDS: + if f in fields: + v = fields[f] + if f in JSON_FIELDS and v is not None: + v = json.dumps(v) + cols.append(f) + vals.append(v) + placeholders = ", ".join("?" for _ in cols) + with db.connect() as conn: + cur = conn.execute( + f"INSERT INTO pending_flights ({', '.join(cols)}) VALUES ({placeholders})", + vals, + ) + return cur.lastrowid + + +def get_flight(flight_id: int) -> dict | None: + with db.connect() as conn: + row = conn.execute( + "SELECT * FROM pending_flights WHERE id = ?", (flight_id,) + ).fetchone() + return _row_to_dict(row) + + +def list_flights(statuses: list[str] | None = None) -> list[dict]: + with db.connect() as conn: + if statuses: + placeholders = ", ".join("?" for _ in statuses) + rows = conn.execute( + f"SELECT * FROM pending_flights WHERE status IN ({placeholders}) " + "ORDER BY created_at DESC", + statuses, + ).fetchall() + else: + rows = conn.execute( + "SELECT * FROM pending_flights ORDER BY created_at DESC" + ).fetchall() + return [_row_to_dict(r) for r in rows] + + +def list_due_flights(now_iso: str) -> list[dict]: + with db.connect() as conn: + rows = conn.execute( + "SELECT * FROM pending_flights WHERE status = 'queued' AND process_after <= ?", + (now_iso,), + ).fetchall() + return [_row_to_dict(r) for r in rows] + + +def update_flight(flight_id: int, **fields) -> None: + if not fields: + return + cols = [] + vals = [] + for k, v in fields.items(): + if k in JSON_FIELDS and v is not None and not isinstance(v, str): + v = json.dumps(v) + cols.append(f"{k} = ?") + vals.append(v) + cols.append("updated_at = ?") + vals.append(_now()) + vals.append(flight_id) + with db.connect() as conn: + conn.execute( + f"UPDATE pending_flights SET {', '.join(cols)} WHERE id = ?", vals + ) diff --git a/notifier.py b/notifier.py new file mode 100644 index 0000000..aca5a3d --- /dev/null +++ b/notifier.py @@ -0,0 +1,104 @@ +"""Notification backend abstraction. ntfy is the only implementation today, +but call sites always go through get_notifier() / notify_flight_staged() so +a second backend could be added later (a new class + registry entry) without +touching the pipeline code that triggers notifications. +""" + +import json +import urllib.error +import urllib.request +from abc import ABC, abstractmethod + +import config +import models +import tokens + + +class Notifier(ABC): + @abstractmethod + def send(self, title: str, body: str, url: str | None = None, actions: list[dict] | None = None) -> None: + ... + + +class NtfyNotifier(Notifier): + def __init__(self, server_url: str, topic: str, auth_token: str | None = None): + self.server_url = server_url.rstrip("/") + self.topic = topic + self.auth_token = auth_token + + def send(self, title: str, body: str, url: str | None = None, actions: list[dict] | None = None) -> None: + if not self.topic: + return # not configured yet - silently skip rather than crash the pipeline + + payload = {"topic": self.topic, "title": title, "message": body} + if url: + payload["click"] = url + if actions: + payload["actions"] = actions + + req = urllib.request.Request( + self.server_url, + data=json.dumps(payload).encode("utf-8"), + headers={"Content-Type": "application/json"}, + ) + if self.auth_token: + req.add_header("Authorization", f"Bearer {self.auth_token}") + + try: + with urllib.request.urlopen(req, timeout=15): + pass + except (urllib.error.HTTPError, urllib.error.URLError): + pass # best-effort; a failed push shouldn't crash the pipeline run + + +def get_notifier() -> Notifier: + settings = models.get_all_settings() + # Only one backend exists today; settings.notify_backend is read here so + # a second implementation can be switched in later without changing + # call sites. + return NtfyNotifier( + server_url=settings["ntfy_server_url"], + topic=settings["ntfy_topic"], + auth_token=settings["ntfy_auth_token"] or None, + ) + + +def flight_url(flight_id: int) -> str | None: + if not config.PUBLIC_BASE_URL: + return None + return f"{config.PUBLIC_BASE_URL}/flights/{flight_id}" + + +def notify_flight_staged(row: dict) -> None: + flight_id = row["id"] + route = f"{row.get('from_iata') or '?'}→{row.get('to_iata') or '?'}" + flight_number = f"{row.get('operating_carrier_iata') or ''}{row.get('flight_number') or ''}" + title = f"{flight_number or 'Flight'} staged for review" + + if row["status"] == "track_unavailable": + summary = "no track found" + else: + count = row.get("track_point_count") or 0 + summary = f"track found, {count} points" + + body = f"{route} · {row.get('flight_date') or '?'} · {summary}" + + review_url = flight_url(flight_id) + actions = [] + if review_url: + actions.append({"action": "view", "label": "Investigate", "url": review_url}) + + base = config.PUBLIC_BASE_URL + if base: + approve_token = tokens.sign_token(flight_id, "approve") + reject_token = tokens.sign_token(flight_id, "reject") + actions.append({ + "action": "http", "label": "Approve", "method": "POST", "clear": True, + "url": f"{base}/flights/{flight_id}/approve?token={approve_token}", + }) + actions.append({ + "action": "http", "label": "Deny", "method": "POST", "clear": True, + "url": f"{base}/flights/{flight_id}/reject?token={reject_token}", + }) + + get_notifier().send(title=title, body=body, url=review_url, actions=actions or None) diff --git a/reference_data.py b/reference_data.py new file mode 100644 index 0000000..3df8387 --- /dev/null +++ b/reference_data.py @@ -0,0 +1,70 @@ +"""IATA <-> ICAO lookups for airports and airlines, loaded once from the +trimmed CSVs in data/ (see scripts/build_reference_data.py). No network +access at runtime. +""" + +import csv +from pathlib import Path + +DATA_DIR = Path(__file__).resolve().parent / "data" + +# Known-correct overrides, checked before the bundled CSV. The CSV (OpenFlights) +# can lag real-world rebrands - e.g. it still maps VA to the ICAO code of the +# defunct "V Australia Airlines" (VAU) rather than the current Virgin +# Australia code (VOZ). These are the examples called out in the brief. +CARRIER_ICAO_OVERRIDES = { + "QF": "QFA", + "VA": "VOZ", + "JQ": "JST", + "EK": "UAE", +} + + +def _load_csv(path: Path) -> dict[str, tuple[str, str]]: + """Returns iata -> (icao, name).""" + result = {} + if not path.exists(): + return result + with path.open(newline="", encoding="utf-8") as f: + for row in csv.DictReader(f): + iata = (row.get("iata") or "").strip().upper() + icao = (row.get("icao") or "").strip().upper() + name = (row.get("name") or "").strip() + if iata and icao: + result[iata] = (icao, name) + return result + + +_AIRPORTS = _load_csv(DATA_DIR / "airports.csv") +_AIRLINES = _load_csv(DATA_DIR / "airlines.csv") + + +def iata_to_icao_airport(iata_code: str) -> str | None: + if not iata_code: + return None + entry = _AIRPORTS.get(iata_code.strip().upper()) + return entry[0] if entry else None + + +def airport_name(iata_code: str) -> str | None: + if not iata_code: + return None + entry = _AIRPORTS.get(iata_code.strip().upper()) + return entry[1] if entry else None + + +def iata_to_icao_airline(iata_code: str) -> str | None: + if not iata_code: + return None + code = iata_code.strip().upper() + if code in CARRIER_ICAO_OVERRIDES: + return CARRIER_ICAO_OVERRIDES[code] + entry = _AIRLINES.get(code) + return entry[0] if entry else None + + +def airline_name(iata_code: str) -> str | None: + if not iata_code: + return None + entry = _AIRLINES.get(iata_code.strip().upper()) + return entry[1] if entry else None diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d7a5669 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +flask==3.0.* +waitress==3.0.* +zxing-cpp==2.2.* +pillow==10.* diff --git a/routes_review.py b/routes_review.py new file mode 100644 index 0000000..9f391c1 --- /dev/null +++ b/routes_review.py @@ -0,0 +1,130 @@ +"""GET /flights (list), GET/POST /flights/ (detail/edit/requery), and the +approve/reject callbacks used both by the review page's own buttons and by +ntfy's action buttons. + +Approve/reject require a signed token (see tokens.py) with NO special-casing +for "this came from the authenticated review page" - the reverse-proxy bypass +needed for ntfy's unauthenticated callback applies to the whole path, so the +token is the only thing standing between the internet and these two routes. +""" + +from datetime import date, datetime, timedelta, timezone + +from flask import Blueprint, abort, redirect, render_template, request, url_for + +import airtrail_client +import models +import reference_data +import scheduler +import tokens + +bp = Blueprint("review", __name__) + +REVIEWABLE_STATUSES = ["pending_review", "track_unavailable", "decode_failed"] +# A flight can only be approved once the FlightAware fetch has actually been +# attempted (daily job or manual re-query) - never straight from 'queued', +# so nothing reaches AirTrail before we know whether a track exists. +APPROVABLE_STATUSES = ("pending_review", "track_unavailable") +ALL_STATUSES = [ + "queued", "pending_review", "track_unavailable", "approved", "rejected", "decode_failed", +] + +EDITABLE_FIELDS = [ + "passenger_name", "pnr", "from_iata", "to_iata", "operating_carrier_iata", + "flight_number", "flight_date", "compartment", "seat", +] + + +def _get_or_404(flight_id: int) -> dict: + row = models.get_flight(flight_id) + if not row: + abort(404) + return row + + +@bp.route("/flights") +def list_flights(): + status = request.args.get("status") + if status and status in ALL_STATUSES: + rows = models.list_flights([status]) + elif status == "all": + rows = models.list_flights() + else: + rows = models.list_flights(REVIEWABLE_STATUSES) + status = None + return render_template( + "review_list.html", flights=rows, active_status=status, statuses=ALL_STATUSES + ) + + +@bp.route("/flights/") +def detail(flight_id: int): + row = _get_or_404(flight_id) + approve_token = tokens.sign_token(flight_id, "approve") + reject_token = tokens.sign_token(flight_id, "reject") + return render_template( + "review_detail.html", flight=row, approve_token=approve_token, reject_token=reject_token + ) + + +@bp.route("/flights//edit", methods=["POST"]) +def edit(flight_id: int): + row = _get_or_404(flight_id) + updates = {} + for f in EDITABLE_FIELDS: + if f in request.form: + value = request.form[f].strip() + updates[f] = value or None + + from_iata = updates.get("from_iata", row.get("from_iata")) + to_iata = updates.get("to_iata", row.get("to_iata")) + carrier_iata = updates.get("operating_carrier_iata", row.get("operating_carrier_iata")) + updates["from_icao"] = reference_data.iata_to_icao_airport(from_iata) + updates["to_icao"] = reference_data.iata_to_icao_airport(to_iata) + updates["operating_carrier_icao"] = reference_data.iata_to_icao_airline(carrier_iata) + + flight_date_str = updates.get("flight_date", row.get("flight_date")) + if flight_date_str: + try: + flight_date = date.fromisoformat(flight_date_str) + updates["process_after"] = datetime.combine( + flight_date + timedelta(days=1), datetime.min.time(), tzinfo=timezone.utc + ).isoformat() + except ValueError: + pass + + models.update_flight(flight_id, **updates) + return redirect(url_for("review.detail", flight_id=flight_id)) + + +@bp.route("/flights//requery", methods=["POST"]) +def requery(flight_id: int): + row = _get_or_404(flight_id) + models.update_flight(flight_id, status="queued", error_message=None) + scheduler.process_one_flight(models.get_flight(flight_id)) + return redirect(url_for("review.detail", flight_id=flight_id)) + + +@bp.route("/flights//approve", methods=["POST"]) +def approve(flight_id: int): + token = request.values.get("token", "") + if not tokens.verify_token(flight_id, "approve", token): + abort(403) + row = _get_or_404(flight_id) + if row["status"] not in APPROVABLE_STATUSES and row["status"] != "approved": + abort(409, "flight hasn't been fetched from FlightAware yet") + ok, message = airtrail_client.approve_flight(flight_id) + if request.accept_mimetypes.accept_json and not request.accept_mimetypes.accept_html: + return {"success": ok, "message": message} + return redirect(url_for("review.detail", flight_id=flight_id)) + + +@bp.route("/flights//reject", methods=["POST"]) +def reject(flight_id: int): + token = request.values.get("token", "") + if not tokens.verify_token(flight_id, "reject", token): + abort(403) + ok, message = airtrail_client.reject_flight(flight_id) + if request.accept_mimetypes.accept_json and not request.accept_mimetypes.accept_html: + return {"success": ok, "message": message} + return redirect(url_for("review.detail", flight_id=flight_id)) diff --git a/routes_settings.py b/routes_settings.py new file mode 100644 index 0000000..2929070 --- /dev/null +++ b/routes_settings.py @@ -0,0 +1,31 @@ +"""GET/POST /settings - notification backend configuration, plus a +send-test-notification action.""" + +from flask import Blueprint, redirect, render_template, request, url_for + +import models +import notifier + +bp = Blueprint("settings", __name__) + +FORM_FIELDS = ["ntfy_server_url", "ntfy_topic", "ntfy_auth_token", "daily_run_time"] + + +@bp.route("/settings", methods=["GET", "POST"]) +def settings(): + message = None + if request.method == "POST": + if request.form.get("action") == "test": + notifier.get_notifier().send( + title="Test notification", + body="This is a test notification from boarding-pass-pipeline.", + url=None, + ) + message = "Test notification sent." + else: + for f in FORM_FIELDS: + if f in request.form: + models.set_setting(f, request.form[f].strip()) + message = "Settings saved." + + return render_template("settings.html", settings=models.get_all_settings(), message=message) diff --git a/routes_upload.py b/routes_upload.py new file mode 100644 index 0000000..c7ada35 --- /dev/null +++ b/routes_upload.py @@ -0,0 +1,104 @@ +"""GET/POST /upload - photograph or pick a boarding pass image, decode it, +and queue it for the daily FlightAware job.""" + +import uuid +from datetime import datetime, timedelta, timezone + +from flask import Blueprint, redirect, render_template, request, url_for + +import bcbp +import config +import decode +import models +import reference_data + +bp = Blueprint("upload", __name__) + + +@bp.route("/upload", methods=["GET", "POST"]) +def upload(): + if request.method == "GET": + return render_template("upload.html") + + file = request.files.get("photo") + if not file or not file.filename: + return render_template("upload.html", error="No photo selected."), 400 + + image_bytes = file.read() + upload_dt = datetime.now(timezone.utc) + + image_name = f"{uuid.uuid4().hex}.jpg" + image_path = config.UPLOADS_DIR / image_name + config.ensure_dirs() + with open(image_path, "wb") as f: + f.write(image_bytes) + + raw_bcbp = decode.decode_boarding_pass(image_bytes) + + if not raw_bcbp: + flight_id = models.create_pending_flight( + image_path=image_name, + status="decode_failed", + error_message="Could not detect a PDF417 barcode in the photo.", + ) + return redirect(url_for("review.detail", flight_id=flight_id)) + + try: + parsed = bcbp.parse_bcbp(raw_bcbp, upload_dt=upload_dt) + except bcbp.BCBPParseError as e: + flight_id = models.create_pending_flight( + image_path=image_name, + raw_bcbp=raw_bcbp, + status="decode_failed", + error_message=str(e), + ) + return redirect(url_for("review.detail", flight_id=flight_id)) + + if parsed.julian_day is None: + flight_id = models.create_pending_flight( + image_path=image_name, + raw_bcbp=raw_bcbp, + passenger_name=parsed.passenger_name, + pnr=parsed.pnr, + from_iata=parsed.from_iata, + to_iata=parsed.to_iata, + operating_carrier_iata=parsed.operating_carrier, + flight_number=parsed.flight_number, + compartment=parsed.compartment, + seat=parsed.seat, + parse_warnings=parsed.warnings, + status="decode_failed", + error_message="Could not determine the flight date from the barcode.", + ) + return redirect(url_for("review.detail", flight_id=flight_id)) + + flight_date = bcbp.resolve_flight_date(parsed.julian_day, upload_dt) + process_after = datetime.combine( + flight_date + timedelta(days=1), datetime.min.time(), tzinfo=timezone.utc + ).isoformat() + + carrier_icao = reference_data.iata_to_icao_airline(parsed.operating_carrier) + from_icao = reference_data.iata_to_icao_airport(parsed.from_iata) + to_icao = reference_data.iata_to_icao_airport(parsed.to_iata) + + flight_id = models.create_pending_flight( + image_path=image_name, + raw_bcbp=raw_bcbp, + passenger_name=parsed.passenger_name, + pnr=parsed.pnr, + from_iata=parsed.from_iata, + to_iata=parsed.to_iata, + from_icao=from_icao, + to_icao=to_icao, + operating_carrier_iata=parsed.operating_carrier, + operating_carrier_icao=carrier_icao, + flight_number=parsed.flight_number, + julian_day=parsed.julian_day, + flight_date=flight_date.isoformat(), + compartment=parsed.compartment, + seat=parsed.seat, + process_after=process_after, + parse_warnings=parsed.warnings, + status="queued", + ) + return redirect(url_for("review.detail", flight_id=flight_id)) diff --git a/scheduler.py b/scheduler.py new file mode 100644 index 0000000..ab2e70b --- /dev/null +++ b/scheduler.py @@ -0,0 +1,132 @@ +"""Daily queue-processing job (stages 3-6 of the pipeline) plus the daemon +thread that runs it once a day. No cron/APScheduler dependency - a single +background thread sleeping until the next configured run time is enough for +a one-flight-a-day, single-container workload. + +process_one_flight() is also called synchronously, for a single row, by the +review page's "re-query" button - same function, so a corrected field +(wrong year, fixed airport code, etc.) re-runs exactly the same lookup. +""" + +import logging +import threading +import time +from datetime import date, datetime, timedelta + +import config +import flightaware +import models +import notifier +import reference_data + +log = logging.getLogger(__name__) + + +def next_run_datetime(hhmm: str, now: datetime | None = None) -> datetime: + now = now or datetime.now() + try: + hour, minute = (int(p) for p in hhmm.split(":")) + except ValueError: + hour, minute = 3, 0 + candidate = now.replace(hour=hour, minute=minute, second=0, microsecond=0) + if candidate <= now: + candidate += timedelta(days=1) + return candidate + + +def process_one_flight(row: dict) -> None: + flight_id = row["id"] + + from_icao = row.get("from_icao") or reference_data.iata_to_icao_airport(row.get("from_iata")) + to_icao = row.get("to_icao") or reference_data.iata_to_icao_airport(row.get("to_iata")) + carrier_icao = row.get("operating_carrier_icao") or reference_data.iata_to_icao_airline( + row.get("operating_carrier_iata") + ) + + updates = {"from_icao": from_icao, "to_icao": to_icao, "operating_carrier_icao": carrier_icao} + + if not from_icao or not to_icao or not carrier_icao: + missing = [ + name + for name, val in (("from airport", from_icao), ("to airport", to_icao), ("carrier", carrier_icao)) + if not val + ] + updates["status"] = "track_unavailable" + updates["error_message"] = f"could not resolve ICAO code(s) for: {', '.join(missing)}" + models.update_flight(flight_id, **updates) + notifier.notify_flight_staged(models.get_flight(flight_id)) + return + + try: + flight_date = date.fromisoformat(row["flight_date"]) + except (TypeError, ValueError): + updates["status"] = "track_unavailable" + updates["error_message"] = f"invalid flight_date: {row.get('flight_date')!r}" + models.update_flight(flight_id, **updates) + notifier.notify_flight_staged(models.get_flight(flight_id)) + return + + icao_callsign = f"{carrier_icao}{row.get('flight_number') or ''}" + + try: + history_url = flightaware.find_history_url(icao_callsign, flight_date, from_icao, to_icao) + kml_bytes = flightaware.fetch_kml(history_url) if history_url else None + track = flightaware.parse_kml(kml_bytes) if kml_bytes else None + except flightaware.FlightAwareTransientError as e: + attempts = row.get("fetch_attempts", 0) + 1 + updates["fetch_attempts"] = attempts + if attempts >= config.MAX_FETCH_ATTEMPTS: + updates["status"] = "track_unavailable" + updates["error_message"] = f"gave up after {attempts} attempts: {e}" + models.update_flight(flight_id, **updates) + notifier.notify_flight_staged(models.get_flight(flight_id)) + else: + updates["error_message"] = str(e) + models.update_flight(flight_id, **updates) + return + + if history_url: + updates["flightaware_url"] = history_url + + if track is None: + updates["status"] = "track_unavailable" + updates["error_message"] = updates.get("error_message") or "no track found on FlightAware" + else: + coordinates, times = track + updates["status"] = "pending_review" + updates["track_coordinates"] = coordinates + updates["track_times"] = times + updates["track_point_count"] = len(coordinates) + updates["error_message"] = None + + models.update_flight(flight_id, **updates) + notifier.notify_flight_staged(models.get_flight(flight_id)) + + +def run_daily_job() -> None: + now_iso = datetime.now().isoformat() + due = models.list_due_flights(now_iso) + log.info("daily job: %d flight(s) due", len(due)) + for row in due: + try: + process_one_flight(row) + except Exception: + log.exception("failed to process flight %s", row.get("id")) + + +def scheduler_loop() -> None: + while True: + run_time = models.get_setting("daily_run_time", "03:00") + run_at = next_run_datetime(run_time) + sleep_seconds = max((run_at - datetime.now()).total_seconds(), 1) + time.sleep(sleep_seconds) + try: + run_daily_job() + except Exception: + log.exception("daily job crashed") + + +def start_background_thread() -> threading.Thread: + thread = threading.Thread(target=scheduler_loop, name="scheduler", daemon=True) + thread.start() + return thread diff --git a/scripts/build_reference_data.py b/scripts/build_reference_data.py new file mode 100644 index 0000000..3ada4c8 --- /dev/null +++ b/scripts/build_reference_data.py @@ -0,0 +1,85 @@ +"""One-off dev script: fetch and trim public airport/airline reference data. + +Not run inside the container - output is committed to data/*.csv and loaded +at runtime by reference_data.py with zero network dependency. + +Usage: python3 scripts/build_reference_data.py +""" + +import csv +import io +import urllib.request +from pathlib import Path + +DATA_DIR = Path(__file__).resolve().parent.parent / "data" + +AIRPORTS_URL = "https://davidmegginson.github.io/ourairports-data/airports.csv" +AIRLINES_URL = "https://raw.githubusercontent.com/jpatokal/openflights/master/data/airlines.dat" + +USER_AGENT = "Mozilla/5.0 (compatible; boarding-pass-pipeline/1.0)" + + +def fetch(url: str) -> bytes: + req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) + with urllib.request.urlopen(req, timeout=30) as resp: + return resp.read() + + +def build_airports() -> None: + raw = fetch(AIRPORTS_URL).decode("utf-8", errors="replace") + reader = csv.DictReader(io.StringIO(raw)) + out_path = DATA_DIR / "airports.csv" + seen = set() + rows = [] + for row in reader: + iata = (row.get("iata_code") or "").strip().upper() + icao = (row.get("ident") or row.get("gps_code") or "").strip().upper() + name = (row.get("name") or "").strip() + if not iata or not icao or len(iata) != 3 or len(icao) != 4: + continue + if iata in seen: + continue + seen.add(iata) + rows.append((iata, icao, name)) + rows.sort(key=lambda r: r[0]) + with out_path.open("w", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + writer.writerow(["iata", "icao", "name"]) + writer.writerows(rows) + print(f"wrote {len(rows)} airports to {out_path}") + + +def build_airlines() -> None: + raw = fetch(AIRLINES_URL).decode("utf-8", errors="replace") + reader = csv.reader(io.StringIO(raw)) + out_path = DATA_DIR / "airlines.csv" + seen = set() + rows = [] + for cols in reader: + # OpenFlights airlines.dat columns (no header): + # id, name, alias, iata, icao, callsign, country, active + if len(cols) < 5: + continue + name = cols[1].strip().strip('"') + iata = cols[3].strip().strip('"').upper() + icao = cols[4].strip().strip('"').upper() + if not iata or not icao or iata == r"\N" or icao == r"\N": + continue + if len(iata) != 2 or len(icao) != 3: + continue + if iata in seen: + continue + seen.add(iata) + rows.append((iata, icao, name)) + rows.sort(key=lambda r: r[0]) + with out_path.open("w", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + writer.writerow(["iata", "icao", "name"]) + writer.writerows(rows) + print(f"wrote {len(rows)} airlines to {out_path}") + + +if __name__ == "__main__": + DATA_DIR.mkdir(exist_ok=True) + build_airports() + build_airlines() diff --git a/static/css/app.css b/static/css/app.css new file mode 100644 index 0000000..ef16a97 --- /dev/null +++ b/static/css/app.css @@ -0,0 +1,258 @@ +/* Design tokens - kept as CSS custom properties under these exact names so a + real apointless.css can drop in later without touching any template. */ +:root { + --bg: #0b0d11; + --surface-1: #12151b; + --surface-2: #1a1e28; + --surface-3: #232838; + --border: #2a3040; + --text-primary: #e6e9ef; + --text-secondary: #9aa3b2; + --accent: #3b82f6; + --accent-hover: #5b95f7; + --success: #22c55e; + --danger: #ef4444; + --warning: #f59e0b; + --font-body: "DM Sans", system-ui, -apple-system, sans-serif; + --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace; + --radius: 10px; +} + +html.light { + --bg: #f5f6f8; + --surface-1: #ffffff; + --surface-2: #f0f1f4; + --surface-3: #e5e7eb; + --border: #d7dae0; + --text-primary: #14161a; + --text-secondary: #565d6b; + --accent: #2563eb; + --accent-hover: #1d4ed8; +} + +* { box-sizing: border-box; } + +html, body { + margin: 0; + padding: 0; + background: var(--bg); + color: var(--text-primary); + font-family: var(--font-body); + min-height: 100%; +} + +a { color: var(--accent); text-decoration: none; } +a:hover { color: var(--accent-hover); } + +.muted { color: var(--text-secondary); } + +.topbar { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.9rem 1.5rem; + background: var(--surface-1); + border-bottom: 1px solid var(--border); +} + +.topbar-nav { display: flex; align-items: center; gap: 1.25rem; } +.topbar-nav a { color: var(--text-secondary); font-weight: 500; } +.topbar-nav a:hover { color: var(--text-primary); } +.brand { color: var(--text-primary) !important; font-weight: 700; } + +.icon-btn { + background: var(--surface-2); + border: 1px solid var(--border); + color: var(--text-primary); + border-radius: 50%; + width: 2.2rem; + height: 2.2rem; + cursor: pointer; + font-size: 1rem; +} +.icon-btn:hover { background: var(--surface-3); } + +.page { + max-width: 900px; + margin: 0 auto; + padding: 2rem 1.5rem 4rem; +} + +h1 { margin-top: 0; } + +.card { + background: var(--surface-1); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 1.25rem 1.5rem; + margin-bottom: 1.25rem; +} + +.alert { + padding: 0.8rem 1rem; + border-radius: var(--radius); + margin-bottom: 1.25rem; + border: 1px solid transparent; +} +.alert-danger { background: rgba(239, 68, 68, 0.12); border-color: var(--danger); color: var(--danger); } +.alert-warning { background: rgba(245, 158, 11, 0.12); border-color: var(--warning); color: var(--warning); } +.alert-success { background: rgba(34, 197, 94, 0.12); border-color: var(--success); color: var(--success); } +.alert ul { margin: 0.4rem 0 0; padding-left: 1.2rem; } + +.btn { + display: inline-block; + padding: 0.6rem 1.1rem; + border-radius: var(--radius); + border: 1px solid var(--border); + background: var(--surface-2); + color: var(--text-primary); + font-family: inherit; + font-size: 0.95rem; + cursor: pointer; +} +.btn:hover { background: var(--surface-3); } +.btn:disabled { opacity: 0.5; cursor: not-allowed; } +.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; } +.btn-primary:hover { background: var(--accent-hover); } +.btn-success { background: var(--success); border-color: var(--success); color: #06210f; } +.btn-danger { background: var(--danger); border-color: var(--danger); color: #2a0a0a; } +.btn-secondary { background: var(--surface-2); } + +.upload-form { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; } +.upload-drop { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + min-height: 10rem; + border: 2px dashed var(--border); + border-radius: var(--radius); + color: var(--text-secondary); + cursor: pointer; + text-align: center; + padding: 1rem; +} +.upload-drop:hover { border-color: var(--accent); color: var(--text-primary); } +.upload-drop input { display: none; } + +.tabs { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; + margin-bottom: 1.25rem; + border-bottom: 1px solid var(--border); + padding-bottom: 0.75rem; +} +.tab { + padding: 0.4rem 0.9rem; + border-radius: 999px; + color: var(--text-secondary); + font-size: 0.9rem; +} +.tab:hover { background: var(--surface-2); color: var(--text-primary); } +.tab-active { background: var(--accent); color: #fff; } +.tab-active:hover { background: var(--accent-hover); color: #fff; } + +.flight-list { display: flex; flex-direction: column; gap: 0.6rem; } +.flight-row { + display: grid; + grid-template-columns: auto auto auto 1fr auto; + align-items: center; + gap: 1rem; + color: var(--text-primary); +} +.flight-row:hover { border-color: var(--accent); } +.flight-route { font-family: var(--font-mono); } +.flight-number { font-family: var(--font-mono); color: var(--text-secondary); } + +.badge { + display: inline-block; + padding: 0.2rem 0.6rem; + border-radius: 999px; + font-size: 0.75rem; + font-weight: 500; + text-transform: capitalize; + background: var(--surface-3); + color: var(--text-secondary); +} +.badge-pending_review { background: rgba(59, 130, 246, 0.15); color: var(--accent); } +.badge-track_unavailable { background: rgba(245, 158, 11, 0.15); color: var(--warning); } +.badge-decode_failed { background: rgba(239, 68, 68, 0.15); color: var(--danger); } +.badge-approved { background: rgba(34, 197, 94, 0.15); color: var(--success); } +.badge-rejected { background: rgba(239, 68, 68, 0.15); color: var(--danger); } +.badge-queued { background: rgba(154, 163, 178, 0.15); color: var(--text-secondary); } + +.back-link { display: inline-block; margin-bottom: 1rem; color: var(--text-secondary); } + +.detail-header h1 { display: flex; align-items: center; gap: 0.75rem; font-size: 1.5rem; } + +.detail-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1.25rem; +} +.map-card { grid-column: 1 / -1; } + +@media (max-width: 720px) { + .detail-grid { grid-template-columns: 1fr; } + .flight-row { grid-template-columns: auto 1fr; grid-template-rows: auto auto; } +} + +.edit-form { display: flex; flex-direction: column; gap: 0.85rem; } +.edit-form label { + display: flex; + flex-direction: column; + gap: 0.3rem; + font-size: 0.85rem; + color: var(--text-secondary); +} +.field-row { display: flex; gap: 1rem; } +.field-row label { flex: 1; } + +input { + font-family: var(--font-mono); + font-size: 0.95rem; + background: var(--surface-2); + border: 1px solid var(--border); + border-radius: 6px; + padding: 0.5rem 0.6rem; + color: var(--text-primary); +} +input:focus { outline: 2px solid var(--accent); outline-offset: 1px; } + +.meta-list { + margin: 1rem 0 0; + display: grid; + grid-template-columns: auto 1fr; + gap: 0.35rem 1rem; + font-size: 0.9rem; +} +.meta-list dt { color: var(--text-secondary); } +.meta-list dd { margin: 0; font-family: var(--font-mono); overflow-wrap: anywhere; } + +.bp-photo { width: 100%; border-radius: var(--radius); display: block; } +.raw-bcbp { margin-top: 1rem; } +.raw-bcbp pre { + font-family: var(--font-mono); + font-size: 0.8rem; + background: var(--surface-2); + padding: 0.75rem; + border-radius: 6px; + overflow-x: auto; + white-space: pre-wrap; + word-break: break-all; +} + +#track-map { height: 360px; border-radius: var(--radius); overflow: hidden; } + +.action-bar { display: flex; gap: 0.75rem; flex-wrap: wrap; } + +.settings-form { display: flex; flex-direction: column; gap: 1rem; max-width: 480px; } +.settings-form label { + display: flex; + flex-direction: column; + gap: 0.3rem; + font-size: 0.9rem; + color: var(--text-secondary); +} +.settings-actions { display: flex; gap: 0.75rem; } diff --git a/static/js/app.js b/static/js/app.js new file mode 100644 index 0000000..fccb61b --- /dev/null +++ b/static/js/app.js @@ -0,0 +1,31 @@ +(function () { + var root = document.documentElement; + var toggle = document.getElementById("theme-toggle"); + if (toggle) { + toggle.addEventListener("click", function () { + var isLight = root.classList.contains("light"); + root.classList.remove("light", "dark"); + var next = isLight ? "dark" : "light"; + root.classList.add(next); + localStorage.setItem("theme", next); + }); + } + + var mapEl = document.getElementById("track-map"); + if (mapEl && window.L) { + var coords = JSON.parse(mapEl.dataset.track || "[]"); + // KML/GeoJSON order is [lon, lat, elev?]; Leaflet wants [lat, lon]. + var latLngs = coords.map(function (c) { return [c[1], c[0]]; }); + if (latLngs.length) { + var map = L.map(mapEl); + L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { + attribution: "© OpenStreetMap contributors", + maxZoom: 18, + }).addTo(map); + var line = L.polyline(latLngs, { color: "#3b82f6", weight: 3 }).addTo(map); + map.fitBounds(line.getBounds(), { padding: [20, 20] }); + L.marker(latLngs[0]).addTo(map); + L.marker(latLngs[latLngs.length - 1]).addTo(map); + } + } +})(); diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..879a03d --- /dev/null +++ b/templates/base.html @@ -0,0 +1,35 @@ + + + + + +{% block title %}Boarding Pass{% endblock %} + + + +{% block extra_head %}{% endblock %} + + +
+ + +
+
+{% block content %}{% endblock %} +
+ +{% block extra_scripts %}{% endblock %} + + diff --git a/templates/review_detail.html b/templates/review_detail.html new file mode 100644 index 0000000..f6ac0cc --- /dev/null +++ b/templates/review_detail.html @@ -0,0 +1,106 @@ +{% extends "base.html" %} +{% block title %}Flight {{ flight.id }} — Boarding Pass{% endblock %} + +{% block extra_head %} +{% if flight.track_coordinates %} + + +{% endif %} +{% endblock %} + +{% block content %} +← All flights + +
+

{{ flight.from_iata or '?' }} → {{ flight.to_iata or '?' }} + {{ flight.status.replace('_', ' ') }} +

+

Flight #{{ flight.id }} · created {{ flight.created_at }}

+
+ +{% if flight.error_message %} +
{{ flight.error_message }}
+{% endif %} +{% if flight.parse_warnings %} +
+ Parse warnings: +
    {% for w in flight.parse_warnings %}
  • {{ w }}
  • {% endfor %}
+
+{% endif %} + +
+
+

Details

+
+ + +
+ + +
+
+ + +
+
+ + +
+ + +
+ +
+
ICAO route
{{ flight.from_icao or '—' }} → {{ flight.to_icao or '—' }}
+
Carrier ICAO
{{ flight.operating_carrier_icao or '—' }}
+
Process after
{{ flight.process_after or '—' }}
+
Fetch attempts
{{ flight.fetch_attempts }}
+ {% if flight.flightaware_url %} +
FlightAware
{{ flight.flightaware_url }}
+ {% endif %} + {% if flight.track_point_count %} +
Track points
{{ flight.track_point_count }}
+ {% endif %} + {% if flight.airtrail_flight_id %} +
AirTrail flight
{{ flight.airtrail_flight_id }}
+ {% endif %} +
+
+ +
+

Photo

+ + Boarding pass photo + + {% if flight.raw_bcbp %} +
+ Raw BCBP data +
{{ flight.raw_bcbp }}
+
+ {% endif %} +
+ + {% if flight.track_coordinates %} +
+

Flight track

+
+
+ {% endif %} +
+ +
+
+ +
+
+ +
+
+ +
+
+{% if flight.status not in ('pending_review', 'track_unavailable', 'approved', 'rejected') %} +

Approve is unavailable until FlightAware has been checked for this flight +(happens automatically the day after the flight, or click Re-query to check now).

+{% endif %} +{% endblock %} diff --git a/templates/review_list.html b/templates/review_list.html new file mode 100644 index 0000000..951bc0a --- /dev/null +++ b/templates/review_list.html @@ -0,0 +1,29 @@ +{% extends "base.html" %} +{% block title %}Review — Boarding Pass{% endblock %} +{% block content %} +

Flights

+ +
+ Needs review + {% for s in statuses %} + {{ s.replace('_', ' ') }} + {% endfor %} + All +
+ +{% if not flights %} +

No flights here.

+{% else %} + +{% endif %} +{% endblock %} diff --git a/templates/settings.html b/templates/settings.html new file mode 100644 index 0000000..cca181a --- /dev/null +++ b/templates/settings.html @@ -0,0 +1,27 @@ +{% extends "base.html" %} +{% block title %}Settings — Boarding Pass{% endblock %} +{% block content %} +

Settings

+ +{% if message %}
{{ message }}
{% endif %} + +
+

Notifications (ntfy)

+ + + + +
+ + +
+
+{% endblock %} diff --git a/templates/upload.html b/templates/upload.html new file mode 100644 index 0000000..01d036f --- /dev/null +++ b/templates/upload.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% block title %}Upload — Boarding Pass{% endblock %} +{% block content %} +

Upload a boarding pass

+

Upload a photo or screenshot showing the barcode on your boarding pass. +It'll be decoded, queued, and tracked automatically the day after your flight.

+ +{% if error %}
{{ error }}
{% endif %} + +
+ + +
+{% endblock %} diff --git a/tokens.py b/tokens.py new file mode 100644 index 0000000..39de6e9 --- /dev/null +++ b/tokens.py @@ -0,0 +1,43 @@ +"""Signed tokens authorizing the ntfy Approve/Deny callback URLs. + +ntfy action buttons fire a plain, unauthenticated HTTP request from wherever +the notification is received - they carry no Authelia session. The reverse +proxy bypass needed for those routes (see README) applies to the whole path, +so this token is the ONLY auth on /flights//approve and /reject, +including when the request comes from the review page's own buttons. +""" + +import hashlib +import hmac +import time + +import models + + +def _secret() -> bytes: + return models.get_or_create_secret_key().encode("utf-8") + + +def _signature(flight_id: int, action: str, expiry: int) -> str: + message = f"{flight_id}:{action}:{expiry}".encode("utf-8") + return hmac.new(_secret(), message, hashlib.sha256).hexdigest() + + +def sign_token(flight_id: int, action: str, ttl_seconds: int = 30 * 86400) -> str: + expiry = int(time.time()) + ttl_seconds + sig = _signature(flight_id, action, expiry) + return f"{expiry}.{sig}" + + +def verify_token(flight_id: int, action: str, token: str) -> bool: + if not token or "." not in token: + return False + expiry_str, _, sig = token.partition(".") + try: + expiry = int(expiry_str) + except ValueError: + return False + if expiry < time.time(): + return False + expected = _signature(flight_id, action, expiry) + return hmac.compare_digest(expected, sig)