1

我使用python 3.6來繪製原始經度爲(0,360)的氣候模型數據。我使用basemap函數shiftgrid將我的數據集中的所有經度值轉換爲(-180,180)。不過,我仍然收到一張空白的地圖。任何的意見都將會有幫助。謝謝!Python:使用shiftgrid改變經度

這是到目前爲止我的代碼:

#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) 
+0

我想你必須在創建meshgrid之前調用'shiftgrid'。 – Serenity

回答

1

我碰到的這些類型的問題我自己。我的解決方案是使用cdo(有一個python前端可用於cdo)來轉換輸入文件的座標。這種轉變是可以做到的:

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

,或者如果你有蟒蛇前端可用,您可以直接將數據作爲netCDF4.Dataset

from cdo import Cdo 
cdo = Cdo() 

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

希望這有助於。