BW #101: Los Angeles Fires

BW #101: Los Angeles Fires

The last week has brought unspeakable destruction and tragedy to Los Angeles, California, where wildfires continue to burn out of control. Dozens of people have died, many thousands of buildings have been destroyed or damaged. Many people are without power, or have fled their homes to safer places. The New York Times (https://www.nytimes.com/2025/01/15/business/economy/los-angeles-fires-economy.html?unlocked_article_code=1.pU4.-0q_.gYlXAELBBZlZ&smid=url-share) described many ways in which this disaster will affect Los Angeles over the coming months and years.

For any readers in Los Angeles, or generally affected by the fires: I'm so sorry to hear that you're going through all this, and I hope that you and your loved ones are safe.

This week, we'll examine the LA fires from the perspective of data using GeoPandas, an extension to Pandas that provides geospatial functionality.

I looked for data about the wildfires, and while there are definitely sites providing up-to-the-minute updates about the fires (e.g., https://www.fire.ca.gov/), it was hard to find hard data that we could use.

I found some data at a surprising source, namely NASA. They, along with the US Forest Service, run FIRMS (https://firms.modaps.eosdis.nasa.gov/usfs/), which provides information about wildfires from its EOS (Earth Observing System) network of satellites. EOS, as the name indicates, looks back at Earth, rather than out into space. Using a variety of sensors, we can learn where fires are taking place, and how hot they are burning. Moreover, the data is frequently updated, giving us information about the current California fires, not just historical data.

This week, we'll use this data to examine and visualize the fires. Along the way, we'll get a chance to explore some ideas and techniques with GeoPandas.

Data and six questions

This week's main data, as I indicated above, comes from FIRMS. The data files are available at

https://firms.modaps.eosdis.nasa.gov/usfs/active_fire/

This page contains links to lots of different data files, in many different formats. We're going to use the 7-day VIIRS data from NOAA-20. You can download that from the above page, or from this link:

https://firms.modaps.eosdis.nasa.gov/data/active_fire/noaa-20-viirs-c2/csv/J1_VIIRS_C2_USA_contiguous_and_Hawaii_7d.csv

This is a CSV file containing much of the data we want. However, we'll also be using some data about Los Angeles and the surrounding counties. We will get that from the TIGER 2024 data, which includes everything that we need to work with counties:

https://www2.census.gov/geo/tiger/TIGER2023/COUNTY/tl_2023_us_county.zip

Because this is Census data, they don't use state names. Rather, they use "STATEFP" codes, which you can translate from here:

https://www2.census.gov/geo/docs/reference/codes2020/national_state2020.txt

The learning goals for this week mainly involve working with GeoPandas, including joining and plotting. But we'll also do some work with dates and times, non-geo joins, grouping, and pivot tables.

Here are my six tasks and questions. I'll be back tomorrow with my full solutions and explanations, as well as my Jupyter notebook:

  • Create a Pandas data frame from the VIRRS / NOAA-20 data that NASA provides. Include a date column, of dtype datetime, based on the acq_date and acq_time columns. The latter is in HHMM format, reflecting the time (GMT) at which the data was collected. Remove acq_date, acq_time, and satellite when you're done.
  • Create a GeoDataFrame based on the data in the regular Pandas data frame you created. Use the latitude and longitude columns to create the special geometry column. Use the EPSG:4326 coordinate reference system (CRS).