Build: #15 was successful

Job: Tag Release Branch was successful

Build log

The build generated 4,057 lines of output.The output is too long and has been truncated to the last 1,000 lines. Download or view full build log.

07-Aug-2020 09:08:54 +                        pl.text(0.05,0.95,"bmaj=%7.1e\nbmin=%7.1e" % (beam['major']['value'],
07-Aug-2020 09:08:54 +                                                                      beam['minor']['value']),
07-Aug-2020 09:08:54 +                                transform = ax.transAxes,bbox=dict(facecolor='white', alpha=0.7),size="x-small",verticalalignment="top")
07-Aug-2020 09:08:54 +                    except KeyError:
07-Aug-2020 09:08:54 +                        # this shouldn't hit when simutil.imtclean sets restoringbeam='common'
07-Aug-2020 09:08:54 +                        msg("using center channel beam values for plot configuration",
07-Aug-2020 09:08:54 +                            origin='simanalyze', priority='info')
07-Aug-2020 09:08:54 +                        chan_index = int(beam['nChannels']/2)
07-Aug-2020 09:08:54 +                        pol_index = 0
07-Aug-2020 09:08:54 +                        b = qa.convert(beam['beams']['*'+str(chan_index)]['*'+str(pol_index)]['major'],'arcsec')['value']
07-Aug-2020 09:08:54 +                        pl.xlim([-3*b,3*b])
07-Aug-2020 09:08:54 +                        pl.ylim([-3*b,3*b])
07-Aug-2020 09:08:54 +                        ax = pl.gca()
07-Aug-2020 09:08:54 +                        pl.text(0.05, 0.95, "bmaj=%7.1e\nbmin=%7.1e" % (beam['beams']['*'+str(chan_index)]['*'+str(pol_index)]['major']['value'],
07-Aug-2020 09:08:54 +                                                                        beam['beams']['*'+str(chan_index)]['*'+str(pol_index)]['minor']['value']),
07-Aug-2020 09:08:54 +                                transform = ax.transAxes,bbox=dict(facecolor='white', alpha=0.7),size="x-small",verticalalignment="top")
07-Aug-2020 09:08:54                      ia.close()
07-Aug-2020 09:08:54                      myutil.nextfig()
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 @@ -983,7 +1056,20 @@ def simanalyze(
07-Aug-2020 09:08:54              #    str(sim_rms*bmarea)+" Jy/bm",origin="analysis")
07-Aug-2020 09:08:54              #msg('Simulation max: '+str(sim_max)+" Jy/pix = "+
07-Aug-2020 09:08:54              #    str(sim_max*bmarea)+" Jy/bm",origin="analysis")
07-Aug-2020 09:08:54 -            msg('Beam bmaj: '+str(beam['major']['value'])+' bmin: '+str(beam['minor']['value'])+' bpa: '+str(beam['positionangle']['value']),origin="analysis")
07-Aug-2020 09:08:54 +            try:
07-Aug-2020 09:08:54 +                msg('Beam bmaj: '+str(beam['major']['value'])+
07-Aug-2020 09:08:54 +                    ' bmin: '+str(beam['minor']['value'])+
07-Aug-2020 09:08:54 +                    ' bpa: '+str(beam['positionangle']['value']),
07-Aug-2020 09:08:54 +                    origin="analysis")
07-Aug-2020 09:08:54 +            except KeyError: # per-plane beams...
07-Aug-2020 09:08:54 +                pol_index = 0
07-Aug-2020 09:08:54 +                for chan_index in range(0, beam['nChannels']):
07-Aug-2020 09:08:54 +                    msg('polarization '+str(pol_index) + ' channel '+str(chan_index) + ' Beam'
07-Aug-2020 09:08:54 +                        ' bmaj: '+str(beam['beams']['*'+str(chan_index)]['*'+str(pol_index)]['major']['value'])+
07-Aug-2020 09:08:54 +                        ' bmin: '+str(beam['beams']['*'+str(chan_index)]['*'+str(pol_index)]['minor']['value'])+
07-Aug-2020 09:08:54 +                        ' bpa: '+str(beam['beams']['*'+str(chan_index)]['*'+str(pol_index)]['positionangle']['value']),
07-Aug-2020 09:08:54 +                        origin="analysis")
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 diff --git a/casa5/gcwrap/python/scripts/tests/test_fringefit.py b/casa5/gcwrap/python/scripts/tests/test_fringefit.py
07-Aug-2020 09:08:54 index d09879a..04e5df2 100644
07-Aug-2020 09:08:54 --- a/casa5/gcwrap/python/scripts/tests/test_fringefit.py
07-Aug-2020 09:08:54 +++ b/casa5/gcwrap/python/scripts/tests/test_fringefit.py
07-Aug-2020 09:08:54 @@ -106,7 +106,7 @@ class Fringefit_single_tests(unittest.TestCase):
07-Aug-2020 09:08:54          refant = 0
07-Aug-2020 09:08:54          refant_s = str(refant)
07-Aug-2020 09:08:54          for pactive in itertools.product(*3*[[False, True]]):
07-Aug-2020 09:08:54 -            fringefit(vis=self.msfile, paramactive=pactive, caltable=sbdcal, refant=refant_s)
07-Aug-2020 09:08:54 +            fringefit(vis=self.msfile, paramactive=list(pactive), caltable=sbdcal, refant=refant_s)
07-Aug-2020 09:08:54              tblocal.open(sbdcal)
07-Aug-2020 09:08:54              fparam = tblocal.getcol('FPARAM')
07-Aug-2020 09:08:54              flag = tblocal.getcol('FLAG')
07-Aug-2020 09:08:54 diff --git a/casa5/gcwrap/python/scripts/tests/test_req_task_simanalyze.py b/casa5/gcwrap/python/scripts/tests/test_req_task_simanalyze.py
07-Aug-2020 09:08:54 index 5ac711d..36bcbac 100644
07-Aug-2020 09:08:54 --- a/casa5/gcwrap/python/scripts/tests/test_req_task_simanalyze.py
07-Aug-2020 09:08:54 +++ b/casa5/gcwrap/python/scripts/tests/test_req_task_simanalyze.py
07-Aug-2020 09:08:54 @@ -35,8 +35,11 @@ except ImportError:
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 if is_CASA6:
07-Aug-2020 09:08:54      import casatools # not a good idea inside the casashell...perhaps os.path.exists(casatools.__file__) instead
07-Aug-2020 09:08:54 -    from casatasks import tclean, simobserve, simanalyze
07-Aug-2020 09:08:54 -    from casatasks import casalog
07-Aug-2020 09:08:54 +    ia = casatools.image()
07-Aug-2020 09:08:54 +    cs = casatools.coordsys()
07-Aug-2020 09:08:54 +    cl = casatools.componentlist()
07-Aug-2020 09:08:54 +    qa = casatools.quanta()
07-Aug-2020 09:08:54 +    from casatasks import tclean, simobserve, simanalyze, casalog
07-Aug-2020 09:08:54 else:
07-Aug-2020 09:08:54      from __main__ import default
07-Aug-2020 09:08:54      from tasks import *
07-Aug-2020 09:08:54 @@ -45,30 +48,35 @@ else:
07-Aug-2020 09:08:54 # DATA #
07-Aug-2020 09:08:54 if is_CASA6:
07-Aug-2020 09:08:54      dataroot = casatools.ctsys.resolve()
07-Aug-2020 09:08:54 -    configpath_int  = casatools.ctsys.resolve((os.path.join(dataroot, 'alma/simmos/vla.a.cfg')))
07-Aug-2020 09:08:54 -    imagepath_int   = casatools.ctsys.resolve((os.path.join(dataroot, 'nrao/VLA/CalModels/3C286_Q.im/')))
07-Aug-2020 09:08:54 -    configpath_sd   = casatools.ctsys.resolve((os.path.join(dataroot, 'alma/simmos/aca.tp.cfg')))
07-Aug-2020 09:08:54 -    mspath_sd       = casatools.ctsys.resolve((os.path.join(dataroot, 'regression/unittest/clean/refimager/refim_twopoints_twochan.ms')))
07-Aug-2020 09:08:54 +    configpath_int      = casatools.ctsys.resolve((os.path.join(dataroot, 'alma/simmos/vla.a.cfg')))
07-Aug-2020 09:08:54 +    imagepath_int       = casatools.ctsys.resolve((os.path.join(dataroot, 'nrao/VLA/CalModels/3C286_Q.im/')))
07-Aug-2020 09:08:54 +    configpath_both_int = casatools.ctsys.resolve((os.path.join(dataroot, 'alma/simmos/aca.cycle7.cfg')))
07-Aug-2020 09:08:54 +    configpath_sd       = casatools.ctsys.resolve((os.path.join(dataroot, 'alma/simmos/aca.tp.cfg')))
07-Aug-2020 09:08:54 +    mspath_sd           = casatools.ctsys.resolve((os.path.join(dataroot, 'regression/unittest/clean/refimager/refim_twopoints_twochan.ms')))
07-Aug-2020 09:08:54 else:
07-Aug-2020 09:08:54      dataroot = os.environ.get('CASAPATH').split()[0]
07-Aug-2020 09:08:54 -    configpath_int  = os.path.join(dataroot, 'data/alma/simmos/vla.a.cfg')
07-Aug-2020 09:08:54 -    imagepath_int   = os.path.join(dataroot, 'data/nrao/VLA/CalModels/3C286_Q.im/')
07-Aug-2020 09:08:54 -    configpath_sd   = os.path.join(dataroot, 'data/alma/simmos/aca.tp.cfg')
07-Aug-2020 09:08:54 -    mspath_sd       = os.path.join(dataroot, 'data/regression/unittest/clean/refimager/refim_twopoints_twochan.ms')
07-Aug-2020 09:08:54 +    configpath_int      = os.path.join(dataroot, 'data/alma/simmos/vla.a.cfg')
07-Aug-2020 09:08:54 +    imagepath_int       = os.path.join(dataroot, 'data/nrao/VLA/CalModels/3C286_Q.im/')
07-Aug-2020 09:08:54 +    configpath_both_int = os.path.join(dataroot, 'data/alma/simmos/aca.cycle7.cfg')
07-Aug-2020 09:08:54 +    configpath_sd       = os.path.join(dataroot, 'data/alma/simmos/aca.tp.cfg')
07-Aug-2020 09:08:54 +    mspath_sd           = os.path.join(dataroot, 'data/regression/unittest/clean/refimager/refim_twopoints_twochan.ms')
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 logpath = casalog.logfile()
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 int_project = 'sim_interferometric'
07-Aug-2020 09:08:54 sd_project = 'sim_single_dish'
07-Aug-2020 09:08:54 imagepath_sd = 'sd_model.image'
07-Aug-2020 09:08:54 -#both_project = 'sim_both'
07-Aug-2020 09:08:54 +both_project = 'sim_both'
07-Aug-2020 09:08:54 +both_component_list = 'J0319+4130.cl'
07-Aug-2020 09:08:54 +both_model_image_int = both_component_list[:-3]+'.im'
07-Aug-2020 09:08:54 +both_model_image_sd = both_component_list[:-3]+'_rebin.im'
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 ####    interferometric    ####
07-Aug-2020 09:08:54 class simanalyze_main_usage_modes_test_int(unittest.TestCase):
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @classmethod
07-Aug-2020 09:08:54 -    def setUpClass(cls):
07-Aug-2020 09:08:54 +    def setUp(self):
07-Aug-2020 09:08:54          if not is_CASA6: # needs similar branch condition for casalith
07-Aug-2020 09:08:54 +            default(simanalyze)
07-Aug-2020 09:08:54              default(simobserve)
07-Aug-2020 09:08:54              default(tclean)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 @@ -77,15 +85,8 @@ class simanalyze_main_usage_modes_test_int(unittest.TestCase):
07-Aug-2020 09:08:54                     refdate='2020/02/13', hourangle='transit', totaltime='100s', antennalist=configpath_int,
07-Aug-2020 09:08:54                     outframe='LSRK', thermalnoise='', leakage=0.0, graphics='none',verbose=False, overwrite=False)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @classmethod
07-Aug-2020 09:08:54 -    def tearDownClass(cls):
07-Aug-2020 09:08:54 -        os.system("rm -rf {}".format(int_project))
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    def setUp(self):
07-Aug-2020 09:08:54 -        if not is_CASA6: # needs similar branch condition for casalith
07-Aug-2020 09:08:54 -            default(simanalyze)
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54      def tearDown(self):
07-Aug-2020 09:08:54 +        os.system("rm -rf {}".format(int_project))
07-Aug-2020 09:08:54          os.system("rm -rf *.last")
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54      def test_imaging_False_analysis_False(self):
07-Aug-2020 09:08:54 @@ -104,7 +105,6 @@ class simanalyze_main_usage_modes_test_int(unittest.TestCase):
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54          self.assertTrue(val)
07-Aug-2020 09:08:54          
07-Aug-2020 09:08:54 -    @unittest.skip("ModuleNotFoundError: No module named clean")
07-Aug-2020 09:08:54      def test_imaging_True_interferometric_analysis_False(self):
07-Aug-2020 09:08:54          '''test_imaging_True_interferometric_analysis_False:
07-Aug-2020 09:08:54          ----------------------------------------------------
07-Aug-2020 09:08:54 @@ -122,7 +122,6 @@ class simanalyze_main_usage_modes_test_int(unittest.TestCase):
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54          self.assertTrue(os.path.isdir(visname_int[:-2]+'image'))
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @unittest.skipUnless(os.path.isdir(int_project+'/'+int_project+'.'+configpath_int.split('/')[-1][:-3]+'image'),"Analysis-only mode presumes the existence of some image data, such as that generated by test_imaging_True_interferometric*")
07-Aug-2020 09:08:54      def test_imaging_False_interferometric_analysis_True_showfidelity_True(self):
07-Aug-2020 09:08:54          '''test_imaging_False_interferometric_analysis_True_showfidelity_True:
07-Aug-2020 09:08:54          ----------------------------------------------------------------------
07-Aug-2020 09:08:54 @@ -134,6 +133,13 @@ class simanalyze_main_usage_modes_test_int(unittest.TestCase):
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54          visname_int = str(int_project +'/'+ int_project + '.' + configpath_int.split('/')[-1][:-3] +'ms')
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +        # this is not the subject of this test
07-Aug-2020 09:08:54 +        simanalyze(project=int_project, image=True, vis=visname_int, modelimage='',imsize = [],
07-Aug-2020 09:08:54 +                   imdirection ='',cell = '',interactive = False, niter = 0,threshold = '0.1mJy',
07-Aug-2020 09:08:54 +                   weighting = 'natural',mask = [],outertaper = [],pbcor = False,stokes = 'I',
07-Aug-2020 09:08:54 +                   featherimage = '',analyze=False, graphics='none', verbose=False, overwrite=True, dryrun=False, logfile=logpath)
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +        # this is the subject of this test
07-Aug-2020 09:08:54          simanalyze(project=int_project, image=False, analyze=True, showfidelity=True,graphics='none',
07-Aug-2020 09:08:54                     verbose=False, overwrite=True, dryrun=False, logfile=logpath)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 @@ -143,12 +149,12 @@ class simanalyze_main_usage_modes_test_int(unittest.TestCase):
07-Aug-2020 09:08:54 ####    Single Dish     ####
07-Aug-2020 09:08:54 class simanalyze_main_usage_modes_test_sd(unittest.TestCase):
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @classmethod
07-Aug-2020 09:08:54 -    def setUpClass(cls):
07-Aug-2020 09:08:54 -        '''Called before tests in this class of test cases are run. Executes simobserve to create expected directory structure. Minimally, f"{project}/{project}.{suffix}" where suffix in ['skymodel','newmodel','compskymodel'].'''
07-Aug-2020 09:08:54 +    def setUp(self):
07-Aug-2020 09:08:54 +        """Executes simobserve to create expected directory structure. Minimally, f"{project}/{project}.{suffix}" where suffix in ['skymodel','newmodel','compskymodel']."""
07-Aug-2020 09:08:54          if not is_CASA6: # needs similar branch condition for casalith
07-Aug-2020 09:08:54              default(simobserve)
07-Aug-2020 09:08:54              default(tclean)
07-Aug-2020 09:08:54 +            default(simanalyze)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54          # create reference image > 2.5*PB to use for SD sim
07-Aug-2020 09:08:54          tclean(vis=mspath_sd, imagename=imagepath_sd.split('.')[0],
07-Aug-2020 09:08:54 @@ -163,16 +169,9 @@ class simanalyze_main_usage_modes_test_sd(unittest.TestCase):
07-Aug-2020 09:08:54                     antennalist=configpath_sd, sdantlist=configpath_sd, sdant=0,
07-Aug-2020 09:08:54                     outframe='LSRK', thermalnoise='', leakage=0.0, graphics='none',verbose=False, overwrite=False)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @classmethod
07-Aug-2020 09:08:54 -    def tearDownClass(cls):
07-Aug-2020 09:08:54 +    def tearDown(self):
07-Aug-2020 09:08:54          os.system("rm -rf {}*".format(imagepath_sd[:-5]))
07-Aug-2020 09:08:54          os.system("rm -rf {}".format(sd_project))
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    def setUp(self):
07-Aug-2020 09:08:54 -        if not is_CASA6: # needs similar branch condition for casalith
07-Aug-2020 09:08:54 -            default(simanalyze)
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    def tearDown(self):
07-Aug-2020 09:08:54          os.system("rm -rf *.last")
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54      def test_imaging_True_single_dish_analysis_False(self):
07-Aug-2020 09:08:54 @@ -200,7 +199,6 @@ class simanalyze_main_usage_modes_test_sd(unittest.TestCase):
07-Aug-2020 09:08:54          b = True # Expected value
07-Aug-2020 09:08:54          self.assertEqual(a,b)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @unittest.skipUnless(os.path.isdir(sd_project+'/'+sd_project+'.sd.image'), "Analysis-only mode presumes the existence of some image data, such as that generated by test_imaging_True_single_dish*")
07-Aug-2020 09:08:54      def test_imaging_False_single_dish_analysis_True_showfidelity_True(self):
07-Aug-2020 09:08:54          '''test_imaging_False_single_dish_analysis_True_showfidelity_True:
07-Aug-2020 09:08:54          ------------------------------------------------------------------
07-Aug-2020 09:08:54 @@ -210,6 +208,15 @@ class simanalyze_main_usage_modes_test_sd(unittest.TestCase):
07-Aug-2020 09:08:54          The showfidelity parameter displays the fidelity image
07-Aug-2020 09:08:54          '''
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +        visname_sd = str(sd_project +'/'+ sd_project + '.' + configpath_sd.split('/')[-1][:-3] +'sd.ms')
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +        # this is not the subject of this test
07-Aug-2020 09:08:54 +        simanalyze(project=sd_project, image=True, vis=visname_sd, modelimage='', imsize = [],
07-Aug-2020 09:08:54 +                   imdirection ='',cell = '',interactive = False, niter = 0,threshold = '0.01mJy',
07-Aug-2020 09:08:54 +                   weighting = 'natural',mask = [],outertaper = [],pbcor = False,stokes = 'I',
07-Aug-2020 09:08:54 +                   featherimage = '',analyze=False, graphics='none', verbose=False, overwrite=True, dryrun=False, logfile=logpath)
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +        # this is the subject of this test
07-Aug-2020 09:08:54          simanalyze(project=sd_project, image=False, imagename='', analyze=True, showfidelity=True,
07-Aug-2020 09:08:54                     graphics='none', verbose=False, overwrite=True, dryrun=False, logfile=logpath)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 @@ -219,72 +226,110 @@ class simanalyze_main_usage_modes_test_sd(unittest.TestCase):
07-Aug-2020 09:08:54 ####    both Interferometric and Single Dish    ####
07-Aug-2020 09:08:54 class simanalyze_main_usage_modes_test_both(unittest.TestCase):
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @classmethod
07-Aug-2020 09:08:54 -    def setUpClass(cls): # TODO
07-Aug-2020 09:08:54 -        '''Called before tests in this class of test cases are run. Executes simobserve to create expected directory structure. Minimally, f"{project}/{project}.{suffix}" where suffix in ['skymodel','newmodel','compskymodel'].'''
07-Aug-2020 09:08:54 -        if not is_CASA6: # needs similar branch condition for tests to run in casalith
07-Aug-2020 09:08:54 -            default(simobserve)
07-Aug-2020 09:08:54 -            default(tclean)
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -        ## create images to serve as skymodel inputs to reference simulations?
07-Aug-2020 09:08:54 -        # gaussian = np.random.multivariate_normal(mean=[0,0], cov=[[1, 0], [0, 100]], size=[128,128])
07-Aug-2020 09:08:54 -        # gaus_img = gaussian[:, :, np.newaxis, :] # add degenerate axis to represent stokes
07-Aug-2020 09:08:54 -        # ia.newimagefromarray('demo.im', gaus_imag, csys, linear=False, overwrite=True, log=True
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -        # # create reference simulation with both int and sd
07-Aug-2020 09:08:54 -        # simobserve(project=both_project,
07-Aug-2020 09:08:54 -        #            skymodel=imagepath_sd,
07-Aug-2020 09:08:54 -        #            complist='',
07-Aug-2020 09:08:54 -        #            setpointings=True,
07-Aug-2020 09:08:54 -        #            direction=[],
07-Aug-2020 09:08:54 -        #            mapsize=['1deg'],
07-Aug-2020 09:08:54 -        #            maptype='square',
07-Aug-2020 09:08:54 -        #            pointingspacing='',
07-Aug-2020 09:08:54 -        #            caldirection='',
07-Aug-2020 09:08:54 -        #            calflux='1Jy',
07-Aug-2020 09:08:54 -        #            obsmode='sd',
07-Aug-2020 09:08:54 -        #            refdate='2020/02/13',
07-Aug-2020 09:08:54 -        #            hourangle='transit',
07-Aug-2020 09:08:54 -        #            totaltime='100s',
07-Aug-2020 09:08:54 -        #            antennalist=configpath_int,
07-Aug-2020 09:08:54 -        #            sdantlist=configpath_sd,
07-Aug-2020 09:08:54 -        #            sdant=0,
07-Aug-2020 09:08:54 -        #            outframe='LSRK',
07-Aug-2020 09:08:54 -        #            thermalnoise='',
07-Aug-2020 09:08:54 -        #            leakage=0.0,
07-Aug-2020 09:08:54 -        #            graphics='none',
07-Aug-2020 09:08:54 -        #            verbose=False,
07-Aug-2020 09:08:54 -        #            overwrite=False)
07-Aug-2020 09:08:54 -        # simobserve(project=both_project,
07-Aug-2020 09:08:54 -        #            skymodel=imagepath_sd,
07-Aug-2020 09:08:54 -        #            complist='',
07-Aug-2020 09:08:54 -        #            setpointings=True,
07-Aug-2020 09:08:54 -        #            direction=[],
07-Aug-2020 09:08:54 -        #            mapsize=['1deg'],
07-Aug-2020 09:08:54 -        #            maptype='square',
07-Aug-2020 09:08:54 -        #            pointingspacing='',
07-Aug-2020 09:08:54 -        #            caldirection='',
07-Aug-2020 09:08:54 -        #            calflux='1Jy',
07-Aug-2020 09:08:54 -        #            obsmode='int',
07-Aug-2020 09:08:54 -        #            refdate='2020/02/13',
07-Aug-2020 09:08:54 -        #            hourangle='transit',
07-Aug-2020 09:08:54 -        #            totaltime='100s',
07-Aug-2020 09:08:54 -        #            antennalist=configpath_int,
07-Aug-2020 09:08:54 -        #            sdantlist=configpath_sd,
07-Aug-2020 09:08:54 -        #            sdant=0,
07-Aug-2020 09:08:54 -        #            outframe='LSRK',
07-Aug-2020 09:08:54 -        #            thermalnoise='',
07-Aug-2020 09:08:54 -        #            leakage=0.0,
07-Aug-2020 09:08:54 -        #            graphics='none',
07-Aug-2020 09:08:54 -        #            verbose=False,
07-Aug-2020 09:08:54 -        #            overwrite=False)
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54      def setUp(self):
07-Aug-2020 09:08:54 +        """Executes simobserve to create expected directory structure. Minimally, f"{project}/{project}.{suffix}" where suffix in ['skymodel','newmodel','compskymodel']."""
07-Aug-2020 09:08:54          if not is_CASA6:
07-Aug-2020 09:08:54              default(simobserve)
07-Aug-2020 09:08:54              default(tclean)
07-Aug-2020 09:08:54 +            default(simanalyze)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    @unittest.skip("Still need data to generate reference simulation for single dish + interferometry case")
07-Aug-2020 09:08:54 +        ## create image to serve as skymodel inputs to reference simulations
07-Aug-2020 09:08:54 +        # build a point source component and convert to image
07-Aug-2020 09:08:54 +        cl.done()
07-Aug-2020 09:08:54 +        # J0319+4130 at band 3
07-Aug-2020 09:08:54 +        cl.addcomponent(dir="J2000 03h19m48.160s +41d30m42.11s",
07-Aug-2020 09:08:54 +                        flux=14.38, fluxunit='Jy', freq='115.271GHz',
07-Aug-2020 09:08:54 +                        shape="point", spectrumtype="spectral index", index=-1.0)
07-Aug-2020 09:08:54 +        cl.rename(both_component_list)
07-Aug-2020 09:08:54 +   
07-Aug-2020 09:08:54 +        ia.fromshape(both_model_image_int,[256,256,1,128],overwrite=True)
07-Aug-2020 09:08:54 +        cs=ia.coordsys()
07-Aug-2020 09:08:54 +        cs.setunits(['rad','rad','','Hz'])
07-Aug-2020 09:08:54 +        cell_rad=qa.convert(qa.quantity("0.1arcsec"),"rad")['value']
07-Aug-2020 09:08:54 +        cs.setincrement([-cell_rad,cell_rad],'direction')
07-Aug-2020 09:08:54 +        cs.setreferencevalue([qa.convert("03h19m48.160s",'rad')['value'],
07-Aug-2020 09:08:54 +                              qa.convert("41d30m42.11s",'rad')['value']],type="direction")
07-Aug-2020 09:08:54 +        cs.setreferencevalue("115.271GHz",'spectral')
07-Aug-2020 09:08:54 +        cs.setincrement('15.1368MHz','spectral')
07-Aug-2020 09:08:54 +        ia.setcoordsys(cs.torecord())
07-Aug-2020 09:08:54 +        ia.setbrightnessunit("Jy/pixel")
07-Aug-2020 09:08:54 +        ia.modify(cl.torecord(),subtract=False)
07-Aug-2020 09:08:54 +        ia.done()
07-Aug-2020 09:08:54 +        cs.done()
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +        # make another one with larger pixel size and FOV
07-Aug-2020 09:08:54 +        ia.fromshape(both_model_image_sd,[256,256,1,128],overwrite=True)
07-Aug-2020 09:08:54 +        cs=ia.coordsys()
07-Aug-2020 09:08:54 +        cs.setunits(['rad','rad','','Hz'])
07-Aug-2020 09:08:54 +        cell_rad=qa.convert(qa.quantity("1.0arcsec"),"rad")['value']
07-Aug-2020 09:08:54 +        cs.setincrement([-cell_rad,cell_rad],'direction')
07-Aug-2020 09:08:54 +        cs.setreferencevalue([qa.convert("03h19m48.160s",'rad')['value'],
07-Aug-2020 09:08:54 +                              qa.convert("41d30m42.11s",'rad')['value']],type="direction")
07-Aug-2020 09:08:54 +        cs.setreferencevalue("115.271GHz",'spectral')
07-Aug-2020 09:08:54 +        cs.setincrement('15.1368MHz','spectral')
07-Aug-2020 09:08:54 +        ia.setcoordsys(cs.torecord())
07-Aug-2020 09:08:54 +        ia.setbrightnessunit("Jy/pixel")
07-Aug-2020 09:08:54 +        ia.modify(cl.torecord(),subtract=False)
07-Aug-2020 09:08:54 +        cl.done()
07-Aug-2020 09:08:54 +        ia.done()
07-Aug-2020 09:08:54 +        cs.done()
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +        # create reference simulation with both int and sd
07-Aug-2020 09:08:54 +        simobserve(project=both_project,
07-Aug-2020 09:08:54 +                   skymodel=both_model_image_int,
07-Aug-2020 09:08:54 +                   incell='0.1arcsec',
07-Aug-2020 09:08:54 +                   complist='',
07-Aug-2020 09:08:54 +                   setpointings=True,
07-Aug-2020 09:08:54 +                   direction=[],
07-Aug-2020 09:08:54 +                   mapsize=['20arcsec'],
07-Aug-2020 09:08:54 +                   maptype='square',
07-Aug-2020 09:08:54 +                   pointingspacing='',
07-Aug-2020 09:08:54 +                   caldirection='',
07-Aug-2020 09:08:54 +                   calflux='1Jy',
07-Aug-2020 09:08:54 +                   obsmode='int',
07-Aug-2020 09:08:54 +                   refdate='2020/02/13',
07-Aug-2020 09:08:54 +                   hourangle='transit',
07-Aug-2020 09:08:54 +                   totaltime='720s',
07-Aug-2020 09:08:54 +                   antennalist=configpath_both_int,
07-Aug-2020 09:08:54 +                   sdantlist=configpath_sd,
07-Aug-2020 09:08:54 +                   sdant=0,
07-Aug-2020 09:08:54 +                   outframe='LSRK',
07-Aug-2020 09:08:54 +                   thermalnoise='',
07-Aug-2020 09:08:54 +                   leakage=0.0,
07-Aug-2020 09:08:54 +                   graphics='none',
07-Aug-2020 09:08:54 +                   verbose=False,
07-Aug-2020 09:08:54 +                   overwrite=True)
07-Aug-2020 09:08:54 +        simobserve(project=both_project,
07-Aug-2020 09:08:54 +                    skymodel=both_model_image_sd,
07-Aug-2020 09:08:54 +                    complist='',
07-Aug-2020 09:08:54 +                    setpointings=True,
07-Aug-2020 09:08:54 +                    direction=[],
07-Aug-2020 09:08:54 +                    mapsize=['200arcsec'],
07-Aug-2020 09:08:54 +                    maptype='square',
07-Aug-2020 09:08:54 +                    pointingspacing='',
07-Aug-2020 09:08:54 +                    caldirection='',
07-Aug-2020 09:08:54 +                    calflux='1Jy',
07-Aug-2020 09:08:54 +                    obsmode='sd',
07-Aug-2020 09:08:54 +                    refdate='2020/02/13',
07-Aug-2020 09:08:54 +                    hourangle='transit',
07-Aug-2020 09:08:54 +                    totaltime='7200s',
07-Aug-2020 09:08:54 +                    antennalist=configpath_sd,
07-Aug-2020 09:08:54 +                    sdantlist=configpath_sd,
07-Aug-2020 09:08:54 +                    sdant=0,
07-Aug-2020 09:08:54 +                    outframe='LSRK',
07-Aug-2020 09:08:54 +                    thermalnoise='',
07-Aug-2020 09:08:54 +                    leakage=0.0,
07-Aug-2020 09:08:54 +                    graphics='none',
07-Aug-2020 09:08:54 +                    verbose=False,
07-Aug-2020 09:08:54 +                    overwrite=True)
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    def tearDown(self):
07-Aug-2020 09:08:54 +        os.system("rm -rf {}".format(both_project))
07-Aug-2020 09:08:54 +        os.system("rm -rf *.last")
07-Aug-2020 09:08:54 +        os.system("rm -rf *.cl")
07-Aug-2020 09:08:54 +        os.system("rm -rf *.im")
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    @unittest.skip("Task call exits with SEVERE error from feather task: Failed AlwaysAssert chan >=0 && chan < Int(nchan()) && stokes >= 0 && stokes < Int(nstokes())")
07-Aug-2020 09:08:54      def test_imaging_True_interferometric_and_single_dish_analysis_False(self):
07-Aug-2020 09:08:54          '''test_imaging_True_interferometric_and_single_dish_analysis_False:
07-Aug-2020 09:08:54          --------------------------------------------------------------------
07-Aug-2020 09:08:54 @@ -295,28 +340,28 @@ class simanalyze_main_usage_modes_test_both(unittest.TestCase):
07-Aug-2020 09:08:54          Modelimage will not be used if the MS is in total power
07-Aug-2020 09:08:54          '''
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -        simanalyze(project=both_project, image=True, vis= 'default',modelimage='', imsize = [1024],
07-Aug-2020 09:08:54 -                   imdirection ='',cell = '',interactive = False, niter = 0,threshold = '0.01mJy',weighting = 'natural',
07-Aug-2020 09:08:54 -                   mask = [],outertaper = [],pbcor = False,stokes = 'I', featherimage = '',analyze=False,
07-Aug-2020 09:08:54 -                   graphics='none', verbose=False, overwrite=True, dryrun=False, logfile=logpath)
07-Aug-2020 09:08:54 +        simanalyze(project=both_project, image=True, vis='default', modelimage='', imsize=[1458],
07-Aug-2020 09:08:54 +                   imdirection='',cell='', interactive=False, niter=0, threshold='0.01mJy', weighting='natural',
07-Aug-2020 09:08:54 +                   mask=[], outertaper=[], pbcor=False, stokes='I', featherimage='',
07-Aug-2020 09:08:54 +                   analyze=False, graphics='none', verbose=False, overwrite=True, dryrun=False, logfile=logpath)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -        visname_both_int = str(both_project +'/'+ both_project + '.' + configpath_int.split('/')[-1][:-3] +'ms')
07-Aug-2020 09:08:54 +        visname_both_int = str(both_project +'/'+ both_project + '.' + configpath_both_int.split('/')[-1][:-3] +'ms')
07-Aug-2020 09:08:54          visname_both_sd = str(both_project +'/'+ both_project + '.' + configpath_sd.split('/')[-1][:-3] +'sd.ms')
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -        # confirm that both the IF part and SD part generated output
07-Aug-2020 09:08:54 -        a = (os.path.isdir(visname_int[:-2]+'image') and
07-Aug-2020 09:08:54 +        # confirm that both the IF and SD imaging generated output
07-Aug-2020 09:08:54 +        a = (os.path.isdir(visname_both_int[:-2]+'image') and
07-Aug-2020 09:08:54               os.path.isdir(both_project+'/'+both_project+'.sd.image') and
07-Aug-2020 09:08:54               os.path.isdir(both_project+'/'+both_project+'.image0') and
07-Aug-2020 09:08:54               os.path.isdir(both_project+'/'+both_project+'.sd.image0.scaled') and
07-Aug-2020 09:08:54               os.path.isdir(both_project+'/'+both_project+'.sd.image0.weight'))
07-Aug-2020 09:08:54 +        # perhaps we should check for feather as well...?
07-Aug-2020 09:08:54          b = True # Expected value
07-Aug-2020 09:08:54          self.assertEqual(a,b)
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 ####    Suite: Required for CASA5     ####
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 def suite():
07-Aug-2020 09:08:54 -    return[simanalyze_main_usage_modes_test_int, simanalyze_main_usage_modes_test_sd]
07-Aug-2020 09:08:54 -    #return[simanalyze_main_usage_modes_test_int, simanalyze_main_usage_modes_test_sd, simanalyze_main_usage_modes_test_both]
07-Aug-2020 09:08:54 +    return[simanalyze_main_usage_modes_test_int, simanalyze_main_usage_modes_test_sd, simanalyze_main_usage_modes_test_both]
07-Aug-2020 09:08:54    
07-Aug-2020 09:08:54 ####    Main     ####
07-Aug-2020 09:08:54 if __name__ == '__main__':
07-Aug-2020 09:08:54 diff --git a/casa5/gcwrap/python/scripts/tests/uTest_list.json b/casa5/gcwrap/python/scripts/tests/uTest_list.json
07-Aug-2020 09:08:54 index f356240..905f8de 100644
07-Aug-2020 09:08:54 --- a/casa5/gcwrap/python/scripts/tests/uTest_list.json
07-Aug-2020 09:08:54 +++ b/casa5/gcwrap/python/scripts/tests/uTest_list.json
07-Aug-2020 09:08:54 @@ -1120,6 +1120,19 @@
07-Aug-2020 09:08:54               "comment":""
07-Aug-2020 09:08:54          },
07-Aug-2020 09:08:54          {
07-Aug-2020 09:08:54 +             "testNumber":"0000",
07-Aug-2020 09:08:54 +             "testName":"Simanalyze",
07-Aug-2020 09:08:54 +             "testScript":"test_req_task_simanalyze",
07-Aug-2020 09:08:54 +             "testType":"functionalTest",
07-Aug-2020 09:08:54 +             "testLevel":"critical",
07-Aug-2020 09:08:54 +             "Maintainer":"Sandra Castro",
07-Aug-2020 09:08:54 +             "MaintainerEmail":"scastro@eso.org",
07-Aug-2020 09:08:54 +             "priority":"3",
07-Aug-2020 09:08:54 +             "tag":"simulation",
07-Aug-2020 09:08:54 +             "suppressEmail": false,
07-Aug-2020 09:08:54 +             "comment":""
07-Aug-2020 09:08:54 +        },
07-Aug-2020 09:08:54 +        {
07-Aug-2020 09:08:54               "testNumber":"6001",
07-Aug-2020 09:08:54               "testName":"Ia adddegaxes",
07-Aug-2020 09:08:54               "testScript":"test_ia_adddegaxes",
07-Aug-2020 09:08:54 @@ -2994,7 +3007,6 @@
07-Aug-2020 09:08:54          },
07-Aug-2020 09:08:54          {
07-Aug-2020 09:08:54               "testNumber":"0000",
07-Aug-2020 09:08:54 -<<<<<<< HEAD
07-Aug-2020 09:08:54               "testName":"Sdintimaging",
07-Aug-2020 09:08:54               "testScript":"test_req_task_sdintimaging",
07-Aug-2020 09:08:54               "testType":"functionalTest",
07-Aug-2020 09:08:54 @@ -3003,7 +3015,11 @@
07-Aug-2020 09:08:54               "MaintainerEmail":"scastro@nrao.edu",
07-Aug-2020 09:08:54               "priority":"4",
07-Aug-2020 09:08:54               "tag":"functionalTest",
07-Aug-2020 09:08:54 -=======
07-Aug-2020 09:08:54 +             "suppressEmail": false,
07-Aug-2020 09:08:54 +             "comment":""
07-Aug-2020 09:08:54 +        },
07-Aug-2020 09:08:54 +        {
07-Aug-2020 09:08:54 +             "testNumber":"0000",
07-Aug-2020 09:08:54               "testName":"STK VLASS TEST",
07-Aug-2020 09:08:54               "testScript":"test_stk_vlass_pipeline_imaging",
07-Aug-2020 09:08:54               "testType":"functionalTest",
07-Aug-2020 09:08:54 diff --git a/casa5/gcwrap/tasks/simanalyze.xml b/casa5/gcwrap/tasks/simanalyze.xml
07-Aug-2020 09:08:54 index 7e85122..e162dac 100644
07-Aug-2020 09:08:54 --- a/casa5/gcwrap/tasks/simanalyze.xml
07-Aug-2020 09:08:54 +++ b/casa5/gcwrap/tasks/simanalyze.xml
07-Aug-2020 09:08:54 @@ -4,118 +4,8 @@
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54    <shortdescription>image and analyze measurement sets created with simobserve</shortdescription>
07-Aug-2020 09:08:54    <description>
07-Aug-2020 09:08:54 -    This task is for imaging and analyzing measurement sets (MSs) simulated
07-Aug-2020 09:08:54 -      with simobserve or simalma.   
07-Aug-2020 09:08:54 -  </description>
07-Aug-2020 09:08:54 -  <example>
07-Aug-2020 09:08:54 -      * &quot;project&quot; needs to be the directory of results generated by running
07-Aug-2020 09:08:54 -        simobserve or simalma. In particular $project/$project.skymodel
07-Aug-2020 09:08:54 -        will be required in order to compare output and input images.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    -------------------------------
07-Aug-2020 09:08:54 -    mode image=True:
07-Aug-2020 09:08:54 -      * One should input one or more simulated MSs using the &quot;vis&quot; parameter. 
07-Aug-2020 09:08:54 -        These can include a total power MS.
07-Aug-2020 09:08:54 -        Simanalyze will grid any total power MS,
07-Aug-2020 09:08:54 -        clean (invert and deconvolve) any interferometric MSs,
07-Aug-2020 09:08:54 -        and feather the results.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * the &quot;vis&quot; parameter:
07-Aug-2020 09:08:54 -        - example: single MS: vis=&quot;mysim.alma.out03.ms&quot;
07-Aug-2020 09:08:54 -        - example: multiple MSs: vis=&quot;mysim.alma.out03.ms,mysim.aca.tp.ms&quot;
07-Aug-2020 09:08:54 -        - one can use &quot;$project&quot; and let the task automatically replace it with
07-Aug-2020 09:08:54 -          the project name, e.g., vis=&quot;$project.noisy.ms,$project.noisy.sd.ms&quot;.
07-Aug-2020 09:08:54 -          However, note that if you created measurement set(s) using simobserve,
07-Aug-2020 09:08:54 -          MS names will include the configuration, e.g.
07-Aug-2020 09:08:54 -          &quot;$project.alma_out20.noisy.ms&quot;
07-Aug-2020 09:08:54 -        - setting &quot;vis&quot; to &quot;default&quot; will find and attempt to image
07-Aug-2020 09:08:54 -          all measurement sets (interferometric and single dish) in the
07-Aug-2020 09:08:54 -          project directory
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * Sometimes it is preferable to grid the single dish MS using the
07-Aug-2020 09:08:54 -        sdimaging task for more control.  In that case one can input
07-Aug-2020 09:08:54 -        the resulting single dish imaging under &quot;featherimage&quot;, only
07-Aug-2020 09:08:54 -        put interferometric MSs in &quot;vis&quot;, and simanalyze  will clean the
07-Aug-2020 09:08:54 -        interferometric and feather with your &quot;featherimage&quot;.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * Sometimes it is preferable to use a low resolution (single dish or
07-Aug-2020 09:08:54 -        synthesis) image as a prior model during clean deconvolution
07-Aug-2020 09:08:54 -        of a higher resolution interferometric MS.  That is accomplished
07-Aug-2020 09:08:54 -        by putting the low-resolution image in &quot;modelimage&quot; and the MS
07-Aug-2020 09:08:54 -        to be deconvolved in &quot;vis&quot;. NOTE: This is not the original skymodel
07-Aug-2020 09:08:54 -        that was used in simobserve or simalma.  It is recommended to
07-Aug-2020 09:08:54 -        leave this blank unless the user is familiar with using a prior
07-Aug-2020 09:08:54 -        in clean deconvolution. (see casaguides) NOTE 2: modelimage will
07-Aug-2020 09:08:54 -        not be used if the MS to be imaged is total power.
07-Aug-2020 09:08:54 -       
07-Aug-2020 09:08:54 -      * uses Cotton-Schwab clean for single fields and Mosaic gridding
07-Aug-2020 09:08:54 -        for multiple fields (with Clark PSF calculation in minor cycles).
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * interactive clean or use of more parameters than the subset
07-Aug-2020 09:08:54 -        visible here are available by simply running the clean task directly,
07-Aug-2020 09:08:54 -        then using simanalyze in the mode image=False (see below).
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * if graphics are turned on, this step will display the clean image
07-Aug-2020 09:08:54 -        and residual image
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * the &quot;mask&quot; parameter:
07-Aug-2020 09:08:54 -        Specification of cleanbox(es), mask image(s), primary beam
07-Aug-2020 09:08:54 -        coverage level, and/or region(s) to be used for cleaning.
07-Aug-2020 09:08:54 -        clean tends to perform better, and is less likely to diverge, if
07-Aug-2020 09:08:54 -        the clean component placement is limited by a mask to where real
07-Aug-2020 09:08:54 -        emission is expected to be.  e.g. pixel ranges mask=[110,110,150,145],
07-Aug-2020 09:08:54 -        filename of mask image mask='myimage.mask', or a file with mask
07-Aug-2020 09:08:54 -        regions --  see help for the clean task for more information.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -      * NOTE: simanalyze was designed to be used after one or more runs of
07-Aug-2020 09:08:54 -        simobserve, and as such it assumes it will be able to find a
07-Aug-2020 09:08:54 -        sky model image called $project/$project.skymodel, .newmodel, or
07-Aug-2020 09:08:54 -        .compskymodel in the $project/ subdirectory.  If the simulated
07-Aug-2020 09:08:54 -        MS has been created by means other than simply calling simobserve,
07-Aug-2020 09:08:54 -        the user may have to copy their sky model image into the $project
07-Aug-2020 09:08:54 -        subdirectory and call it &quot;$project.skymodel&quot;
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    -------------------------------
07-Aug-2020 09:08:54 -    mode image=False:
07-Aug-2020 09:08:54 -      * Sometimes the user has created a synthesized image themselves,
07-Aug-2020 09:08:54 -        most likely using the clean task, perhaps along with
07-Aug-2020 09:08:54 -        sdimaging and feather, or a previous call to simanalyze with image=True
07-Aug-2020 09:08:54 -      * The user should input that simulated image as &quot;imagename&quot;. 
07-Aug-2020 09:08:54 -        It will have suffix .image if created by clean, simanalyze, or simalma
07-Aug-2020 09:08:54 -      * simanalyze will attempt to find an appropriate skymodel image -
07-Aug-2020 09:08:54 -        this is the *.skymodel image created by simobserve or simalma,
07-Aug-2020 09:08:54 -        the (optionally rescaled) original sky model, which was used
07-Aug-2020 09:08:54 -        to create the measurement set.
07-Aug-2020 09:08:54 -        simanalyze will look in the project directory, but if there are
07-Aug-2020 09:08:54 -        multuple skymodels present it may not find the right one, so the
07-Aug-2020 09:08:54 -        &quot;skymodel&quot; parameter allows explicit specification.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    -------------------------------
07-Aug-2020 09:08:54 -    mode analyze=True is used to create an image of the difference between
07-Aug-2020 09:08:54 -        the input skymodel and the simulated output image (whether that output
07-Aug-2020 09:08:54 -        image is being generated in the same call to simanalyze, with
07-Aug-2020 09:08:54 -        image=True, or has already been generated, and simanalyze is being
07-Aug-2020 09:08:54 -        called with image=False).
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    showuv -- display uv coverage
07-Aug-2020 09:08:54 -    showpsf -- display synthesized (dirty) beam (ignored in single dish simulation)
07-Aug-2020 09:08:54 -    showmodel -- display sky model at original resolution
07-Aug-2020 09:08:54 -    showconvolved -- display sky model convolved with output beam
07-Aug-2020 09:08:54 -    showclean -- display the synthesized image
07-Aug-2020 09:08:54 -    showresidual -- display the clean residual image (ignored in single dish simulation)
07-Aug-2020 09:08:54 -    showdifference -- display difference between output cleaned image and
07-Aug-2020 09:08:54 -         input model sky image convolved with output clean beam
07-Aug-2020 09:08:54 -    showfidelity -- display fidelity image
07-Aug-2020 09:08:54 -         fidelity = abs(input) / max[ abs(input-output), 0.7*rms(output) ]
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    Note that the RMS is calculated in the lower quarter of the image. 
07-Aug-2020 09:08:54 -         This is likely not the best choice, so you are encouraged to
07-Aug-2020 09:08:54 -         measure RMS yourself in an off-source region using the viewer.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    dryrun=True is an advanced technical mode only useful for interferometric
07-Aug-2020 09:08:54 -         (not single dish) data.
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 +    This task is for imaging and analyzing MeasurementSets simulated with simobserve or simalma.
07-Aug-2020 09:08:54 +    It consists of two main steps, controlled by the image and analyze parameters.
07-Aug-2020 09:08:54      -------------------------------
07-Aug-2020 09:08:54      Output produced: (not all will always exist, depending on input parameters)
07-Aug-2020 09:08:54      To support different runs with different arrays, the names have the
07-Aug-2020 09:08:54 @@ -125,10 +15,9 @@
07-Aug-2020 09:08:54           the output image, and convolved with the output clean beam
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54      project.[cfg].image = synthesized image
07-Aug-2020 09:08:54 -    project.[cfg].flux.pbcoverage = primary beam correction for mosaic image
07-Aug-2020 09:08:54      project.[cfg].residual = residual image after cleaning
07-Aug-2020 09:08:54 -    project.[cfg].clean.last = parameter file of what parameters were used in
07-Aug-2020 09:08:54 -          the clean task
07-Aug-2020 09:08:54 +    project.[cfg].tclean.last = parameter file of what parameters were used in
07-Aug-2020 09:08:54 +          the tclean task call
07-Aug-2020 09:08:54      project.[cfg].psf = synthesized (dirty) beam calculated from weighted uv
07-Aug-2020 09:08:54            distribution
07-Aug-2020 09:08:54      project.[cfg].image.png = diagnostic figure of clean image and residual
07-Aug-2020 09:08:54 @@ -137,11 +26,33 @@
07-Aug-2020 09:08:54      project.[cfg].analysis.png = diagnostic figure of difference and fidelity
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54      project.[cfg].simanalyze.last = saved input parameters for simanalyze task
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54      -------------------------------
07-Aug-2020 09:08:54 -    Please see http://casaguides.nrao.edu, and contact the CASA helpdesk
07-Aug-2020 09:08:54 -    with questions.
07-Aug-2020 09:08:54 -  </example>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    * &quot;project&quot; needs to be the directory of results generated by running
07-Aug-2020 09:08:54 +      simobserve or simalma. In particular $project/$project.skymodel
07-Aug-2020 09:08:54 +      will be required in order to compare output and input images.
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    * NOTE: simanalyze was designed to be used after one or more runs of
07-Aug-2020 09:08:54 +      simobserve, and as such it assumes it will be able to find a
07-Aug-2020 09:08:54 +      sky model image called $project/$project.skymodel, .newmodel, or
07-Aug-2020 09:08:54 +      .compskymodel in the $project/ subdirectory.  If the simulated
07-Aug-2020 09:08:54 +      MS has been created by means other than simply calling simobserve,
07-Aug-2020 09:08:54 +      the user may have to copy their sky model image into the $project
07-Aug-2020 09:08:54 +      subdirectory and call it &quot;$project.skymodel&quot;.
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    * interactive clean or use of more parameters than the subset
07-Aug-2020 09:08:54 +      visible here are available by simply running the tclean task directly,
07-Aug-2020 09:08:54 +      then using simanalyze in the mode image=False (see below).
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    * Sometimes it is preferable to grid the single dish MS using the
07-Aug-2020 09:08:54 +      sdimaging task for more control.  In that case one can input
07-Aug-2020 09:08:54 +      the resulting single dish imaging under &quot;featherimage&quot;, only
07-Aug-2020 09:08:54 +      put interferometric MSs in &quot;vis&quot;, and simanalyze  will clean the
07-Aug-2020 09:08:54 +      interferometric and feather with your &quot;featherimage&quot;.
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    * uses Cotton-Schwab clean for single fields and Mosaic gridding
07-Aug-2020 09:08:54 +      for multiple fields (with Clark PSF calculation in minor cycles).
07-Aug-2020 09:08:54 +  </description>
07-Aug-2020 09:08:54    
07-Aug-2020 09:08:54    <input>
07-Aug-2020 09:08:54      
07-Aug-2020 09:08:54 @@ -155,75 +66,89 @@
07-Aug-2020 09:08:54        </description>
07-Aug-2020 09:08:54        <value>sim</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +<!--  IMAGE   -->   
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -    <param name="image" type="bool"><shortdescription>(re)image $project.*.ms to $project.image</shortdescription><description>(re)image $project.*.ms to $project.image</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param name="image" type="bool">
07-Aug-2020 09:08:54 +      <shortdescription>(re)image $project.*.ms to $project.image</shortdescription>
07-Aug-2020 09:08:54 +      <description>Controls whether tclean is called to image the MeasurementSet data. If true, input one or more simulated MSs using the vis parameter. These can include a total power MS. This task will grid any total power MS, invert and deconvolve any interferometric MS(s) (using the simutil method imtclean), and feather the results. If this parameter is set to False (e.g., if the user has created a synthesized image themselves or simanalyze has previously been run with image=True) the user should provide that image as input to the imagename parameter. This task will then attempt to find an appropriate skymodel image (such as the optionally rescaled *.skymodel produced by simobserve or simalma and used to create the MS).</description>
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>   
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -    <param subparam="true" name="imagename" type="string"><shortdescription>simulation output image to analyze (default = first $project/*.image found)</shortdescription><description>simulation output image to analyze (default = first $project/*.image found)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <!-- if IMAGE==False -->
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param subparam="true" name="imagename" type="string"><shortdescription>simulation output image to analyze</shortdescription><description>Name of image to image/analyze, expected to be of the same form as those generated by simobserve. Defaults to the first file found with the name $project/*.image</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>default</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="skymodel" type="string"><shortdescription>skymodel image to analyze (the .skymodel image created by simobserve or simalma and used by one of those tasks to create an MS; if unspecified, will try to find one similar to your specified output image name)</shortdescription><description>skymodel image to analyze (the .skymodel image created by simobserve or simalma and used by one of those tasks to create an MS; if unspecified, will try to find one similar to your specified output image name)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="skymodel" type="string"><shortdescription>skymodel image to analyze</shortdescription><description>Name of a specific .skymodel image created by simobserve or simalma and used by one of those tasks to create a MS. If unspecified, will try to find one similar to your specified output image name.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value/>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +    <!-- if IMAGE==True -->
07-Aug-2020 09:08:54      
07-Aug-2020 09:08:54 +    <param subparam="true" name="vis" type="string"><shortdescription>Measurement Set(s) to image</shortdescription><description>Name of the Measurement Set(s) to image, specified as a string or string containing a comma separating the names. If set to &quot;default&quot;, will attempt to find and image all MeasurementSets (interferometric and single dish) in the project directory. Note that if you created MeasurementSets using simobserve, the names will include the antenna configuration. Example of a single MS: vis=&quot;mysim.alma.out03.ms&quot;. Example of multiple MSs: vis=&quot;mysim.alma.out03.ms,mysim.aca.tp.ms&quot;. Example of using the $project syntax: vis=&quot;$project.noisy.ms,$project.noisy.sd.ms&quot;.</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="vis" type="string"><shortdescription>Measurement Set(s) to image</shortdescription><description>Measurement Set(s) to image</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54        <value>default</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="modelimage" type="string"><shortdescription>lower resolution prior image to use in clean e.g. existing total power image</shortdescription><description>lower resolution prior image to use in clean e.g. existing total power image</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 -      <value type="string"/>
07-Aug-2020 09:08:54 +    <param subparam="true" name="modelimage" type="string"><shortdescription>image to use as clean prior</shortdescription><description>Sometimes it is preferable to use a low resolution (single dish or synthesis) image as a prior model during clean deconvolution of a higher resolution interferometric MS.  That is accomplished by specifying the low-resolution image as input to this parameter, and the MS to be deconvolved as input to the vis parameter. This parameter is passed to the startmodel parameter via the simutil method imtclean. Note that this is separate from the functionality controlled by the featherimage parameter. Also note that this is not the original skymodel that was used in simobserve or simalma.  It is recommended to leave this blank unless the user is familiar with using a prior in clean deconvolution. Also note that the modelimage will not be used if the MS to be imaged is total power.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +      <value type="string"></value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54      
07-Aug-2020 09:08:54 -    <param subparam="true" name="imsize" type="intArray"><shortdescription>output image size in pixels (x,y) or 0 to match model</shortdescription><description>output image size in pixels (x,y) or 0 to match model</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="imsize" type="intArray"><shortdescription>output image size in pixel units</shortdescription><description>A list of integers corresponding to the number of pixels in (x,y) dimensions of output image. If 0, will attempt to match model image.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value type="intArray"><value>0</value><value>0</value></value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="imdirection" type="string"><shortdescription>set output image direction, (otherwise center on the model)</shortdescription><description>set output image direction, (otherwise center on the model)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 -      <value type="string"/>
07-Aug-2020 09:08:54 +    <param subparam="true" name="imdirection" type="string"><shortdescription>set output image direction</shortdescription><description>A string corresponding to a direction to adopt as phase center, including epoch, right ascension, and declination. If unset, will adopt center on the model.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +      <value type="string"></value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="cell" type="string"><shortdescription>cell size with units e.g. &quot;10arcsec&quot; or &quot;&quot; to equal model</shortdescription><description>cell size with units e.g. &quot;10arcsec&quot; or &quot;&quot; to equal model</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 -      <value type="string"/>
07-Aug-2020 09:08:54 +    <param subparam="true" name="cell" type="string"><shortdescription>cell size with units</shortdescription><description>Specify the cell size with units, e.g., &quot;10arcsec&quot;. If left unset (an empty string), the model cell size will be used. This is the default setting.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +      <value type="string"></value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -    <param subparam="true" name="interactive" type="bool"><shortdescription>interactive clean?  (make sure to set niter&gt;0 also)</shortdescription><description>interactive clean?  (make sure to set niter&gt;0 also)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param subparam="true" name="interactive" type="bool"><shortdescription>call tclean in interactive mode</shortdescription><description>Controls how the simutil method imtclean will call the tclean task. If this parameter is set to True, make sure to set the parameter niter to a value &gt;0.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value type="bool">False</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +<!-- force the same channelization as the ms -->
07-Aug-2020 09:08:54 +<!--
07-Aug-2020 09:08:54 +    <param subparam="true" name="start" type="string"><shortdescription>frequency of first channel (default=ms)</shortdescription><description>frequency of first channel (default=ms)</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +      <value>89GHz</value>
07-Aug-2020 09:08:54 +    </param>   
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param type="string" name="width" subparam="true"><shortdescription>channel width (default=ms)</shortdescription><description>channel width (default=ms)</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +      <value>10MHz</value>
07-Aug-2020 09:08:54 +    </param>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param type="int" name="nchan" subparam="true"><shortdescription>number of channels or -1 for full range</shortdescription><description>number of channels or -1 for full range</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +      <value>-1</value>
07-Aug-2020 09:08:54 +    </param>
07-Aug-2020 09:08:54 +-->   
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param subparam="true" name="niter" type="int"><shortdescription>maximum number of iterations</shortdescription><description>Controls the value of the niter parameter in tclean call, and thus the maximum number of iterations per minor cycle. Set to 0 to produce a dirty image. Can also be modified through the viewer GUI via the interactive parameter.</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -    <param subparam="true" name="niter" type="int"><shortdescription>maximum number of iterations (0 for dirty image)</shortdescription><description>maximum number of iterations (0 for dirty image)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54        <value>0</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="threshold" type="string"><shortdescription>flux level (+units) to stop cleaning</shortdescription><description>flux level (+units) to stop cleaning</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="threshold" type="string"><shortdescription>target flux level and units</shortdescription><description>Set the quantity corresponding to the target flux level at which to stop cleaning. This value is passed to tclean via the simutil method imtclean.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>0.1mJy</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="weighting" type="string"><shortdescription>weighting to apply to visibilities.  briggs will use robust=0.5</shortdescription><description>weighting to apply to visibilities.  briggs will use robust=0.5</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="weighting" type="string"><shortdescription>control image weighting method</shortdescription><description>Set the weighting scheme to apply to visibilities during image reconstruction. If set to briggs, will use the tclean default robust parameter (0.5)</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>natural</value>
07-Aug-2020 09:08:54        <allowed kind="enum">
07-Aug-2020 09:08:54    <value>natural</value>
07-Aug-2020 09:08:54 @@ -232,25 +157,24 @@
07-Aug-2020 09:08:54        </allowed>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="mask" type="any"><shortdescription>Cleanbox(es), mask image(s), region(s), or a level</shortdescription><description>Cleanbox(es), mask image(s), region(s), or a level</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="mask" type="any"><shortdescription>Cleanbox(es), mask image(s), region(s), or a level</shortdescription><description>Accepts a list of cleanbox(es), mask image file name(s), region(s), and/or a primary beam coverage level. Input to this parameter will specify areas to be searched for clean components. tclean tends to perform better and is less likely to diverge if the component placement is limited by a mask to where real emission is expected. See the tclean task documentation for more information about masking. Example of a pixel range mask: mask=[110,110,150,145]</description>
07-Aug-2020 09:08:54        <any type="variant"/>
07-Aug-2020 09:08:54        
07-Aug-2020 09:08:54        <value type="intArray"/>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="outertaper" type="stringArray"><shortdescription>uv-taper on outer baselines in uv-plane</shortdescription><description>uv-taper on outer baselines in uv-plane</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="outertaper" type="stringArray"><shortdescription>uv-taper on outer baselines in uv-plane</shortdescription><description>Accepts a list of strings in the form of a quantity that sets an other threshold on baselines in the uv-plane. Usually used to achieve a lower effective angular resolution and recover more extended emission in reconstructed image. If left unset via empty list (the default) no outer taper will be applied.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54      <value/>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="pbcor" type="bool"><shortdescription>correct the output of synthesis images for primary beam response?</shortdescription><description>correct the output of synthesis images for primary beam response?</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="pbcor" type="bool"><shortdescription>correct synthesis images for primary beam response?</shortdescription><description>Controls whether primary beam correction is applied in the call to task tclean.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value type="bool">True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="stokes" type="string"><shortdescription>Stokes params to image</shortdescription><description>Stokes params to image</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="stokes" type="string"><shortdescription>Stokes parameterss to image</shortdescription><description>Stokes parameters to include in the call to tclean via the simutil method imtclean. Note that forming Stokes Q and U images requires the presence of cross-hand polarizations (e.g., RL and LR for circularly polarized systems such as the VLA) in the input data. Stokes V requires both parallel hands (RR and LL) for circularly-polarized systems or the cross-hands (XY and YX) for linearly polarized systems such as ALMA and ATCA.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>I</value>
07-Aug-2020 09:08:54        <allowed kind="enum">
07-Aug-2020 09:08:54    <value>I</value>
07-Aug-2020 09:08:54 @@ -266,72 +190,73 @@
07-Aug-2020 09:08:54        </allowed>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="featherimage" type="string"><shortdescription>image (e.g. total power) to feather with new image</shortdescription><description>image (e.g. total power) to feather with new image</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="featherimage" type="string"><shortdescription>image to feather with new image</shortdescription><description>String corresponding to the name of an image (e.g., total power data) to feather with the interferometric synthesis image. Sometimes it is preferable to grid the single dish MS using the sdimaging task for more control. In that case, the user can input the resulting single dish imaging under featherimage, only pass interferometric data as input to the vis parameter, and this task will clean the interferometric and feather with the featherimage.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value/>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +<!--  ANALYZE   -->   
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +    <param name="analyze" type="bool"><shortdescription>create analytical images</shortdescription><description>Used to create an image of the difference between the input skymodel and the simulated output image (whether that output image is being generated in the same call to simanalyze, with image=True, or has already been generated, and simanalyze is being called with image=False). If True, only the first 6 selected subparameter outputs will be displayed.</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -    <param name="analyze" type="bool"><shortdescription>(only first 6 selected outputs will be displayed)</shortdescription><description>(only first 6 selected outputs will be displayed)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54        <value>False</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +<!--   
07-Aug-2020 09:08:54 +    <param subparam="true" name="sim_image" type="string"><shortdescription>simulated image, created by this task or manually</shortdescription><description>simulated image, created by this task or manually</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +      <value>$project/$project.image</value>
07-Aug-2020 09:08:54 +    </param>
07-Aug-2020 09:08:54 +-->
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param subparam="true" name="showuv" type="bool"><shortdescription>display uv coverage</shortdescription><description>Displays a plot of the simulated uv coverage</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="showuv" type="bool"><shortdescription>display uv coverage</shortdescription><description>display uv coverage</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="showpsf" type="bool"><shortdescription>display synthesized (dirty) beam (ignored in single dish simulation)</shortdescription><description>display synthesized (dirty) beam (ignored in single dish simulation)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="showpsf" type="bool"><shortdescription>display synthesized beam</shortdescription><description>Displays synthesized (dirty) beam. Ignored in single dish simulation.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="showmodel" type="bool"><shortdescription>display sky model at original resolution</shortdescription><description>display sky model at original resolution</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="showmodel" type="bool"><shortdescription>display sky model at original resolution</shortdescription><description>Displays the sky model at original resolution of input image.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54 -   
07-Aug-2020 09:08:54 -    <param subparam="true" name="showconvolved" type="bool"><shortdescription>display sky model convolved with output clean beam</shortdescription><description>display sky model convolved with output clean beam</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +    <param subparam="true" name="showconvolved" type="bool"><shortdescription>display sky model convolved with output clean beam</shortdescription><description>Displays the sky model convolved with output clean beam.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>False</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54      
07-Aug-2020 09:08:54 -    <param subparam="true" name="showclean" type="bool"><shortdescription>display the synthesized image</shortdescription><description>display the synthesized image</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="showclean" type="bool"><shortdescription>display the synthesized image</shortdescription><description>Displays the synthesized image produced by the call to task tclean.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="showresidual" type="bool"><shortdescription>display the clean residual image (ignored in single dish simulation)</shortdescription><description>display the clean residual image (ignored in single dish simulation)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="showresidual" type="bool"><shortdescription>display the clean residual image</shortdescription><description>Displays the residual image produced by the call to task tclean. Ignored in single dish simulations.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>False</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param subparam="true" name="showdifference" type="bool"><shortdescription>display difference between output cleaned image and input model sky image convolved with output clean beam</shortdescription><description>display difference between output cleaned image and input model sky image convolved with output clean beam</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="showdifference" type="bool"><shortdescription>display difference between cleaned output and convolved model input</shortdescription><description>Displays a difference image between cleaned image output by the tclean call, and input model sky image convolved with synthesized beam determined by output of tclean call.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54      
07-Aug-2020 09:08:54 -    <param subparam="true" name="showfidelity" type="bool"><shortdescription>display fidelity (see help)</shortdescription><description>display fidelity (see help)</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param subparam="true" name="showfidelity" type="bool"><shortdescription>display fidelity image</shortdescription><description>Display a fidelity image. Note that the RMS is calculated in the lower quarter of the image. This is likely not the best choice, so you are encouraged to measure RMS yourself in an off-source region. Fidelity = abs(input) / max[ abs(input-output), 0.7*rms(output) ]</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 +    <param name="graphics" type="string"><shortdescription>where to display graphics at each stage</shortdescription><description>Controls where graphics are displayed. Options are screen, file, both, or none.</description>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param name="graphics" type="string"><shortdescription>display graphics at each stage to [screen|file|both|none]</shortdescription><description>display graphics at each stage to [screen|file|both|none]</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54        <value type="string">both</value>
07-Aug-2020 09:08:54        <allowed kind="enum">
07-Aug-2020 09:08:54    <value>screen</value>
07-Aug-2020 09:08:54 @@ -342,23 +267,23 @@
07-Aug-2020 09:08:54        </allowed>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param name="verbose" type="bool"><shortdescription></shortdescription><description/>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param name="verbose" type="bool"><shortdescription>report task activity</shortdescription><description>Controls task activity is reported in the log.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>False</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param name="overwrite" type="bool"><shortdescription>overwrite files starting with $project</shortdescription><description>overwrite files starting with $project</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param name="overwrite" type="bool"><shortdescription>overwrite files starting with $project</shortdescription><description>Controls whether the task will overwrite existing files starting with $project name.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>True</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param visibility="hidden" name="dryrun" type="bool"><shortdescription>only print information [experimental; only for interfermetric data]</shortdescription><description>only print information [experimental; only for interfermetric data]</description>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param visibility="hidden" name="dryrun" type="bool"><shortdescription>only print information</shortdescription><description>Experimental feature for interfermetric data only. Controls whether information pertaining to the tclean call and analysis will be recorded and written to files for inspection and adaption.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value>False</value>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 -    <param name="logfile" type="string"><shortdescription></shortdescription><description/>
07-Aug-2020 09:08:54 -     
07-Aug-2020 09:08:54 +    <param name="logfile" type="string"><shortdescription>user-defined log file</shortdescription><description>Allows for a user-defined log file naming convention if the verbose parameter is set to True.</description>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54        <value/>
07-Aug-2020 09:08:54      </param>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 @@ -417,6 +342,15 @@
07-Aug-2020 09:08:54      
07-Aug-2020 09:08:54    </input>
07-Aug-2020 09:08:54    <returns type="void"/>
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +  <example>
07-Aug-2020 09:08:54 +        For more information, see the task pages of simobserve in CASA Docs:
07-Aug-2020 09:08:54 +        
07-Aug-2020 09:08:54 +        https://casa.nrao.edu/casadocs/
07-Aug-2020 09:08:54 +
07-Aug-2020 09:08:54 +        Please see http://casaguides.nrao.edu, and contact the CASA helpdesk
07-Aug-2020 09:08:54 +        with questions.
07-Aug-2020 09:08:54 +  </example>
07-Aug-2020 09:08:54    
07-Aug-2020 09:08:54 </task>
07-Aug-2020 09:08:54 -</casaxml>
07-Aug-2020 09:08:54 \ No newline at end of file
07-Aug-2020 09:08:54 +</casaxml>
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 Comparison returned: 1
07-Aug-2020 09:08:54 Checkout: git checkout release/5.7.0
07-Aug-2020 09:08:54 Already on 'release/5.7.0'
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 [git, tag, -a, 5.7.0-rel-134, -m 'Automatic tag']
07-Aug-2020 09:08:54
07-Aug-2020 09:08:54 Done tagging 5.7.0-rel-134
07-Aug-2020 09:08:54 Pushing 5.7.0-rel-134 to origin
07-Aug-2020 09:08:54 X11 forwarding request failed on channel 0
07-Aug-2020 09:08:55 To ssh://git@open-bitbucket.nrao.edu:7999/casa/casa6.git
07-Aug-2020 09:08:55 * [new tag]         5.7.0-rel-134 -> 5.7.0-rel-134
07-Aug-2020 09:08:55
07-Aug-2020 09:08:55 Pushed 5.7.0-rel-134 to origin
07-Aug-2020 09:08:55
07-Aug-2020 09:08:55 BUILD SUCCESSFUL
07-Aug-2020 09:08:55
07-Aug-2020 09:08:55 Total time: 39.429 secs
07-Aug-2020 09:08:55 Done
07-Aug-2020 09:08:55 Finished task 'Script' with result: Success
07-Aug-2020 09:08:55 Running post build plugin 'Docker Container Cleanup'
07-Aug-2020 09:08:55 Running post build plugin 'NCover Results Collector'
07-Aug-2020 09:08:55 Running post build plugin 'Clover Results Collector'
07-Aug-2020 09:08:55 Running post build plugin 'npm Cache Cleanup'
07-Aug-2020 09:08:55 Running post build plugin 'Artifact Copier'
07-Aug-2020 09:08:55 Finalising the build...
07-Aug-2020 09:08:55 Stopping timer.
07-Aug-2020 09:08:55 Build CASA-R57X0-TBFP-15 completed.
07-Aug-2020 09:08:55 Running on server: post build plugin 'NCover Results Collector'
07-Aug-2020 09:08:55 Running on server: post build plugin 'Build Hanging Detection Configuration'
07-Aug-2020 09:08:55 Running on server: post build plugin 'Clover Delta Calculator'
07-Aug-2020 09:08:55 Running on server: post build plugin 'Maven Dependencies Postprocessor'
07-Aug-2020 09:08:55 All post build plugins have finished
07-Aug-2020 09:08:55 Generating build results summary...
07-Aug-2020 09:08:55 Saving build results to disk...
07-Aug-2020 09:08:55 Logging substituted variables...
07-Aug-2020 09:08:55 Indexing build results...
07-Aug-2020 09:08:55 Finished building CASA-R57X0-TBFP-15.