Ejemplo n.º 1
0
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
    )
Ejemplo n.º 2
0
Archivo: fc_app.py Proyecto: fangfy/fc
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)