我有一张全球地图(经度,纬度,深度)作为netcdf文件(大小:236,1440),并且想要转移'从-180/180到-270/90的经度,使得单元号0 = -270等(意味着澳大利亚大陆位于网格单元号0到~300附近)。我怎么能用python做到这一点?到目前为止,我有
Bathy=Dataset('/path/to/file', 'r+', format="NETCDF4")
lon=Bathy.variables[u'x'][:]
lat=Bathy.variables[u'y'][:]
depth=Bathy.variables[u'z'][:]
lon=lon[:]-90
Bathy.variables[u'x'][:]=lon
Bathy.close()
但是这只会移动参考框架而不是实际网格(这意味着0度经度转移到西澳大利亚等)。提前感谢!
答案 0 :(得分:0)
好的,我找到了一种如何使用np.roll:
执行此操作的方法Bathy=Dataset('/path/to/file', 'r+', format="NETCDF4")
lon=Bathy.variables[u'x'][:]
lat=Bathy.variables[u'y'][:]
depth=Bathy.variables[u'z'][:]
depth_new=np.roll(depth,360,axis=1)
lon_new=lon[:]-90
Bathy.variables[u'x'][:]=lon_new
Bathy.variables[u'z'][:]=depth_new
Bathy.close()
它将深度值360个网格单元沿着轴1向右移动(在我的情况下为-90度经度)。