2016-08-03 4 views
0

Ich habe Daten über die zusammenhängenden Vereinigten Staaten gerastert und ich versuche, einen Teil davon über einen bestimmten Bereich auszuwählen.Wie unterteile ich ein 2D-Gitter aus einem anderen 2D-Gitter in Python?

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,:,:] 

Alle drei Variablen sind 2-dimensionale Matrizen der Form (337,451). Ich versuche Folgendes zu tun, um eine Unterselektion der Daten über eine bestimmte Region zu erhalten.

index = (latitudes>=44.0)&(latitudes<=45.0)&(longitudes>=-91.0)&(longitudes<=-89.0) 
temp_subset = temperature[index] 
lat_subset = latitudes[index] 
lon_subset = longitudes[index] 

würde ich alle drei dieser Variablen erwarten sein 2-dimensional, sondern sie alle zurück eine abgeflachte Anordnung mit einer Form (102,). Ich habe einen anderen Ansatz versucht:

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() 

Aber meine Daten sieht ziemlich falsch aus. Gibt es eine bessere Möglichkeit, ein 2D-Teilgitter aus einem größeren Gitter zu erhalten?

enter image description here

Antwort