From 9e7d8bc17434f14a099e6ed2b12b16d34efb7ed1 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Mon, 13 Mar 2017 13:59:42 +0000 Subject: [PATCH] Suggest *not* forcing floating result when there are no masked points. --- lib/iris/_lazy_data.py | 9 +++++---- .../tests/unit/lazy_data/test_array_masked_to_nans.py | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/iris/_lazy_data.py b/lib/iris/_lazy_data.py index a3f2b7a13c..1b3124a457 100644 --- a/lib/iris/_lazy_data.py +++ b/lib/iris/_lazy_data.py @@ -100,9 +100,10 @@ def array_masked_to_nans(array): if not ma.isMaskedArray(array): result = array else: - if array.dtype.kind == 'i': - array = array.astype(np.dtype('f8')) - mask = array.mask - array[mask] = np.nan + if ma.is_masked(array): + if array.dtype.kind == 'i': + array = array.astype(np.dtype('f8')) + mask = array.mask + array[mask] = np.nan result = array.data return result diff --git a/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py b/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py index e3c94bfb8c..b536b78c3a 100644 --- a/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py +++ b/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py @@ -89,12 +89,12 @@ def test_unmasked__integers(self): self.assertIs(result, unmasked_array) def test_no_mask__integers(self): - masked_array = ma.masked_array([1, 2], mask=ma.nomask) + masked_array = ma.masked_array([1, 2], dtype=np.int16, mask=ma.nomask) result = array_masked_to_nans(masked_array) self._common_checks(result) - self.assertEqual(result.dtype, np.dtype('f8')) + self.assertEqual(result.dtype, np.dtype('i2')) if __name__ == '__main__':