In [1]:
# !conda install numpy netcdf4 --yes

In [2]:
from netCDF4 import Dataset
import numpy as np

In [3]:
rois = {
    'liverpool': { 'longitude': [-3.34, -3.33], 'latitude': [53.49, 53.55] },
    'southKnock': { 'longitude': [1.57, 1.59], 'latitude': [51.5, 51.6] },
    'scillyIsles': { 'longitude': [-6.59, -6.58], 'latitude': [49.8, 49.9] },
    'tyneTess': { 'longitude': [-0.751, -0.748], 'latitude': [54.84, 54.95] },
    'westHebrides': { 'longitude': [-8.0, -7.9], 'latitude': [57.2, 57.3] },
    'westPembroke': { 'longitude': [-5.9, -5.8], 'latitude': [51.8, 51.9] },
#     'sevenstones': { 'longitude': [-6.083377], 'latitude': [50.08327] },
    'moray': { 'longitude': [-3.4, -3.3], 'latitude': [57.98, 58.0] },
    'poole': { 'longitude': [-1.8, -1.7], 'latitude': [50.6, 50.7] },
    'scarweather': { 'longitude': [-4.0, -3.9], 'latitude': [51.4, 51.45] },
    'k1': { 'longitude': [-12.45, -12.40], 'latitude': [48.70, 48.75] },
    'k2': { 'longitude': [-13.58, -13.5], 'latitude': [50.95, 51.0] },
    'k4': { 'longitude': [-12.6, -12.55], 'latitude': [55.4, 55.45] },
    'k5': { 'longitude': [-11.45, -11.40], 'latitude': [59.05, 59.1] },
    'k7': { 'longitude': [-4.2, -4.15], 'latitude': [60.45, 60.5] },
}

In [4]:
parameter = 'hs'

In [5]:
rootgrp = Dataset('/data/rises-waves/197901.nc', 'r')

In [6]:
def findRegionOfInterest(boundry, lons, lats, pararmeterData):
    [longEast, longWest] = boundry['longitude']
    [latNorth, latSouth] = boundry['latitude']
    lonInds = np.where((lons > longEast) & (lons < longWest))[0]
    latInds = np.where((lats > latNorth) & (lats < latSouth))[0]
    return pararmeterData[:, latInds, lonInds]

def aggregateMeanMax(boundry, parameter, ncFile):
    lons = ncFile.variables['longitude'][:]
    lats = ncFile.variables['latitude'][:]
    pararmeterData = ncFile.variables[parameter]
    roi = findRegionOfInterest(boundry, lons, lats, pararmeterData)
    return  { 'mean': np.mean(roi), 'max': np.max(roi) }

In [9]:
roisIndices = { key: aggregateMeanMax(rois[key], parameter, rootgrp) for key in rois }

In [10]:
roisIndices


Out[10]:
{'k1': {'max': 6.4480004, 'mean': 3.7892017},
 'k2': {'max': 6.2740002, 'mean': 3.9343386},
 'k4': {'max': 7.8120003, 'mean': 4.3749061},
 'k5': {'max': 8.7400007, 'mean': 4.3900676},
 'k7': {'max': 6.5080004, 'mean': 3.684124},
 'liverpool': {'max': 2.72, 'mean': 1.093371},
 'moray': {'max': 5.0200005, 'mean': 1.3265377},
 'poole': {'max': 2.8140001, 'mean': 0.78045702},
 'scarweather': {'max': 3.8200002, 'mean': 1.2102528},
 'scillyIsles': {'max': 6.5060005, 'mean': 2.7138443},
 'southKnock': {'max': 2.73, 'mean': 1.1132877},
 'tyneTess': {'max': 6.1980004, 'mean': 1.8725647},
 'westHebrides': {'max': 6.2080002, 'mean': 3.5776322},
 'westPembroke': {'max': 4.0160003, 'mean': 1.7520295}}

In [ ]: