In [ ]:
import os
import pathlib
import logging
import tarfile

import yaml

import numina.util.context as ctx
from numina.user.helpers import create_datamanager, load_observations
from numina.user.baserun import run_reduce
from numina.tests.testcache import download_cache


import matplotlib.pyplot as plt

In [ ]:
logging.basicConfig(level=logging.DEBUG)

In [ ]:
basedir = pathlib.Path().resolve()

In [ ]:
tarball = 'MEGARA-cookbook-M71_MOS_LR-R-v1.tar.gz'
url = 'http://guaix.fis.ucm.es/~spr/megara_test/{}'.format(tarball)

downloaded = download_cache(url)

# Uncompress
with tarfile.open(downloaded.name, mode="r:gz") as tar:
    tar.extractall()

os.remove(downloaded.name)

In [ ]:
persist = False
    
if persist:
    reqfile = basedir / 'control_dump.yaml'
else:
    reqfile = basedir / 'control_v2.yaml'

datadir = basedir / 'data'

dm = create_datamanager(reqfile, basedir, datadir)

In [ ]:
obsresults = ["0_bias.yaml", "2_M71_modelmap.yaml",
         "4_M71_fiberflat.yaml", "1_M71_tracemap.yaml",
         "3_M71_wavecalib.yaml",
         "8_M71_reduce_MOS.yaml"]

sessions, loaded_obs = load_observations(obsresults, is_session=False)
dm.backend.add_obs(loaded_obs)

In [ ]:
obsid = "0_bias"
task1 = run_reduce(dm, obsid)

with open('control_dump.yaml', 'w') as fd:
    datam = dm.backend.dump_data()
    yaml.dump(datam, fd)

In [ ]:
obsid = "1_LR-R"
task1 = run_reduce(dm, obsid)

with open('control_dump.yaml', 'w') as fd:
    datam = dm.backend.dump_data()
    yaml.dump(datam, fd)

In [ ]:
obsid = "3_LR-R"
task3 = run_reduce(dm, obsid, requirements={"store_pdf_with_refined_fits": 0})

with open('control_dump.yaml', 'w') as fd:
    datam = dm.backend.dump_data()
    yaml.dump(datam, fd)

In [ ]:
obsid = "4_LR-R"
task4 = run_reduce(dm, obsid)

In [ ]:
obsid = "8_LR-R_M71"
task5 = run_reduce(dm, obsid)

In [ ]:
with open('control_dump.yaml', 'w') as fd:
    datam = dm.backend.dump_data()
    yaml.dump(datam, fd)

In [ ]: