def make_fc_tasks(index: Index, config: dict, query: dict, **kwargs): input_product = config['nbar_product'] output_product = config['fc_product'] workflow = GridWorkflow(index, output_product.grid_spec) tiles_in = workflow.list_tiles(product=input_product.name, **query) _LOG.info(f"{len(tiles_in)} {input_product.name} tiles in {repr(query)}") tiles_out = workflow.list_tiles(product=output_product.name, **query) _LOG.info(f"{len(tiles_out)} {output_product.name} tiles in {repr(query)}") return ( dict( nbar=workflow.update_tile_lineage(tile), tile_index=key, filename=get_filename(config, tile_index=key, sources=tile.sources) ) for key, tile in tiles_in.items() if key not in tiles_out )
def _make_fc_tasks(index: Index, config: dict, query: dict): """ Generate an iterable of 'tasks', matching the provided filter parameters. Tasks can be generated for: - all of time - 1 particular year - a range of years """ input_product = config['nbart_product'] output_product = config['fc_product'] workflow = GridWorkflow(index, output_product.grid_spec) tiles_in = workflow.list_tiles(product=input_product.name, **query) _LOG.info(f"{len(tiles_in)} {input_product.name} tiles in {repr(query)}") tiles_out = workflow.list_tiles(product=output_product.name, **query) _LOG.info(f"{len(tiles_out)} {output_product.name} tiles in {repr(query)}") return (dict(nbart=workflow.update_tile_lineage(tile), tile_index=key, filename=_get_filename(config, tile_index=key, sources=tile.sources)) for key, tile in tiles_in.items() if key not in tiles_out)