NTSB investigations, Mexico
86 cases where the phase of flight was Landing.
Cases per year
| 1965 | 1 |
|---|---|
| 1966 | 2 |
| 1967 | 17 |
| 1968 | 12 |
| 1969 | 8 |
| 1970 | 5 |
| 1971 | 7 |
| 1972 | 8 |
| 1973 | 7 |
| 1974 | 7 |
| 1975 | 5 |
| 1976 | 7 |
Latest cases
Query with SQL
duckdb -csv -c "WITH phase_names(main, name) AS (VALUES (100, 'Prior to flight'), (150, 'Standing'), (200, 'Pushback/towing'), (250, 'Taxi'), (300, 'Takeoff'), (350, 'Initial climb'), (400, 'Enroute'), (450, 'Maneuvering'), (500, 'Approach'), (550, 'Landing'), (600, 'Emergency descent'), (650, 'Uncontrolled descent'), (700, 'Post-impact'), (750, 'After landing'), (800, 'Other'), (990, 'Unknown')),
crosswalk(code, main, name) AS (VALUES (500, 150, 'Standing'), (501, 150, 'Standing - pre-flight'), (502, 150, 'Standing - starting engine(s)'), (503, 150, 'Standing - engine(s) operating'), (504, 150, 'Standing - engine(s) not operating'), (505, 150, 'Standing - idling rotors'), (510, 250, 'Taxi'), (511, 200, 'Taxi - pushback/tow'), (512, 250, 'Taxi - to takeoff'), (513, 250, 'Taxi - from landing'), (514, 250, 'Taxi - aerial'), (520, 300, 'Takeoff'), (521, 300, 'Takeoff - roll/run'), (522, 350, 'Takeoff - initial climb'), (523, 300, 'Takeoff - aborted'), (530, 400, 'Climb'), (531, 400, 'Climb - to cruise'), (540, 400, 'Cruise'), (541, 400, 'Cruise - normal'), (542, 400, 'Maneuvering - holding (IFR)'), (550, 400, 'Descent'), (551, 400, 'Descent - normal'), (552, 600, 'Descent - emergency'), (553, 650, 'Descent - uncontrolled'), (560, 500, 'Approach'), (561, 500, 'Approach - VFR pattern - downwind'), (562, 500, 'Approach - VFR pattern - base turn'), (563, 500, 'Approach - VFR pattern - base leg/base to final'), (564, 500, 'Approach - VFR pattern - final approach'), (565, 500, 'Go-around (VFR)'), (566, 500, 'Approach - IAF to FAF/outer marker (IFR)'), (567, 500, 'Approach - FAF/outer marker to threshold (IFR)'), (568, 500, 'Circling (IFR)'), (569, 500, 'Missed approach (IFR)'), (570, 550, 'Landing'), (571, 550, 'Landing - flare/touchdown'), (572, 550, 'Landing - roll'), (573, 550, 'Landing - aborted'), (574, 550, 'Emergency landing'), (575, 550, 'Emergency landing after takeoff'), (576, 600, 'Emergency descent/landing'), (580, 450, 'Maneuvering'), (581, 450, 'Maneuvering - aerial application'), (582, 450, 'Maneuvering - turn to reverse direction'), (583, 450, 'Maneuvering - turn to landing area (emergency)'), (590, 450, 'Hover'), (591, 450, 'Hover - in ground effect'), (592, 450, 'Hover - out of ground effect'), (600, 800, 'Other'), (610, 990, 'Unknown')),
current_codes AS (
SELECT e.case_mkey, TRY_CAST(e.\"tier1Number\" AS INTEGER) AS code,
row_number() OVER (PARTITION BY e.case_mkey ORDER BY coalesce(e.\"isDefiningEvent\", false) DESC, e.position) AS n
FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e
WHERE e.aircrafts_position = 1 AND e.\"tier1Number\" GLOB '[1-9][0-9]*'
AND (e.\"isDefiningEvent\" OR e.case_mkey IN (SELECT \"mKey\" FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' WHERE \"isPre1982\"))
),
phases AS (
SELECT case_mkey, 'current' AS scheme, code, CASE WHEN code >= 990 THEN 990 ELSE code // 50 * 50 END AS main
FROM current_codes WHERE n = 1
UNION ALL
SELECT o.case_mkey, 'older', o.\"phaseOfFlightCode\", w.main
FROM 'https://openairdocs.org/data/latest/ntsb_occurrences.parquet' o JOIN crosswalk w ON w.code = o.\"phaseOfFlightCode\"
WHERE o.aircrafts_position = 1 AND o.\"occurrenceNumber\" = 1 AND o.case_mkey NOT IN (SELECT case_mkey FROM current_codes)
),
case_phases AS (
SELECT p.*, c.\"eventDate\", c.\"highestInjuryLevel\" = 'Fatal' AS fatal, a.aircraft_model_code
FROM phases p JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c.\"mKey\" = p.case_mkey
LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = p.case_mkey AND a.position = 1
WHERE c.\"eventDate\" >= DATE '1962-01-01' AND p.main IN (SELECT main FROM phase_names)
)
SELECT c.\"ntsbNumber\", c.\"eventDate\", c.\"eventType\", c.\"eventCity\", c.\"eventStateOrRegion\", a.n_number, a.\"aircraftMake\", a.\"aircraftModel\", c.\"highestInjuryLevel\", c.\"totalFatal\", c.\"completionStatus\", c.report_url
FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = c.\"mKey\" AND a.position = 1
WHERE c.\"eventStateOrRegion\" = 'MX' AND c.\"eventCountry\" = 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
ORDER BY c.\"eventDate\" DESC, c.\"ntsbNumber\" DESC"Prints the whole list as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.
WITH phase_names(main, name) AS (VALUES (100, 'Prior to flight'), (150, 'Standing'), (200, 'Pushback/towing'), (250, 'Taxi'), (300, 'Takeoff'), (350, 'Initial climb'), (400, 'Enroute'), (450, 'Maneuvering'), (500, 'Approach'), (550, 'Landing'), (600, 'Emergency descent'), (650, 'Uncontrolled descent'), (700, 'Post-impact'), (750, 'After landing'), (800, 'Other'), (990, 'Unknown')),
crosswalk(code, main, name) AS (VALUES (500, 150, 'Standing'), (501, 150, 'Standing - pre-flight'), (502, 150, 'Standing - starting engine(s)'), (503, 150, 'Standing - engine(s) operating'), (504, 150, 'Standing - engine(s) not operating'), (505, 150, 'Standing - idling rotors'), (510, 250, 'Taxi'), (511, 200, 'Taxi - pushback/tow'), (512, 250, 'Taxi - to takeoff'), (513, 250, 'Taxi - from landing'), (514, 250, 'Taxi - aerial'), (520, 300, 'Takeoff'), (521, 300, 'Takeoff - roll/run'), (522, 350, 'Takeoff - initial climb'), (523, 300, 'Takeoff - aborted'), (530, 400, 'Climb'), (531, 400, 'Climb - to cruise'), (540, 400, 'Cruise'), (541, 400, 'Cruise - normal'), (542, 400, 'Maneuvering - holding (IFR)'), (550, 400, 'Descent'), (551, 400, 'Descent - normal'), (552, 600, 'Descent - emergency'), (553, 650, 'Descent - uncontrolled'), (560, 500, 'Approach'), (561, 500, 'Approach - VFR pattern - downwind'), (562, 500, 'Approach - VFR pattern - base turn'), (563, 500, 'Approach - VFR pattern - base leg/base to final'), (564, 500, 'Approach - VFR pattern - final approach'), (565, 500, 'Go-around (VFR)'), (566, 500, 'Approach - IAF to FAF/outer marker (IFR)'), (567, 500, 'Approach - FAF/outer marker to threshold (IFR)'), (568, 500, 'Circling (IFR)'), (569, 500, 'Missed approach (IFR)'), (570, 550, 'Landing'), (571, 550, 'Landing - flare/touchdown'), (572, 550, 'Landing - roll'), (573, 550, 'Landing - aborted'), (574, 550, 'Emergency landing'), (575, 550, 'Emergency landing after takeoff'), (576, 600, 'Emergency descent/landing'), (580, 450, 'Maneuvering'), (581, 450, 'Maneuvering - aerial application'), (582, 450, 'Maneuvering - turn to reverse direction'), (583, 450, 'Maneuvering - turn to landing area (emergency)'), (590, 450, 'Hover'), (591, 450, 'Hover - in ground effect'), (592, 450, 'Hover - out of ground effect'), (600, 800, 'Other'), (610, 990, 'Unknown')),
current_codes AS (
SELECT e.case_mkey, TRY_CAST(e."tier1Number" AS INTEGER) AS code,
row_number() OVER (PARTITION BY e.case_mkey ORDER BY coalesce(e."isDefiningEvent", false) DESC, e.position) AS n
FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e
WHERE e.aircrafts_position = 1 AND e."tier1Number" GLOB '[1-9][0-9]*'
AND (e."isDefiningEvent" OR e.case_mkey IN (SELECT "mKey" FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' WHERE "isPre1982"))
),
phases AS (
SELECT case_mkey, 'current' AS scheme, code, CASE WHEN code >= 990 THEN 990 ELSE code // 50 * 50 END AS main
FROM current_codes WHERE n = 1
UNION ALL
SELECT o.case_mkey, 'older', o."phaseOfFlightCode", w.main
FROM 'https://openairdocs.org/data/latest/ntsb_occurrences.parquet' o JOIN crosswalk w ON w.code = o."phaseOfFlightCode"
WHERE o.aircrafts_position = 1 AND o."occurrenceNumber" = 1 AND o.case_mkey NOT IN (SELECT case_mkey FROM current_codes)
),
case_phases AS (
SELECT p.*, c."eventDate", c."highestInjuryLevel" = 'Fatal' AS fatal, a.aircraft_model_code
FROM phases p JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c."mKey" = p.case_mkey
LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = p.case_mkey AND a.position = 1
WHERE c."eventDate" >= DATE '1962-01-01' AND p.main IN (SELECT main FROM phase_names)
)
SELECT c."ntsbNumber", c."eventDate", c."eventType", c."eventCity", c."eventStateOrRegion", a.n_number, a."aircraftMake", a."aircraftModel", c."highestInjuryLevel", c."totalFatal", c."completionStatus", c.report_url
FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = c."mKey" AND a.position = 1
WHERE c."eventStateOrRegion" = 'MX' AND c."eventCountry" = 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
ORDER BY c."eventDate" DESC, c."ntsbNumber" DESCRun it at the DuckDB prompt, or in any tool that reads Parquet over HTTPS. More ways to query the release are on Use the data.
NTSB FTW76O0009Accident · No injuriesClosedCessna 320 · Ciudad, MexicoNTSB LAX76A0021Accident · No injuriesClosedPiper PA-32R · Hermosillo, MexicoNTSB FTW76O0004Accident · No injuriesClosedPiper PA-23 · Huascato, MexicoNTSB FTW76O0005Accident · No injuriesClosedPiper PA-24 · Colima, MexicoNTSB FTW76OF002Accident · No injuriesClosedMaule M5220C · Jalisco, MexicoNTSB LAX76F0015Accident · No injuriesClosedBeech E18S · Bahia De L.A., MexicoNTSB LAX7600016Accident · No injuriesClosedPiper PA-28 · Ensenada, MexicoNTSB LAX76O0013Accident · No injuriesClosedPiper PA-32 · Mulege, MexicoNTSB LAX7500027Accident · No injuriesClosedCessna 150 · Mexicali, MexicoNTSB LAX75O0031Accident · No injuriesClosedCessna 182 · Loreto, MexicoNTSB LAX7500026Accident · No injuriesClosedCessna 182 · Loreto, MexicoNTSB LAX75O0021Accident · No injuriesClosedGrum Amer AA5 · Puertecitos, MexicoNTSB LAX75O0016Accident · No injuriesClosedCessna 177RG · Platinito, MexicoNTSB FTW75ORG71Accident · No injuriesClosedPiper PA-30 · Zihuathnejo, MexicoNTSB LAX74OL087Accident · No injuriesClosedPiper PA-28 · Hermosilla, MexicoNTSB LAX74OL076Incident · No injuriesClosedPiper PA-24 · Mexicali, MexicoNTSB FTW74OPD36Accident · No injuriesClosedBeech V35A · Padilla, MexicoNTSB LAX74OL086Accident · No injuriesClosedCessna 210 · Tijuana, MexicoNTSB FTW74DRA24Accident · No injuriesClosedBeech S35 · Lapesca, MexicoNTSB IAD74DLQ16Accident · No injuriesClosedPiper PA-28 · Renosa, MexicoNTSB LAX74OL022Accident · No injuriesClosedBeech 35 · Mulege, MexicoNTSB LAX74OL007Accident · No injuriesClosedCessna 172L · Sonoyta, MexicoNTSB DEN74OD010Accident · Minor injuriesClosedCessna TP206B · Tahuahueto, MexicoNTSB OAK73DVD36Accident · No injuriesClosedPiper PA-24 · Mazatlan, MexicoNTSB FTW73DPD26Accident · No injuriesClosedPiper PA-32 · Ojinaga, MexicoNTSB FTW73DRG42Accident · No injuriesClosedCessna 210L · Muzquiz, MexicoNTSB LAX73OL008Accident · No injuriesClosedBellanca 17-31 · 1, MexicoNTSB FTW73DRG38Accident · No injuriesClosedCessna 182 · Progresso, MexicoNTSB UNK73X0102Accident · No injuriesClosedPiper PA-28 · Tepic, MexicoNTSB LAX73OLO05Accident · No injuriesClosedPiper PA-32 · Mulege, MexicoNTSB FTW73DPA12Accident · No injuriesClosedBeech 95-D55 · La Paz, MexicoNTSB FTW72DRG99Accident · No injuriesClosedPiper PA-34 · Tijuana, MexicoNTSB FTW72DRG71Accident · No injuriesClosedCessna 195B · Pt.Colorado, MexicoNTSB FTW72DRG54Accident · No injuriesClosedCessna 195 · Mulege, MexicoNTSB FTW72DRG56Accident · No injuriesClosedCessna 182H · Tijuana, MexicoNTSB FTW72DRG43Accident · Minor injuriesClosedCessna 210E · Tresimilio, MexicoNTSB FTW72DRA24Accident · No injuriesClosedBeech K35 · Matamoros, MexicoNTSB LAX72DUM20Accident · Minor injuriesClosedCessna 172B · Baja, MexicoNTSB FTW71DQG67Accident · No injuriesClosedBeech 95 · Sinaloa, MexicoNTSB FTW71DRH07Accident · Minor injuriesClosedCessna 172 · Guaymas, MexicoNTSB FTW71DRA35Accident · No injuriesClosedCessna 182M · Chihuahua, MexicoNTSB UNK71X0100Accident · No injuriesClosedTaylorcraft BC12-D · S.Rosalia, MexicoNTSB FTW71DRG33Accident · No injuriesClosedPiper PA-32 · Pericos, MexicoNTSB FTW71DRG04Accident · No injuriesClosedCessna 182H · Bahia, MexicoNTSB FTW70DRG15Accident · No injuriesClosedCessna 175 · Chihuahua, MexicoNTSB LAX70DUJ04Accident · No injuriesClosedPiper PA-20 · Nogales, MexicoNTSB UNK70X0103Accident · Minor injuriesClosedCessna 180 · Mexicali, MexicoNTSB SEA70D0062Accident · No injuriesClosedCessna 210 · Muleje, MexicoNTSB MIA70D0089Accident · No injuriesClosedBeech 35 · Matamoros, MexicoNTSB UNK69X0124Accident · No injuriesClosedCessna 150 · Juarez, Mexico