Example #1
0
    def go(self):

        # If we are applying a vector mask then calculate it (once as it is the same for all tiles)

        mask_vector = None

        if self.mask_vector_apply:
            mask_vector = get_mask_vector_for_cell(self.x, self.y, self.mask_vector_file, self.mask_vector_layer,
                                                   self.mask_vector_feature)

        for tile in self.get_tiles():

            pqa = (self.mask_pqa_apply and DatasetType.PQ25 in tile.datasets) and tile.datasets[DatasetType.PQ25] or None
            wofs = (self.mask_wofs_apply and DatasetType.WATER in tile.datasets) and tile.datasets[DatasetType.WATER] or None

            dataset = self.dataset_type in tile.datasets and tile.datasets[self.dataset_type] or None

            if not dataset:
                _log.info("No applicable [%s] dataset for [%s]", self.dataset_type.name, tile.end_datetime)
                continue

            if self.list_only:
                _log.info("Would retrieve dataset [%s]", tile.datasets[self.dataset_type].path)
                continue

            filename = os.path.join(self.output_directory,
                                    get_dataset_filename(dataset,
                                                         output_format=self.output_format,
                                                         mask_pqa_apply=self.mask_pqa_apply,
                                                         mask_wofs_apply=self.mask_wofs_apply,
                                                         mask_vector_apply=self.mask_vector_apply))

            retrieve_data(tile.x, tile.y, tile.end_datetime, dataset, self.bands, pqa, self.mask_pqa_mask,
                          wofs, self.mask_wofs_mask, filename, self.output_format, self.overwrite, mask=mask_vector)
Example #2
0
    def output(self):

        dataset = self.tile.datasets[self.dataset_type]

        filename = get_dataset_filename(dataset,
                                        mask_pqa_apply=self.mask_pqa_apply,
                                        mask_wofs_apply=self.mask_wofs_apply)

        filename = os.path.join(self.output_directory, filename)

        return luigi.LocalTarget(filename)
Example #3
0
    def go(self):

        # If we are applying a vector mask then calculate it (once as it is the same for all tiles)

        mask = None

        if self.mask_vector_apply:
            mask = get_mask_vector_for_cell(self.x, self.y,
                                            self.mask_vector_file, self.mask_vector_layer, self.mask_vector_feature)

        for tile in self.get_tiles():

            if self.list_only:
                _log.info("Would retrieve datasets [%s]", "\n".join([tile.datasets[t].path for t in
                                                                     intersection(self.dataset_types,
                                                                                  [d for d in tile.datasets])]))
                continue

            pqa = (self.mask_pqa_apply and DatasetType.PQ25 in tile.datasets) and tile.datasets[DatasetType.PQ25] or None
            wofs = (self.mask_wofs_apply and DatasetType.WATER in tile.datasets) and tile.datasets[DatasetType.WATER] or None

            for dataset_type in self.dataset_types:

                if dataset_type not in tile.datasets:
                    _log.debug("No [%s] dataset present for [%s] - skipping", dataset_type.name, tile.end_datetime)
                    continue

                dataset = tile.datasets[dataset_type]

                filename = os.path.join(self.output_directory,
                                        get_dataset_filename(dataset,
                                                             output_format=self.output_format,
                                                             mask_pqa_apply=self.mask_pqa_apply,
                                                             mask_wofs_apply=self.mask_wofs_apply,
                                                             mask_vector_apply=self.mask_vector_apply))

                retrieve_data(tile.x, tile.y, tile.end_datetime, dataset, pqa, self.mask_pqa_mask,
                              wofs, self.mask_wofs_mask, filename, self.output_format, self.overwrite, mask=mask)