Analyzing Aviation Incidents (2014–2024): Data Collection, Insights, and Interactive Visualization
Introduction
Despite significant advancements in aviation technology and safety, aircraft incidents still occur, making it crucial to understand their underlying causes and contributing factors. In this article, we dive into an analytical study of aviation incidents (AIs) that took place between 2014 and 2024. We’ll explore how the data was collected and processed, highlight key trends, and demonstrate how to visualize these incidents on an interactive map.
Data Source and Collection Process
The primary data for this analysis was sourced from the official website of the Interstate Aviation Committee (IAC), the civil aviation authority for CIS countries. The IAC investigates civil aviation incidents involving aircraft registered or operated by member states, but does not cover military incidents.
Data Extraction Workflow
To gather and prepare the data for analysis, the following steps were taken:
- Web Scraping: Python and Selenium were used to automate data extraction from the IAC’s incident investigation pages for each year from 2014 to 2024.
- Data Cleaning: The raw data was cleaned and structured using pandas, including renaming columns, extracting relevant fields (such as fatalities), and removing extraneous information.
- Manual Enrichment: Geographic coordinates and incident causes were manually added by reviewing individual incident reports.
Example: Python Web Scraping Script
Here’s a simplified version of the script used for data collection:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import pandas as pd
import time
import re
years = list(range(2014, 2025))
driver = webdriver.Chrome()
all_data = pd.DataFrame()
driver.get("https://mak-iac.org/rassledovaniya/")
for year in years:
print(f"Collecting data for {year}...")
time.sleep(3)
select = Select(driver.find_element(By.NAME, "YEAR"))
select.select_by_visible_text(str(year))
time.sleep(5)
tables = pd.read_html(driver.page_source)
if tables:
year_data = tables[0]
year_data["Year"] = year
all_data = pd.concat([all_data, year_data], ignore_index=True)
driver.quit()
if not all_data.empty:
all_data.columns = ["Date", "Location", "Aircraft Type", "Operator", "Damage", "Extra"]
all_data["Year"] = pd.to_datetime(all_data["Date"], errors="coerce").dt.year
all_data["Aircraft Type"] = all_data["Aircraft Type"].apply(lambda x: re.sub(r"s*RA-d+", "", str(x)))
def extract_deaths(text):
match = re.search(r"Погибших:s*(d+)", str(text))
return int(match.group(1)) if match else 0
all_data["Fatalities"] = all_data["Damage"].apply(extract_deaths)
final_data = all_data[["Year", "Date", "Location", "Aircraft Type", "Operator", "Fatalities", "Damage"]]
final_data.to_excel("transformed_data_all_years.xlsx", index=False)
print("Data successfully saved to 'transformed_data_all_years.xlsx'.")
else:
print("No data found for processing.")
Key Findings and Trends
Between 2014 and 2024, a total of 415 aviation incidents were recorded, resulting in 1,111 fatalities. Here are some of the most notable insights:
Annual Trends
- The highest number of incidents occurred in 2016 (57 cases), while 2023 saw the fewest (21 cases).
- On average, there were 38 incidents per year.
- Most incidents happened during the summer months and in September.
Aircraft Types Most Involved
- The Antonov An-2 led the list of aircraft types most frequently involved in incidents, followed by various Robinson helicopters (R66, R44, R44 II), and Mi-series helicopters (Mi-8T, Mi-2, Mi-8AMT).
Damage Categories
- Incidents were categorized as follows:
- Destroyed: 150 (37%)
- Lost (e.g., burned): 72 (17%)
- Damaged: 191 (46%)
Operator Insights
- Incidents involving private owners accounted for 40.96% of all cases, but only 16.56% of total fatalities.
- The highest fatality counts were linked to rare but severe incidents involving large aircraft (e.g., Airbus A321, Tu-154, Boeing 737-800, An-148-100V) and more frequent cases with Mi-8T helicopters.
Causes of Incidents
- Pilot error was the leading cause (48.3%).
- Other causes included:
- Technical failures: 17.1%
- Human factor (e.g., intoxication, passenger interference): 17.6%
- Weather conditions: 10.2%
- Collisions (with birds, foreign objects, vehicles): 6%
- Unknown: 0.8%
Noteworthy Patterns
- An-2 incidents were most often due to technical failures.
- Robinson helicopters (mainly privately operated) were prone to pilot error and human factor issues, often linked to insufficient training or pilot intoxication.
- Weather-related incidents typically involved poor visibility from rain, snow, or even wildfires.
- Collisions included bird strikes, foreign object ingestion, and runway vehicle collisions.
- Some human factor cases were unusual, such as passengers accidentally interfering with controls.
Interactive Map: Visualizing Aviation Incidents
To better understand the geographic distribution of incidents, an interactive map was created. Each incident is plotted by its coordinates, with details such as year, aircraft type, and fatalities available on click.
Generating the Map with Python and Folium
Here’s a simplified version of the code used to create the map:
import pandas as pd
import folium
# Load data
df = pd.read_excel('updated_transformed_data_all_years_1.xlsx')
df_geo = df.dropna(subset=["Latitude", "Longitude"])
# Create map centered on average coordinates
m = folium.Map(location=[df_geo["Latitude"].mean(), df_geo["Longitude"].mean()], zoom_start=3, tiles="CartoDB Positron")
# Add incident markers
for _, row in df_geo.iterrows():
folium.Marker(
location=[row["Latitude"], row["Longitude"]],
popup=f"Year: {row['Year']}nAircraft: {row['Aircraft Type']}nFatalities: {row['Fatalities']}",
icon=folium.Icon(color="red" if row["Fatalities"] > 0 else "blue")
).add_to(m)
# Save map
m.save("aviation_incidents_map.html")
You can explore the interactive map here:
Conclusion and Takeaways
This analysis of aviation incidents investigated by the IAC over the past 11 years reveals several important trends:
- Pilot error remains the leading cause of incidents, highlighting the need for ongoing training and strict operational standards.
- Technical failures and adverse weather are significant contributors, especially for certain aircraft types.
- Private and small aircraft (especially helicopters) are disproportionately affected by human factors, including pilot intoxication and passenger interference.
- The interactive map provides a valuable tool for visualizing and exploring incident data geographically.
Tip: If you’re interested in aviation safety or data analysis, consider exploring the raw data and map further, or adapting the provided code for your own research projects.
Stay curious, stay safe, and keep exploring the data!