- 积分
- 358
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2020-4-8
- 最后登录
- 1970-1-1
|
发表于 2022-4-8 16:59:09
|
显示全部楼层
你好!这个问题我已经解决了,这是由于ORAS5采用非均匀网格造成的,就是你画出来的图是全球的,但是lat和lon也是一个二维网格,你需要对它进行特殊插值,matlab中gribdata这个函数可以帮你,我用的是python,所以matlab我可能不能帮上什么忙。附上我的python代码,希望能帮上你。
from scipy import interpolate
data = xr.open_mfdataset('E:\data\ORAS5/').sosaline
lat = sosaline.nav_lat.values.ravel()
lon = sosaline.nav_lon.values.ravel()
time = sosaline.time_counter.values.ravel()
sos = sosaline.values.ravel()
lon[lon<0] = lon[lon<0]+360
XI = np.arange(1,360.)
YI = np.arange(-89.5,89.5)
XI, YI = np.meshgrid(XI,YI)
xi = np.c_[lon,lat]
xx = np.c_[XI.ravel(),YI.ravel()]
resampled_data = interpolate.griddata(xi ,sos,xx)
resampled_data = resampled_data.reshape(180,360) |
|