- 积分
- 360
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-11-6
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 menseye 于 2022-7-5 10:44 编辑
我用python处理ERA5数据,想画出风场,该数据是2021年10月30日18时950百帕的u和v数据,我感觉思路没问题,分别提取u,v分量,再利用bars画出风羽图,运行程序后没有报错,但是只出来空白的地图,请教各位大神,应该怎么修改?
十分感激各位大佬相助!!!
以下为程序
import numpy as np
from datetime import datetime
import xarray as xr
from scipy.ndimage import gaussian_filter
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import metpy.calc as mpcalc
from metpy.units import units
import netCDF4 as nc
from cartopy.mpl.gridliner import LATITUDE_FORMATTER, LONGITUDE_FORMATTER
ds=nc.Dataset(r'D:\Python_total\DATA\EC_data\adaptor.mars.internal-1656849067.1887913-23322-3-5e39ab33-abfe-4988-abe4-5b45d8bad5c4.nc')
time=ds.variables['time'][:]
lat=ds.variables['latitude'][:]
lon=ds.variables['latitude'][:] #经评论区大佬提醒,这里经度提取错误,再次感谢评论区各位大佬批评指正!
lons,lats=np.meshgrid(lon,lat)
u=ds.variables["u"][0][:][:]#仅有一个时次,所以用0代表选用的时次
v=ds.variables["v"][0][:][:]
print(u)
print(ds.variables['time'][:])
uwind=u.data*units('m/s')
vwind=v.data*units('m/s')
sped=mpcalc.wind_speed(uwind,vwind)
#sped0800=sped.sel(time=1067888)
datacrs=ccrs.PlateCarree()
fig=plt.figure(figsize=(9,9))
ax=fig.add_axes([0.05,0.05,0.9,0.9],projection=datacrs)
rejion=[110,130,30,50]
ax.set_extent(rejion,datacrs)
ax.barbs(lons, lats, uwind, vwind,
pivot='middle',color='black', regrid_shape=20, transform=datacrs)
ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
ax.add_feature(cfeature.OCEAN.with_scale('50m'))
ax.add_feature(cfeature.LAND.with_scale('50m'))
plt.show()
程序出图
|
-
程序出图,无报错
|