Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Chapter 4: NOAA Multi-Radar / Multi-Sensor System (MRMS) at the BNF Field Site(s)

Authors
Affiliations
City College of New York and NOAA/OAR National Severe Storms Laboratory
NSF National Center for Atmospheric Research
University at Albany (State University of New York)
Metropolitan State University of Denver
Jackson State University
Argonne National Laboratory
ARM Logo

Chapter 4: NOAA Multi-Radar / Multi-Sensor System (MRMS) at the BNF Field Site(s)

Overview

We’ll go through the steps of:

  1. Define our region of verification sites

  2. Query and Load Data from MRMS Buckets on AWS

  3. Create a Multi-Panel Display of QPE for the different sites

Prerequisites

ConceptsImportanceNotes
Intro to CartopyNecessaryMapping and Tiles
Intro to XarrayNecessaryFamiliarity with metadata structure
  • Time to learn: 30 minutes

  • System requirements:

    • Any Operating System

    • At least 8 GB of RAM

Imports

Hourly QPE BNF Mosaic

The NOAA Multi-Radar / Multi-Sensor System (MRMS) was created to produce products of preciptiation impacts on transportation and aviation.

Using the NOAA MRMS AWS Bucket, this notebook details creation of quicklooks to investigate a Quantitative Preciptiation Estimates (QPE) for the U.S. Department of Energy Atmospheric Radiation Measurement (ARM) AMF-3 Deployment to Bankhead National Forest.

We start first with a dictionary containing our sites of interest, these are located Southwest of Decatur, Alabama.

More about the BNF Site can be found on the ARM Website.

Visualize the Site Locations Using Cartopy

<Figure size 1200x800 with 1 Axes>

Query and Load Data from MRMS Buckets on AWS

Note the Multi-Sensor (i.e. gauge adjusted) QPE product is split into two categories (Pass 1 and Pass 2), which defines the gauge latency used to adjust radar dervied QPE.

Loop through and Create Lists of Datasets

Our next step is to search, access, and load our data into merged datasets, adding some additional metadata such as units. We apply this for each our our multipass, pass2, and radar datasets.

Merge our Files Together

Once we have lists of files, we can merge based on the time dimension.

/tmp/ipykernel_4401/2380590686.py:2: FutureWarning: In a future version of xarray the default value for coords will change from coords='different' to coords='minimal'. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set coords explicitly.
  ds_radar_merged = xr.concat(ds_radar_list, dim="time")
/tmp/ipykernel_4401/2380590686.py:3: FutureWarning: In a future version of xarray the default value for coords will change from coords='different' to coords='minimal'. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set coords explicitly.
  ds_multi_merged = xr.concat(ds_multi_list, dim="time")
/tmp/ipykernel_4401/2380590686.py:4: FutureWarning: In a future version of xarray the default value for coords will change from coords='different' to coords='minimal'. This is likely to lead to different results when multiple datasets have matching variables with overlapping values. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set coords explicitly.
  ds_pass2_merged = xr.concat(ds_pass2_list, dim="time")

And finally merge our various passes and QPE data into one single dataset.

/tmp/ipykernel_4401/3525207103.py:2: FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.
  ds_merged = xr.merge([ds_radar_merged, ds_multi_merged, ds_pass2_merged])
/tmp/ipykernel_4401/3525207103.py:2: FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.
  ds_merged = xr.merge([ds_radar_merged, ds_multi_merged, ds_pass2_merged])
/tmp/ipykernel_4401/3525207103.py:2: FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.
  ds_merged = xr.merge([ds_radar_merged, ds_multi_merged, ds_pass2_merged])

Calculate Precipitation Accumulation

Our last step is to calculate our preciptiation accumulation as observed from radar data. We do this by using the xarray cumulative sum cumsum function.

Loading...

Create a Multi-Panel QPE Display

Now that we have our merged, cleaned data, we can create a single graphic summarizing the cumulative precipitation at our different sites. We use nearest neighbor here to subset from the broader region.

/home/runner/micromamba/envs/mrms-cookbook-dev/lib/python3.12/site-packages/cartopy/io/__init__.py:263: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_land.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
/home/runner/micromamba/envs/mrms-cookbook-dev/lib/python3.12/site-packages/cartopy/io/__init__.py:263: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_ocean.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
<Figure size 2400x1000 with 6 Axes>

Summary

Within this notebook, we explored plotting a set of a field sites, accessing MRMS data, and visualizing a case over the ARM DOE Bankhead National Forest field site. We hope this serves as a framework for verification and understanding precipitation values in specific regions of interest.

What’s Next

We can extend this workflow by investigating timeseries for the various sites and looking into more robust verification techniques.

References