Source code for thuner.detect.preprocess

"Preprocess data before detection."

__all__ = ["vertical_max", "cross_section"]


[docs] def vertical_max(grid, object_options): """Return the maximum over the specified altitude range.""" altitudes = object_options.detection.altitudes if len(altitudes) == 2: [start_alt, end_alt] = object_options.detection.altitudes flat_grid = grid.sel(altitude=slice(start_alt, end_alt)).max( dim="altitude", keep_attrs=True ) flat_grid.attrs["flatten_method"] = "vertical_max" flat_grid.attrs["start_altitude"] = start_alt flat_grid.attrs["end_altitude"] = end_alt flat_grid.attrs["altitude_units"] = "m" return flat_grid else: raise ValueError("altitudes must have 2 elements.")
[docs] def cross_section(grid, object_options): """Return the cross section at the specified altitude.""" altitude = object_options.detection.altitudes if len(altitude) == 1: altitude = object_options.detection.altitudes[0] flat_grid = grid.sel(altitude=altitude) flat_grid = flat_grid.reset_coords("altitude", drop=True) flat_grid.attrs["flatten_method"] = "cross_section" flat_grid.attrs["altitude"] = altitude flat_grid.attrs["altitude_units"] = "m" return flat_grid else: raise ValueError("altitudes must have 1 element.")