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
