NTSB investigations, 2002, OR
15 cases where the phase of flight was Landing.
Cases per year
| 1964 | 23 |
|---|---|
| 1965 | 28 |
| 1966 | 39 |
| 1967 | 53 |
| 1968 | 37 |
| 1969 | 18 |
| 1970 | 23 |
| 1971 | 18 |
| 1972 | 15 |
| 1973 | 26 |
| 1974 | 21 |
| 1975 | 20 |
| 1976 | 24 |
| 1977 | 22 |
| 1978 | 19 |
| 1979 | 32 |
| 1980 | 23 |
| 1981 | 20 |
| 1982 | 22 |
| 1983 | 13 |
| 1984 | 10 |
| 1985 | 17 |
| 1986 | 9 |
| 1987 | 7 |
| 1988 | 7 |
| 1989 | 11 |
| 1990 | 16 |
| 1991 | 10 |
| 1992 | 11 |
| 1993 | 8 |
| 1994 | 12 |
| 1995 | 15 |
| 1996 | 18 |
| 1997 | 7 |
| 1998 | 12 |
| 1999 | 11 |
| 2000 | 22 |
| 2001 | 16 |
| 2002 | 15 |
| 2003 | 13 |
| 2004 | 10 |
| 2005 | 13 |
| 2006 | 8 |
| 2007 | 14 |
| 2008 | 19 |
| 2009 | 9 |
| 2010 | 12 |
| 2011 | 13 |
| 2012 | 14 |
| 2013 | 12 |
| 2014 | 8 |
| 2015 | 9 |
| 2016 | 12 |
| 2017 | 10 |
| 2018 | 19 |
| 2019 | 9 |
| 2020 | 7 |
| 2021 | 12 |
| 2022 | 13 |
| 2023 | 6 |
| 2024 | 14 |
| 2025 | 9 |
| 2026 | 14 |
Where
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 year(c.\"eventDate\") = 2002
AND c.\"eventStateOrRegion\" = 'OR' 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 year(c."eventDate") = 2002
AND c."eventStateOrRegion" = 'OR' 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 SEA03LA001Accident · No injuriesLimited investigationFinal reportCurtiss-Wright Travel Air 4000 · Tillamook, ORThe fracture of the weld joining the left main wheel strut to the left/right main wheel axel resulting in separation of the strut from the axle during an unknown phase of operation which ultimately lead to the left gear collapse and subsequent nose-over on…NTSB SEA02LA176Accident · No injuriesLimited investigationFinal reportEells Air Command 503 · Prineville, ORThe student pilot's failure to maintain airspeed resulting in a hard landing.NTSB SEA02LA160Accident · No injuriesLimited investigationFinal reportPiper PA-18 · Newberg, ORA warped right brake disc resulting in a veer to the right during the landing roll, and the aircraft's subsequent collision with a fence. A contributing factor was the fence.NTSB SEA02LA153Accident · Serious injuriesLimited investigationFinal reportMooney M20L · Newberg, ORThe pilot's inadequate flare and his delay in executing an aborted landing. A contributing factor was the dark night conditions.NTSB SEA02LA142Accident · Minor injuriesLimited investigationFinal reportKaminski RAF 2000 · Newberg, ORThe pilot's inadequate compensation (excessive altitude) for crosswind conditions resulting in the gyroplane's rotors contacting the ground. Contributing factors were the gusty crosswind conditions.NTSB SEA02LA129Accident · No injuriesLimited investigationFinal reportRockwell International 690A · Crescent Lake, ORThe pilot's failure to maintain proper rate of descent resulting in a hard landing and subsequent nose gear separation. Contributing factors were the turbulent crosswind conditions the pilot encountered just before touchdown.NTSB SEA02LA127Accident · No injuriesLimited investigationFinal reportBredl Fokker DR1 · Troutdale, ORThe collapse, for undetermined reasons, of the left main landing gear spoked-wheel structure.NTSB SEA02LA120Accident · No injuriesLimited investigationFinal reportWelborn Pulsar XP · Prineville, ORThe disconnection of the throttle cable on landing resulting in the aircraft's engine going to full throttle and the pilot's subsequent failure to maintain directional control after securing the engine during the landing event.NTSB SEA02LA100Accident · No injuriesLimited investigationFinal reportCessna 152 · Hillsboro, ORAn improper flare during the landing. Not performing a proper recovery from a bounced landing was a factor.NTSB SEA02LA080Accident · No injuriesLimited investigationFinal reportAeronca 7-EC · Flying M Ranch, ORThe pilot's failure to maintain directional control while applying the brakes during the landing roll. Factors include a tailwind and trees at the far end of the airstrip.NTSB SEA02LA070Accident · No injuriesLimited investigationFinal reportCessna 152 · Troutdale, ORImproper compensation for wind conditions while landing. Factors include a taxiway marker.NTSB SEA02LA041Accident · No injuriesLimited investigationFinal reportCessna 180 · Pacific City, ORThe pilot's inadequate compensation for local wind conditions during the landing roll. Factors include unfavorable winds, and a swampy area adjacent to the runway.NTSB SEA02LA038Accident · No injuriesLimited investigationFinal reportBoeing Stearman A75N1 · Creswell, ORThe pilot's failure to maintain directional control on landing resulting in the aircraft leaving the runway environment, crossing a ditch and nosing over. Contributing factors were variable winds reported by the pilot and the ditch.NTSB SEA02LA032Accident · No injuriesLimited investigationFinal reportPiper PA-18-150 · Eagle Point, ORThe pilot inadvertently failed to retract the landing gear for the water landing and the aircraft nosed over.NTSB SEA02LA034Accident · No injuriesLimited investigationFinal reportRockwell 500-S · Baker City, ORThe pilot's excessive descent rate at the time the aircraft came in contact with the runway during a night precautionary landing. Factors include extensive airframe ice accumulation, ice accumulation on the flight compartment windshield, ambient conditions…