- Wrote DSP subset function more succintly - Update DS print statement in _validate_inputs - Update Bounds __init__ logic
Project: http://git-wip-us.apache.org/repos/asf/climate/repo Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/446e827b Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/446e827b Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/446e827b Branch: refs/heads/master Commit: 446e827b823e66e3d15d224a7ad60479e2d4a13d Parents: 126631d Author: Kim Whitehall <[email protected]> Authored: Thu Apr 23 13:10:44 2015 -0700 Committer: Kim Whitehall <[email protected]> Committed: Thu Apr 23 13:10:44 2015 -0700 ---------------------------------------------------------------------- ocw/dataset.py | 16 ++++----- ocw/dataset_processor.py | 82 +++++++++++++++++++++---------------------- 2 files changed, 49 insertions(+), 49 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/climate/blob/446e827b/ocw/dataset.py ---------------------------------------------------------------------- diff --git a/ocw/dataset.py b/ocw/dataset.py index b5358f9..d231f0e 100644 --- a/ocw/dataset.py +++ b/ocw/dataset.py @@ -185,7 +185,7 @@ class Dataset: # Finally check that the Values array conforms to the proper shape if value_dim == 2 and values.shape != (lat_count, lon_count): err_msg = """Value Array must be of shape (times, lats, lons). - Expected shape (%s, %s, %s) but received (%s, %s, %s)""" % (lat_count, + Expected shape (%s, %s) but received (%s, %s)""" % (lat_count, lon_count, values.shape[0], values.shape[1]) @@ -270,16 +270,16 @@ class Bounds(object): self._lon_min = float(lon_min) self._lon_max = float(lon_max) - if not start: - self._start = None - else: + if start: self._start = start - - if not end: - self._end = None else: - self._end = end + self._start = None + if end: + self._end = end + else: + self._end = None + @property def lat_min(self): return self._lat_min http://git-wip-us.apache.org/repos/asf/climate/blob/446e827b/ocw/dataset_processor.py ---------------------------------------------------------------------- diff --git a/ocw/dataset_processor.py b/ocw/dataset_processor.py index 76da817..f600429 100644 --- a/ocw/dataset_processor.py +++ b/ocw/dataset_processor.py @@ -183,48 +183,48 @@ def subset(subregion, target_dataset, subregion_name=None): if not subregion_name: subregion_name = target_dataset.name - # Build new dataset with subset information + # Slice the values array with our calculated slice indices if target_dataset.values.ndim == 2: - return ds.Dataset( - # Slice the lats array with our calculated slice indices - target_dataset.lats[dataset_slices["lat_start"]: - dataset_slices["lat_end"] + 1], - # Slice the lons array with our calculated slice indices - target_dataset.lons[dataset_slices["lon_start"]: - dataset_slices["lon_end"] + 1], - # Slice the times array with our calculated slice indices - target_dataset.times[dataset_slices["time_start"]: - dataset_slices["time_end"]+ 1], - # Slice the values array with our calculated slice indices - target_dataset.values[ - dataset_slices["lat_start"]:dataset_slices["lat_end"] + 1, - dataset_slices["lon_start"]:dataset_slices["lon_end"] + 1], - variable=target_dataset.variable, - units=target_dataset.units, - name=subregion_name, - origin=target_dataset.origin - ) - if target_dataset.values.ndim == 3: - return ds.Dataset( - # Slice the lats array with our calculated slice indices - target_dataset.lats[dataset_slices["lat_start"]: - dataset_slices["lat_end"] + 1], - # Slice the lons array with our calculated slice indices - target_dataset.lons[dataset_slices["lon_start"]: - dataset_slices["lon_end"] + 1], - # Slice the times array with our calculated slice indices - target_dataset.times[dataset_slices["time_start"]: - dataset_slices["time_end"]+ 1], - # Slice the values array with our calculated slice indices - target_dataset.values[ - dataset_slices["time_start"]:dataset_slices["time_end"] + 1, - dataset_slices["lat_start"]:dataset_slices["lat_end"] + 1, - dataset_slices["lon_start"]:dataset_slices["lon_end"] + 1], - variable=target_dataset.variable, - units=target_dataset.units, - name=subregion_name, - origin=target_dataset.origin - ) + subset_values = ma.zeros([len(target_dataset.values[ + dataset_slices["lat_start"]:dataset_slices["lat_end"]]), + len(target_dataset.values[ + dataset_slices["lon_start"]:dataset_slices["lon_end"]])]) + + subset_values = target_dataset.values[ + dataset_slices["lat_start"]:dataset_slices["lat_end"] + 1, + dataset_slices["lon_start"]:dataset_slices["lon_end"] + 1] + + elif target_dataset.values.ndim == 3: + subset_values = ma.zeros([len(target_dataset.values[ + dataset_slices["time_start"]:dataset_slices["time_end"]]), + len(target_dataset.values[ + dataset_slices["lat_start"]:dataset_slices["lat_end"]]), + len(target_dataset.values[ + dataset_slices["lon_start"]:dataset_slices["lon_end"]])]) + + subset_values = target_dataset.values[ + dataset_slices["time_start"]:dataset_slices["time_end"] + 1, + dataset_slices["lat_start"]:dataset_slices["lat_end"] + 1, + dataset_slices["lon_start"]:dataset_slices["lon_end"] + 1] + + # Build new dataset with subset information + return ds.Dataset( + # Slice the lats array with our calculated slice indices + target_dataset.lats[dataset_slices["lat_start"]: + dataset_slices["lat_end"] + 1], + # Slice the lons array with our calculated slice indices + target_dataset.lons[dataset_slices["lon_start"]: + dataset_slices["lon_end"] + 1], + # Slice the times array with our calculated slice indices + target_dataset.times[dataset_slices["time_start"]: + dataset_slices["time_end"]+ 1], + # Slice the values array with our calculated slice indices + subset_values, + variable=target_dataset.variable, + units=target_dataset.units, + name=subregion_name, + origin=target_dataset.origin + ) def safe_subset(subregion, target_dataset, subregion_name=None):
