Example #1
0
def reduceByTile(upstream, algorithm, version, queue, dag, task_id, delete_partial_results=False, to_tiff=False, params={}, **kwargs):
    reducers = {}
    trans = str.maketrans({"(": None, ")": None, " ": None, ",": "_"})
    for prev in upstream:
        key = "{}_{}".format(prev.lat, prev.lon)
        if key not in reducers:
            reducers[key] = CDColReduceOperator(
                task_id="{}_{}".format(task_id, key.translate(trans)),
                algorithm=algorithm,
                version=version,
                params=params,
                lat=prev.lat,
                lon=prev.lon,
                queue=queue,
                to_tiff=to_tiff,
                dag=dag, **kwargs)
        prev >> reducers[key]
        if delete_partial_results:
            delete = PythonOperator(task_id="del_"+prev.task_id,
                                provide_context=True,
                                python_callable=other_utils.delete_partial_result,
                                queue='util',
                                op_kwargs={'algorithm': prev.algorithm, 'version':prev.version, 'execID': prev.execID, 'task_id':prev.task_id},
                                dag=dag)
            delete << reducers[key]
    return reducers.values()
Example #2
0
def OneReduce(upstream, algorithm, version, queue, dag, task_id, delete_partial_results=False,params={}, to_tiff=False, trigger_rule=None, **kwargs):
    reduce = CDColReduceOperator(
        task_id="{}_{}_{}".format(task_id, "all", "all"),
        algorithm=algorithm,
        version=version,
        params=params,
        queue=queue,
        trigger_rule=trigger_rule,
        to_tiff=to_tiff,
        dag=dag, **kwargs)
    upstream >> reduce
    if delete_partial_results:
        tasks = []
        for prev in upstream:
            delete = PythonOperator(task_id="del_" + prev.task_id,
                                    provide_context=True,
                                    python_callable=other_utils.delete_partial_result,
                                    queue='util',
                                    op_kwargs={'algorithm': prev.algorithm, 'version': prev.version,
                                               'execID': prev.execID, 'task_id': prev.task_id},
                                    dag=dag)
            tasks.append(delete)
        tasks << reduce


    return [reduce]
Example #3
0
    queue='airflow_small',
    op_kwargs={
        'algorithms': {
            'wofs-wf': "1.0",
            'joiner-reduce-wofs': "1.0",
        },
        'execID': args['execID']
    },
    dag=dag)

workflow = time_series

if _params['mosaic']:
    mosaic = CDColReduceOperator(task_id="mosaic",
                                 algorithm="joiner",
                                 version="1.0",
                                 queue=_queues['joiner'],
                                 trigger_rule=TriggerRule.NONE_FAILED,
                                 dag=dag)
    # if _params['normalized']:
    #     normalization = CDColFromFileOperator(task_id="normalization", algorithm="normalization-wf", version="1.0", queue=_queues['normalization'])
    workflow = [workflow >> mosaic]

if _params['generate-geotiff']:
    workflow = dag_utils.BashMap(workflow,
                                 task_id="generate-geotiff",
                                 algorithm="generate-geotiff",
                                 version="1.0",
                                 queue=_queues['joiner'],
                                 dag=dag)

workflow >> delete_partial_results
Example #4
0
    algorithm=_steps['medianas']['algorithm'],
    version=_steps['medianas']['version'],
    task_id="medianas",
    queue=_steps['medianas']['queue'],
    dag=dag,
    delete_partial_results=_steps['medianas']['del_prev_result'],
    params=_steps['medianas']['params'])

mosaico = dag_utils.OneReduce(
    medianas,
    task_id="mosaico_medianas",
    algorithm=_steps['mosaico']['algorithm'],
    version=_steps['mosaico']['version'],
    queue=_steps['mosaico']['queue'],
    delete_partial_results=_steps['mosaico']['del_prev_result'],
    trigger_rule=TriggerRule.NONE_FAILED,
    dag=dag)

normalizacion = CDColReduceOperator(
    algorithm=_steps['normalizacion']['algorithm'],
    version=_steps['normalizacion']['version'],
    queue=_steps['normalizacion']['queue'],
    params=_steps['normalizacion']['params'],
    delete_partial_results=_steps['normalizacion']['del_prev_result'],
    dag=dag,
    task_id="normalizacion",
    to_tiff=True)

mosaico >> normalizacion
mascara_ls7_mosaic >> normalizacion
                                mosaico,
                                algorithm=_steps['entrenamiento']['algorithm'],
                                version=_steps['entrenamiento']['version'],
                                task_id="entrenamiento",
                                queue=_steps['entrenamiento']['queue'],
                                dag=dag,
                                delete_partial_results=_steps['entrenamiento']['del_prev_result'],
                                params=_steps['entrenamiento']['params']
)

clasificador = CDColReduceOperator(
                                task_id="clasificador_generico",
                                algorithm=_steps['clasificador']['algorithm'],
                                version=_steps['clasificador']['version'],
                                queue=_steps['clasificador']['queue'],
                                dag=dag,
                                lat=_params['lat'],
                                lon=_params['lon'],
                                params=_steps['clasificador']['params'],
                                delete_partial_results=_steps['clasificador']['del_prev_result'],

)

