【问题标题】:regrid netcdf data to finer resolution in python在 python 中将 netcdf 数据重新网格化为更精细的分辨率
【发布时间】:2015-08-06 02:58:28
【问题描述】:

我想将 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)

我如何创建另一种方式的东西,即从粗到细的规模

【问题讨论】:

    标签: python netcdf


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 2017-09-04
      • 1970-01-01
      • 2018-10-03
      • 2014-02-04
      • 2021-05-16
      • 2023-03-26
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多