[
https://issues.apache.org/jira/browse/CLIMATE-813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15337739#comment-15337739
]
ASF GitHub Bot commented on CLIMATE-813:
----------------------------------------
Github user jarifibrahim commented on a diff in the pull request:
https://github.com/apache/climate/pull/362#discussion_r67599123
--- Diff: ocw/utils.py ---
@@ -326,97 +339,107 @@ def calc_climatology_monthly(dataset):
raise ValueError(error)
else:
values = reshape_monthly_to_annually(dataset).mean(axis=0)
-
+
# A year can commence from any month
first_month = dataset.times[0].month
- times = np.array([datetime.datetime(1, first_month, 1) +
relativedelta(months = x)
- for x in range(12)])
+ times = np.array([dt.datetime(1, first_month, 1) +
+ relativedelta(months=x)
+ for x in range(12)])
return values, times
+
def calc_time_series(dataset):
''' Calculate time series mean values for a dataset
- :param dataset: Dataset object
+ :param dataset: Dataset object
:type dataset: :class:`dataset.Dataset`
:returns: time series for the dataset of shape (nT)
'''
- t_series =[]
+ t_series = []
for t in xrange(dataset.values.shape[0]):
- t_series.append(dataset.values[t,:,:].mean())
-
+ t_series.append(dataset.values[t, :, :].mean())
+
return t_series
+
def get_temporal_overlap(dataset_array):
''' Find the maximum temporal overlap across the observation and model
datasets
:param dataset_array: an array of OCW datasets
'''
- start_time =[]
- end_time =[]
+ start_time = []
+ end_time = []
for dataset in dataset_array:
start_time.append(dataset.time_range()[0])
end_time.append(dataset.time_range()[1])
return np.max(start_time), np.min(end_time)
+
def calc_subregion_area_mean_and_std(dataset_array, subregions):
- ''' Calculate area mean and standard deviation values for a given
subregions using datasets on common grid points
+ ''' Calculate area mean and standard deviation values for a given
+ subregions using datasets on common grid points
:param dataset_array: An array of OCW Dataset Objects
- :type list:
+ :type list:
:param subregions: list of subregions
:type subregions: :class:`numpy.ma.array`
- :returns: area averaged time series for the dataset of shape (ntime,
nsubregion)
+ :returns: area averaged time series for the dataset of shape
+ (ntime, nsubregion)
'''
ndata = len(dataset_array)
dataset0 = dataset_array[0]
if dataset0.lons.ndim == 1:
- lons, lats = np.meshgrid(dataset0.lons, dataset0.lats)
+ lons, lats = np.meshgrid(dataset0.lons, dataset0.lats)
else:
- lons = dataset0.lons
- lats = dataset0.lats
+ lons = dataset0.lons
+ lats = dataset0.lats
subregion_array = np.zeros(lons.shape)
- mask_array = dataset_array[0].values[0,:].mask
+ mask_array = dataset_array[0].values[0, :].mask
# dataset0.values.shsape[0]: length of the time dimension
# spatial average
- t_series =ma.zeros([ndata, dataset0.values.shape[0], len(subregions)])
+ t_series = ma.zeros([ndata, dataset0.values.shape[0], len(subregions)])
# spatial standard deviation
- spatial_std =ma.zeros([ndata, dataset0.values.shape[0],
len(subregions)])
+ spatial_std = ma.zeros([ndata, dataset0.values.shape[0],
len(subregions)])
for iregion, subregion in enumerate(subregions):
lat_min, lat_max, lon_min, lon_max = subregion[1]
- y_index,x_index = np.where((lats >= lat_min) & (lats <= lat_max) &
(lons >= lon_min) & (lons <= lon_max))
- subregion_array[y_index,x_index] = iregion+1
+ y_index, x_index = np.where((lats >= lat_min) & (
+ lats <= lat_max) & (lons >= lon_min) & (lons <= lon_max))
+ subregion_array[y_index, x_index] = iregion + 1
for idata in np.arange(ndata):
- t_series[idata, :, iregion] =
ma.mean(dataset_array[idata].values[:,y_index, x_index], axis=1)
- spatial_std[idata, :, iregion] =
ma.std(dataset_array[idata].values[:,y_index, x_index], axis=1)
- subregion_array = ma.array(subregion_array, mask=mask_array)
+ t_series[idata, :, iregion] =
ma.mean(dataset_array[idata].values[
+ :, y_index, x_index],
axis=1)
+ spatial_std[idata, :, iregion] = ma.std(
+ dataset_array[idata].values[:, y_index, x_index], axis=1)
+ subregion_array = ma.array(subregion_array, mask=mask_array)
return t_series, spatial_std, subregion_array
+
def calc_area_weighted_spatial_average(dataset, area_weight=False):
'''Calculate area weighted average of the values in OCW dataset
- :param dataset: Dataset object
+ :param dataset: Dataset object
:type dataset: :class:`dataset.Dataset`
:returns: time series for the dataset of shape (nT)
'''
- if dataset.lats.ndim ==1:
+ if dataset.lats.ndim == 1:
lons, lats = np.meshgrid(dataset.lons, dataset.lats)
else:
- lons = dataset.lons
--- End diff --
`lons` variable was not used anywhere.
> Fix PEP8 Violations in utils
> ----------------------------
>
> Key: CLIMATE-813
> URL: https://issues.apache.org/jira/browse/CLIMATE-813
> Project: Apache Open Climate Workbench
> Issue Type: Improvement
> Reporter: Ibrahim Jarif
> Assignee: Ibrahim Jarif
> Fix For: 1.1
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)