def snow_procedure_filter(observations, quality, dates, proc_params): """ Filter for initial stages of the snow procedure Clear or Water and Snow Args: observations: 2-d ndarray, spectral observations quality: 1-d ndarray quality information dates: 1-d ndarray ordinal observation dates thermal_idx: int value identifying the thermal band in the observations proc_params: dictionary of processing parameters Returns: 1-d boolean ndarray """ thermal_idx = proc_params.THERMAL_IDX clear = proc_params.QA_CLEAR water = proc_params.QA_WATER snow = proc_params.QA_SNOW mask = ((mask_value(quality, water) | mask_value(quality, clear)) & filter_thermal_celsius(observations[thermal_idx]) & filter_saturated(observations)) | mask_value(quality, snow) date_mask = mask_duplicate_values(dates[mask]) mask[mask] = date_mask return mask
def insufficient_clear_filter(observations, quality, dates, proc_params): """ Filter for the initial stages of the insufficient clear procedure. The main difference being there is an additional exclusion of observations where the green value is > the median green + 400. Args: observations: 2-d ndarray, spectral observations quality: 1-d ndarray quality information dates: 1-d ndarray ordinal observation dates proc_params: dictionary of processing parameters Returns: 1-d boolean ndarray """ green_idx = proc_params.GREEN_IDX filter_range = proc_params.MEDIAN_GREEN_FILTER standard_mask = standard_procedure_filter(observations, quality, dates, proc_params) green_mask = filter_median_green(observations[:, standard_mask][green_idx], filter_range) standard_mask[standard_mask] &= green_mask date_mask = mask_duplicate_values(dates[standard_mask]) standard_mask[standard_mask] = date_mask return standard_mask
def standard_procedure_filter(observations, quality, dates, proc_params): """ Filter for the initial stages of the standard procedure. Clear or Water and Unsaturated Temperatures are expected to be in celsius Args: observations: 2-d ndarray, spectral observations quality: 1-d ndarray observation quality information dates: 1-d ndarray ordinal observation dates proc_params: dictionary of processing parameters Returns: 1-d boolean ndarray """ thermal_idx = proc_params.THERMAL_IDX clear = proc_params.QA_CLEAR water = proc_params.QA_WATER mask = ((mask_value(quality, water) | mask_value(quality, clear)) & filter_thermal_celsius(observations[thermal_idx]) & filter_saturated(observations)) date_mask = mask_duplicate_values(dates[mask]) mask[mask] = date_mask return mask