From 9f8ae4ad2687b386bba8baad84e590ecbaa294ec Mon Sep 17 00:00:00 2001
From: "Mads M. Pedersen" <mmpe@dtu.dk>
Date: Mon, 5 Sep 2016 10:52:52 +0200
Subject: [PATCH] nan support in mean_deg

---
 wetb/utils/geometry.py            | 2 +-
 wetb/utils/tests/test_geometry.py | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/wetb/utils/geometry.py b/wetb/utils/geometry.py
index e82594ab..e7dd0638 100644
--- a/wetb/utils/geometry.py
+++ b/wetb/utils/geometry.py
@@ -35,7 +35,7 @@ def mean_deg(dir, axis=0):
     mean_deg : float
         Mean angle
     """
-    return deg(np.arctan2(np.mean(sind(dir[:]), axis), np.mean(cosd(dir[:]), axis)))
+    return deg(np.arctan2(np.nanmean(sind(dir[:]), axis), np.nanmean(cosd(dir[:]), axis)))
 
 def std_deg(dir):
     """Standard deviation of angles in degrees
diff --git a/wetb/utils/tests/test_geometry.py b/wetb/utils/tests/test_geometry.py
index e2fbf1f1..7a1d4a7a 100644
--- a/wetb/utils/tests/test_geometry.py
+++ b/wetb/utils/tests/test_geometry.py
@@ -57,6 +57,9 @@ class TestGeometry(unittest.TestCase):
         np.testing.assert_array_almost_equal(mean_deg(a, 1), [45, 0, -45])
         np.testing.assert_array_almost_equal(mean_deg(a.T, 0), [45, 0, -45])
 
+    def test_mean_deg_nan(self):
+        self.assertEqual(mean_deg(np.array([0., 90, np.nan])), 45)
+
 
     def test_std_deg(self):
         self.assertEqual(std_deg(np.array([0, 0, 0])), 0)
-- 
GitLab