8  EJ - Praxis and Visualization

Today we will focus on a bit of theory, a story about warehouses, and then engage in the practice of data driven visualization.

The EPA and California EPA both agree that this is the definition of Environmental Justice (EJ).

Note

The fair treatment and meaningful involvement of all people regardless of race, color, culture, national origin, income, and educational levels with respect to the development, implementation, and enforcement of protective environmental laws, regulations, and policies. Fair treatment means that no population, due to policy or economic disempowerment, is forced to bear a disproportionate burden of the negative human health or environmental impacts of pollution or other environmental consequences resulting from industrial, municipal, and commercial operations or the execution of federal, state, local, and tribal programs and policies

8.1 Data Categories in EJ Tools

As discussed, in the previous lesson, there are a few broad categories of data that are currently used in Environmental Justice (EJ) tools. Let’s recap them here.

  1. Pollution Burden - negative environmental indicators of either pollution exposure, built environment, or environmental effects (e.g., ozone, PM, traffic, drinking water contaminants, toxic release facilities)
  2. Socioeconomic indicators - demographic and economic indicators of population
  3. Health vulnerability - an indicator of population level health-effect data such as asthma, cancer, diabetes, cardiovascular, and low birth-weight

As we noted in the last class, these visualizations are more about identifying or screening for locations experiencing environmental injustice than about achieving or visualizing Environmental Justice.

8.1.1 Discussion 1

  1. What data is needed to understand the fair treatment principle of Environmental Justice?
  2. What data is needed to understand the meaningful involvement principle of Environmental Justice?
  3. How does data availability limit our understanding and ability to visualize Environmental Justice?

8.2 Not Data - Not Available

Meaningful involvement is a very nebulous and hard-to-measure concept. Within the context of EJ, it indicates public participation with stakeholders and the influence to shape decision-making.

The EPA has a resource on public participation in decision-making.

Public participation is a process, not a single event. It consists of a series of activities and actions by a sponsor agency over the full lifespan of a project to both inform the public and obtain input from them. Public participation affords stakeholders (those that have an interest or stake in an issue, such as individuals, interest groups, communities) the opportunity to influence decisions that affect their lives.

A large part of that framework is based on a schematic as shown in Figure 8.1 of the different possible levels of involvement by stakeholders in decision-making. The schematic is from the International Association of Public Participation.

Figure 8.1: Public Participation Spectrum

Quantifying meaningful involvement in a public participation process of decision-making is complicated and difficult to track. It is also a subjective judgement, although one could have systematic criteria for evaluating it. Moreover, the issue is probably better described as one in which the involvement levels are unequal between different stakeholder groups. In other words, developers and industry stakeholders are provided greater opportunity to shape policy and decision-making compared to residential and environmental stakeholders.

8.2.1 Discussion 2.

  1. How does a lack of data shape our ability to communicate and visualize an issue?
  2. How could one collect information to visualize meaningful involvement?

8.3 Case Study - SoCal Warehouses - March JPA West Campus Upper Plateau

I have been doing work with the Redford Conservancy on warehouses in the Inland Empire. As part of that work, I have developed a few mapping tools to visualize warehouse information.

The primary tool is called WarehouseCITY. WarehouseCITY is intended to provide a means for the public to easily access the impact of existing warehouses on their community. The code repository is located on github.

A secondary tool provides a visualization of the existing and planned warehouse growth along the 215/60 freeways around the March Air Reserve Base in Riverside County (my backyard). That project’s draft Environmental Impact Report (EIR) is here

8.3.1 Is Visualization Effective in Social Praxis?

Sometimes.

Yes, it works to get media attention and makes very convincing storytelling to those who already agree with you. It can change or engage people who are already on your side. It can surprise and influence people who are in the middle.

No, it does not seem to be very effective at engaging decision-makers directly. My experience has been that they are more interested in people and stories. In private meetings, they ooh and aah at the visualization but are more interested in strategy and coalition building - on the ground organization and political influence.

8.3.2 Warehouse Visualization is Easy

8.3.2.1 Load libraries

8.3.2.2 Acquire data

We will also pull warehouse data for the first time! New data incoming!

