NGC3256Band3 for CASA 3.3: Difference between revisions

From CASA Guides
Jump to navigationJump to search
Mzwaan (talk | contribs)
Evillard (talk | contribs)
No edit summary
Line 8: Line 8:
[What else are we going to do to the data we provide?]
[What else are we going to do to the data we provide?]


Along with the Measurement Sets, we also provide the Tsys tables...[more]
Along with the Measurement Sets, we also provide some tables that you will need for the calibration.  These include the System Temperature (Tsys) tables, which contain corrections for atmospheric opacity, and Water Vapor Radiometer (WVR) tables, which contain the atmospheric phase corrections determined by the water vapor radiometers on each antenna.


You can download the data here:
You can download the data here:
Line 26: Line 26:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
basename=["uid___A002_X1d54a1_X5","uid___A002_X1d54a1_X174","uid___A002_X1d54a1_X2e3","uid___A002_X1d5a20_X5","uid___A002_X1d5a20_X174","uid___A002_X1d5a20_X330"]
basename=['uid___A002_X1d54a1_X5','uid___A002_X1d54a1_X174','uid___A002_X1d54a1_X2e3','uid___A002_X1d5a20_X5','uid___A002_X1d5a20_X174','uid___A002_X1d5a20_X330']
</source>
</source>


Line 118: Line 118:
</pre>
</pre>


Note that there are more than four SpwIDs even though the observations were set up to have four spectral windows.  The spectral line data themselves are found in spectral windows 1,3,5,7, which have 128 channels each. The first one is centered on the CO(1-0) emission line in the galaxy NGC 3256, and is our highest frequency spectral window. There is one additional spectral window (spw 3) in the Upper Side Band (USB), and two spectral windows (spw 5 and 7) in the Lower Side Band (LSB). These additional spectral windows are used to measure the continuum emission in the galaxy, and may contain other emission lines as well.
Note that there are more than four SpwIDs even though the observations were set up to have four spectral windows.  The spectral line data themselves are found in spectral windows 1,3,5,7, which have 128 channels each. The first one (spw 1) is centered on the CO(1-0) emission line in the galaxy NGC 3256 and is our highest frequency spectral window. There is one additional spectral window (spw 3) in the Upper Side Band (USB), and there are two spectral windows (spw 5 and 7) in the Lower Side Band (LSB). These additional spectral windows are used to measure the continuum emission in the galaxy, and may contain other emission lines as well.


Spectral windows 2,4,6,8 are the respective channel averages. These are not useful for the offline data reduction. Spectral window 0 contains the WVR data.  There are additional SpwIDs listed in the "Sources" section, which are not listed ''Spectral Windows" section. These are spectral windows reserved for the WVRs of each antenna (seven in our case). At the moment, all WVRs point to spw 0 which has nominal
Spectral windows 2,4,6,8 contain channel averages of the data in spectral windows 1,3,5,7, respectively. These are not useful for the offline data reduction. Spectral window 0 contains the WVR data.  You may notice that there are additional SpwIDs listed in the "Sources" section which are not listed in the "Spectral Windows" section. These spectral windows are reserved for the WVRs of each antenna (seven in our case). At the moment, all WVRs point to spw 0, which contains nominal frequencies. The additional spectral windows (SpwID 9-15) are therefore not used and can be ignored.
frequencies, so the additional spw's 9 to 15 are not used and can be ignored.


Another important thing to note is that the position of Titan is listed as 00:00:00.0000 +00.00.00.0000.  This is obviously not correct, and is due to the fact that for ephemeris objects the positions are currently not stored in the asdm. This will be handled correctly in the near future, but at present we have to fix this ofline.  We will fix the coordinates below by running the procedure fixplanet.  
Another important thing to note is that the position of Titan is listed as 00:00:00.0000 +00.00.00.0000.  This is due to the fact that for ephemeris objects, the positions are currently not stored in the asdm. This will be handled correctly in the near future, but at present, we have to fix this offline.  We will correct the coordinates below by running the procedure fixplanet.  


The first editing we will do is some ''a priori'' flagging. We will start by flagging the shadowed data and the autocorrelation data:
The first editing we will do is some ''a priori'' flagging. We will start by flagging the shadowed data and the autocorrelation data:
Line 130: Line 129:
# In CASA
# In CASA
for name in basename:
for name in basename:
flagdata(vis=name+".ms",flagbackup = F, mode = 'shadow')
flagdata(vis=name+'.ms',flagbackup = F, mode = 'shadow')
flagautocorr(vis=name+".ms")
flagautocorr(vis=name+'.ms')
</source>
</source>


