在 python 中将 netcdf 数据重新网格化为更精细的分辨率

regrid netcdf data to finer resolution in python

我想将 netcdf 数据从 0.5 度缩小到 0.25(或更低)分辨率,只需创建与较粗分辨率单元格具有相同值的新更精细分辨率网格单元格。我有办法。适用于创建较粗分辨率文件的代码:

from mpl_toolkits.basemap import Basemap
from netCDF4 import Dataset
import numpy as np
import pdb

filename = '/Users/r/global_aug4.region.nc'
pdb.set_trace()
with Dataset(filename, mode='r') as fh:
   lons = fh.variables['lon'][:]
   lats = fh.variables['lat'][:]
   biom = fh.variables['biomass'][:].squeeze()

lons_sub, lats_sub = np.meshgrid(lons[::4], lats[::4])

coarse = Basemap.interp(biom, lons, lats, lons_sub, lats_sub, order=1)

我如何创建相反方向的东西,即从粗到细

请注意,在 docs 中,您只需为 interp 方法提供 xoutyout,它们是新的所需网格。

您已经使用较粗的网格正确地完成了它(即通过以 4 度的步长递增坐标),现在您只需要通过重新定义 lons_sublats_sub 以 0.25 度为增量的网格间距。像下面这样的东西应该可以工作。

lats_fine = np.arange(lats[0], lats[-1], 0.25) # 0.25 degree fine grid
lons_fine = np.arange(lons[0], lons[-1], 0.25)
lons_sub, lats_sub = np.meshgrid(lons_fine, lats_fine)