Also note that I made this dataset smaller by using the filter() function to only include data from Riverside County; this removes about 7,500 warehouses from LA and San Bernardino counties.

WH.url <- 'https://raw.githubusercontent.com/RadicalResearchLLC/WarehouseMap/main/WarehouseCITY/geoJSON/comboFinal.geojson'
warehouses <- st_read(WH.url) |>  
  filter(county == 'Riverside County') |>  
  st_transform("+proj=longlat +ellps=WGS84 +datum=WGS84")
Reading layer `comboFinal' from data source 
  `https://raw.githubusercontent.com/RadicalResearchLLC/WarehouseMap/main/WarehouseCITY/geoJSON/comboFinal.geojson' 
  using driver `GeoJSON'
Simple feature collection with 9106 features and 8 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: -118.8037 ymin: 33.43325 xmax: -114.4085 ymax: 35.55527
Geodetic CRS:  WGS 84

Check to see what the warehouses dataset looks like.

head(warehouses)
Simple feature collection with 6 features and 8 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: -117.6083 ymin: 33.87729 xmax: -117.5314 ymax: 33.97265
Geodetic CRS:  +proj=longlat +ellps=WGS84 +datum=WGS84
        apn shape_area category year_built                 class
1 115050036     343300 Existing       2000 warehouse/dry storage
2 115060057     212500 Existing       1980 warehouse/dry storage
3 115670012      73600 Existing       1999 warehouse/dry storage
4 144010065      90600 Existing       1980 warehouse/dry storage
5 144010079     213300 Existing       2019 warehouse/dry storage
6 144010064      93200 Existing       2018 warehouse/dry storage
            county unknown place_name                       geometry
1 Riverside County   FALSE     Corona MULTIPOLYGON (((-117.543 33...
2 Riverside County    TRUE     Corona MULTIPOLYGON (((-117.5532 3...
3 Riverside County   FALSE     Corona MULTIPOLYGON (((-117.5314 3...
4 Riverside County    TRUE   Eastvale MULTIPOLYGON (((-117.5954 3...
5 Riverside County   FALSE   Eastvale MULTIPOLYGON (((-117.6073 3...
6 Riverside County   FALSE   Eastvale MULTIPOLYGON (((-117.5946 3...

8.3.2.3 Basic Visualization

This is geospatial data, so we should put it in an interactive leaflet map to do an initial visualization. Figure 8.2 shows a very basic polygon leaflet map.

leaflet() |> 
  addTiles() |> 
  addPolygons(data = warehouses)
Figure 8.2: Basic leaflet warehouse map

8.3.2.4 Improve the Visualization

The setView() function allows us to set the zoom level and the centerpoint of the map using the arguments lng, lat, and zoom.

Within the addPolygons() function, I set the color to brown and the weight of the line to 1.

Figure 8.3 shows the result for my neighborhood in Riverside.

leaflet() |> 
  addTiles() |>  
  addPolygons(data = warehouses,
              color = 'black',
              weight = 1) |> 
  setView(lng = -117.24, lat = 33.875, zoom = 12) 
Figure 8.3: Leaflet warehouse map making warehouses brown

Let’s add two more helpful things to orient viewers at a glance.

  1. Let’s change the underlying tile to satellite/aerial imagery using addProviderTiles()
  2. Let’s add a mini-map to orient the viewer to where this is using addMiniMap().

Figure 8.4 shows the resulting map - note I added a palette to distinguish between existing warehouses (orange) and planned and approved warehouses (red) because brown has low salience in satellite imagery of SoCal.

palWHtype <- colorFactor(palette = c( 'darkred', 'darkorange', 'black'),
                         domain = warehouses$category)

leaflet()  |>  
  addProviderTiles(provider = providers$Esri.WorldImagery) |> # This shows satellite imagery
  addPolygons(data = warehouses,
              color = ~palWHtype(category), #this creates the color categories
              weight = 1) |> 
  setView(lng = -117.24, lat = 33.875, zoom = 12) |> #this provides the location and zoom level
  addMiniMap(position = 'bottomleft') #this adds a minimap
Figure 8.4: Leaflet warehouse map near March JPA