climate-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From huiky...@apache.org
Subject [2/2] climate git commit: Merge branch 'CLIMATE-651'
Date Mon, 03 Aug 2015 03:29:39 GMT
Merge branch 'CLIMATE-651'

Conflicts:
	ocw/utils.py


Project: http://git-wip-us.apache.org/repos/asf/climate/repo
Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/496f8bb0
Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/496f8bb0
Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/496f8bb0

Branch: refs/heads/master
Commit: 496f8bb055420adcf439a76c8fa0b03b35a3d920
Parents: 7cfd7e9 77227b1
Author: huikyole <huikyole@argo.jpl.nasa.gov>
Authored: Sun Aug 2 20:29:22 2015 -0700
Committer: huikyole <huikyole@argo.jpl.nasa.gov>
Committed: Sun Aug 2 20:29:22 2015 -0700

----------------------------------------------------------------------
 ocw/utils.py | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/496f8bb0/ocw/utils.py
----------------------------------------------------------------------
diff --cc ocw/utils.py
index 7c7776f,d6a5708..0b2f9da
--- a/ocw/utils.py
+++ b/ocw/utils.py
@@@ -344,15 -344,37 +344,51 @@@ def calc_time_series(dataset)
      
      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 =[]
 +    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
+     :param dataset_array: An array of OCW Dataset Objects
+     :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)
+     '''
+ 
+     ndata = len(dataset_array)
+     dataset0 = dataset_array[0]
+     if dataset0.lons.ndim == 1:
+        lons, lats = np.meshgrid(dataset0.lons, dataset0.lats)
+     else:
+        lons = dataset0.lons
+        lats = dataset0.lats
+     subregion_array = np.zeros(lons.shape)
+     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)])
+     # spatial standard deviation
+     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
+         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) 
+     return t_series, spatial_std, subregion_array
+ 
++>>>>>>> CLIMATE-651


Mime
View raw message