Répertoire des targets
Dans Poppy, j’écris un fichier dans une task1 et je souhaite le relire dans une autre task2. Cela fonctionne (voir script ci-dessous) néanmoins je suis un peu surpris des répertoires par défaut des targets.
J’ai configuré un output_path dans config.json, répertoire où va bien écrire ma task1 via :
target = create_target(task, 'ins_cor_lightcurve', target_file='ins_cor_lightcurve.hdf5')
with h5py.File(target.filepath, "w") as h5_file:
Mais lors de la relecture par la task2 je dois écrire :
target = Target(target_file='output/ins_cor_lightcurve.hdf5')
with h5py.File(target.filepath, "r") as h5_file:
J’ai tenté d’ajouter un paramètre input_path dans le config.json mais il n’est pas reconnu dans le schema json. Ce serait bien de pouvoir indiquer le répertoire par défaut de lecture des targets, c.-à-d. dans mon cas le même que l’output.
'''
*******************************
*
* Instrumental correction
*
*******************************
'''
instrumentalCorrectionTask = Plugin.manager['plato.lc'].task('instrumentalCorrection')
@instrumentalCorrectionTask.as_task
def instrumentalCorrection(task):
"""
Do instrumental correction
"""
logger.info('In instrumentalCorrection task')
# # Get some data from pipeline.properties
#my_data = task.pipeline.properties.my_data
# Initialize connection with BD
# get the sqlalchemy session
session = task.pipeline.db.session
query = session.query(Products_l0)
query = query.filter_by(id_product=1)
product = query.one()
logger.info('Product : {0}/{1}'.format(product.path, product.filename))
task.pipeline.properties.my_result = my_result
# Write the output file
target = create_target(task, 'ins_cor_lightcurve', target_file='ins_cor_lightcurve.hdf5')
with h5py.File(target.filepath, "w") as h5_file:
h5_file.create_dataset("dset", (10,), dtype='i8')
h5_file.close()
'''
*******************************
*
* Background correction
*
*******************************
'''
backgroundCorrectionTask = Plugin.manager['plato.lc'].task('backgroundCorrection')
@backgroundCorrectionTask.as_task
def backgroundCorrection(task):
"""
Do background correction
"""
logger.info('In backgroundCorrection task')
# # Get some data from pipeline.properties
#my_data = task.pipeline.properties.my_data
#
# first get the class of the target
Target = task.input_target("ins_cor_lightcurve")
# create the instance with a path to the file
target = Target(target_file='output/ins_cor_lightcurve.hdf5')
with h5py.File(target.filepath, "r") as h5_file:
print(h5_file["/dset"][:])
task.pipeline.properties.my_result = my_result