for i in xrange(len(lat)): for j in xrange(len(lon)): i_cells, = np.where((lon_nodes[j] <= lon_msk) & \ (lon_msk <= lon_nodes[j+1]) & \ (lat_nodes[i] <= lat_msk) & \ (lat_msk <= lat_nodes[i+1]) & \ (msk == 4)) # 4 = ice shelf # each mask cell is 1 km**2 area[i,j] = len(i_cells) cells_idx = np.append(cells_idx, i_cells) cells_idx = [int(i) for i in cells_idx] print 'done' ind = ap.where_isnan('crosson', lon, lat) area[ind] = np.nan print 'Total area (km2):', np.nansum(area) if SAVE: f = tb.open_file(FILE_OUT, 'a') ''' f.create_array('/', 'area', area) f.create_array('/', 'lon', lon) f.create_array('/', 'lat', lat) ''' f.create_array('/', 'area_5', area) f.create_array('/', 'lon_5', lon) f.create_array('/', 'lat_5', lat) f.flush() f.close()
error = fin.root.dh_error_xcal[:] time = ap.num2year(fin.root.time_xcal[:]) lon = fin.root.lon[:] lat = fin.root.lat[:] xx, yy = np.meshgrid(lon, lat) nz, ny, nx = data.shape f1 = tb.open_file(FILE_OFFSET) offset_12 = f1.root.offset_12[:] offset_23 = f1.root.offset_23[:] f1.close() print('done') if 0: # (for testing only) subset print lon.shape, lat.shape, data.shape i, j = ap.where_isnan('Totten', lon, lat) data[:,i,j] = np.nan ''' plt.imshow(data[10], origin='lower', interpolation='nearest', extent=(lon.min(), lon.max(), lat.min(), lat.max()), aspect='auto') plt.show() exit() ''' if 1: # (yes) filter time _, data = ap.time_filt(time, data, from_time=1994, to_time=2013) time, error = ap.time_filt(time, error, from_time=1994, to_time=2013) dt = ap.year2date(time)