NTSB investigations, 1987, ND
10 cases where the phase of flight was Maneuvering.
Cases per year
| 1964 | 9 |
|---|---|
| 1965 | 14 |
| 1966 | 6 |
| 1967 | 7 |
| 1968 | 7 |
| 1969 | 3 |
| 1970 | 3 |
| 1971 | 7 |
| 1972 | 3 |
| 1973 | 5 |
| 1974 | 7 |
| 1975 | 11 |
| 1976 | 6 |
| 1977 | 1 |
| 1978 | 5 |
| 1979 | 2 |
| 1980 | 5 |
| 1981 | 6 |
| 1982 | 7 |
| 1983 | 7 |
| 1984 | 5 |
| 1985 | 5 |
| 1986 | 6 |
| 1987 | 10 |
| 1988 | 2 |
| 1989 | 3 |
| 1990 | 5 |
| 1991 | 3 |
| 1992 | 7 |
| 1993 | 3 |
| 1994 | 4 |
| 1995 | 3 |
| 1996 | 3 |
| 1997 | 2 |
| 1998 | 7 |
| 1999 | 3 |
| 2000 | 5 |
| 2001 | 5 |
| 2002 | 1 |
| 2003 | 2 |
| 2004 | 2 |
| 2005 | 3 |
| 2006 | 5 |
| 2007 | 5 |
| 2008 | 2 |
| 2009 | 3 |
| 2010 | 1 |
| 2011 | 4 |
| 2012 | 5 |
| 2013 | 1 |
| 2014 | 1 |
| 2016 | 1 |
| 2017 | 1 |
| 2018 | 4 |
| 2019 | 3 |
| 2020 | 1 |
| 2021 | 1 |
| 2022 | 1 |
| 2023 | 4 |
| 2024 | 1 |
| 2025 | 1 |
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\") = 1987
AND c.\"eventStateOrRegion\" = 'ND' AND c.\"eventCountry\" = 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 450)
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") = 1987
AND c."eventStateOrRegion" = 'ND' AND c."eventCountry" = 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 450)
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 DEN88LA017Accident · No injuriesLimited investigationFinal reportPiper J5A · Devils Lake, NDA commercial plt was giving instruction to another commercial plt with a CFI rating. Witnesses observed the aircraft at approximately 100 feet over a water fowl production lake. The plt stated that during a turn and pull up, the engine lostpower and the…NTSB DEN87DTG02Accident · No injuriesFinal reportBell 47G-4A · Minot, NDThe plt rprtd that when he took off fm a nrby nurse truck, the wind was fm the NE at 5 to 7 mph. He made an observation pass across the area to be treated, then bgn a dscndg rgt turn to make a swath run in the opposite drctn. He stated he was unaware of a…NTSB DEN87FA224Accident · Serious injuriesField investigationFinal reportChampion 7ECA · Devils Lake, NDThe acft was observed flying at low altitude and circling a farm that belonged to the plt's sister. After making two passes by the farm, the acft crashed in a corn field. The plt said he was looking for a field in which to land, and on the 2nd pass, the acft…NTSB DEN87DTG01Accident · No injuriesFinal reportCessna 188 · Valley City, NDThe plt rprtd the eng lost pwr drg a swath run & the acft was dmgd drg a forced lndg in a field of mature sunflowers. An exam of the acft revealed that both fuel tanks & the gascolater contained fuel. Subsequently, the eng was started at the acdnt site & it…NTSB DEN87LA193Accident · Serious injuriesLimited investigationFinal reportCessna T188C · Pisek, NDThe plt was preparing to spray a potato field with a mixture of water and 2 lbs of 'blight-out.' He made one observation pass over the field to check for obstructions and noticed two sets of power lines, one on the east side of a road and the other on the…NTSB DEN87LA190Accident · Minor injuriesLimited investigationFinal reportPiper PA-25-235 · Fargo, NDThe plt was spraying a field with orthine, used to exterminate grasshoppers. The plt said he was making his last pass at the field and was flying into a setting sun. He said he did not see the powerline. The acft struck the powerline and the plt made a crash…NTSB DEN87LA161Accident · Serious injuriesLimited investigationFinal reportCessna A188B · Cayuga, NDThe plt was completing a swath run and struck a power line with the right wing, severing the wing. The aircraft did a snap roll to the right and impacted in a field.NTSB DEN87LA112Accident · Serious injuriesLimited investigationFinal reportPiper PA-25-260 · Harvey, NDAn ag plt was working a field on an aerial application flt. At the end of a spray pass, the acft struck a shelterbelt and went out of control. The acft climbed to 300 ft and rolled inverted. The acft impacted the ground in a nose low, wing down attitude. The…NTSB DEN87LA101Accident · Minor injuriesLimited investigationFinal reportBoeing A75N1 · Argusville, NDThe plt took off with a load of 46-0-0 fertilizer and proceeded to the field to be treated. The plt said when he arrived his flagger was not in position so he initiated a goaround. When the plt had turned 90 deg onto the x-wind leg the acft stalled. The plt…NTSB DEN87FA090Accident · 1 fatalField investigationFinal reportBellanca 7GCBC · Berthold, NDThe plt took off to the east from a farm driveway to return home. Witnesses saw the airplane make an immediate right turn, followed by a left turn at aprx 35-50 ft AGL. The acft approached the farm at aprx 50-100 ft AGL. The acft suddenly pulled up, banked…