import cartopy.io.shapereader as shpreader import iris import iris.analysis.geometry as iag print('Iris version: {}'.format(iris.__version__)) a1b_cube = iris.load_cube(iris.sample_data_path('A1B.2098.pp')) lats = a1b_cube.coord('latitude') lons = a1b_cube.coord('longitude') if not lats.has_bounds(): lats.guess_bounds() if not lons.has_bounds(): lons.guess_bounds() filename = shpreader.natural_earth(resolution='110m', category='cultural', name='admin_0_countries') borders = shpreader.Reader(filename) uk_geom, = [g for g in borders.records() if g.attributes['name_long']=='United Kingdom'] print uk_geom.attributes.keys() weights = iag.geometry_area_weights(a1b_cube, uk_geom.geometry) cube_collapsed = a1b_cube.collapsed(['latitude', 'longitude'], iris.analysis.MEAN, weights=weights) print('Average UK air temp in 2098: {:.3f}K'.format(cube_collapsed.data[0]))