America has the leading amount of pipelines in the world, with a whopping 70 thousand miles of crude oil pipelines, which could circle the Earth nearly three times over.1 Despite this, we often don’t hear about issues with these pipelines unless they are severe enough to make a major news story. However, all pipeline spills and accidents must be considered in order to see the full picture of oil production and maintenance in the U.S. We sought to understand the scope of the environmental damage caused by these pipeline spills, and who is responsible for them.
Using data provided by the U.S Department of Transportation,2 the below map offers a primer on oil spills in the U.S between 2010 and 2017, focusing on the ecological repercussions of each spill and who is accountable for them. Hovering and clicking on the data points shows you where the spill occurred and which corporation was responsible. The radii on the Environmental Remediation Costs basemap represent the costs paid out by the corporation to repair environmental damage. Each dollar amount was divided by 100 for clarity. Radii on the Oil Release basemap correspond to the gallons of oil released by each pipeline spill, divided by 2, also for clarity. Viewers should note that radii on each map denote the relative sizes of values on the same basemap, not on the other.
To keep learning about environmental repercussions and corporate accountability for pipeline spills, click on the ‘More Info’ tab!
library(tidyverse)
library(leaflet)
library(sf)
library(readxl)
library(maps)
library(USAboundaries)
library(scales)
# Imports pipeline spills dataset from U.S Dept. of Transportation.
# In mutate(), we chose to convert the amount of oil released from barrels to gallons, to make the numbers more intuitive.
# Call to separate() prevents corporations with multiple variations on their names from being read as distinct entities.
pipeline_spills <- pipeline_spills <- read_excel("database.xlsx") %>%
unite(col = "Accident_Location", c("Accident_City", "Accident_State"), sep = ", ", remove = FALSE) %>%
mutate("State_ID" = Accident_State, "Barrels_Gallons" = Unintentional_Release_Barrels*42) %>%
separate(col = Operator_Name, into = c("Operator_General"), sep = " ", remove = FALSE, convert = FALSE,
extra = "drop", fill = "warn") %>%
filter(Environmental_Remediation_Costs > 0, Longitude < -60)
# Palette creates color scheme in legend.
# addLayersControl() creates two basemaps for users to toggle between.
# Arguments for radius in addCircles() were divided proportionally for clarity; this is acceptable because the primary purpose of the radii is to view the values in relation to other values on the same map, not to understand exactly what value the size corresponds to.
pal_1 <- colorFactor(palette = "Set1", domain = pipeline_spills$Cause_Category)
leaflet(data = pipeline_spills) %>%
setView(-96, 37.8, 4) %>%
setMaxBounds(-150, 25, -60, 50) %>%
addLayersControl(baseGroups = c("Environmental Remediation Costs ($)", "Oil Release (Gallons)"),
position = "topleft",
options = layersControlOptions(collapsed = FALSE, autoZIndex = TRUE)) %>%
addProviderTiles(provider = "Esri.WorldStreetMap") %>%
addCircles(lng = ~Longitude, lat = ~Latitude,
radius = ~Environmental_Remediation_Costs/200,
color = ~pal_1(Cause_Category),
popup = ~Operator_Name,
label = ~Accident_Location,
opacity = 0.8,
group = "Environmental Remediation Costs ($)") %>%
addCircles(lng = ~Longitude, lat = ~Latitude,
radius = ~Barrels_Gallons/2,
color = ~pal_1(Cause_Category),
popup = ~Operator_Name,
label = ~Accident_Location,
opacity = 0.8,
group = "Oil Release (Gallons)") %>%
addLegend(position = "topright", pal = pal_1, values = ~Cause_Category, title = "Cause of Spill")
Moon, Emily. 2017, Nov 17. After the Latest Leak in South Dakota, How Safe are America’s Pipelines? Retrieved from https://psmag.com/environment/how-safe-are-americas-pipelines↩
Oil Pipeline Accidents, 2010-Present.Retrieved from https://www.kaggle.com/usdot/pipeline-accidents↩