Note
Go to the end to download the full example code.
ICON Cell-centered streamplots¶
This example draws streamlines from ICON cell-centered vector winds with
easyclimate.plot.icon.plot_cell_streamplot.
The ICON vectors are interpolated to a regular grid inside the requested longitude-latitude window before calling Matplotlib’s streamplot machinery.
import xarray as xr
import numpy as np
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import easyclimate as ecl
from easyclimate.plot.icon import plot_cell_streamplot
Open a sample ICON model-level file and select the horizontal wind components stored on cell centers.
icon_native_ml_20080909T000000Z.nc ━━━━━━━ 100.0% • 1.8/1.8 • 20.2 • 0:00:00
MB MB/s
Draw streamlines over a regional window on plain Matplotlib axes.
fig, ax = plt.subplots()
q = plot_cell_streamplot(
data, u, v,
ax=ax,
lon_min=140,
lon_max=220,
lat_min=25,
lat_max=70,
)
ax.set_title("JW Wave Wind Field\n(height = 19, plot_cell_streamplot)")
Text(0.5, 1.0, 'JW Wave Wind Field\n(height = 19, plot_cell_streamplot)')
Draw streamlines on a shifted PlateCarree map. The helper keeps the visible window aligned with the requested longitude-latitude bounds. sphinx_gallery_thumbnail_number = -1
fig, ax = plt.subplots(
subplot_kw={"projection": ccrs.PlateCarree(180)}
)
q = plot_cell_streamplot(
data, u, v,
ax=ax,
lon_min=140,
lon_max=220,
lat_min=25,
lat_max=70,
transform=ccrs.PlateCarree(),
)
ax.set_title("JW Wave Wind Field\n(height = 19, plot_cell_streamplot)")
ax.coastlines(resolution="110m", linewidth=0.6, color="b")
ax.gridlines(draw_labels=True, alpha=0)
<cartopy.mpl.gridliner.Gridliner object at 0x79225c97d6a0>
Total running time of the script: (0 minutes 6.222 seconds)