######################################################### # This script is for CASA Version 3.3 and WILL NOT WORK # # in CASA Version 3.4 # ######################################################### # The Tsys, WVR, and Antenna position corrections have already been # applied to these data. Plots of the TDM Tsys are provided for # reference. ########################### # Initial data inspection # ########################### decimated_data = ['X1ed.decimated.ms','X39.decimated.ms','X3bf.decimated.ms','X4fb.decimated.ms'] for vis in decimated_data: listobs(vis=vis, listfile=vis+'.listobs.txt') # Field 0 = J1924-292 (bandpass) # Field 1 = Neptune (amplitude) # Field 2 = J1625-254 (gain) # Field 3 = IRAS 16293-2422-a (science) # Field 4 = IRAS 16293-2422-a (science) ############################ # Plot Neptune's elevation # ############################ plotms(vis='X1ed.decimated.ms', xaxis='time', yaxis='elevation', coloraxis='field', antenna='DV03&DV04') # Neptune at ~25 degrees plotms(vis='X39.decimated.ms', xaxis='time', yaxis='elevation', coloraxis='field', antenna='DV03&DV04') # Neptune at ~5 degrees plotms(vis='X3bf.decimated.ms', xaxis='time', yaxis='elevation', coloraxis='field', antenna='DV03&DV04') # Neptune at 45 degrees plotms(vis='X4fb.decimated.ms', xaxis='time', yaxis='elevation', coloraxis='field', antenna='DV03&DV04') # Neptune at 65 degrees ############################################## # Note to self # # Use Neptune at two higher elevation tracks # # to get flux for other quasars # ############################################## ############################ # Set up the Neptune model # ############################ decimated_data = ['X1ed.decimated.ms','X39.decimated.ms','X3bf.decimated.ms','X4fb.decimated.ms'] for vis in decimated_data: setjy(vis=vis, field='Neptune', standard='Butler-JPL-Horizons 2010',scalebychan=F) # Check that this worked (it did) plotms(vis='X1ed.decimated.ms',field='Neptune',xaxis='uvdist',yaxis='amp',ydatacolumn='model') ######################## # Bandpass calibration # ######################## decimated_data = ['X1ed.decimated.ms','X39.decimated.ms','X3bf.decimated.ms','X4fb.decimated.ms'] plotms(vis='X1ed.decimated.ms', field='0', coloraxis='corr', xaxis='time', yaxis='phase', antenna='DV03&DV04', ydatacolumn='data') plotms(vis='X1ed.decimated.ms', field='0', coloraxis='corr', xaxis='channel', yaxis='phase', antenna='DV03&DV04', ydatacolumn='data') # initial phase calibration for vis in decimated_data: gaincal(vis=vis, caltable=vis+'.bpphase.gcal', field='0', spw='0:100~200', refant='DV03', calmode='p', solint='int', minsnr=2.0, minblperant=4) # plot initial phase calibration for vis in decimated_data: plotcal(caltable=vis+'.bpphase.gcal',xaxis='time',yaxis='phase', iteration='antenna',subplot=421,plotrange=[0,0,-180,180], figfile=vis+'.bpphase.X.png',poln='X') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # bandpass calibration for vis in decimated_data: bandpass(vis=vis,caltable=vis+'.bandpass.bcal', field='0',spw='',combine='',refant='DV03', solint='inf',solnorm=T,minblperant=4,fillgaps=17, gaintable=[vis+'.bpphase.gcal']) # plot bandpass amp vs freq for vis in decimated_data: plotcal(caltable=vis+'.bandpass.bcal',xaxis='freq',yaxis='amp', iteration='antenna',subplot=421,figfile=vis+'.bandpass.amp.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # plot bandpass phase vs freq for vis in decimated_data: plotcal(caltable=vis+'.bandpass.bcal',xaxis='freq',yaxis='phase', iteration='antenna',subplot=421,figfile=vis+'.bandpass.phase.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') #################### # Gain calibration # #################### decimated_data = ['X1ed.decimated.ms','X39.decimated.ms','X3bf.decimated.ms','X4fb.decimated.ms'] # integration length solution for vis in decimated_data: gaincal(vis=vis,caltable=vis+'.intphase.gcal', field='0,1,2',refant='DV03', calmode='p',solint='int',minsnr=2.0,minblperant=4, gaintable=[vis+'.bandpass.bcal']) # scan length solution for vis in decimated_data: gaincal(vis=vis,caltable=vis+'.scanphase.gcal', field='0,1,2',refant='DV03', calmode='p',solint='inf',minsnr=2.0,minblperant=4, gaintable=[vis+'.bandpass.bcal']) # amplitude calibration for vis in decimated_data: gaincal(vis=vis,caltable=vis+'.amp.gcal', field='0,1,2',refant='DV03', calmode='ap',solint='inf',minsnr=2.0,minblperant=4, gaintable=[vis+'.bandpass.bcal',vis+'.intphase.gcal']) # plot solutions # Note that the phase vs time solution for Neptune in X39.decimated.ms is no good, probably # because it is at very low elevation for vis in decimated_data: plotcal(caltable=vis+'.intphase.gcal',xaxis='time',yaxis='phase', field='0,1,2',iteration='antenna',subplot=421, plotrange=[0,0,-180,180],poln='X',figfile=vis+'.intphase_X.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') for vis in decimated_data: plotcal(caltable=vis+'.intphase.gcal',xaxis='time',yaxis='phase', field='0,1,2',iteration='antenna',subplot=421, plotrange=[0,0,-180,180],poln='Y',figfile=vis+'.intphase_Y.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') for vis in decimated_data: plotcal(caltable=vis+'.scanphase.gcal',xaxis='time',yaxis='phase', field='0,1,2',iteration='antenna',subplot=421, plotrange=[0,0,-180,180],poln='X',figfile=vis+'.scanphase_X.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') for vis in decimated_data: plotcal(caltable=vis+'.scanphase.gcal',xaxis='time',yaxis='phase', field='0,1,2',iteration='antenna',subplot=421, plotrange=[0,0,-180,180],poln='Y',figfile=vis+'.scanphase_Y.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') for vis in decimated_data: plotcal(caltable=vis+'.amp.gcal',xaxis='time',yaxis='phase', field='0,1,2',plotrange=[0,0,-180,180], iteration='antenna',subplot=421,figfile=vis+'.amp_phase.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') for vis in decimated_data: plotcal(caltable=vis+'.amp.gcal',xaxis='time',yaxis='amp', iteration='antenna',subplot=421,spw='',poln='X', plotrange=[0,0,0.0,0.3],figfile=vis+'.amp_X.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') for vis in decimated_data: plotcal(caltable=vis+'.amp.gcal',xaxis='time',yaxis='amp', iteration='antenna',subplot=421,spw='',poln='Y', plotrange=[0,0,0.0,0.3],figfile=vis+'.amp_Y.png') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # Flux scale for two tracks with Neptune not too low in elevation Neptune_data = ['X3bf.decimated.ms','X4fb.decimated.ms'] for vis in Neptune_data: fluxscale(vis=vis,caltable=vis+'.amp.gcal', fluxtable=vis+'.flux.cal',reference='1') # For these, the flux of the gain cal averages ~0.95 Jy # Use setjy for gaincal, transfer to other fields J1625_data = ['X1ed.decimated.ms','X39.decimated.ms'] for vis in J1625_data: setjy(vis=vis, field='J1625-254', fluxdensity=[0.95,0,0,0]) for vis in J1625_data: fluxscale(vis=vis,caltable=vis+'.amp.gcal', fluxtable=vis+'.flux.cal',reference='2') ###################################### # Apply calibration and inspect data # ###################################### # Save flag state, just in case decimated_data = ['X1ed.decimated.ms','X39.decimated.ms','X3bf.decimated.ms','X4fb.decimated.ms'] for vis in decimated_data: flagmanager(vis=vis, mode='save', versionname=vis+'.before_apply') # Apply calibration to bandpass calibrator (field 0) for vis in decimated_data: applycal(vis=vis,field='0', gaintable=[vis+'.bandpass.bcal',vis+'.intphase.gcal',vis+'.flux.cal'], interp=['nearest','nearest','nearest'], gainfield=['0','0','0'],flagbackup=T) # Apply calibration to amplitude calibrator (field 1) for vis in decimated_data: applycal(vis=vis,field='1', gaintable=[vis+'.bandpass.bcal',vis+'.intphase.gcal',vis+'.flux.cal'], interp=['nearest','nearest','nearest'], gainfield=['0','1','1'],flagbackup=T) # Apply calibration to gain calibrator (field 2) for vis in decimated_data: applycal(vis=vis,field='2', gaintable=[vis+'.bandpass.bcal',vis+'.intphase.gcal',vis+'.flux.cal'], interp=['nearest','nearest','nearest'], gainfield=['0','2','2'],flagbackup=T) # Apply calibration to first science target (field 3) for vis in decimated_data: applycal(vis=vis,field='3', gaintable=[vis+'.bandpass.bcal',vis+'.intphase.gcal',vis+'.flux.cal'], interp=['nearest','linear','linear'], gainfield=['0','2','2'],flagbackup=T) # Apply calibration to first science target (field 4) for vis in decimated_data: applycal(vis=vis,field='4', gaintable=[vis+'.bandpass.bcal',vis+'.intphase.gcal',vis+'.flux.cal'], interp=['nearest','linear','linear'], gainfield=['0','2','2'],flagbackup=T) # Check results of applycal # Amp vs time for vis in decimated_data: plotms(vis=vis,xaxis='time',yaxis='amp',avgchannel='500', coloraxis='field',ydatacolumn='corrected') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # phase vs time for vis in decimated_data: plotms(vis=vis,xaxis='time',yaxis='phase',avgchannel='500', coloraxis='field',ydatacolumn='corrected') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # amp vs uvdist for vis in decimated_data: plotms(vis=vis,field='1',xaxis='uvdist',yaxis='amp', ydatacolumn='corrected',avgchannel='500') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # Amp vs channel for vis in decimated_data: plotms(vis=vis,xaxis='channel',yaxis='amp',avgtime='50000', coloraxis='field',ydatacolumn='corrected', field='0,2', avgscan=True, avgchannel='10') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # Phase vs channel for vis in decimated_data: plotms(vis=vis,xaxis='channel',yaxis='phase',avgtime='50000', iteraxis='field',ydatacolumn='corrected', field='0,2', avgscan=True, avgchannel='10') print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') # Amp vs channel for vis in decimated_data: plotms(vis=vis,xaxis='channel',yaxis='amp',avgtime='50000', coloraxis='field',ydatacolumn='corrected', field='3,4', avgscan=True) print('When you are done with the graphics window,') print('quit that window, and') user_check=raw_input('press enter to continue script\n') ######### # split # ######### decimated_data = ['X1ed.decimated.ms','X39.decimated.ms','X3bf.decimated.ms','X4fb.decimated.ms'] for vis in decimated_data: split(vis=vis, outputvis=vis+'.I16293', datacolumn='corrected', field='3,4')