This notebook walks through plotting data from the ARMOR radar in northern Alabama and the local NWS radar in Huntsville, Alabama.
import pyart
import glob
import matplotlib.pyplot as plt
import matplotlib.patheffects as pe
import numpy as np
import fsspec
from pathlib import Path
import geopandas as gpd
import fiona
import cartopy.crs as ccrs
fiona.drvsupport.supported_drivers['libkml'] = 'rw' # enable KML support which is disabled by default
fiona.drvsupport.supported_drivers['LIBKML'] = 'rw' # enable KML support which is disabled by defaultRead the Site Information¶
site_locations = gpd.read_file("locations/ARM-SE.kmz")
site_locationsLoading...
Plot the ARMOR Data¶
Prior to running this notebook, the datasets were downloaded from this shared Google drive and placed in a /data directory.
This case is from a cool-season event that resulted in a Quasi-Linear Convective System forming within the AMF3/ARM-SE domain. We are using data from the UAH ARMOR radar.
armor_files = sorted(glob.glob("data/*"))Configure the domain of the plots¶
lon_min = -89
lon_max = -85
lat_min = 33.5
lat_max = 36
grid_line_spacing = .5Loop through each file, plot the reflectivity, and save the image¶
for file in armor_files:
radar = pyart.io.read(file)
fields = list(radar.fields)
if "REF" in fields:
display = pyart.graph.RadarMapDisplay(radar)
fig = plt.figure(figsize=(12,8))
ax = plt.subplot(111, projection=ccrs.PlateCarree())
display.plot_ppi_map("REF",
fig=fig,
ax=ax,
vmin=-20,
vmax=60,
lat_lines=np.arange(lat_min, lat_max, grid_line_spacing),
lon_lines=np.arange(lon_min, lon_max, grid_line_spacing),
min_lat = lat_min,
max_lat = lat_max,
min_lon = lon_min,
max_lon = lon_max,
cmap='pyart_HomeyerRainbow')
site_locations.plot(ax=ax, column='Name')
for x, y, label in zip(site_locations.geometry.x, site_locations.geometry.y, site_locations.Name):
ax.annotate(label, xy=(x, y), xytext=(2, 2), textcoords="offset points", fontsize=7, color='white', path_effects=[pe.withStroke(linewidth=2, foreground="k")])
plt.savefig(f"images/{Path(file).stem}.png", facecolor='white', transparent=False)
plt.show()
plt.close()/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/matplotlib/colors.py:621: RuntimeWarning: overflow encountered in multiply
xa *= self.N

Plot the NEXRAD Data¶
Search and find the NEXRAD Data¶
fs = fsspec.filesystem("s3", anon=True)year = "2021"
month = "12"
day = "11"
hour = "11"
nexrad_files = sorted(fs.glob(f"s3://noaa-nexrad-level2/{year}/{month}/{day}/KHTX/KHTX{year}{month}{day}_{hour}*"))
nexrad_files['noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_110352_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_110854_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_111400_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_111923_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_112446_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_113009_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_113504_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_114018_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_114532_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_115031_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_115545_V06',
'noaa-nexrad-level2/2021/12/11/KHTX/KHTX20211211_115545_V06_MDM']Loop through each file, plot the reflectivity, and save the image¶
for file in nexrad_files:
try:
radar = pyart.io.read_nexrad_archive(f"s3://{file}")
except:
continue
fields = list(radar.fields)
if "reflectivity" in fields:
display = pyart.graph.RadarMapDisplay(radar)
fig = plt.figure(figsize=(12,8))
ax = plt.subplot(111, projection=ccrs.PlateCarree())
display.plot_ppi_map("reflectivity",
fig=fig,
ax=ax,
vmin=-20,
vmax=60,
lat_lines=np.arange(lat_min, lat_max, grid_line_spacing),
lon_lines=np.arange(lon_min, lon_max, grid_line_spacing),
min_lat = lat_min,
max_lat = lat_max,
min_lon = lon_min,
max_lon = lon_max,
cmap='pyart_HomeyerRainbow')
site_locations.plot(ax=ax, column='Name')
for x, y, label in zip(site_locations.geometry.x, site_locations.geometry.y, site_locations.Name):
ax.annotate(label, xy=(x, y), xytext=(2, 2), textcoords="offset points", fontsize=7, color='white', path_effects=[pe.withStroke(linewidth=2, foreground="k")])
plt.savefig(f"images/{Path(file).stem}.png", facecolor='white', transparent=False)
plt.show()
plt.close()/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '

/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:451: UserWarning: The .xlabels_top attribute is deprecated. Please use .top_labels to toggle visibility instead.
warnings.warn('The .xlabels_top attribute is deprecated. Please '
/Users/mgrover/miniforge3/envs/pyart-docs/lib/python3.10/site-packages/cartopy/mpl/gridliner.py:487: UserWarning: The .ylabels_right attribute is deprecated. Please use .right_labels to toggle visibility instead.
warnings.warn('The .ylabels_right attribute is deprecated. Please '
