[ https://issues.apache.org/jira/browse/CLIMATE-798?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ibrahim Jarif updated CLIMATE-798: ---------------------------------- Description: The following 4 code sections in *evaluation.py* file are redundant and will never execute under any working condition. 1. *convert_evaluation_result* function *lines 367 - 369* {code} if evaluation_result[0][imetric].ndim !=0: .... else: result = ma.zeros(nmodel) for imodel in range(nmodel): result[imodel] = evaluation_result[imodel][imetric] {code} The ndim of any possible index of *evaluation_result* array will always be *greater than zero* because this function is only called by *_run_subregion_evaluation* function (line 273) which appends an *[] element* (line 278){code}results.append([]) {code} to the *results* array (the result array is the evaluation_result array). So the ndim value of all the indexes of result array *becomes greater than zero* ( the ndim value of an empty array i.e array = [[]] is also 1). So the above if condition is always true and the else part is never executed. Hence they should be removed. The next 3 points have same explanation as 1. 2. *convert_evaluation_result* function *lines 388 - 390*. {code} if evaluation_result[0][imetric][isubregion].ndim !=0: .... else: result = ma.zeros(nmodel) for imodel in range(nmodel): result[imodel] = evaluation_result[imodel][imetric][isubregion] {code} 3.*convert_unary_evaluation_result* function *lines 408 - 410* {code} if evaluation_result[imetric][0].ndim !=0: .... else: result = ma.zeros(nmodel) for imodel in range(nmodel): result[imodel] = evaluation_result[imetric][imodel] {code} 4.*convert_unary_evaluation_result* function *lines 429 - 431* {code} if evaluation_result[imetric][isubregion][0].ndim !=0: .... else: result = ma.zeros(nmodel) for imodel in range(nmodel): result[imodel] = evaluation_result[imetric][isubregion][imodel] {code} was: The following 4 code sections in *evaluation.py* file are redundant and will never execute under any working condition. 1. *convert_evaluation_result* function *lines 360 - 365* {code} if evaluation_result[0][imetric].ndim !=0: 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] {code} The ndim of any possible index of *evaluation_result* array will always be *greater than zero* because this function is only called by *_run_subregion_evaluation* function (line 273) which appends an *[] element* (line 278){code}results.append([]) {code} to the *results* array (the result array is the evaluation_result array). So the ndim value of all the indexes of result array *becomes greater than zero* ( the ndim value of an empty array i.e array = [[]] is also 1). So the above lines are never executed. Hence they should be removed. The next 3 points have same explanation as 1. 2. *convert_evaluation_result* function *lines 381 - 386*. {code} if evaluation_result[0][imetric][isubregion].ndim !=0: 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] {code} 3.*convert_unary_evaluation_result* function *lines 401 - 406* {code} if evaluation_result[imetric][0].ndim !=0: 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[imet {code} 4.*convert_unary_evaluation_result* function *lines 422 - 427* {code} if evaluation_result[imetric][isubregion][0].ndim !=0: 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] {code} > Redundant code in evaluations.py > -------------------------------- > > Key: CLIMATE-798 > URL: https://issues.apache.org/jira/browse/CLIMATE-798 > Project: Apache Open Climate Workbench > Issue Type: Bug > Reporter: Ibrahim Jarif > Assignee: Ibrahim Jarif > Priority: Minor > > The following 4 code sections in *evaluation.py* file are redundant and will > never execute under any working condition. > 1. *convert_evaluation_result* function *lines 367 - 369* > {code} > if evaluation_result[0][imetric].ndim !=0: > .... > else: > result = ma.zeros(nmodel) > for imodel in range(nmodel): > result[imodel] = evaluation_result[imodel][imetric] > {code} > The ndim of any possible index of *evaluation_result* array will always be > *greater than zero* because this function is only called by > *_run_subregion_evaluation* function (line 273) which appends an *[] element* > (line 278){code}results.append([]) > {code} to the *results* array (the result array is the evaluation_result > array). So the ndim value of all the indexes of result array *becomes greater > than zero* ( the ndim value of an empty array i.e array = [[]] is also 1). > So the above if condition is always true and the else part is never executed. > Hence they should be removed. > The next 3 points have same explanation as 1. > 2. *convert_evaluation_result* function *lines 388 - 390*. > {code} > if evaluation_result[0][imetric][isubregion].ndim !=0: > .... > else: > result = ma.zeros(nmodel) > for imodel in range(nmodel): > result[imodel] = evaluation_result[imodel][imetric][isubregion] > {code} > 3.*convert_unary_evaluation_result* function *lines 408 - 410* > {code} > if evaluation_result[imetric][0].ndim !=0: > .... > else: > result = ma.zeros(nmodel) > for imodel in range(nmodel): > result[imodel] = evaluation_result[imetric][imodel] > {code} > 4.*convert_unary_evaluation_result* function *lines 429 - 431* > {code} > if evaluation_result[imetric][isubregion][0].ndim !=0: > .... > else: > result = ma.zeros(nmodel) > for imodel in range(nmodel): > result[imodel] = evaluation_result[imetric][isubregion][imodel] > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)