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]:
In [ ]: