######################################################################## # ALMA Data reduction script for Comet Lemmon Band 6 data: Calibration # CometLemmon_Band6_Calibration.py # Tested using CASA Version 4.2.1 (r29048) # # Datasets used: # uid___A002_X62f759_X2363.ms # - Observed on 11 May 2013 with 25 12-m antennas # --- See Readme file for additional details --- ######################################################################## """ See accompanying README file for details of the necessary input files and comments on the data. Prior to running this script you will need to obtain the Analysis Utilities package. See http://casaguides.nrao.edu/index.php?title=Analysis_Utilities for details and for how to download Analysis Utilities. """ #---------------------------------------------------------------------------------- #----- Calibration of uid___A002_X62f759_X2363.ms --------------------------------- #---------------------------------------------------------------------------------- #---------------------------------------------------------------------------------- #----- Optional Steps ------------------------------------------------------------- #---------------------------------------------------------------------------------- # The Python variable 'mysteps' will control which steps # are executed when you start the script using # execfile('CometLemmon_Band6_Calibration.py') # e.g. setting # mysteps = [2,3,4]# before starting the script will make the script execute # only steps 2, 3, and 4 # Setting mysteps = [] will make it execute all steps. thesteps = [] step_title = {0: 'Import of the ASDM', 1: 'Fix of SYSCAL table times', 2: 'listobs', 3: 'A priori flagging', 4: 'Generation and time averaging of the WVR cal table', 5: 'Generation of the Tsys cal table', 6: 'Generation of the antenna position cal table', 7: 'Application of the WVR, Tsys and antpos cal tables', 8: 'Split out science SPWs and time average', 9: 'Listobs, clear pointing table, and save original flags', 10: 'Initial flagging', 11: 'Putting a model for the flux calibrator(s)', 12: 'Save flags before bandpass cal', 13: 'Bandpass calibration', 14: 'Save flags before gain cal', 15: 'Gain calibration', 16: 'Save flags before applycal', 17: 'Application of the bandpass and gain cal tables', 18: 'Split out corrected column'} if 'applyonly' not in globals(): applyonly = False try: print 'List of steps to be executed ...', mysteps thesteps = mysteps except: print 'global variable mysteps not set.' if (thesteps==[]): thesteps = range(0,len(step_title)) print 'Executing all steps: ', thesteps #----- Set this option to true if you want to run this script interactively to make inspection plots. #----- You'll need to hit at various stages to continue the script. #----- Default is true (user input is required). #----- Set to false if you want no user interaction except clean. interact=T #---------------------------------------------------------------------------------- #----- Some setup steps ----------------------------------------------------------- #---------------------------------------------------------------------------------- import re import os if applyonly != True: es = aU.stuffForScienceDataReduction() version = casalog.version() print "You are using " + version if (version < '4.2.1'): print "\033[91m YOUR VERSION OF CASA IS TOO OLD FOR THIS GUIDE." print "\033[91m PLEASE UPDATE IT BEFORE PROCEEDING." else: print "Your version of CASA is appropriate for this guide." #if re.search('^4.2', casadef.casa_version) == None: # sys.exit('ERROR: PLEASE USE THE SAME VERSION OF CASA THAT YOU USED FOR GENERATING THE SCRIPT: 4.2') # CALIBRATE_AMPLI: # CALIBRATE_ATMOSPHERE: Ephemeris,J000613-062338,J2232+117 # CALIBRATE_BANDPASS: J2232+117 # CALIBRATE_FLUX: # CALIBRATE_FOCUS: # CALIBRATE_PHASE: J000613-062338 # CALIBRATE_POINTING: J000613-062338,J2232+117 # OBSERVE_TARGET: Ephemeris # Using reference antenna = DV10 #---------------------------------------------------------------------------------- #----- Import of the ASDM to ms --------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 0 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] if os.path.exists('uid___A002_X62f759_X2363.ms') == False: importasdm('uid___A002_X62f759_X2363', asis='Antenna Station Receiver Source CalAtmosphere CalWVR') if applyonly != True: es.fixForCSV2555('uid___A002_X62f759_X2363.ms') #---------------------------------------------------------------------------------- #----- Fix of SYSCAL table times -------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 1 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] from recipes.almahelpers import fixsyscaltimes fixsyscaltimes(vis = 'uid___A002_X62f759_X2363.ms') print "# A priori calibration" #---------------------------------------------------------------------------------- #----- Initial summary information and data inspection ---------------------------- #---------------------------------------------------------------------------------- #----- Create a summary text file using listobs mystep = 2 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.listobs') listobs(vis = 'uid___A002_X62f759_X2363.ms', listfile = 'uid___A002_X62f759_X2363.ms.listobs') #----- Inspect amplitude versus time for each dataset if(interact): plotms(vis='uid___A002_X62f759_X2363.ms', interactive=T, spw='1', xaxis='time', yaxis='amp', correlation='XX', antenna='*&*', avgchannel='10000',coloraxis='field') dummy_string = raw_input("Once the plot has loaded, hit to see the next data set") #---------------------------------------------------------------------------------- #----- A priori flagging --------------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 3 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] flagdata(vis = 'uid___A002_X62f759_X2363.ms', mode = 'manual', spw = '1~24', autocorr = T, flagbackup = F) flagdata(vis = 'uid___A002_X62f759_X2363.ms', mode = 'manual', intent = '*POINTING*,*SIDEBAND_RATIO*,*ATMOSPHERE*', flagbackup = F) flagcmd(vis = 'uid___A002_X62f759_X2363.ms', inpmode = 'table', useapplied = True, action = 'plot', plotfile = 'uid___A002_X62f759_X2363.ms.flagcmd.png') flagcmd(vis = 'uid___A002_X62f759_X2363.ms', inpmode = 'table', useapplied = True, action = 'apply') flagdata(vis = 'uid___A002_X62f759_X2363.ms', mode = 'manual', antenna = 'CM*', flagbackup = F) #---------------------------------------------------------------------------------- #----- Generation and time averaging of the WVR cal table ------------------------ #---------------------------------------------------------------------------------- mystep = 4 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.wvr') mylogfile = casalog.logfile() casalog.setlogfile('uid___A002_X62f759_X2363.ms.wvrgcal') wvrgcal(vis = 'uid___A002_X62f759_X2363.ms', caltable = 'uid___A002_X62f759_X2363.ms.wvr', toffset = 0, tie = ['Ephemeris,J000613-062338'], statsource = 'Ephemeris') casalog.setlogfile(mylogfile) # This is a temporary workaround, which will be included in a future version of CASA tb.open('uid___A002_X62f759_X2363.ms.wvr', nomodify=False) count = 0 numrows = tb.nrows() mycparamcol = tb.getcol('CPARAM') for i in range(0, numrows): if mycparamcol[0][0][i] == (1.+0.j): tb.putcell('FLAG', i, [[True]]) count += 1 tb.close() del mycparamcol if(numrows>0): print 'Flagged', count, 'of', numrows, 'solutions =', 100.*count/float(numrows),'%' os.system('rm -rf uid___A002_X62f759_X2363.ms.wvr.smooth') smoothcal(vis = 'uid___A002_X62f759_X2363.ms', tablein = 'uid___A002_X62f759_X2363.ms.wvr', caltable = 'uid___A002_X62f759_X2363.ms.wvr.smooth', smoothtype = 'mean', smoothtime = 6.048) if applyonly != True: aU.plotWVRSolutions(caltable='uid___A002_X62f759_X2363.ms.wvr.smooth', spw='17', antenna='DV10', yrange=[-180,180],subplot=22, interactive=False, figfile='uid___A002_X62f759_X2363.ms.wvr.smooth.plots/uid___A002_X62f759_X2363.ms.wvr.smooth') #Note: If you see wraps in these plots, try changing yrange or unwrap=True #Note: If all plots look strange, it may be a bad WVR on the reference antenna. # To check, you can set antenna='' to show all baselines. #---------------------------------------------------------------------------------- #----- Generation of the Tsys cal table ------------------------------------------ #---------------------------------------------------------------------------------- mystep = 5 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.tsys') gencal(vis = 'uid___A002_X62f759_X2363.ms', caltable = 'uid___A002_X62f759_X2363.ms.tsys', caltype = 'tsys') if applyonly != True: aU.plotbandpass(caltable='uid___A002_X62f759_X2363.ms.tsys', overlay='time', xaxis='freq', yaxis='amp', subplot=22, buildpdf=False, interactive=False, showatm=True,pwv='auto',chanrange='5~123',showfdm=True, field='', figfile='uid___A002_X62f759_X2363.ms.tsys.plots.overlayTime/uid___A002_X62f759_X2363.ms.tsys') if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.tsys', msName='uid___A002_X62f759_X2363.ms', interactive=False) #---------------------------------------------------------------------------------- #----- Generation of the antenna position cal table ------------------------------ #---------------------------------------------------------------------------------- mystep = 6 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] # Note: no baseline run found for antenna DV19. # Position for antenna DA48 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV18 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV11 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV10 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV13 is derived from baseline run made on 2013-03-08 03:29:55. # Note: the correction for antenna DA46 is larger than 2mm. # Position for antenna DA46 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV15 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV14 is derived from baseline run made on 2013-02-01 06:40:08. # Position for antenna DA42 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV25 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DA56 is derived from baseline run made on 2013-03-08 03:29:55. # Note: no baseline run found for antenna DA57. # Position for antenna DV08 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DA55 is derived from baseline run made on 2013-03-08 03:29:55. # Note: no baseline run found for antenna DV07. # Position for antenna DV22 is derived from baseline run made on 2013-03-04 05:12:58. # Position for antenna DA52 is derived from baseline run made on 2012-11-15 10:54:37. # Position for antenna DA53 is derived from baseline run made on 2012-11-26 08:28:15. # Position for antenna DA50 is derived from baseline run made on 2013-03-05 08:03:59. # Position for antenna CM09 is derived from baseline run made on 2013-05-10 03:34:01. # Note: the correction for antenna DV02 is larger than 2mm. # Position for antenna DV02 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV03 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DV20 is derived from baseline run made on 2013-03-08 03:29:55. # Position for antenna DA54 is derived from baseline run made on 2013-03-08 03:29:55. os.system('rm -rf uid___A002_X62f759_X2363.ms.antpos') gencal(vis = 'uid___A002_X62f759_X2363.ms', caltable = 'uid___A002_X62f759_X2363.ms.antpos', caltype = 'antpos', antenna = 'DV20,DV18,DA48,DV11,DV10,DV13,DA46,DV15,DV14,DA42,DA54,DA50,DA52,DA53,DV22,DA56,DV25,DV08,DA55,CM09,DV02,DV03', parameter = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]) # parameter = [-0.000250005162011,0.000164826417856,-0.000107292455209,8.62966749145e-05,-0.000292864338331,-0.000368122755658,5.64371793712e-05,-0.000299114951954,-5.21065284036e-05,-0.000175774718765,0.000358441688395,0.000131269967105,-5.28077276328e-05,-0.000153535691091,-0.000122115254836,-0.00131114807082,-0.000389466791245,-9.56679407678e-05,0.00012345166365,-0.00293789649409,-0.00187125836718,-0.000314983729449,-0.000167627443329,-0.00032886667576,-5.4792737101e-05,0.000258118998426,-0.000283313145852,-0.000173655675213,0.000178908797411,9.22515510727e-05,-0.000131972316405,-0.000213564258997,2.75952563174e-06,0.000407252070512,-0.00075532423917,-5.63564085708e-05,0.000318341442464,-0.000117936271773,-0.000345552835048,7.41798430681e-07,-3.03611159325e-07,-1.27591192722e-07,1.31768122186e-05,-0.000143154510545,-0.000319654747705,-0.000159427989274,-0.000339278951287,-6.70487061143e-05,-0.000253556325163,3.35014788616e-05,-0.000617190279317,0.000641647549741,0.000628967193973,-3.47806097768e-05,-9.31536587627e-05,-0.000271491045892,-0.000174797047628,5.46308586478e-05,0.000510964064225,7.80525102297e-05,-0.0014880554049,-0.00148101428428,-0.000751206896737,-0.00131412509976,-0.0001603021282,-0.000125049789539]) #---------------------------------------------------------------------------------- #----- Application of the WVR, Tsys and antpos cal tables ------------------------ #---------------------------------------------------------------------------------- mystep = 7 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] from recipes.almahelpers import tsysspwmap tsysmap = tsysspwmap(vis = 'uid___A002_X62f759_X2363.ms', tsystable = 'uid___A002_X62f759_X2363.ms.tsys', tsysChanTol = 1) applycal(vis = 'uid___A002_X62f759_X2363.ms', field = '0', spw = '17,19,21,23', gaintable = ['uid___A002_X62f759_X2363.ms.tsys', 'uid___A002_X62f759_X2363.ms.wvr.smooth', 'uid___A002_X62f759_X2363.ms.antpos'], gainfield = ['0', '', ''], interp = 'linear,linear', spwmap = [tsysmap,[],[]], calwt = T, flagbackup = F) applycal(vis = 'uid___A002_X62f759_X2363.ms', field = '1', spw = '17,19,21,23', gaintable = ['uid___A002_X62f759_X2363.ms.tsys', 'uid___A002_X62f759_X2363.ms.wvr.smooth', 'uid___A002_X62f759_X2363.ms.antpos'], gainfield = ['1', '', ''], interp = 'linear,linear', spwmap = [tsysmap,[],[]], calwt = T, flagbackup = F) applycal(vis = 'uid___A002_X62f759_X2363.ms', field = '2', spw = '17,19,21,23', gaintable = ['uid___A002_X62f759_X2363.ms.tsys', 'uid___A002_X62f759_X2363.ms.wvr.smooth', 'uid___A002_X62f759_X2363.ms.antpos'], gainfield = ['2', '', ''], interp = 'linear,linear', spwmap = [tsysmap,[],[]], calwt = T, flagbackup = F) if applyonly != True: es.getCalWeightStats('uid___A002_X62f759_X2363.ms') #---------------------------------------------------------------------------------- #----- Split out science SPWs and time average ------------------------------------ #---------------------------------------------------------------------------------- mystep = 8 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.split') split(vis = 'uid___A002_X62f759_X2363.ms', outputvis = 'uid___A002_X62f759_X2363.ms.split', datacolumn = 'corrected', spw = '17,19,21,23', keepflags = T) print "# Calibration" #---------------------------------------------------------------------------------- #----- Listobs, clear pointing table, and save original flags --------------------- #---------------------------------------------------------------------------------- mystep = 9 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.split.listobs') listobs(vis = 'uid___A002_X62f759_X2363.ms.split', listfile = 'uid___A002_X62f759_X2363.ms.split.listobs') tb.open('uid___A002_X62f759_X2363.ms.split/POINTING', nomodify = False) a = tb.rownumbers() tb.removerows(a) tb.close() if not os.path.exists('uid___A002_X62f759_X2363.ms.split.flagversions/Original.flags'): flagmanager(vis = 'uid___A002_X62f759_X2363.ms.split', mode = 'save', versionname = 'Original') #---------------------------------------------------------------------------------- #----- Initial flagging ----------------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 10 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] # Flagging shadowed data flagdata(vis = 'uid___A002_X62f759_X2363.ms.split', mode = 'shadow', flagbackup = F) #---------------------------------------------------------------------------------- #----- Putting a model for the flux calibrator(s) --------------------------------- #---------------------------------------------------------------------------------- mystep = 11 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] setjy(vis = 'uid___A002_X62f759_X2363.ms.split', field = '0', standard = 'manual', fluxdensity=[1.7368,0,0,0], spix = -0.77, reffreq= '267.0GHz') #---------------------------------------------------------------------------------- #----- Save flags before bandpass cal --------------------------------------------- #---------------------------------------------------------------------------------- mystep = 12 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] flagmanager(vis = 'uid___A002_X62f759_X2363.ms.split', mode = 'save', versionname = 'BeforeBandpassCalibration') #---------------------------------------------------------------------------------- #----- Bandpass calibration ------------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 13 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.split.ap_pre_bandpass') gaincal(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.ap_pre_bandpass', field = '0', # J2232+117 spw = '0:1536~2304,1:1536~2304,2:1536~2304,3:1536~2304', solint = 'int', refant = 'DV10', calmode = 'p') if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.split.ap_pre_bandpass', msName='uid___A002_X62f759_X2363.ms.split', interactive=False) os.system('rm -rf uid___A002_X62f759_X2363.ms.split.bandpass') bandpass(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.bandpass', field = '0', # J2232+117 solint = 'inf', combine = 'scan', refant = 'DV10', solnorm = T, bandtype = 'B', gaintable = 'uid___A002_X62f759_X2363.ms.split.ap_pre_bandpass') os.system('rm -rf uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch') bandpass(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch', field = '0', # J2232+117 solint = 'inf,20ch', combine = 'scan', refant = 'DV10', solnorm = T, bandtype = 'B', gaintable = 'uid___A002_X62f759_X2363.ms.split.ap_pre_bandpass') if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch', msName='uid___A002_X62f759_X2363.ms.split', interactive=False) if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.split.bandpass', msName='uid___A002_X62f759_X2363.ms.split', interactive=False) #---------------------------------------------------------------------------------- #----- Save flags before gain cal ------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 14 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] flagmanager(vis = 'uid___A002_X62f759_X2363.ms.split', mode = 'save', versionname = 'BeforeGainCalibration') #---------------------------------------------------------------------------------- #----- Gain calibration ----------------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 15 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.split.phase_int') gaincal(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.phase_int', field = '0~1', # J2232+117,J000613-062338 solint = 'int', refant = 'DV10', gaintype = 'G', calmode = 'p', gaintable = 'uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch') if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.split.phase_int', msName='uid___A002_X62f759_X2363.ms.split', interactive=False) os.system('rm -rf uid___A002_X62f759_X2363.ms.split.ampli_inf') gaincal(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.ampli_inf', field = '0~1', # J2232+117,J000613-062338 solint = 'inf', refant = 'DV10', gaintype = 'T', calmode = 'a', gaintable = ['uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch', 'uid___A002_X62f759_X2363.ms.split.phase_int']) os.system('rm -rf uid___A002_X62f759_X2363.ms.split.flux_inf') os.system('rm -rf uid___A002_X62f759_X2363.ms.split.fluxscale') mylogfile = casalog.logfile() casalog.setlogfile('uid___A002_X62f759_X2363.ms.split.fluxscale') fluxscale(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.ampli_inf', fluxtable = 'uid___A002_X62f759_X2363.ms.split.flux_inf', reference = '0') # J0238+166 if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.split.flux_inf', msName='uid___A002_X62f759_X2363.ms.split', interactive=False) os.system('rm -rf uid___A002_X62f759_X2363.ms.split.phase_inf') gaincal(vis = 'uid___A002_X62f759_X2363.ms.split', caltable = 'uid___A002_X62f759_X2363.ms.split.phase_inf', field = '0~1', # J2232+117,J000613-062338 solint = 'inf', refant = 'DV10', gaintype = 'G', calmode = 'p', gaintable = 'uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch') if applyonly != True: es.checkCalTable('uid___A002_X62f759_X2363.ms.split.phase_inf', msName='uid___A002_X62f759_X2363.ms.split', interactive=False) #---------------------------------------------------------------------------------- #----- Save flags before applycal ------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 16 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] flagmanager(vis = 'uid___A002_X62f759_X2363.ms.split', mode = 'save', versionname = 'BeforeApplycal') #---------------------------------------------------------------------------------- #----- Application of the bandpass and gain cal tables ---------------------------- #---------------------------------------------------------------------------------- mystep = 17 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] for i in ['0']: # J2232+117 applycal(vis = 'uid___A002_X62f759_X2363.ms.split', field = i, gaintable = ['uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch', 'uid___A002_X62f759_X2363.ms.split.phase_int', 'uid___A002_X62f759_X2363.ms.split.flux_inf'], gainfield = ['', i, i], interp = 'linear,linear', calwt = F, flagbackup = F) applycal(vis = 'uid___A002_X62f759_X2363.ms.split', field = '1,2', # Ephemeris gaintable = ['uid___A002_X62f759_X2363.ms.split.bandpass_smooth20ch', 'uid___A002_X62f759_X2363.ms.split.phase_inf', 'uid___A002_X62f759_X2363.ms.split.flux_inf'], gainfield = ['', '1', '1'], # J000613-062338 interp = 'linear,linear', calwt = F, flagbackup = F) #---------------------------------------------------------------------------------- #----- Split out corrected column ------------------------------------------------- #---------------------------------------------------------------------------------- mystep = 18 if(mystep in thesteps): casalog.post('Step '+str(mystep)+' '+step_title[mystep],'INFO') print 'Step ', mystep, step_title[mystep] os.system('rm -rf uid___A002_X62f759_X2363.ms.split.cal') split(vis = 'uid___A002_X62f759_X2363.ms.split', outputvis = 'uid___A002_X62f759_X2363_12m.ms.split.cal', datacolumn = 'corrected',antenna= 'D*&', keepflags = F) #---------------------------------------------------------------------------------- #----- Make some plots to check everything looks ok and see if -------------------- #----- anything else needs flagging ----------------------------------------------- #---------------------------------------------------------------------------------- if(interact): # Plot the corrected amplitude of Comet Lemmon as function of frequency plotms(vis='uid___A002_X62f759_X2363_12m.ms.split.cal', xaxis='freq', yaxis='amp', ydatacolumn='corrected', selectdata=True, field='Ephermeris', averagedata=True, avgchannel='', avgtime='10000s', avgscan=True, avgbaseline=T, coloraxis='spw') #---------------------------------------------------------------------------------- #----- End of calibration script. #----- To continue, see imaging script "CometLemmon_Band6_Imaging.py" #----------------------------------------------------------------------------------