9  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

9.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.

9.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?

9.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 9.1 of the different possible levels of involvement by stakeholders in decision-making. The schematic is from the International Association of Public Participation.

Figure 9.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.

9.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?

9.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)

9.3.1 Is Visualization Effective in Social Praxis?

Yes and No.

Yes, it works to get median 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.

9.3.2 Warehouse Visualization is Easy

9.3.2.1 Load libraries

9.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/finalParcels.geojson'
warehouses <- st_read(WH.url) %>% 
  filter(county == 'Riverside') %>% 
  st_transform("+proj=longlat +ellps=WGS84 +datum=WGS84")
Reading layer `finalParcels' from data source 
  `https://raw.githubusercontent.com/RadicalResearchLLC/WarehouseMap/main/WarehouseCITY/geoJSON/finalParcels.geojson' 
  using driver `GeoJSON'
Simple feature collection with 8606 features and 11 fields
Geometry type: POLYGON
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 11 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: -117.5982 ymin: 33.87729 xmax: -117.5314 ymax: 33.97309
CRS:           +proj=longlat +ellps=WGS84 +datum=WGS84
        apn shape_area                 class      type year_built    county
1 115060057     212480 warehouse/dry storage warehouse       1980 Riverside
2 115050036     343303 warehouse/dry storage warehouse       2000 Riverside
3 115670012      73597 warehouse/dry storage warehouse       1999 Riverside
4 144010061     161133 warehouse/dry storage warehouse       2018 Riverside
5 144010065      90555 warehouse/dry storage warehouse       1980 Riverside
6 144010064      93164 warehouse/dry storage warehouse       2018 Riverside
  year_chr floorSpace.sq.ft      yr_bin           size_bin exclude
1  unknown         116864.2        <NA> 100,000 to 250,000       0
2     2000         188816.6 1992 - 2001 100,000 to 250,000       0
3     1999          40478.4 1992 - 2001  28,000 to 100,000       0
4     2018          88623.2 2012 - 2023  28,000 to 100,000       0
5  unknown          49805.3        <NA>  28,000 to 100,000       0
6     2018          51240.0 2012 - 2023  28,000 to 100,000       0
                        geometry
1 POLYGON ((-117.5532 33.8775...
2 POLYGON ((-117.5447 33.8807...
3 POLYGON ((-117.5314 33.8813...
4 POLYGON ((-117.5976 33.9730...
5 POLYGON ((-117.5954 33.9714...
6 POLYGON ((-117.5946 33.9717...

9.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 9.2 shows a very basic polygon leaflet map.

leaflet() %>% 
  addTiles() %>% 
  addPolygons(data = warehouses)

Figure 9.2: Basic leaflet warehouse map

9.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 9.3 shows the result for my neighborhood in Riverside.

leaflet() %>% 
  addTiles() %>% 
  addPolygons(data = warehouses,
              color = 'brown',
              weight = 1) %>% 
  setView(lng = -117.24, lat = 33.875, zoom = 12) #%>% 

Figure 9.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 9.4 shows the resulting map - note I changed the color to darkred because brown has low salience in satellite imagery of SoCal.

leaflet() %>% 
  addTiles() %>% 
  addPolygons(data = warehouses,
              color = 'darkred',
              weight = 1) %>% 
  setView(lng = -117.24, lat = 33.875, zoom = 12) %>% 
  addProviderTiles(provider = providers$Esri.WorldImagery) %>% 
  addMiniMap(position = 'bottomleft')

Figure 9.4: Leaflet warehouse map near March JPA