[
https://issues.apache.org/jira/browse/CLIMATE-543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14194813#comment-14194813
]
Ross Laidlaw commented on CLIMATE-543:
--------------------------------------
It looks like the {{calcNashSutcliff}} method could be ported directly over to
the new metrics.py module without requiring any refactoring:
{code}
def calcNashSutcliff(evaluationData, referenceData):
# Flatten the spatial dimensions
data1 = evaluationData[:]
data2 = referenceData[:]
nT = data1.shape[0]
data1.shape = nT, data1.size / nT
data2.shape = nT, data2.size / nT
meanData2 = data2.mean(axis = 1)
# meanData2 must be reshaped to 2D as to obey numpy broadcasting rules
meanData2.shape = nT, 1
nashcor = 1 - ((((data2 - data1) ** 2).sum(axis = 1)) /
(((data2 - meanData2) ** 2).sum(axis = 1)))
return nashcor
{code}
This could become:
{code}
class NashSutcliff(BinaryMetric):
def run(self, eval_dataset, ref_dataset):
# Flatten the spatial dimensions
data1 = eval_dataset.values[:]
data2 = ref_dataset.values[:]
nT = data1.shape[0]
data1.shape = nT, data1.size / nT
data2.shape = nT, data2.size / nT
meanData2 = data2.mean(axis=1)
# meanData2 must be reshaped to 2D as to obey numpy broadcasting rules
meanData2.shape = nT, 1
nashcor = 1 - ((((data2 - data1) ** 2).sum(axis=1)) /
(((data2 - meanData2) ** 2).sum(axis=1)))
return nashcor
{code}
> Port 'calcNashSutcliff' method over to ocw/metrics.py module
> ------------------------------------------------------------
>
> Key: CLIMATE-543
> URL: https://issues.apache.org/jira/browse/CLIMATE-543
> Project: Apache Open Climate Workbench
> Issue Type: Sub-task
> Components: metrics
> Affects Versions: 0.4
> Reporter: Ross Laidlaw
> Assignee: Ross Laidlaw
> Fix For: 0.5
>
>
> Port this method over from rcmet/src/main/python/rcmes/toolkit/metrics_kyo.py
> to ocw/metrics.py.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)