from __future__ import absolute_import import sys # get is_CASA6 and is_python3 from casatasks.private.casa_transition import * if is_CASA6: from casatools import regionmanager, image from casatasks import casalog from .ialib import write_image_history _rg = regionmanager( ) else: from taskinit import * from ialib import write_image_history _rg = rgtool() image = iatool def imsubimage( imagename, outfile, box, region, chans, stokes, mask, dropdeg, overwrite, verbose, stretch, keepaxes ): casalog.origin('imsubimage') myia = image() myia.dohistory(False) outia = None tmp_csys = None try: if (not myia.open(imagename)): raise RuntimeError("Cannot create image analysis tool using " + imagename) if (len(outfile) == 0): raise ValueError("outfile must be specified.") xregion = region if (type(region) != type({})): tmp_csys = myia.coordsys() xregion = _rg.frombcs( csys=tmp_csys.torecord(), shape=myia.shape(), box=box, chans=chans, stokes=stokes, stokescontrol="a", region=region ) tmp_csys.done() outia = myia.subimage( outfile=outfile, region=xregion, mask=mask, dropdeg=dropdeg, overwrite=overwrite, list=verbose, stretch=stretch, keepaxes=keepaxes ) try: param_names = imsubimage.__code__.co_varnames[:imsubimage.__code__.co_argcount] if is_python3: vars = locals( ) param_vals = [vars[p] for p in param_names] else: param_vals = [eval(p) for p in param_names] write_image_history( outia, sys._getframe().f_code.co_name, param_names, param_vals, casalog ) except Exception as instance: casalog.post("*** Error \'%s\' updating HISTORY" % (instance), 'WARN') finally: myia.done() _rg.done() if outia: outia.done() if tmp_csys: tmp_csys.done()