Skip to content

Project 7 — Environmental Risk Analysis

Difficulty

🔴 Advanced. ~16–20 hours.


Goal

"Which neighborhoods in [your area] face the highest combined environmental risk — flood, wildfire, heat — adjusted for social vulnerability?"

This project marries physical hazard layers with social vulnerability indices (SVI) to identify the most at-risk communities.

Data needed

Layer Source
Census tracts TIGER/Line
FEMA flood zones https://msc.fema.gov/portal/advanceSearch
Wildfire risk (US) USDA Forest Service WUI, or FEMA NRI
Urban heat / land surface temp Landsat 8 thermal band, or NASA SEDAC
CDC Social Vulnerability Index (SVI) https://www.atsdr.cdc.gov/place-health/php/svi/index.html
Population by tract Census ACS

Tools used

  • Spatial Analyst: Reclassify, Weighted Overlay, Zonal Statistics
  • Spatial Join, Tabulate Intersection
  • Raster Calculator for thermal band → land surface temperature

Workflow

Step 1 — Set up

  1. Project: env_risk_<area>.
  2. Project to State Plane.
  3. Standardize all rasters to 30 m, snapped to the same raster.

Step 2 — Build the hazard score (per tract)

For each hazard, compute a per-tract score 1–5.

Flood score

  1. Polygon to Raster on FEMA flood zones (assign higher value to AE/A/VE).
  2. Tabulate Intersection → percent of each tract in flood zones.
  3. Bin: 0% → 1, ≤5% → 2, ≤15% → 3, ≤30% → 4, >30% → 5.

Add field FLOOD_SCORE.

Wildfire score

  1. Use the wildfire risk raster.
  2. Zonal Statistics as Table — mean wildfire risk per tract.
  3. Reclassify the mean into 5 bins (quintile or NRI thresholds).

Add field FIRE_SCORE.

Urban heat score

  1. From Landsat 8 thermal band (Band 10), compute Land Surface Temperature.
  2. Zonal Statistics — mean LST per tract.
  3. Reclassify: cooler tracts = lower score.

Add field HEAT_SCORE.

Step 3 — Combine into HAZARD_SCORE

def hazard(flood, fire, heat):
    f = flood or 0
    w = fire or 0
    h = heat or 0
    return (f * 0.35 + w * 0.35 + h * 0.30)

Add field HAZARD_SCORE = hazard(!FLOOD_SCORE!, !FIRE_SCORE!, !HEAT_SCORE!).

Adjust weights for your area (e.g., heavier flood weight in coastal regions).

Step 4 — Bring in social vulnerability

CDC SVI is already a 0–1 score per tract. Higher = more vulnerable.

  1. Join SVI to tracts on FIPS.
  2. Standardize: bin into 5 quintiles, SVI_BIN 1–5.

Step 5 — Combine into RISK_SCORE

The classic equation:

Risk = Hazard × Vulnerability

Or weighted:

def risk(hazard, svi_bin):
    h = hazard or 0
    s = svi_bin or 1
    return h * 0.6 + s * 0.4

Add RISK_SCORE.

Step 6 — Categorize

def cat(risk):
    if risk is None: return "Unknown"
    if risk >= 4.0: return "Very High"
    if risk >= 3.0: return "High"
    if risk >= 2.0: return "Moderate"
    return "Low"

Add RISK_CATEGORY.

Step 7 — Map

  1. Symbology: Unique Values on RISK_CATEGORY with a sequential reds/yellows palette.
  2. Overlay each individual hazard as a small inset (3 thumbnails).
  3. Highlight top 10 highest-risk tracts.
  4. Build an ArcGIS Online dashboard:
    • The risk map
    • A bar chart of top tracts
    • Clickable filters by hazard
    • A KPI: "X% of metro population in High or Very High risk."

Step 8 — Story Map

A 5-section narrative:

  1. Why combined risk matters (vs single-hazard)
  2. The data and methodology
  3. Each individual hazard
  4. Combined risk
  5. Recommendations / who acts

Skills learned

  • Multi-hazard integration
  • Zonal statistics across multiple rasters
  • SVI / CDC index integration
  • Hazard × vulnerability framing (industry standard)
  • Cross-source ETL

Portfolio value

This is the climate-resilience and emergency-management portfolio piece. Cities, counties, FEMA, NGOs, and consulting firms work on this exact framing.

Stretch goals

  • Add air quality (PurpleAir, EPA AQS) as a fourth hazard.
  • Compare future climate scenarios with downloaded NCA or CMIP6 data.
  • Cross-reference with HUD CDBG-DR funding to identify under-funded high-risk tracts.
  • Build a model in ModelBuilder so the whole analysis runs with a single click.

🎓 You've reached the most advanced project in the roadmap. After shipping any 3 of these 7, you have a portfolio strong enough to apply for entry-level GIS roles.

→ Now: GIS Career Roadmap.