1 | ================================================ |
---|
2 | Tutorial 2 â Data Reduction for multiple spectra |
---|
3 | ================================================ |
---|
4 | |
---|
5 | |
---|
6 | .. sectionauthor:: Kate Brooks |
---|
7 | |
---|
8 | **Main goal:** Handle multiple Spectral windows (IFs) and plot spectral-line catalogues |
---|
9 | |
---|
10 | |
---|
11 | Files |
---|
12 | ----- |
---|
13 | |
---|
14 | * 2006-07-09_1431-M168.rpf Data file (63 Mb) |
---|
15 | |
---|
16 | * 3mm.txt Emission line catalogue |
---|
17 | |
---|
18 | * QuickData.py Data Reduction GUI (by Cormac Purcell) |
---|
19 | |
---|
20 | Data Log |
---|
21 | -------- |
---|
22 | |
---|
23 | * ON-OFF-OFF-ON Position switching mode with Mopra |
---|
24 | |
---|
25 | * 4 Scans (2 OFF and 2 ON) |
---|
26 | |
---|
27 | * 4 x 2-GH bands (IF 0, 1, 2, 3) |
---|
28 | |
---|
29 | Instructions |
---|
30 | ------------ |
---|
31 | |
---|
32 | 1. Work through the list of commands given in the text file to |
---|
33 | calibrate data taken with the Mopra telescope and identify the |
---|
34 | emission lines. Commands should be typed line-by-line into |
---|
35 | ASAP. Seek help from the tutors if there are any commands |
---|
36 | you donât understand. |
---|
37 | |
---|
38 | 2. The commands given in the text file are for 1 Mopra frequency |
---|
39 | band only (IF0). Now work on the other 3 bands and make a |
---|
40 | final plot showing all four frequency bands stitched together. |
---|
41 | |
---|
42 | 3. Now repeat the calibration steps using the Mopra Data |
---|
43 | Reduction GUI. This GUI has been created via a python script |
---|
44 | (QuickData.py). |
---|
45 | |
---|
46 | Commands |
---|
47 | -------- |
---|
48 | |
---|
49 | .. code-block:: python |
---|
50 | |
---|
51 | # Load data into memory and display short description |
---|
52 | s = scantable('2006-07-09_1431-M168.rpf') |
---|
53 | print s |
---|
54 | # Set the plotting mode |
---|
55 | plotter.set_mode(stacking='i', panelling='t') |
---|
56 | plotter.set_histogram() |
---|
57 | plotter.set_colours('black') |
---|
58 | plotter.set_linestyles('solid') |
---|
59 | # Plot all the raw data |
---|
60 | plotter.plot(s) |
---|
61 | # Form the quotient spectra |
---|
62 | q = s.auto_quotient() |
---|
63 | # Average all scans in time, weighting according to Tsys value |
---|
64 | av = q.average_time(weight='tsys') |
---|
65 | # Average the two polarisations together, weighting according to Tsys value |
---|
66 | iav = av.average_pol(weight='tsys') |
---|
67 | ### Work on IF0 only |
---|
68 | # Define a selector |
---|
69 | sel1 = selector() |
---|
70 | # Select the first IF for scantable 'iav' |
---|
71 | sel1.set_ifs(0) |
---|
72 | iav.set_selection(sel1) |
---|
73 | # Plot the first IF with x-axis in channel number |
---|
74 | iav.set_unit('channel') |
---|
75 | plotter.plot(iav) |
---|
76 | # Flag out the end channels |
---|
77 | msk1 = iav.create_mask([0,120]) |
---|
78 | iav.flag(msk1) |
---|
79 | msk1 = iav.create_mask([7900,8200]) |
---|
80 | iav.flag(msk1) |
---|
81 | # Redo the plot |
---|
82 | plotter.plot(iav) |
---|
83 | # Identify emission lines |
---|
84 | iav.set_unit('GHz') |
---|
85 | plotter.plot(iav) |
---|
86 | # Load in catalogue of emission lines and overlay on plot |
---|
87 | lc3 = linecatalog('3mm.txt') |
---|
88 | plotter.plot_lines(lc3,location='top',rotate=90,doppler=-45) |
---|