我想通过简单地创建与较粗分辨率单元具有相同值的新的更精细分辨率网格单元,将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)
如何创建另一种方式,即从粗略到更精细的方式
答案 0 :(得分:3)
请注意docs您需要提供interp
方法xout
和yout
,这是新的理想网格。
你已经用更粗糙的网格(即通过以4度的步长递增坐标)完成了它,现在你只需要通过重新定义lons_sub
和lats_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)