Mapping Litter

US Environment

Using open source litter catalogging data, we compared the seasonal trends of two coastal cities.

Henry Scheffer , Tayla Isensee
2021-05-10

OpenLitter: Citizen Science-Driven Global Pollution Mapping

Look on the side of any highway, overpass, or park trail: it’s likely you’ll find litter. While data on industrial pollution is pretty available, it’s harder to track the worldwide distribution of the everyday soda cans and bottles that don’t make it into recycling bins. Because any non-degrading objects may impact the environment and contribute to the millions of tons of refuse that ends up in the ocean, there is a need to survey the global spread of litter. In 2015, OpenLitterMap launched as an open-source database with a citizen-driven plan to dynamically track litter across the world through the use of mobile applications (Lynch 2018). Users can take pictures of litter they find which are then manually verified and categorized according to brand and type. As of May 6th, their website reported 254,282 pieces of verified litter.

Show code

Here we’ve visualized the unique locations where litter has been reported in the US; a single reporting may actually record more than one piece of litter. Note that there is a button on the interactive map that allows for toggling the freezing the clusters at the current zoom level

Show code
usLitter <- read_csv(here("_posts/2021-05-10-mapping-litter/data/United States of America_OpenLitterMap.csv"))

# Leaflet cluster map of the entire US, note that a point indicates one report, report can contain multiple pieces of litter
leaflet() %>%
  addTiles() %>%
  addCircleMarkers(lng = ~lon, lat = ~lat, 
                   data = usLitter, radius = 3, 
                   stroke = FALSE, fillOpacity = 0.5, 
                   clusterOptions = markerClusterOptions(),
                   clusterId = "litterCluster") %>%
  addProviderTiles(providers$Esri.NatGeoWorldMap) %>%
  addEasyButton(easyButton(
    states = list(
      easyButtonState(
        stateName="unfrozen-markers",
        icon="ion-toggle",
        title="Freeze Clusters",
        onClick = JS("
          function(btn, map) {
            var clusterManager =
              map.layerManager.getLayer('cluster', 'litterCluster');
            clusterManager.freezeAtZoom();
            btn.state('frozen-markers');
          }")
      ),
      easyButtonState(
        stateName="frozen-markers",
        icon="ion-toggle-filled",
        title="UnFreeze Clusters",
        onClick = JS("
          function(btn, map) {
            var clusterManager =
              map.layerManager.getLayer('cluster', 'litterCluster');
            clusterManager.unfreeze();
            btn.state('unfrozen-markers');
          }")
      )
    )
  ))

Litter in Miami vs. the Bay Area

We chose to investigate the differences in pollution between two metropolitan areas: Miami-Dade County in Florida and the Bay Area of California. We also chose to look at plastic pollution specifically as consumer plastics released into the environment tend to come from a set of specific industries like the food and beverage industries and retail. Additionally, plastic pollution poses an imminent risk to the environment as it degrades very slowly and tends to be incorporated well into biological systems. We chose these two urban areas for several reasons. For one, their states tend to differ significantly in their larger political leanings, which we expect to impact climate policy such as the control of pollution. They are also exposed to two different oceans and ecosystems, and we would like to see if those variables impact the amount of litter that is present in the cities. For example, a focus of recent environmental advocacy is the Pacific Garbage Patch which is suspected to be a large gyre or trash (predominantly plastic) in the middle of the Pacific Ocean. 1 We suspected that exposure to such a large accumulation of trash might increase the amounts of litter found in the Bay Area as plastic waste commonly washes ashore and accumulates on beaches.

Show code
# San Francisco Plastic Litter
sanfran <- usLitter %>%
  filter(lat >= 37, lat <= 39, lon <= -121, lon >= -123)
# Categorize by the indicated litter type (column names in sanfran are the types)
sanfranlong <- pivot_longer(sanfran, cols = 10:231, names_to = "littertype") %>%
  filter(littertype %in% c("plastic_water_bottle", "plastic_fizzy_drink_bottle",
                           "softdrink_bottle_top", "softdrink_plastic_cup", "softdrink_other",
                           "plastic_smoking_packaging", "plastic_food_packaging", "plastic_cutlery",
                           "plastic_alcohol_packaging", "plastic_cup_top", "plastic_bag")) %>%
  mutate(datetime = ymd_hms(datetime),
         month = month(datetime),
         season = case_when(month %in% 1:2 ~ "Winter",
                            month %in% 3:5 ~ "Spring",
                            month %in% 6:8 ~ "Summer",
                            month %in% 9:11 ~ "Fall",
                            month == 12 ~ "Winter"))
  
leaflet() %>%
  addTiles() %>%
  addCircleMarkers(lng = ~lon, lat = ~lat, 
                   data = sanfranlong, radius = 3, 
                   stroke = FALSE, fillOpacity = 0.5, 
                   clusterOptions = markerClusterOptions()) %>%
  addProviderTiles(providers$Esri.NatGeoWorldMap)