You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by jo...@apache.org on 2014/11/07 22:39:41 UTC

[4/6] climate git commit: CLIMATE-552 - Line length fixes and readability fixes

CLIMATE-552 - Line length fixes and readability fixes

- Correct PEP-8 incompatible line lengths.
- Adjust variable name and add additional comments to load_file for
  clarity.


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

Branch: refs/heads/master
Commit: f3badc99981dc6dff3a74e67433b048c3e5aab57
Parents: 32a9bd1
Author: Michael Joyce <jo...@apache.org>
Authored: Fri Nov 7 13:22:26 2014 -0800
Committer: Michael Joyce <jo...@apache.org>
Committed: Fri Nov 7 13:22:26 2014 -0800

----------------------------------------------------------------------
 ocw/data_source/local.py | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/f3badc99/ocw/data_source/local.py
----------------------------------------------------------------------
diff --git a/ocw/data_source/local.py b/ocw/data_source/local.py
index 0875d0c..e5ac7da 100644
--- a/ocw/data_source/local.py
+++ b/ocw/data_source/local.py
@@ -134,7 +134,10 @@ def load_file(file_path, variable_name, elevation_index=0):
     try:
         netcdf = netCDF4.Dataset(file_path, mode='r')
     except:
-        err = "The given file cannot be loaded (Only netCDF file can be supported)."
+        err = (
+            "The given file cannot be loaded "
+            "(Only NetCDF file can be supported)."
+        )
         raise ValueError(err)
 
     lat_name = _get_netcdf_variable_name(LAT_NAMES, netcdf, variable_name)
@@ -148,10 +151,20 @@ def load_file(file_path, variable_name, elevation_index=0):
     times = numpy.array(times)
     values = ma.array(netcdf.variables[variable_name][:])
 
+    # If the values are 4D then we need to strip out the elevation index
     if len(values.shape) == 4:
-        value_dimensions_names = [dim_name.encode() for dim_name in netcdf.variables[variable_name].dimensions]
+        # Determine the set of possible elevation dimension names excluding
+        # the list of names that are used for the lat, lon, and time values.
+        dims = netcdf.variables[variable_name].dimensions
+        dimension_names = [dim_name.encode() for dim_name in dims]
         lat_lon_time_var_names = [lat_name, lon_name, time_name]
-        level_index = value_dimensions_names.index(list(set(value_dimensions_names) - set(lat_lon_time_var_names))[0])
+
+        elev_names = set(dimension_names) - set(lat_lon_time_var_names)
+
+        # Grab the index value for the elevation values
+        level_index = dimension_names.index(elev_names.pop())
+
+        # Strip out the elevation values so we're left with a 3D array.
         if level_index == 0:
             values = values [elevation_index,:,:,:]
         elif level_index == 1: