代码之家  ›  专栏  ›  技术社区  ›  CPG

Python:使用shiftgrid更改经度

  •  1
  • CPG  · 技术社区  · 8 年前

    我正在使用python 3.6映射原始经度为的气候模型数据 (0,360) .I使用 basemap shiftgrid 为了将数据集中的所有经度值移动到 (-180,180) .然而,我仍然得到一张空地图。任何建议都会有帮助。谢谢

    #Longitude values:
    a=0
    b=360
    
    prcp = np.load('data.npy')
    
    data=np.average(prcp,axis=0)
    
    plt.figure()
    # create Basemap
    x1 = np.linspace(a,b, data.shape[1])
    y1 = np.linspace(-90, 90, data.shape[0])
    xx1, yy1 = np.meshgrid(x1, y1)
    
    data, x1 = shiftgrid(180., data, x1,start= False)
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Thomas Kühn    8 年前

    我自己也遇到过这样的问题。我的解决方案是使用 cdo cdo ). 转换可以通过以下方式完成:

    cdo sellonlatbox,-180,180,-90,90 input.nc output.nc
    

    或者,如果您有可用的python前端,您可以通过以下方式直接获取数据: netCDF4.Dataset

    from cdo import Cdo
    cdo = Cdo()
    
    data = cdo.sellonlatbox(
        '-180,180,-90,90',
        input = 'input.nc',
    )
    

    希望这有帮助。