【问题标题】:Python: using shiftgrid to change longitudePython:使用 shiftgrid 更改经度
【发布时间】:2017-07-20 19:46:38
【问题描述】:

我正在使用 python 3.6 绘制原始经度为 (0,360) 的气候模型数据。我使用了一个名为shiftgridbasemap 函数,以便将我的数据集中的所有经度值转移到(-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)

【问题讨论】:

  • 我猜你必须在创建网格之前调用shiftgrid

标签: python python-3.x matplotlib latitude-longitude matplotlib-basemap


【解决方案1】:

我自己也遇到过这类问题。我的解决方案是使用cdo 转换输入文件的坐标(cdo 有一个 python 前端可用)。可以通过以下方式完成转换:

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',
)

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2023-03-26
    相关资源
    最近更新 更多