mascara_fnf = CDColReduceOperator(algorithm=_steps['mascara_fnf']['algorithm'],
                                       version=_steps['mascara_fnf']['version'],
                                       queue=_steps['mascara_fnf']['queue'],
                                       params=_steps['mascara_fnf']['params'],
                                       delete_partial_results=_steps['mascara_fnf']['del_prev_result'],
                                       dag=dag, task_id="clasificacion_final", to_tiff=True)


entrenamiento>>clasificador
									   )
	full_query = dag_utils.reduceByTile(masked0 + masked1, algorithm="joiner-reduce", version="1.0", queue='airflow_small', dag=dag,   taxprefix="joined", params={'bands': _params['bands']},)
else:
	full_query = masked0

medians = dag_utils.IdentityMap(
    full_query,
    algorithm="compuesto-temporal-medianas-wf",
    version="1.0",
    taxprefix="medianas_",
    queue='airflow_small',dag=dag,
    params={
        'normalized': _params['normalized'],
        'bands': _params['bands'],
        'minValid': _params['minValid'],
    })

if _params['mosaic']:
    task_id = 'mosaic'
    algorithm = 'joiner'
    queue = 'airflow_small'


else:
    task_id = 'print_context'
    algorithm = 'test-reduce'
    queue = 'airflow_small'


join = CDColReduceOperator(task_id=task_id,algorithm=algorithm,version='1.0', queue=queue, dag=dag)
map(lambda b: b >> join, medians)
        version=_steps['mosaico']['version'],
        queue=_steps['mosaico']['queue'],
        delete_partial_results=_steps['mosaico']['del_prev_result'],
        trigger_rule=TriggerRule.NONE_FAILED,
        dag=dag)
    workflow = mosaico

entrenamiento = dag_utils.IdentityMap(
    workflow,
    algorithm=_steps['entrenamiento']['algorithm'],
    version=_steps['entrenamiento']['version'],
    task_id="entrenamiento",
    queue=_steps['entrenamiento']['queue'],
    dag=dag,
    delete_partial_results=False,
    params=_steps['entrenamiento']['params'])

clasificador = CDColReduceOperator(
    task_id="clasificador_generico",
    algorithm=_steps['clasificador']['algorithm'],
    version=_steps['clasificador']['version'],
    queue=_steps['clasificador']['queue'],
    dag=dag,
    lat=_params['lat'],
    lon=_params['lon'],
    params=_steps['clasificador']['params'],
    to_tiff=True)

entrenamiento >> clasificador
workflow >> clasificador
Example #8
0
    task_id="medianas_2013")

medianas_2014 = CDColFromFileOperator(
    algorithm="compuesto-temporal-medianas-wf",
    version="1.0",
    lat=(10, 11),
    lon=(-75, -74),
    product="LS7_ETM_LEDAPS",
    time_ranges=("2014-01-01", "2014-12-31"),
    params={
        'bands': ["blue", "green", "red", "nir", "swir1", "swir2"],
        'minValid': 1,
    },
    queue='airflow_small',
    dag=dag,
    task_id="medianas_2014")

pca = CDColReduceOperator(
    algorithm="deteccion-cambios-pca-wf",
    version="1.0",
    queue='airflow_small',
    params={
        'bands': ["blue", "green", "red", "nir", "swir1", "swir2"],
    },
    dag=dag,
    task_id="pca",
)

consulta_2013 >> medianas_2013 >> pca
consulta_2014 >> medianas_2014 >> pca
	joins,
	algorithm="compuesto-temporal-medianas-wf",
	version="1.0",
	taxprefix="medianas_",
	dag=dag,
	params={
		'normalized': _params['normalized'],
		'bands': _params['bands'],
		'minValid': _params['minValid']
	},
)
ndvi=dag_utils.IdentityMap(medians, algorithm="ndvi-wf", version="1.0", dag=dag, taxprefix="ndvi")
bosque=dag_utils.IdentityMap(
	ndvi, 
	algorithm="bosque-no-bosque-wf", 
	version="1.0",
	params={
		'ndvi_threshold': _params['ndvi_threshold'],
		'vegetation_rate': _params['vegetation_rate'],
		'slice_size': _params['slice_size']
	},
	dag=dag, taxprefix="bosque",
)
mosaic=CDColReduceOperator(
	task_id='print_context',
	algorithm='joiner',
	version='1.0',
	dag=dag
)
map(lambda b: b>>mosaic,bosque)
Example #10
0
dag = DAG(
    dag_id='bosque-no-bosque-test-reduce', default_args=args,
    schedule_interval=None,
    dagrun_timeout=timedelta(minutes=15))
    
mediansComposites = queryMapByTile( lat=(2,4), 
        lon=(-69,-67),time_ranges=[("2013-01-01","2013-12-31")],
        algorithm="compuesto-temporal-de-medianas",version="1.0", 
        params={
            'normalized':True,
            'bands':["blue","green","red","nir", "swir1","swir2"], 
            'minValid':1,
        },
        dag=dag, taxprefix="med")

ndvis = IdentityMap(mediansComposites, algorithm="ndvi-wf",version="1.0",dag=dag, taxprefix="ndvi")
bosque = IdentityMap(ndvis,algorithm="bosque-no-bosque-wf",version="1.0",
        params={
            'ndvi_threshold':0.7,
            'vegetation_rate':0.3,
            'slice_size':3
        },
        dag=dag, taxprefix="bosque")

reduce= CDColReduceOperator(
    task_id='print_context',
    algorithm='test-reduce',
    version='1.0',
    dag=dag)

map(lambda b: b>>reduce,bosque)