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 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
def count_total(quality, fill): """ Count non-fill data. Useful for determining ratio of clear:total pixels. Arguments: quality: quality band values. fill: value that represents fill Returns: int """ return np.sum(~mask_value(quality, fill))