Source code for improver.utilities.masking

# (C) Crown Copyright, Met Office. All rights reserved.
#
# This file is part of 'IMPROVER' and is released under the BSD 3-Clause license.
# See LICENSE in the root of the repository for full licensing details.
from typing import Union

import numpy as np
from iris.cube import Cube


[docs] def as_masked_array(data_like: Union[Cube, np.ndarray]) -> np.ma.MaskedArray: """Convert the data from a Cube or ndarray into a MaskedArray, masking invalid. Args: data_like: Input data as an Iris Cube or a numpy ndarray. Returns: Masked array with invalid values masked. """ if isinstance(data_like, Cube): data = data_like.data else: data = data_like if not isinstance(data, np.ma.MaskedArray): return np.ma.masked_invalid(data) return data