import netCDF4 as nc
from scipy import interpolate
import numpy as npU10_set=dataset['U10'][0,:,:] #将三维数据转换成二维,U10[lat,lon]
U10_set=np.flipud(U10_set)
new_EC = interpolate.interp2d(lon,lat,U10_set, kind='cubic')
EC_sta=new_EC(sta_lon1,sta_lat1)
1.当三维数据没有转换成二维时,也一样能得到插值结果,所以,插值的时候大家一定注意打印一下临近插值点的数值,比对确认插值结果的正确性。
2.插值函数构建的时候,二维数据的第二维度放在第一的位置,我的u10_set [lat,lon] 是这个格式的,然后正确的插值方式如下
new_EC = interpolate.interp2d(lon,lat,U10_set, kind='cubic')
3.之前有帖子说,如果lat是逆序,需要如下操作,否则绘图结果不佳。经测试,如果只对单点插值,是否进行以下操作不影响计算结果。
lat = np.flipud(lat)
U10_set = np.flipud(U10_set)