【发布时间】:2022-01-21 11:09:47
【问题描述】:
我有一个空间分辨率为 0.05º 的 netcdf file,我想将其重新网格化为 0.01º 的空间分辨率,例如 this other netcdf。我尝试使用 scipy.interpolate.griddata,但我并没有真正到达那里,我认为我缺少一些东西。
original_dataset = xr.open_dataset('to_regrid.nc')
target_dataset= xr.open_dataset('SSTA_L4_MED_0_1dg_2022-01-18.nc')
根据scipy.interpolate.griddata documentation,我需要构建我的插值管道如下:
grid = griddata(points, values, (grid_x_new, grid_y_new), 方法='最近的')
所以在我的情况下,我认为它会如下:
#Saving in variables the old and new grids
grid_x_new = target_dataset['lon']
grid_y_new = target_dataset['lat']
grid_x_old = original_dataset ['lon']
grid_y_old = original_dataset ['lat']
points = (grid_x_old,grid_y_old)
values = original_dataset['analysed_sst'] #My variable in the netcdf is the sea surface temp.
现在,当我运行 griddata 时:
from scipy.interpolate import griddata
grid = griddata(points, values, (grid_x_new, grid_y_new),method='nearest')
我收到以下错误:
ValueError:形状不匹配:对象不能广播到单个 形状
我认为它与 lat/lon 数组形状有关。我对 netcdf 领域很陌生,我真的不知道这里有什么问题。任何帮助将不胜感激!
【问题讨论】:
标签: python scipy grid interpolation netcdf