forked from 3rdparty/wrf-python
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
55 lines
1.7 KiB
from netCDF4 import Dataset |
|
import matplotlib.pyplot as plt |
|
from matplotlib.cm import get_cmap |
|
import cartopy.crs as crs |
|
from cartopy.feature import NaturalEarthFeature |
|
|
|
from wrf import (to_np, getvar, smooth2d, get_cartopy, cartopy_xlim, |
|
cartopy_ylim, latlon_coords) |
|
|
|
# Open the NetCDF file |
|
ncfile = Dataset("/Users/ladwig/Documents/wrf_files/" |
|
"problem_files/cfrac_bug/wrfout_d02_1987-10-01_00:00:00") |
|
|
|
# Get the sea level pressure |
|
ctt = getvar(ncfile, "ctt") |
|
|
|
# Get the latitude and longitude points |
|
lats, lons = latlon_coords(ctt) |
|
|
|
# Get the cartopy mapping object |
|
cart_proj = get_cartopy(ctt) |
|
|
|
# Create a figure |
|
fig = plt.figure(figsize=(12, 9)) |
|
# Set the GeoAxes to the projection used by WRF |
|
ax = plt.axes(projection=cart_proj) |
|
|
|
# Download and add the states and coastlines |
|
states = NaturalEarthFeature(category='cultural', scale='50m', |
|
facecolor='none', |
|
name='admin_1_states_provinces_shp') |
|
ax.add_feature(states, linewidth=.5) |
|
ax.coastlines('50m', linewidth=0.8) |
|
|
|
# Make the contour outlines and filled contours for the smoothed sea level |
|
# pressure. |
|
plt.contour(to_np(lons), to_np(lats), to_np(ctt), 10, colors="black", |
|
transform=crs.PlateCarree()) |
|
plt.contourf(to_np(lons), to_np(lats), to_np(ctt), 10, |
|
transform=crs.PlateCarree(), |
|
cmap=get_cmap("jet")) |
|
|
|
# Add a color bar |
|
plt.colorbar(ax=ax, shrink=.62) |
|
|
|
# Set the map limits. Not really necessary, but used for demonstration. |
|
ax.set_xlim(cartopy_xlim(ctt)) |
|
ax.set_ylim(cartopy_ylim(ctt)) |
|
|
|
# Add the gridlines |
|
ax.gridlines(color="black", linestyle="dotted") |
|
|
|
plt.title("Cloud Top Temperature") |
|
|
|
plt.show()
|
|
|