The CRS for the Eaton Perimeter is EPSG:3857
The CRS for the Palisades Perimeter is EPSG:3857
The Eaton Perimeter is projected: True
The Palisades Perimeter is projected: True
About
The Eaton and Palisades Fires reshaped large swaths of the Los Angeles foothills in early 2025. In this post we go through a remote-sensing workflow that converts Landsat 8 surface reflectance into true and false-color composite maps, overlays official fire perimeters, and links the impacted footprints to poverty data from the EPA’s Environmental Justice Index (EJI) to highlight economically vulnerable census tracts caught within the burn scars, and identify an environmental injustice if it exists.
Highlights
- Fire perimeter processing and Landsat feature wrangling using
pandas,geopandas,numpy, andxarray. - Raster manipulation to align raster and vector data.
- True and false color visualization with
matplotlib. - Environmental Justice Index joins comparing poverty inside each fire footprint.
About the Data
In this notebook we use three datasets:
1) Palisades & Eaton fire perimeters (Los Angeles County NIFC)
The first dataset contains fire perimeter polygons delineating burn footprints for the Palisades and Eaton wildfires of 2025. It comes from the FIRIS (Fire Integrated Real-time Intelligence System) infrared aicraft system in collaboration with the NIFC (National Interagency Fire Center. The data was accessed 2025-12-22 from ArcGIS Online. For this analysis we use just the .shp file in the folder.
2) Landsat 8 Collection 2 Level-2 surface reflectance
The second dataset is a NetCDF containing multispectral surface reflectance information from (RGB, NIR, SWIR) from the Landsat 8 satellite. This data was downloaded from Microsoft Planetary Computer on 2025-11-22, and is read as an xarrayDataset.
We use five bands in our analysis:
Red/Green/Blue (Bands 4/3/2): true-color composites.
Near-Infrared (NIR08 - Band 5): vegetation response.
Short-Wave Infrared (SWIR22 Bands 6/7): moisture/char sensitivity, used to highlight burn scars via false-color composites.
3) Environmental Justice Index (EJI)
The final dataset we use is the census tract-level poverty indicator sourced from the 2018–2022 Census Bureau American Community Survey (ACS) 5-year data and downloaded from the Agency for Toxic Substances and Disease Registry. We use the “E_POV200” variable defined in the metadata as “Percentage of persons with income below 200% of the federal poverty level” to map socioeconomic vulnerability in tracts intersecting the fire perimeters.
References
Background information and Landsat band combinations:
[1] Why is that Forest Red and That Cloud Blue? (2014, March 4). Nasa.gov; NASA Earth Observatory. https://earthobservatory.nasa.gov/features/FalseColor
[2] What are the band designations for the Landsat satellites? (2025, July 11). USGS. https://www.usgs.gov/faqs/what-are-band-designations-landsat-satellites
[3] Common Landsat Band Combinations. (2021, November 12). USGS. https://www.usgs.gov/media/images/common-landsat-band-combinations
Final output
This notebook produces this final output of poverty levels in each fires burn area.

Import libraries
Import data
Prepare perimeter data
We start by verifying the coordinate reference system (CRS) of perimeter data and check that both are projected.
Both perimeters share a projected CRS and schema.
Before we move on lets check for no-data values in our landsat raster and remove them if they exist, confirming with an assert.
Prepare Landsat 8 data
Landsat arrives as an xarray.Dataset with georeferencing stored in spatial_ref. Because xarray sometimes drops CRS info, we explicitly write it back so raster/vector overlays align perfectly.
EPSG:32611
True-color image rendering
In order to visualize the burned areas we build a true-color Landsat image by stacking the red, green, and blue bands, then filling no-data again to be certain. Casting to a float ensures safe color scaling.

Despite stretching the colormap (vmin=8200, vmax=13500) to more clearly show burn scars, they still appear as subtle dark patches against the surrounding vegetation, let’s try a false-color map.
False-Color image rendering
A false-color rendering remaps bands to emphasize burn severity:
SWIR22 as red
NIR08 as green
Red as blue.
This makes burned areas stand out more clearly. We then reproject the fire perimeters to the Landsat CRS, overlay them in red, and label each fire so the false-color composite directly highlights where and how severely the Palisades and Eaton fires affected the landscape.

SWIR–NIR–red composites render burned areas in red hues and healthy vegetation in greens, so the perimeter overlays become immediately interpretable.
EJI analysis
Now we will build tract-level subsets for each fire perimeter to map E_POV200 (percent of persons below 200% of federal poverty level). The goal is to see whether high-poverty census tracts overlap the Palisades and Eaton fire footprints.
First we need to match the CRS of our EJI data to our fire perimeters.
Merging
GeoPandas Spatial joins sjoin isolates the tracts intersecting each fire perimeter.
Clipping
GeoPandas clipping cuts the tracts to the fire perimeter boundary vector lines. Think cookie cutting.
Final visualition
Lastly, we compare poverty exposure for the tracts inside each perimeter. The goal of this map is too compare the census tracts within each fire boundary and determine if there is economic injustice within either area.

Overall, neither footprint is dominated by very high‑poverty tracts, but there’s a clear contrast: the Eaton perimeter includes a few tracts with markedly higher poverty shares (darker blues), while the Palisades tracts are mostly midrange to lower. This mirrors Los Angeles’ spatial pattern—more affluent coastal/Westside areas around Palisades versus pockets of higher economic vulnerability farther east—suggesting greater potential EJ concerns within parts of the Eaton area.