Exemple #1
0
                "_robust{0}_preselfcal.model.tt1".format(robust)
            ]
        else:
            modelname = [
                contimagename + "_robust{0}_selfcal{1}.model.tt0".format(
                    robust, selfcaliter - 1),
                contimagename + "_robust{0}_selfcal{1}.model.tt1".format(
                    robust, selfcaliter - 1)
            ]

        imname = contimagename + "_robust{0}_selfcal{1}".format(
            robust, selfcaliter)

        if not os.path.exists(imname + ".image.tt0"):

            okfields, notokfields = goodenough_field_solutions(caltable,
                                                               minsnr=5)
            if len(okfields) == 0:
                logprint("All fields flagged out of gaincal solns!",
                         origin='contim_selfcal')
                raise ValueError("All fields flagged out of gaincal solns!")
            okfields_str = ",".join(["{0}".format(x) for x in okfields])
            logprint("Fields {0} had min snr 5, fields {1} did not".format(
                okfields, notokfields),
                     origin='contim_selfcal')
            clearcal(vis=selfcal_ms, addmodel=True)
            # use gainfield so we interpolate the good solutions to the other
            # fields
            applycal(vis=selfcal_ms,
                     gainfield=okfields_str,
                     gaintable=cals,
                     interp="linear",
       cell="0.125arcsec",
       outframe='LSRK',
       weighting="briggs",
       robust = 0.5, 
       savemodel='modelcolumn')
impbcor(imagename=myimagebase+'.image', pbimage=myimagebase+'.pb', outfile=myimagebase+'.image.pbcor', overwrite=True) # perform PBcorr
exportfits(imagename=myimagebase+'.image.pbcor', fitsimage=myimagebase+'.image.pbcor.fits', dropdeg=True, overwrite=True) # export the corrected image
exportfits(imagename=myimagebase+'.pb', fitsimage=myimagebase+'.pb.fits', dropdeg=True, overwrite=True) # export the PB image
exportfits(imagename=myimagebase+'.model', fitsimage=myimagebase+'.model.fits', dropdeg=True, overwrite=True) # export the PB image
exportfits(imagename=myimagebase+'.residual', fitsimage=myimagebase+'.residual.fits', dropdeg=True, overwrite=True) # export the PB image

rmtables(['phase_0.cal'])
gaincal(vis=selfcal0vis, caltable='phase_0.cal', solint='int', gaintype='G',
        calmode='p')

okfields = selfcal_heuristics.goodenough_field_solutions('phase_0.cal')
okfields_str = ",".join(["{0}".format(x) for x in okfields])

selfcal1vis = 'selfcal_SgrB2_TE_full_selfcal_iter1.ms'
rmtables([selfcal1vis])
applycal(vis=selfcal0vis, field=okfields_str, gaintable=["phase_0.cal"],
         interp="linear", applymode='calonly', calwt=False)
split(vis=selfcal0vis, outputvis=selfcal1vis, datacolumn='corrected')


outname = 'SgrB2_selfcal_full_TE_selfcal1'
os.system('rm -rf ' + outname + "*")
myimagebase = outname
tclean(vis=selfcal1vis,
       imagename=myimagebase,
       field='SgrB2',
Exemple #3
0
           fitsimage=myimagebase + '.model.fits',
           dropdeg=True,
           overwrite=True)  # export the PB image
exportfits(imagename=myimagebase + '.residual',
           fitsimage=myimagebase + '.residual.fits',
           dropdeg=True,
           overwrite=True)  # export the PB image

rmtables(['phase_0.cal'])
gaincal(vis=selfcal0vis,
        caltable='phase_0.cal',
        solint='int',
        gaintype='G',
        calmode='p')

okfields, notokfields = selfcal_heuristics.goodenough_field_solutions(
    'phase_0.cal')
okfields_str = ",".join(["{0}".format(x) for x in okfields])
print("Self-calibration fields: {0}".format(okfields_str))

selfcal1vis = 'selfcal_SgrB2_TCTE_full_selfcal_iter1.ms'
rmtables([selfcal1vis])
applycal(vis=selfcal0vis,
         field=okfields_str,
         gaintable=["phase_0.cal"],
         interp="linear",
         applymode='calonly',
         calwt=False)
split(vis=selfcal0vis, outputvis=selfcal1vis, datacolumn='corrected')

outname = 'SgrB2_selfcal_full_TCTE_selfcal1'
os.system('rm -rf ' + outname + "*")
Exemple #4
0
rmtables('selfcal_spw3_phase_2.cal')
gaincal(vis=vis1,
        caltable="selfcal_spw3_phase_2.cal",
        field=field,
        solint=solint,
        calmode="p",
        refant="DV07",
        gaintype="G",
        minsnr=5,
        uvrange='100~5000m')
