我需要在任意坐标集合上从 240x240 结构化网格中对 hdf4/netcdf4/hdf5 文件的一些空气数据进行双线性插值。我不知道该怎么做。我曾尝试使用pyresample,但这需要目标网格的 AreaDefinition,这在我的非结构化目标数据(任意点)的情况下是不可能的。这是我的代码:
import numpy as np
import pyresample
from netCDF4 import Dataset
air_file = Dataset('air.hdf', mode='r')
air_data = air_file.variables['air_2m' ][:].flatten()
air_lon = air_file.variables['air_lon'][:].flatten()
air_lat = air_file.variables['air_lat'][:].flatten()
air_data = air_data.reshape(240,240)
air_lon = air_lon. reshape(240,240) # grid size is 240x240
air_lat = air_lat. reshape(240,240)
tar_lon = 100 * np.random.random((100,1)) # random points
tar_lat = 100 * np.random.random((100,1)) # random points
source_def = pyresample.geometry.SwathDefinition(lons=air_lon, lats=air_lat)
target_def = pyresample.geometry.SwathDefinition(lons=tar_lon, lats=tar_lat)
result = pyresample.bilinear.resample_bilinear(gmt_1500, source_def, target_def, radius=50e3, neighbours=32, nprocs=1, fill_value=None, reduce_data=True, segments=None, epsilon=0)
我收到以下错误(这被理解为它需要一个 AreaDefinition 作为目标):
AttributeError: 'SwathDefinition' object has no attribute 'proj_str'
有没有其他方法可以做到这一点?