微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用python从netcdf绘制风向量

如何解决使用python从netcdf绘制风向量

我目前在大气/气候物理学方面实习。我有来自ERA5(哥白尼)的netcdf数据,我已经在不同的地图,图形等中绘制了这些数据... 我需要用基图或除底图以外的任何其他东西绘制风向,但我无法弄清楚。

我的脚本的这一部分现在看起来像这样:

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']

感谢您的帮助。

Thomas V。

解决方法

如果要绘制风矢量,您正在从matplotlib中寻找quiver()(CartoPy仅提供了可感知投影的版本):

import cartopy.crs as ccrs
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1,1,projection=ccrs.LambertConformal())
ax.quiver(lon,lat,u,v,transform=ccrs.PlateCarree())

如果您想倒钩倒钩,则可以使用barbs()

我们通过ccrs.PlateCarree()是因为您的数据似乎位于lon / lat空间中。这意味着在这种情况下,您的风向是与地球有关。调用quiver / barbs时,cartopy假定您的坐标(即x / y或lon / lat)与矢量分量(即u / v)在同一坐标系中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。