2016-08-03 41 views
0

我在連續的美國網格數據,我試圖在特定的區域選擇它的一大塊。如何從Python中的另一個2D網格中對2D網格進行子集化?

import numpy as np 
from netCDF4 import Dataset 
import matplotlib.pyplot as plt 

filename = '/Users/me/myfile.nc' 
full_data = Dataset(filename,'r') 
latitudes = full_data.variables['latitude'][0,:,:] 
longitudes = full_data.variables['longitude'][0,:,:] 
temperature = full_data.variables['temperature'][0,:,:] 

所有這三個變量都是形狀的二維矩陣(337,451)。我正在嘗試執行以下操作以獲取特定區域上的數據的子選擇。我期望所有這三個變量都是二維的,但是他們都返回一個扁平的數組,形狀爲(102,)。我試過另一種方法:

index2 = np.where((latitudes>=44.0)&(latitudes<=45.0)&(longitudes>=-91.0)&(longitudes<=-89.0)) 
temp = temperatures[index2[0],:] 
temp2 = temp[:,index2[1]] 
plt.imshow(temp2,origin='lower') 
plt.colobar() 

但是我的數據看起來相當不正確。是否有更好的方法從更大的網格中獲取2D子集網格?

enter image description here

回答