mask_databounds

astroimtools.utils.mask_databounds(data, mask=None, lower_bound=None, upper_bound=None, value=None, mask_invalid=True)[source]

Create or update a mask by masking data values that are below a lower bound, above an upper bound, equal to particular value, or are invalid (e.g. np.nan or np.inf).

Parameters:
datandarray

The data array.

maskbool ndarray, optional

A boolean mask array with the same shape as data.

lower_boundfloat, optional

The value of the lower bound. Data values lower than lower_bound will be masked.

upper_boundfloat, optional

The value of the upper bound. Data values greater than upper_bound will be masked.

valuefloat, optional

A data value (e.g., 0.0) to mask.

mask_invalidbool, optional

If True (the default), then any unmasked invalid values (e.g. NaN, inf) will be masked.

Returns:
maskbool ndarray

The resulting boolean mask array with the same shape as data.

Examples

>>> from astroimtools import mask_databounds
>>> data = np.arange(7)
>>> print(data)
[0 1 2 3 4 5 6]
>>> mask_databounds(data, lower_bound=2, upper_bound=5, value=3)
array([ True,  True, False,  True, False, False,  True]...)