There are a number of scans in the data that were used by the online system for pointing calibration. These scans are no longer needed, and we can flag them easily by selecting on 'intent':
There are a number of scans in the data that were used by the online system for pointing calibration. These scans are no longer needed, and we can flag them easily by selecting on 'intent':
[FLAGGING HERE IS FINE, BUT IT WILL HAVE TO LOOP OVER THE MS's]


<source lang="python">
<source lang="python">
# In CASA
# In CASA
for name in basename:
for name in basename:
         flagdata(vis='ngc3256_line.ms', mode='manualflag', flagbackup = F, intent="*POINTING*")
         flagdata(vis=name+'.ms', mode='manualflag', flagbackup = F, intent='*POINTING*')
</source>
</source>


Line 148: Line 145:
# In CASA
# In CASA
for name in basename:
for name in basename:
         flagdata(vis='ngc3256_line.ms', mode='manualflag', flagbackup = F, intent="*ATMOSPHERE*")
         flagdata(vis=name+'.ms', mode='manualflag', flagbackup = F, intent='*ATMOSPHERE*')
</source>
</source>


Line 158: Line 155:
</source>
</source>


[Martin: Is there any reason you sometimes use double quotes and sometimes single?: No, that's just me being sloppy. We should use single quotes throughout, I think.]


Some initial flagging:  For uid___A002_X1d54a1_X174.ms there is a outlying feature in spw=7, antenna DV04. This corresponds to scan 5 and 9, so we flag those data:
 
 
 
Some initial flagging:  For uid___A002_X1d54a1_X174.ms there is a outlying feature in spw=7, antenna DV04. This corresponds to scans 5 and 9, so we flag those data:


<source lang="python">
<source lang="python">
Line 177: Line 176:
name=basename[i]
name=basename[i]
os.system('rm -rf '+name+'_del.K')
os.system('rm -rf '+name+'_del.K')
gencal(vis=name+".ms", caltable=name+"_del.K",
gencal(vis=name+'.ms', caltable=name+'_del.K',
caltype="sbd", antenna="DV07", pol="X,Y", spw='1,3,5,7',
caltype='sbd', antenna='DV07', pol='X,Y', spw='1,3,5,7',
         parameter=[0.99, 1.10, -3.0, -3.0, -3.05, -3.05, -3.05, -3.05])
         parameter=[0.99, 1.10, -3.0, -3.0, -3.05, -3.05, -3.05, -3.05])
</source>
</source>
Line 192: Line 191:
for i in range(3): # loop over the first three data sets
for i in range(3): # loop over the first three data sets
name=basename[i]
name=basename[i]
applycal(vis=name+".ms", flagbackup=F, spw='1,3,5,7',
applycal(vis=name+'.ms', flagbackup=F, spw='1,3,5,7',
interp='nearest', gaintable=[name+"_del.K",name+'.W'])
interp='nearest', gaintable=[name+'_del.K',name+'.W'])


for i in range(3,6): # loop over the last three data sets
for i in range(3,6): # loop over the last three data sets
name=basename[i]
name=basename[i]
applycal(vis=name+".ms", flagbackup=F, spw='1,3,5,7',
applycal(vis=name+'.ms', flagbackup=F, spw='1,3,5,7',
interp='nearest', gaintable=name+'.W')
interp='nearest', gaintable=name+'.W')
</source>
</source>
Line 207: Line 206:
for name in basename:
for name in basename:
os.system('rm -rf '+name+'_K_WVR.ms*')
os.system('rm -rf '+name+'_K_WVR.ms*')
split(vis=name+".ms", outputvis=name+"_K_WVR.ms",
split(vis=name+'.ms', outputvis=name+'_K_WVR.ms',
datacolumn='corrected')  
datacolumn='corrected')  
</source>
</source>
Line 220: Line 219:
# In CASA
# In CASA
for name in basename:
for name in basename:
plotcal(caltable="tsys_"+name+".cal", xaxis="freq", yaxis="amp",  
plotcal(caltable='tsys_'+name+'.cal', xaxis='freq', yaxis='amp',  
                 spw="1,3,5,7", timerange="<2020", subplot=221, overplot=False,  
                 spw='1,3,5,7', timerange='<2020', subplot=221, overplot=False,  
                 iteration="spw", plotrange=[0, 0, 40, 180], plotsymbol=".",  
                 iteration='spw', plotrange=[0, 0, 40, 180], plotsymbol='.',  
                 figfile="tsys_per_spw"+name+".png")
                 figfile='tsys_per_spw'+name+'.png')
</source>
</source>


Line 237: Line 236:
for name in basename:
for name in basename:
for field in ['Titan','1037*','NGC*']:
for field in ['Titan','1037*','NGC*']:
applycal(vis=name+"_K_WVR.ms", spw='1,3,5,7', flagbackup=F, field=field, gainfield=field,
applycal(vis=name+'_K_WVR.ms', spw='1,3,5,7', flagbackup=F, field=field, gainfield=field,
interp='nearest', gaintable=['tsys_'+name+'.cal'])  
interp='nearest', gaintable=['tsys_'+name+'.cal'])  
</source>
</source>
Line 249: Line 248:
for name in basename:
for name in basename:
os.system('rm -rf '+name+'_line.ms*')
os.system('rm -rf '+name+'_line.ms*')
split(vis=name+"_K_WVR.ms", outputvis=name+"_line.ms",
split(vis=name+'_K_WVR.ms', outputvis=name+'_line.ms',
datacolumn='corrected', spw='1,3,5,7')
datacolumn='corrected', spw='1,3,5,7')
</source>
</source>
Line 261: Line 260:
comvis=[]
comvis=[]
for name in basename:
for name in basename:
comvis.append(name+"_line.ms")
comvis.append(name+'_line.ms')


os.system('rm -rf ngc3256_line.ms*')
os.system('rm -rf ngc3256_line.ms*')
concat(vis=comvis, concatvis="ngc3256_line.ms")
concat(vis=comvis, concatvis='ngc3256_line.ms')
</source>
</source>


Line 287: Line 286:
# In CASA
# In CASA
flagdata(vis = 'ngc3256_line.ms', flagbackup = F,
flagdata(vis = 'ngc3256_line.ms', flagbackup = F,
timerange=">2011/04/16/12:00:00", field='Titan')
timerange='>2011/04/16/12:00:00', field='Titan')
</source>
</source>


Line 305: Line 304:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
flagdata(vis="ngc3256_line.ms", flagbackup=F, spw='3',
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='3',
correlation='YY', mode="manualflag", selectdata=T,
correlation='YY', mode='manualflag', selectdata=T,
antenna="DV07", timerange="")
antenna='DV07', timerange='')
</source>
</source>


Line 314: Line 313:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
flagdata(vis="ngc3256_line.ms", flagbackup=F, spw='3',
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='3',
correlation='YY', mode="manualflag", selectdata=T,
correlation='YY', mode='manualflag', selectdata=T,
antenna="DV08", timerange=">2011/04/17/03:00:00")
antenna='DV08', timerange='>2011/04/17/03:00:00')
</source>
</source>


Line 323: Line 322:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
flagdata(vis="ngc3256_line.ms", flagbackup=F, spw='0',
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='0',
mode="manualflag", selectdata=T, antenna="PM03",
mode='manualflag', selectdata=T, antenna='PM03',
timerange="2011/04/17/02:15:00~02:15:50")
timerange='2011/04/17/02:15:00~02:15:50')
</source>
</source>


Line 332: Line 331:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
flagdata(vis="ngc3256_line.ms", flagbackup=F, spw='2,3',
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='2,3',
mode="manualflag", selectdata=T, antenna="PM03",
mode='manualflag', selectdata=T, antenna='PM03',
timerange="2011/04/16/04:13:50~04:18:00")
timerange='2011/04/16/04:13:50~04:18:00')
</source>
</source>


Line 400: Line 399:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
plotcal(caltable = 'ngc3256.B1', xaxis="freq",yaxis="phase", spw="",
plotcal(caltable = 'ngc3256.B1', xaxis='freq',yaxis='phase', spw='',
subplot=212, overplot=False, plotrange = [0,0,-70,70],
subplot=212, overplot=False, plotrange = [0,0,-70,70],
plotsymbol='.', timerange="")
plotsymbol='.', timerange='')


plotcal(caltable = 'ngc3256.B1', xaxis="freq",yaxis="amp", spw="",
plotcal(caltable = 'ngc3256.B1', xaxis='freq',yaxis='amp', spw='',
subplot=211, overplot=False,  
subplot=211, overplot=False,  
figfile='bandpass.B1.png', plotsymbol='.', timerange="")
figfile='bandpass.B1.png', plotsymbol='.', timerange='')
</source>
</source>


Line 415: Line 414:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
setjy(vis="ngc3256_line.ms", field="Titan", spw="", modimage="",
setjy(vis='ngc3256_line.ms', field='Titan', spw='', modimage='',
       scalebychan=False, fluxdensity=-1,
       scalebychan=False, fluxdensity=-1,
       standard="Butler-JPL-Horizons 2010")
       standard='Butler-JPL-Horizons 2010')
</source>
</source>


Line 424: Line 423:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
plotms(vis="ngc3256_line.ms", xaxis="uvdist", yaxis="amp",
plotms(vis='ngc3256_line.ms', xaxis='uvdist', yaxis='amp',
ydatacolumn="corrected", selectdata=True, field="Titan",
ydatacolumn='corrected', selectdata=True, field='Titan',
spw="", averagedata=True, avgchannel="128", avgtime="",
spw='', averagedata=True, avgchannel='128', avgtime='',
avgscan=True, avgbaseline=F)
avgscan=True, avgbaseline=F)
</source>
</source>
Line 469: Line 468:
<source lang="python">
<source lang="python">
# In CASA
# In CASA
fluxscale( vis="ngc3256_line.ms", caltable="ngc3256.G2",
fluxscale( vis='ngc3256_line.ms', caltable='ngc3256.G2',
         fluxtable="ngc3256.G2.flux", reference="Titan",
         fluxtable='ngc3256.G2.flux', reference='Titan',
         transfer="1037*", append=False)
         transfer='1037*', append=False)
</source>
</source>

Revision as of 16:33, 19 May 2011

Overview

[To be written by Eric]

Retrieving the Data

The data were taken in six different datasets over two consecutive nights: April 16-17, 2011. There are three datasets for April 16th and three for April 17th. Here we provide you with "starter" datasets, where we have taken the raw data in ALMA Science Data Model (ASDM) format and converted them to CASA Measurement Sets (MS). We did this using the importasdm task in CASA.

[What else are we going to do to the data we provide?]

Along with the Measurement Sets, we also provide some tables that you will need for the calibration. These include the System Temperature (Tsys) tables, which contain corrections for atmospheric opacity, and Water Vapor Radiometer (WVR) tables, which contain the atmospheric phase corrections determined by the water vapor radiometers on each antenna.

You can download the data here: [Provide link to the raw .ms files in tar'd, gzip'd format]

Once the download has finished, unpack the file:

# In a terminal outside CASA
tar -xvf ngc3256band3.tgz

[Also provide links to the calibrated data (but maybe not here?)]

Initial inspection and a priori flagging

We start by defining an array 'basename' that includes the names of the six files used here. This will simplify the following steps by allowing us to loop through the files using a simple for-loop in python.

# In CASA
basename=['uid___A002_X1d54a1_X5','uid___A002_X1d54a1_X174','uid___A002_X1d54a1_X2e3','uid___A002_X1d5a20_X5','uid___A002_X1d5a20_X174','uid___A002_X1d5a20_X330']

The usual first step is then to get some basic information about the data. We do this using the task listobs, which will output a detailed summary of each dataset supplied.

# In CASA
for name in basename:
        listobs(vis=name+'.ms')

The output will be sent to the CASA logger. You will have to scroll up to see the individual output for each of the six datasets. Here is an example of the most relevant output for the first file in the list.

Fields: 3
  ID   Code Name         RA            Decl           Epoch   SrcId nVis   
  0    none 1037-295     10:37:16.0790 -29.34.02.8130 J2000   0     38759  
  1    none Titan        00:00:00.0000 +00.00.00.0000 J2000   1     16016  
  2    none NGC3256      10:27:51.6000 -43.54.18.0000 J2000   2     151249 
  (nVis = Total number of time/baseline visibilities per field) 
Spectral Windows:  (9 unique spectral windows and 2 unique polarization setups)
  SpwID  #Chans Frame Ch1(MHz)    ChanWid(kHz)TotBW(kHz)  Ref(MHz)    Corrs   
  0           4 TOPO  184550      1500000     7500000     183300      I   
  1         128 TOPO  113211.988  15625       2000000     113204.175  XX  YY  
  2           1 TOPO  114188.55   1796875     1796875     113204.175  XX  YY  
  3         128 TOPO  111450.813  15625       2000000     111443      XX  YY  
  4           1 TOPO  112427.375  1796875     1796875     111443      XX  YY  
  5         128 TOPO  101506.187  15625       2000000     101514      XX  YY  
  6           1 TOPO  100498.375  1796875     1796875     101514      XX  YY  
  7         128 TOPO  103050.863  15625       2000000     103058.675  XX  YY  
  8           1 TOPO  102043.05   1796875     1796875     103058.675  XX  YY  
Sources: 48
  ID   Name         SpwId RestFreq(MHz)  SysVel(km/s) 
  0    1037-295     0     -              -            
  0    1037-295     9     -              -            
  0    1037-295     10    -              -            
  0    1037-295     11    -              -            
  0    1037-295     12    -              -            
  0    1037-295     13    -              -            
  0    1037-295     14    -              -            
  0    1037-295     15    -              -            
  0    1037-295     1     -              -            
  0    1037-295     2     -              -            
  0    1037-295     3     -              -            
  0    1037-295     4     -              -            
  0    1037-295     5     -              -            
  0    1037-295     6     -              -            
  0    1037-295     7     -              -            
  0    1037-295     8     -              -            
  1    Titan        0     -              -            
  1    Titan        9     -              -            
  1    Titan        10    -              -            
  1    Titan        11    -              -            
  1    Titan        12    -              -            
  1    Titan        13    -              -            
  1    Titan        14    -              -            
  1    Titan        15    -              -            
  1    Titan        1     -              -            
  1    Titan        2     -              -            
  1    Titan        3     -              -            
  1    Titan        4     -              -            
  1    Titan        5     -              -            
  1    Titan        6     -              -            
  1    Titan        7     -              -            
  1    Titan        8     -              -            
  2    NGC3256      0     -              -            
  2    NGC3256      9     -              -            
  2    NGC3256      10    -              -            
  2    NGC3256      11    -              -            
  2    NGC3256      12    -              -            
  2    NGC3256      13    -              -            
  2    NGC3256      14    -              -            
  2    NGC3256      15    -              -            
  2    NGC3256      1     -              -            
  2    NGC3256      2     -              -            
  2    NGC3256      3     -              -            
  2    NGC3256      4     -              -            
  2    NGC3256      5     -              -            
  2    NGC3256      6     -              -            
  2    NGC3256      7     -              -            
  2    NGC3256      8     -              -            
Antennas: 7:
  ID   Name  Station   Diam.    Long.         Lat.         
  0    DV04  J505      12.0 m   -067.45.18.0  -22.53.22.8  
  1    DV06  T704      12.0 m   -067.45.16.2  -22.53.22.1  
  2    DV07  J510      12.0 m   -067.45.17.8  -22.53.23.5  
  3    DV08  T703      12.0 m   -067.45.16.2  -22.53.23.9  
  4    DV09  N602      12.0 m   -067.45.17.4  -22.53.22.3  
  5    PM02  T701      12.0 m   -067.45.18.8  -22.53.22.2  
  6    PM03  J504      12.0 m   -067.45.17.0  -22.53.23.0 

Note that there are more than four SpwIDs even though the observations were set up to have four spectral windows. The spectral line data themselves are found in spectral windows 1,3,5,7, which have 128 channels each. The first one (spw 1) is centered on the CO(1-0) emission line in the galaxy NGC 3256 and is our highest frequency spectral window. There is one additional spectral window (spw 3) in the Upper Side Band (USB), and there are two spectral windows (spw 5 and 7) in the Lower Side Band (LSB). These additional spectral windows are used to measure the continuum emission in the galaxy, and may contain other emission lines as well.

Spectral windows 2,4,6,8 contain channel averages of the data in spectral windows 1,3,5,7, respectively. These are not useful for the offline data reduction. Spectral window 0 contains the WVR data. You may notice that there are additional SpwIDs listed in the "Sources" section which are not listed in the "Spectral Windows" section. These spectral windows are reserved for the WVRs of each antenna (seven in our case). At the moment, all WVRs point to spw 0, which contains nominal frequencies. The additional spectral windows (SpwID 9-15) are therefore not used and can be ignored.

Another important thing to note is that the position of Titan is listed as 00:00:00.0000 +00.00.00.0000. This is due to the fact that for ephemeris objects, the positions are currently not stored in the asdm. This will be handled correctly in the near future, but at present, we have to fix this offline. We will correct the coordinates below by running the procedure fixplanet.

The first editing we will do is some a priori flagging. We will start by flagging the shadowed data and the autocorrelation data:

# In CASA
for name in basename:
	flagdata(vis=name+'.ms',flagbackup = F, mode = 'shadow')
	flagautocorr(vis=name+'.ms')

There are a number of scans in the data that were used by the online system for pointing calibration. These scans are no longer needed, and we can flag them easily by selecting on 'intent':

# In CASA
for name in basename:
        flagdata(vis=name+'.ms', mode='manualflag', flagbackup = F, intent='*POINTING*')

Similarly, we can flag the scans corresponding to atmospheric calibration:

# In CASA
for name in basename:
        flagdata(vis=name+'.ms', mode='manualflag', flagbackup = F, intent='*ATMOSPHERE*')

We will then store the current flagging state for each dataset using the flagmanager:

# In CASA
for name in basename:
        flagmanager(vis = name+'.ms', mode = 'save', versionname = 'Apriori')



Some initial flagging: For uid___A002_X1d54a1_X174.ms there is a outlying feature in spw=7, antenna DV04. This corresponds to scans 5 and 9, so we flag those data:

# In CASA
flagdata(vis='uid___A002_X1d54a1_X174.ms', mode='manualflag',
	antenna='DV04', flagbackup = F, scan='5,9', spw='7')

Antenna DV07 shows large delays for the first three data sets. We correct this by calculating a K-type delay calibration table with gencal. The parameters are the delays measured in ns, first cycling over polarization product and then over spectral window, thus giving eight numbers in total. Before creating these tables, delete any existing version

# In CASA
for i in range(3): # loop over the first three ms's
	name=basename[i]
	os.system('rm -rf '+name+'_del.K')
	gencal(vis=name+'.ms', caltable=name+'_del.K',
	caltype='sbd', antenna='DV07', pol='X,Y', spw='1,3,5,7',
        parameter=[0.99, 1.10, -3.0, -3.0, -3.05, -3.05, -3.05, -3.05])

We will apply these K tables to the data in the next section.

Tsys calibration and WVR Correction

First, we apply the delay correction table and the WVR calibration tables to the data. We do this in two steps, first cycling over the three data sets from the first day of observations, because we have to correct the delay error for DV07 for those data. For the last three data sets, taken during the second day, we do not need to correct the delays, so we just apply the WVR tables:

# In CASA
for i in range(3): # loop over the first three data sets
	name=basename[i]
	applycal(vis=name+'.ms', flagbackup=F, spw='1,3,5,7',
		 interp='nearest', gaintable=[name+'_del.K',name+'.W'])

for i in range(3,6): # loop over the last three data sets
	name=basename[i]
	applycal(vis=name+'.ms', flagbackup=F, spw='1,3,5,7',
		 interp='nearest', gaintable=name+'.W')

Now split out the data sets with delays and WVR tables applied. These data sets are given the extention "_K_WVR", to indicate that the delay tables and WVR tables have been applied.

# In CASA
for name in basename:
	os.system('rm -rf '+name+'_K_WVR.ms*')
	split(vis=name+'.ms', outputvis=name+'_K_WVR.ms',
		datacolumn='corrected')

Now, on the Tsys calibration...

[Talk about what each thing does and how we currently must use the un-concatenated data for each.]

First we will inspect the Tsys tables:

# In CASA
for name in basename:
	plotcal(caltable='tsys_'+name+'.cal', xaxis='freq', yaxis='amp', 
                spw='1,3,5,7', timerange='<2020', subplot=221, overplot=False, 
                iteration='spw', plotrange=[0, 0, 40, 180], plotsymbol='.', 
                figfile='tsys_per_spw'+name+'.png')

Note that we only plot the spectral windows with the spectral line data, and we set timerange="<2020" because [WHY?] Everything looks fine in the plot files produced, so we apply the Tsys values and WVR corrections with applycal:

[DOES THAT MEAN WE ARE JUST PROVIDING THE WVR TABLES AS WELL, INSTEAD OF HAVING THEM GENERATE THEM? Yes we will provide the WVR tables. We don not want the users to use wvrgcal.]

Apply the Tsys tables. Do it for every field separately, so that the appropriate cal data are applied to the right fields. Explain field=field, gainfield=field

# In CASA
for name in basename:
	for field in ['Titan','1037*','NGC*']:
		applycal(vis=name+'_K_WVR.ms', spw='1,3,5,7', flagbackup=F, field=field, gainfield=field,
			interp='nearest', gaintable=['tsys_'+name+'.cal'])


We then split out spectral windows 1,3,5,&7. This will get rid of the channel averaged spectral windows, and spw 0, which is the one for the WVR data. [Most importantly, it will remove the "WVR placeholder" spws, which can cause problems in concat and split. I THINK THIS IS NO LONGER RELEVANT ]

# In CASA
for name in basename:
	os.system('rm -rf '+name+'_line.ms*')
	split(vis=name+'_K_WVR.ms', outputvis=name+'_line.ms',
		datacolumn='corrected', spw='1,3,5,7')

The WVR and Tsys tables are now applied in the DATA column of the resultant measurement sets. The new data sets have the extension "_line", to indicate that these only contain the line data, and no longer carry the "channel average" spectral windows with them. These measurement sets therefore have four spectral windows.

Now we concatenate the six individual data sets to make one big measurement set. We define an array comvis that contains the names of the ms's we wish to concatenate, and then run the task concat.

# In CASA
comvis=[]
for name in basename:
	comvis.append(name+'_line.ms')

os.system('rm -rf ngc3256_line.ms*')
concat(vis=comvis, concatvis='ngc3256_line.ms')


---More to come here---


[THESE FLAGGING COMMANDS WERE HIGHER UP, BUT I THINK THEY SHOULD BE MOVED BELOW CONCAT, MAYBE AFTER A BASIC PLOTMS]

Remove the noisy edge channels

# In CASA
flagdata(vis = 'ngc3256_line.ms', flagbackup = F, spw = ['*:0~10','*:125~127'])


Titan is our primary flux calibrator. However, for the second day of observations, Titan had moved to close to Saturn, and the rings move into the primary beam. [Check this be using plotms, plot amp vs. uvdist.]. We therefore flag the Titan scans for the second day:

# In CASA
flagdata(vis = 'ngc3256_line.ms', flagbackup = F,
	timerange='>2011/04/16/12:00:00', field='Titan')

Now fix the position of Titan in the combined data set. The position of Titan is set to 00,00, but the following procedure will replace that with the position that the telescopes were actually pointing at and recalculates the uvw coordinates:

# In CASA
execfile(os.getenv("CASAPATH").split(' ')[0]+"/lib/python2.6/recipes/fixplanets.py")

fixplanets('ngc3256_line.ms', 'Titan', True)

...More data inspection...

Baselines with DV07 have very high amps in YY in the last spectral window:

# In CASA
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='3',
	 correlation='YY', mode='manualflag', selectdata=T,
	 antenna='DV07', timerange='')

Baselines with DV08 have very low amps for the last data set. Only for the last spectral window, and only YY

# In CASA
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='3',
	 correlation='YY', mode='manualflag', selectdata=T,
	 antenna='DV08', timerange='>2011/04/17/03:00:00')

Baselines with PM03 have low amps at 2011/04/17/02:15:00. Only for the first spectral window

# In CASA
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='0',
	 mode='manualflag', selectdata=T, antenna='PM03',
	 timerange='2011/04/17/02:15:00~02:15:50')

Baselines with PM03 have low amps at 2011/04/16/04:15:15. Only for the spectral windows 2 and 3

# In CASA
flagdata(vis='ngc3256_line.ms', flagbackup=F, spw='2,3',
	 mode='manualflag', selectdata=T, antenna='PM03',
	 timerange='2011/04/16/04:13:50~04:18:00')


Bandpass calibration

Before we do the bandpass calibration, we use gaincal to determine phase-only gaincal solutions for the bandpass calibrator, to correct for any phase variations with time. In these data, the phase calibrator and bandpass calibrator are the same source, so we just run this on 1037. For the solution interval we use solint='inf', which means that one gain solution will be determined for every scan. For our reference antenna, we choose PM03. The average of channels 40 to 80 is used to determine the antenna-based phase solutions. The output calibration table is named "ngc3256.G1".

# In CASA
gaincal(
	vis = 'ngc3256_line.ms', caltable = 'ngc3256.G1', spw = '*:40~80', field = '1037*',
	selectdata=T, solint= 'int', refant = 'PM03', calmode = 'p')

[IS SOLINT='INF' REALLY THE RIGHT THING TO DO? I WAS ALWAYS TAUGHT TO USE SOMETHING SHORT FOR THIS, LIKE THE INTEGRATION TIME...] -> Yes, changed to int


We check the time variations of the phases with plotcal. We make plot of the XX and YY polarization products separately and make different subplots for each of the spectal windows. This is done by selecting iteration of 'spw' and subplot=221. and generate png plots

# In CASA
plotcal(
	caltable = 'ngc3256.G1', xaxis = 'time', yaxis = 'phase',
	poln='X', plotsymbol='o', plotrange = [0,0,-180,180], iteration = 'spw',
	figfile='phase_vs_time_XX.G1.png', subplot = 221)
# In CASA
plotcal(
	caltable = 'ngc3256.G1', xaxis = 'time', yaxis = 'phase',
	poln='Y', plotsymbol='o', plotrange = [0,0,-180,180], iteration = 'spw',
	figfile='phase_vs_time_YY.G1.png', subplot = 221)

Now that we have a first measurement of the phase variations as function of time, we can determine the bandpass solutions with bandpass, using the phase calibration table 'on-the-fly'.

First, plot the phase as a function of frequency for 1037. We use avgscan=T and avgtime='1E6' to average in time over all scans, and coloraxis='baseline' is used to colorize by baseline.

# In CASA
plotms(vis='ngc3256_line.ms', xaxis='freq', yaxis='phase', selectdata=True,
	field='1037*', avgtime='1E6', avgscan=T, coloraxis='baseline', iteraxis='antenna')

and the amplitudes

# In CASA
plotms(vis='ngc3256_line.ms', xaxis='freq', yaxis='amp', selectdata=True, spw='*:10~120',
	field='1037*', avgtime='1E6', avgscan=T, coloraxis='baseline', iteraxis='antenna')

Bandpass calibration, using the first gaincal on-the-fly

# In CASA
bandpass(vis = 'ngc3256_line.ms', caltable = 'ngc3256.B1', gaintable = 'ngc3256.G1',
	field = '1037*', minblperant=3, minsnr=1, solint='inf',
	bandtype='B', fillgaps=1, refant = 'PM03', solnorm = F)


# In CASA
plotcal(caltable = 'ngc3256.B1', xaxis='freq',yaxis='phase', spw='',
	subplot=212, overplot=False, plotrange = [0,0,-70,70],
	plotsymbol='.', timerange='')

plotcal(caltable = 'ngc3256.B1', xaxis='freq',yaxis='amp', spw='',
	subplot=211, overplot=False, 
	figfile='bandpass.B1.png', plotsymbol='.', timerange='')


[MOVE THIS SOMEWHERE ELSE?] Get flux density for Titan using the Butler-JPL-Horizons 2010 model. The flux density of Titan is 296 mJy

# In CASA
setjy(vis='ngc3256_line.ms', field='Titan', spw='', modimage='',
      scalebychan=False, fluxdensity=-1,
      standard='Butler-JPL-Horizons 2010')

Plot amplitude as function of uv distance for Titan for the remaining data. It looks unresolved

# In CASA
plotms(vis='ngc3256_line.ms', xaxis='uvdist', yaxis='amp',
	ydatacolumn='corrected', selectdata=True, field='Titan',
	spw='', averagedata=True, avgchannel='128', avgtime='',
	avgscan=True, avgbaseline=F)


Gain calibration

Now do a new gaincal, using the bandpass on-the-fly


# In CASA
gaincal(vis = 'ngc3256_line.ms', caltable = 'ngc3256.G2', spw =
	'0:30~90,1:30~90,2:30~90,3:30~90', field = '1037*,Titan',
	solint= 'inf', selectdata=T, solnorm=False, refant = 'PM03',
	gaintable = ['ngc3256.B1'], calmode = 'ap')

Generate plots:

# In CASA
plotcal(caltable = 'ngc3256.G2', xaxis = 'time', yaxis = 'phase',
	poln='X', plotsymbol='o', plotrange = [0,0,-180,180], iteration
	= 'spw', figfile='phase_vs_time_XX.G2.png', subplot = 221)

plotcal(caltable = 'ngc3256.G2', xaxis = 'time', yaxis = 'phase',
	poln='Y', plotsymbol='o', plotrange = [0,0,-180,180], iteration
	= 'spw', figfile='phase_vs_time_YY.G2.png', subplot = 221)

plotcal(caltable = 'ngc3256.G2', xaxis = 'time', yaxis = 'amp',
	poln='X', plotsymbol='o', plotrange = [], iteration = 'spw',
	figfile='amp_vs_time_XX.G2.png', subplot = 221)

plotcal(caltable = 'ngc3256.G2', xaxis = 'time', yaxis = 'amp',
	poln='Y', plotsymbol='o', plotrange = [], iteration = 'spw',
	figfile='amp_vs_time_YY.G2.png', subplot = 221)


# In CASA
fluxscale( vis='ngc3256_line.ms', caltable='ngc3256.G2',
        fluxtable='ngc3256.G2.flux', reference='Titan',
        transfer='1037*', append=False)