You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by le...@apache.org on 2018/03/13 17:16:54 UTC

[2/3] climate git commit: CLIMATE-938 Unify format of the time information from a netCDF file.

CLIMATE-938 Unify format of the time information from a netCDF file.


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

Branch: refs/heads/master
Commit: 38fedad3c79bed9cf9feea7bdaee158008c07701
Parents: 4807c4b
Author: michaelarthuranderson <mi...@gmail.com>
Authored: Sun Mar 4 08:47:20 2018 -0500
Committer: michaelarthuranderson <mi...@gmail.com>
Committed: Sun Mar 4 08:47:20 2018 -0500

----------------------------------------------------------------------
 ocw/dataset_processor.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/38fedad3/ocw/dataset_processor.py
----------------------------------------------------------------------
diff --git a/ocw/dataset_processor.py b/ocw/dataset_processor.py
index 0bb19dd..a167acc 100755
--- a/ocw/dataset_processor.py
+++ b/ocw/dataset_processor.py
@@ -504,6 +504,7 @@ def temporal_slice(target_dataset, start_time, end_time):
 
     :raises: ValueError
     '''
+
     # https://issues.apache.org/jira/browse/CLIMATE-938
     # netCDF datetimes allow for a variety of calendars while Python has
     # only one.  This would throw an error about a calendar mismatch when
@@ -511,13 +512,17 @@ def temporal_slice(target_dataset, start_time, end_time):
     # Cast the date as best we can so the comparison will compare like
     # data types  This will still throw an excdeption if the start / end date are
     # not valid in given calendar.  February 29th in a DatetimeNoLeap calendar for example.
-    slice_start_time =\
-        type(target_dataset.times.item(0))(start_time.year, start_time.month, start_time.day,
-                                           start_time.hour, start_time.minute, start_time.second)
+    slice_start_time = start_time
+    slice_end_time = end_time
+
+    if isinstance(target_dataset.times.item(0), netCDF4.netcdftime._netcdftime.datetime):
+        slice_start_time =\
+            type(target_dataset.times.item(0))(start_time.year, start_time.month, start_time.day,
+                                            start_time.hour, start_time.minute, start_time.second)
 
-    slice_end_time =\
-        type(target_dataset.times.item(0))(end_time.year, end_time.month, end_time.day,
-                                           end_time.hour, end_time.minute, end_time.second)
+        slice_end_time =\
+            type(target_dataset.times.item(0))(end_time.year, end_time.month, end_time.day,
+                                            end_time.hour, end_time.minute, end_time.second)
 
     start_time_index = np.where(
         target_dataset.times >= slice_start_time)[0][0]