#plotcal(caltable="selfcal_spw3_phase_2.cal", xaxis="time", yaxis="phase", subplot=331,
#        iteration="antenna", plotrange=[0,0,-30,30], markersize=5,
#        fontsize=10.0,)
assert len(
    selfcal_heuristics.goodenough_field_solutions("selfcal_spw3_phase_2.cal",
                                                  minsnr=5,
                                                  maxphasenoise=np.pi / 4.,
                                                  pols=[0])) > 0
print(
    "Goodenough field solns: ",
    selfcal_heuristics.goodenough_field_solutions("selfcal_spw3_phase_2.cal",
                                                  minsnr=5,
                                                  maxphasenoise=np.pi / 4.,
                                                  pols=[0]))

flagmanager(vis=vis1, mode='save', versionname='backup')
applycal(vis=vis1,
         field="",
         gaintable=["selfcal_spw3_phase_2.cal"],
         interp="linear",
         applymode='calonly',
         calwt=False)
           fitsimage=myimagebase + '.model.fits',
           dropdeg=True,
           overwrite=True)  # export the PB image
exportfits(imagename=myimagebase + '.residual',
           fitsimage=myimagebase + '.residual.fits',
           dropdeg=True,
           overwrite=True)  # export the PB image

rmtables(['phase_0.cal'])
gaincal(vis=selfcal0vis,
        caltable='phase_0.cal',
        solint='int',
        gaintype='G',
        calmode='p')

okfields, not_ok_fields = selfcal_heuristics.goodenough_field_solutions(
    'phase_0.cal')
okfields_str = ",".join(["{0}".format(x) for x in okfields])

# plotcal(caltable='phase_0.cal', xaxis='time', yaxis='phase', iteration='antenna', field=okfields_str, subplot=331)

print("Iteration 0: Self-calibrating on field IDs {0}".format(okfields_str))
# flag out the fields that do not have solutions
# (this should be overkill/redundant with not applying bad cals in the applycal step)
flagdata(vis='phase_0.cal',
         field=",".join(map(str, not_ok_fields)),
         mode='manual')

selfcal1vis = 'selfcal_SgrB2_TE_full_selfcal_iter1.ms'
rmtables([selfcal1vis])
applycal(vis=selfcal0vis,
         field=okfields_str,
       savemodel='modelcolumn')
exportfits(myimagebase+'.image', myimagebase+'.image.fits', dropdeg=True, overwrite=True)
impbcor(imagename=myimagebase+'.image',pbimage=myimagebase+'.pb',
        outfile=myimagebase+'.image.pbcor', overwrite=True)
exportfits(myimagebase+'.image.pbcor', myimagebase+'.image.pbcor.fits', dropdeg=True, overwrite=True)
exportfits(myimagebase+'.model', myimagebase+'.model.fits', dropdeg=True, overwrite=True)
exportfits(myimagebase+'.residual', myimagebase+'.residual.fits', dropdeg=True, overwrite=True)

rmtables('selfcal_spw3_phase_2.cal')
gaincal(vis=vis1, caltable="selfcal_spw3_phase_2.cal", field=field,
        solint=solint, calmode="p", refant="DV07", gaintype="G", minsnr=5,
        uvrange='100~5000m')
#plotcal(caltable="selfcal_spw3_phase_2.cal", xaxis="time", yaxis="phase", subplot=331,
#        iteration="antenna", plotrange=[0,0,-30,30], markersize=5,
#        fontsize=10.0,)
assert len(selfcal_heuristics.goodenough_field_solutions("selfcal_spw3_phase_2.cal", minsnr=5, maxphasenoise=np.pi/4., pols=[0])) > 0
print("Goodenough field solns: ",selfcal_heuristics.goodenough_field_solutions("selfcal_spw3_phase_2.cal", minsnr=5, maxphasenoise=np.pi/4., pols=[0]))


flagmanager(vis=vis1, mode='save', versionname='backup')
applycal(vis=vis1, field="", gaintable=["selfcal_spw3_phase_2.cal"],
         interp="linear", applymode='calonly', calwt=False)
flagmanager(vis=vis1, mode='restore', versionname='backup')
summary1 = flagdata(vis=vis1, mode='summary')
print("{flagged}/{total} flagged points in vis1".format(**summary1))
vis2 = 'w51_continuum_7m12m_contvis_selfcal_2.ms'
os.system('rm -rf {0}'.format(vis2))
os.system('rm -rf {0}.flagversions'.format(vis2))
split(vis=vis1, outputvis=vis2,
      datacolumn="corrected")