使用 python 从 netcdf 绘制风矢量
Plot winds vector from netcdf using python
我目前正在 atmospheric/climate 物理实习。我有来自 ERA5(哥白尼)的 netcdf 数据,我已经在不同的地图、图形等中绘制了这些数据……
我需要用 cartopy 或除底图以外的任何其他东西绘制风矢量,但我无法弄清楚。
我脚本的这一部分现在看起来像这样:
import xarray as xr
from netCDF4 import Dataset as NetCDFFile
import matplotlib.pyplot as plt
import numpy as np
import cartopy
import cartopy.feature as cfeat
import cartopy.crs as ccrs
ncw = xr.open_dataset('D:\Stage_IGE_CNRS\ERA5.nc')
nc2 = ncw.sel(time = slice('2016-03-06T06:00:00', '2016-03-31T18:00:00'), level = 1000).mean('time')
u = nc2['u']
v = nc2['v']
lon = nc2['longitude']
lat = nc2['latitude']
感谢您的帮助。
托马斯·V.
如果你想绘制风向量,你正在寻找来自matplotlib的quiver()
(CartoPy只提供了一个projection-aware版本):
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=ccrs.LambertConformal())
ax.quiver(lon, lat, u, v, transform=ccrs.PlateCarree())
如果你想要风倒钩,那么你会使用barbs()
我们通过了 ccrs.PlateCarree()
,因为您的数据似乎在 lon/lat space 中。这意味着在这种情况下,您的风分量是 地球相对。当调用 quiver
/barbs
时,cartopy 假定您的坐标(即 x/y 或 lon/lat)与您的向量分量(即 u/v)在同一坐标系中).
我目前正在 atmospheric/climate 物理实习。我有来自 ERA5(哥白尼)的 netcdf 数据,我已经在不同的地图、图形等中绘制了这些数据…… 我需要用 cartopy 或除底图以外的任何其他东西绘制风矢量,但我无法弄清楚。
我脚本的这一部分现在看起来像这样:
import xarray as xr
from netCDF4 import Dataset as NetCDFFile
import matplotlib.pyplot as plt
import numpy as np
import cartopy
import cartopy.feature as cfeat
import cartopy.crs as ccrs
ncw = xr.open_dataset('D:\Stage_IGE_CNRS\ERA5.nc')
nc2 = ncw.sel(time = slice('2016-03-06T06:00:00', '2016-03-31T18:00:00'), level = 1000).mean('time')
u = nc2['u']
v = nc2['v']
lon = nc2['longitude']
lat = nc2['latitude']
感谢您的帮助。
托马斯·V.
如果你想绘制风向量,你正在寻找来自matplotlib的quiver()
(CartoPy只提供了一个projection-aware版本):
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=ccrs.LambertConformal())
ax.quiver(lon, lat, u, v, transform=ccrs.PlateCarree())
如果你想要风倒钩,那么你会使用barbs()
我们通过了 ccrs.PlateCarree()
,因为您的数据似乎在 lon/lat space 中。这意味着在这种情况下,您的风分量是 地球相对。当调用 quiver
/barbs
时,cartopy 假定您的坐标(即 x/y 或 lon/lat)与您的向量分量(即 u/v)在同一坐标系中).