Skip to content

remove_failed_values

Classes#

RemoveFailedValues #

Bases: QualityHandler


Replaces all failed values with the variable's _FillValue. If the variable does not have a _FillValue attribute then nan is used instead


Functions#

run #
run(
    dataset: xr.Dataset,
    variable_name: str,
    failures: NDArray[np.bool_],
) -> xr.Dataset
Source code in tsdat/qc/handlers/remove_failed_values.py
def run(
    self, dataset: xr.Dataset, variable_name: str, failures: NDArray[np.bool_]
) -> xr.Dataset:
    if failures.any():
        if variable_name in dataset.dims:
            mask = xr.DataArray(
                failures, coords={variable_name: dataset[variable_name]}
            )
            dataset = dataset.where(~mask, drop=True)
        else:
            fill_value = dataset[variable_name].attrs.get("_FillValue", None)
            dataset[variable_name] = dataset[variable_name].where(~failures, fill_value)  # type: ignore
    return dataset