Ejemplo n.º 1
0
    def execute_cloud_mask(self, task):

        key = next(iter(task.keys()))
        value = next(iter(task.values()))

        data_key = value['array_input'][0]
        mask_key = value['array_mask']
        no_data_value = value['array_output']['no_data_value']

        array_desc = self.cache[value['array_input'][0]]

        data_array = next(iter(self.cache[data_key]['array_result'].values()))
        mask_array = next(iter(self.cache[mask_key]['array_result'].values()))

        pqa_mask = get_pqa_mask(mask_array.values)

        masked_array = xr.DataArray.where(data_array, pqa_mask)
        #masked_array = masked_array.fillna(no_data_value)

        self.cache[key] = {}

        self.cache[key]['array_result'] = {}
        self.cache[key]['array_result'][key] = masked_array
        self.cache[key]['array_indices'] = copy.deepcopy(array_desc['array_indices'])
        self.cache[key]['array_dimensions'] = copy.deepcopy(array_desc['array_dimensions'])
        self.cache[key]['array_output'] = copy.deepcopy(value['array_output'])
        self.cache[key]['crs'] = copy.deepcopy(array_desc['crs'])
Ejemplo n.º 2
0
    def execute_cloud_mask(self, task):

        key = next(iter(task.keys()))
        value = next(iter(task.values()))

        data_key = value['array_input'][0]
        mask_key = value['array_mask']
        no_data_value = value['array_output']['no_data_value']

        array_desc = self.cache[value['array_input'][0]]

        data_array = next(iter(self.cache[data_key]['array_result'].values()))
        mask_array = next(iter(self.cache[mask_key]['array_result'].values()))

        pqa_mask = get_pqa_mask(mask_array.values)

        masked_array = xr.DataArray.where(data_array, pqa_mask)
        #masked_array = masked_array.fillna(no_data_value)

        self.cache[key] = {}

        self.cache[key]['array_result'] = {}
        self.cache[key]['array_result'][key] = masked_array
        self.cache[key]['array_indices'] = copy.deepcopy(array_desc['array_indices'])
        self.cache[key]['array_dimensions'] = copy.deepcopy(array_desc['array_dimensions'])
        self.cache[key]['array_output'] = copy.deepcopy(value['array_output'])
        self.cache[key]['crs'] = copy.deepcopy(array_desc['crs'])
Ejemplo n.º 3
0
def test_get_pqa_mask():
    from datacube.analytics.utils.analytics_utils import get_pqa_mask
    import numpy as np
    x = np.arange(4 * 4 * 4, dtype=np.uint16).reshape((4, 4, 4))
    assert not get_pqa_mask(x).all()