Repository: climate
Updated Branches:
  refs/heads/master 9b3b61c2f -> 260e6b71d


CLIMATE-686 - Update the evaluation metrics

- evaluation.convert_evaluation_result and 
evaluation.convert_unary_evaluation_result have been updated.
- The updated modules properly handle when the metrics calculation result is a 
single number.


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

Branch: refs/heads/master
Commit: 8ff11aa36cbe961dbdfb5d661f249b0655989cbb
Parents: b6baf0f
Author: huikyole <[email protected]>
Authored: Mon Oct 5 17:37:39 2015 -0700
Committer: huikyole <[email protected]>
Committed: Mon Oct 5 17:37:39 2015 -0700

----------------------------------------------------------------------
 ocw/evaluation.py | 60 +++++++++++++++++++++++++++++++++-----------------
 1 file changed, 40 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/8ff11aa3/ocw/evaluation.py
----------------------------------------------------------------------
diff --git a/ocw/evaluation.py b/ocw/evaluation.py
index ff9ad33..fef5a0f 100644
--- a/ocw/evaluation.py
+++ b/ocw/evaluation.py
@@ -357,11 +357,16 @@ def convert_evaluation_result(evaluation_result, 
subregion = False):
         nmetric = len(evaluation_result[0])
         results = [] 
         for imetric in range(nmetric):
-            result_shape = list(evaluation_result[0][imetric].shape)
-            result_shape.insert(0, nmodel)
-            result = ma.zeros(result_shape)
-            for imodel in range(nmodel):
-                result[imodel,:] = evaluation_result[imodel][imetric]
+            if evaluation_result[0][imetric].ndim >=2:
+                result_shape = list(evaluation_result[0][imetric].shape)
+                result_shape.insert(0, nmodel)
+                result = ma.zeros(result_shape)
+                for imodel in range(nmodel):
+                    result[imodel,:] = evaluation_result[imodel][imetric]
+            else:
+                result = ma.zeros(nmodel)
+                for imodel in range(nmodel):
+                    result[imodel] = evaluation_result[imodel][imetric]
             results.append(result)
         return results
     else:
@@ -373,11 +378,16 @@ def convert_evaluation_result(evaluation_result, 
subregion = False):
         for isubregion in range(nsubregion):
             subregion_results = []
             for imetric in range(nmetric):
-                result_shape = 
list(evaluation_result[0][imetric][isubregion].shape)
-                result_shape.insert(0, nmodel)
-                result = ma.zeros(result_shape)
-                for imodel in range(nmodel):
-                    result[imodel,:] = 
evaluation_result[imodel][imetric][isubregion]
+                if evaluation_result[0][imetric][isubregion].ndim >=2:
+                    result_shape = 
list(evaluation_result[0][imetric][isubregion].shape)
+                    result_shape.insert(0, nmodel)
+                    result = ma.zeros(result_shape)
+                    for imodel in range(nmodel):
+                        result[imodel,:] = 
evaluation_result[imodel][imetric][isubregion]
+                else:
+                    result = ma.zeros(nmodel)
+                    for imodel in range(nmodel):
+                        result[imodel] = 
evaluation_result[imodel][imetric][isubregion]
                 subregion_results.append(result)
             results.append(subregion_results)
         return results
@@ -388,11 +398,16 @@ def convert_unary_evaluation_result(evaluation_result, 
subregion = False):
         nmodel = len(evaluation_result[0])
         results = []
         for imetric in range(nmetric):
-            result_shape = list(evaluation_result[imetric][0].shape)
-            result_shape.insert(0, nmodel)
-            result = ma.zeros(result_shape)
-            for imodel in range(nmodel):
-                result[imodel,:] = evaluation_result[imetric][imodel]
+            if evaluation_result[imetric][0].ndim >=2:
+                result_shape = list(evaluation_result[imetric][0].shape)
+                result_shape.insert(0, nmodel)
+                result = ma.zeros(result_shape)
+                for imodel in range(nmodel):
+                    result[imodel,:] = evaluation_result[imetric][imodel]
+            else:
+                result = ma.zeros(nmodel)
+                for imodel in range(nmodel):
+                    result[imodel] = evaluation_result[imetric][imodel]
             results.append(result)
         return results
     else:
@@ -404,11 +419,16 @@ def convert_unary_evaluation_result(evaluation_result, 
subregion = False):
         for isubregion in range(nsubregion):
             subregion_results = []
             for imetric in range(nmetric):
-                result_shape = 
list(evaluation_result[imetric][isubregion][0].shape)
-                result_shape.insert(0, nmodel)
-                result = ma.zeros(result_shape)
-                for imodel in range(nmodel):
-                    result[imodel,:] = 
evaluation_result[imetric][isubregion][imodel]
+                if evaluation_result[imetric][isubregion][0].ndim >=2:
+                    result_shape = 
list(evaluation_result[imetric][isubregion][0].shape)
+                    result_shape.insert(0, nmodel)
+                    result = ma.zeros(result_shape)
+                    for imodel in range(nmodel):
+                        result[imodel,:] = 
evaluation_result[imetric][isubregion][imodel]
+                else:
+                    result = ma.zeros(nmodel) 
+                    for imodel in range(nmodel):
+                        result[imodel] = 
evaluation_result[imetric][isubregion][imodel]
                 subregion_results.append(result)
             results.append(subregion_results)
         return results

Reply via email to