import os import sys import logging import Crasa.Crasa as crasa sys.path.append("/scratch/stimela") utils = __import__('utils') CONFIG = os.environ["CONFIG"] INPUT = os.environ["INPUT"] OUTPUT = os.environ["OUTPUT"] MSDIR = os.environ["MSDIR"] cab = utils.readJson(CONFIG) args = {} for param in cab['parameters']: name = param['name'] value = param['value'] if value is None: continue args[name] = value task = crasa.CasaTask(cab["binary"], crash_on_severe=True, **args) task.run()
# -*- coding: future_fstrings -*- import Crasa.Crasa as crasa from scabha import config, parameters_dict, prun import os print(f"Running CASA task '{config.binary}'") save_result = parameters_dict.pop("save_result", None) overwrite = parameters_dict.pop("overwrite", False) fluxtable = parameters_dict['fluxtable'] if overwrite: os.system(f"rm -fr {fluxtable}") task = crasa.CasaTask(config.binary, save_result=save_result, **parameters_dict) task.run()
with open(CONFIG, "r") as _std: cab = yaml.safe_load(_std) junk = cab["junk"] args = {} for param in cab['parameters']: name = param['name'] value = param['value'] if value is None: continue args[name] = value task = crasa.CasaTask(cab["binary"], **args) try: task.run() finally: for item in junk: for dest in [OUTPUT, MSDIR]: # these are the only writable volumes in the container items = glob.glob("{dest}/{item}".format(**locals())) for f in items: if os.path.isfile(f): os.remove(f) elif os.path.isdir(f): shutil.rmtree(f) # Leave other types gtab = args["caltable"]
# -*- coding: future_fstrings -*- import Crasa.Crasa as crasa from scabha import config, parameters_dict, prun print(f"Running CASA task '{config.binary}'") task = crasa.CasaTask(config.binary, **parameters_dict) task.run()
name = param['name'] value = param['value'] if value is None: continue if name in ['threshold', 'inpimage', 'output']: if name in ['threshold']: im_value = ' iif( IM0 >=%s, IM0, 0.0) ' % value im_name = 'expr' if name in ['output']: im_value = '%s_thresh' % value im_name = 'outfile' if name in ['inpimage']: im_value = value im_name = 'imagename' immath_args[im_name] = im_value if name in ['mode', 'inpimage', 'inpmask', 'output', 'overwrite']: makemask_args[name] = value if 'expr' in immath_args: task = crasa.CasaTask("immath", **immath_args) task.run() if 'inpmask' not in makemask_args: makemask_args['inpmask'] = immath_args['outfile'] task = crasa.CasaTask(cab["binary"], **makemask_args) task.run()
for param in cab['parameters']: name = param['name'] value = param['value'] if value is None: continue args[name] = value prefix = args['imagename'] port2fits = args.pop('port2fits', True) keep_casa_images = args.pop("keep_casa_images", False) sys.stdout.write(repr(args)) task = crasa.CasaTask(cab["binary"], **args) task.run() nterms = args.get("nterms", 1) images = ["flux", "model", "residual", "psf", "image"] STD_IMAGES = images[:4] convert = [] if port2fits: for image in images: img ="{:s}.{:s}".format(prefix, image) if image == 'flux': _images = [img] elif nterms>1: _images = ["%s.tt%d"%(img,d) for d in range(nterms)] if image=="image":
for param in cab['parameters']: name = param['name'] value = param['value'] if value is None: continue if name in unstack_params: unstack_args[name] = value else: immath_args[name] = value unstack = unstack_args.pop(cab["binary"], False) if not unstack: task = crasa.CasaTask("immath", **immath_args) task.run() else: images = immath_args['imagename'] for image in images: for i in range(unstack_args['nchans']): ext = image.split('.')[-1] chan_num = str(i) outfile = '{:s}-{:s}.{:s}'.format(immath_args['outfile'], chan_num, ext) run_immath_args = immath_args.copy() run_immath_args['imagename'] = image run_immath_args['outfile'] = outfile run_immath_args['chans'] = chan_num task = crasa.CasaTask(cab["binary"], **run_immath_args) task.run()
makemask_args = {} immath_args = {} for name, value in parameters_dic.items(): if value is None: continue if name in ['threshold', 'inpimage', 'output']: if name in ['threshold']: im_value = ' iif( IM0 >=%s, IM0, 0.0) ' % value im_name = 'expr' if name in ['output']: im_value = '%s_thresh' % value im_name = 'outfile' if name in ['inpimage']: im_value = value im_name = 'imagename' immath_args[im_name] = im_value if name in ['mode', 'inpimage', 'inpmask', 'output', 'overwrite']: makemask_args[name] = value if 'expr' in immath_args: task = crasa.CasaTask("immath", **immath_args) task.run() if 'inpmask' not in makemask_args: makemask_args['inpmask'] = immath_args['outfile'] task = crasa.CasaTask(config.binary, **makemask_args) task.run()