Commit 62b72d97 authored by Thibault Hallouin's avatar Thibault Hallouin
Browse files

add "completeness" diagnostics

1 merge request!1release v0.1.0.0
Showing with 87 additions and 0 deletions
+87 -0
...@@ -16,6 +16,11 @@ _all_metrics = ( ...@@ -16,6 +16,11 @@ _all_metrics = (
'NSE', 'KGE', 'KGE_D', 'KGEPRIME', 'KGEPRIME_D', 'NSE', 'KGE', 'KGE_D', 'KGEPRIME', 'KGEPRIME_D',
) )
# list all available deterministic diagnostics
_all_diags = (
'completeness'
)
class TestMetrics(unittest.TestCase): class TestMetrics(unittest.TestCase):
...@@ -203,6 +208,45 @@ class TestUncertainty(unittest.TestCase): ...@@ -203,6 +208,45 @@ class TestUncertainty(unittest.TestCase):
) )
class TestDiagnostics(unittest.TestCase):
def test_completeness(self):
obs = numpy.array(
[[4.7, 4.3, numpy.nan, 2.7, 4.1, 5.0]]
)
prd = numpy.array(
[[5.3, numpy.nan, 5.7, 2.3, 3.3, 4.1],
[4.3, 4.2, 4.7, 4.3, 3.3, 2.8],
[5.3, numpy.nan, 5.7, 2.3, 3.8, numpy.nan]]
)
msk = numpy.array(
[[[True, True, True, False, True, True],
[True, True, True, True, True, True]],
[[True, True, True, True, True, False],
[True, True, True, True, True, True]],
[[True, True, True, False, False, True],
[True, True, True, True, True, True]]]
)
exp = numpy.array(
[[[3.],
[4.]],
[[4.],
[5.]],
[[1.],
[3.]]]
)
numpy.testing.assert_almost_equal(
exp,
evalhyd.evald(
obs, prd, ["NSE"], t_msk=msk, diagnostics=["completeness"]
)[1]
)
if __name__ == '__main__': if __name__ == '__main__':
test_loader = unittest.TestLoader() test_loader = unittest.TestLoader()
test_suite = unittest.TestSuite() test_suite = unittest.TestSuite()
......
...@@ -25,6 +25,11 @@ _all_metrics = ( ...@@ -25,6 +25,11 @@ _all_metrics = (
'CR', 'AW', 'AWN', 'AWI', 'WS', 'WSS' 'CR', 'AW', 'AWN', 'AWI', 'WS', 'WSS'
) )
# list all available deterministic diagnostics
_all_diags = (
'completeness'
)
class TestMetrics(unittest.TestCase): class TestMetrics(unittest.TestCase):
...@@ -408,6 +413,44 @@ class TestMultiDimensional(unittest.TestCase): ...@@ -408,6 +413,44 @@ class TestMultiDimensional(unittest.TestCase):
) )
class TestDiagnostics(unittest.TestCase):
def test_completeness(self):
obs = numpy.array(
[[4.7, 4.3, numpy.nan, 2.7, 4.1, 5.0]]
)
prd = numpy.array(
[[[[5.3, numpy.nan, 5.7, 2.3, 3.3, numpy.nan],
[4.3, numpy.nan, 4.7, 4.3, 3.4, numpy.nan],
[5.3, numpy.nan, 5.7, 2.3, 3.8, numpy.nan]],
[[numpy.nan, 4.2, 5.7, 2.3, 3.1, 4.1],
[numpy.nan, 4.2, 4.7, 4.3, 3.3, 2.8],
[numpy.nan, 5.2, 5.7, 2.3, 3.9, 3.5]]]]
)
msk = numpy.array(
[[[[True, True, True, False, True, True],
[True, True, True, True, True, True]],
[[True, True, True, True, True, False],
[True, True, True, True, True, True]]]]
)
exp = numpy.array(
[[[[2.],
[3.]],
[[3.],
[4.]]]]
)
numpy.testing.assert_almost_equal(
exp,
evalhyd.evalp(
obs, prd, ["QS"], t_msk=msk, diagnostics=["completeness"]
)[1]
)
if __name__ == '__main__': if __name__ == '__main__':
test_loader = unittest.TestLoader() test_loader = unittest.TestLoader()
test_suite = unittest.TestSuite() test_suite = unittest.TestSuite()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment