1 | \documentclass[11pt]{article}
|
---|
2 | \usepackage{a4}
|
---|
3 | \usepackage{calc}
|
---|
4 | \usepackage{smartref}
|
---|
5 | \usepackage[dvips]{graphicx}
|
---|
6 |
|
---|
7 | % Adjust the page size
|
---|
8 | \addtolength{\oddsidemargin}{-0.4in}
|
---|
9 | \addtolength{\evensidemargin}{+0.4in}
|
---|
10 | \addtolength{\textwidth}{+0.8in}
|
---|
11 |
|
---|
12 | \setlength{\parindent}{0mm}
|
---|
13 | \setlength{\parskip}{1ex}
|
---|
14 |
|
---|
15 |
|
---|
16 | \title{ATNF Single Dish Spectral Line Software Requirements }
|
---|
17 | \author{Chris Phillips \& Malte Marquarding}
|
---|
18 |
|
---|
19 | \newcounter{requirement}
|
---|
20 | \addtoreflist{requirement}
|
---|
21 | \newcommand{\reqref}[1]{R\ref{#1}-\requirementref{#1}}
|
---|
22 |
|
---|
23 | \newcommand{\makenote}[1]{{\bf \tt \em#1}}
|
---|
24 |
|
---|
25 | \newcommand{\anitem}[2]{\smallskip \parbox[t]{2cm}{#1}\parbox[t]{\textwidth-2cm}{#2}}
|
---|
26 |
|
---|
27 | \newcommand{\showreqcounter}{{\stepcounter{requirement}
|
---|
28 | \bf R\arabic{section}.\arabic{subsection}-\arabic{requirement}}}
|
---|
29 |
|
---|
30 | \newcommand{\requirement}[2]{
|
---|
31 | \hspace*{2mm}\begin{minipage}{\textwidth-2mm}
|
---|
32 | \setlength{\parindent}{-2mm}
|
---|
33 | \showreqcounter\ #1 \\
|
---|
34 | \hspace*{1cm} {\em Priority #2}
|
---|
35 | \end{minipage}
|
---|
36 | }
|
---|
37 |
|
---|
38 | \newcommand{\extendedrequirement}[2]{
|
---|
39 | \hspace*{2mm}\begin{minipage}{\textwidth-2mm}
|
---|
40 | \setlength{\parindent}{-2mm}
|
---|
41 | \showreqcounter\ #1
|
---|
42 | \hspace*{1cm} {\em Priority #2}
|
---|
43 | \end{minipage}
|
---|
44 | }
|
---|
45 |
|
---|
46 | \newcommand{\reqeqn}[1]{\\\hspace*{1cm} $#1$}
|
---|
47 |
|
---|
48 | \let\oldsection\section
|
---|
49 | \renewcommand{\section}[1]{\setcounter{requirement}{0}\oldsection{#1}}
|
---|
50 |
|
---|
51 | \let\oldsubsection\subsection
|
---|
52 | \renewcommand{\subsection}[1]{\setcounter{requirement}{0}\oldsubsection{#1}}
|
---|
53 |
|
---|
54 | \begin{document}
|
---|
55 |
|
---|
56 | \maketitle
|
---|
57 |
|
---|
58 | \section{Introduction}
|
---|
59 |
|
---|
60 | The spectral line single-dish software {\tt spc} at the ATNF has
|
---|
61 | become increasingly difficult to maintain. There also have been many
|
---|
62 | requests for features which are not possible to implement without
|
---|
63 | major change to this package. The interface is based on outdated
|
---|
64 | operating systems and programming languages. The decision was made to
|
---|
65 | replace {\tt spc} with a new package which supports existing and
|
---|
66 | future ATNF single-dish instrumentation. A survey of users was taken
|
---|
67 | into account creating this requirements document.
|
---|
68 |
|
---|
69 | \section{Scope}
|
---|
70 |
|
---|
71 | The software should be able to process all spectral line single-dish
|
---|
72 | observations from ATNF telescopes (Parkes, Mopra \& Tidbinbilla). This
|
---|
73 | includes reading the data produced by the telescope, calibration and
|
---|
74 | reduction of the data and basic analysis of the data such as fitting
|
---|
75 | line profiles.
|
---|
76 |
|
---|
77 | It has been assumed that the following processing is out of the scope
|
---|
78 | of the new software.
|
---|
79 | \begin{itemize}
|
---|
80 | \item Raster or ``on-the-fly'' mapping (This is handled by
|
---|
81 | ``livedata'' and gridzilla).
|
---|
82 | \item Very complex or specific data processing. (A route into
|
---|
83 | Class\footnote{Part of the GLIDAS software package, produced by
|
---|
84 | Institut de Radio Astronomie Millime\'trique http://www.iram.fr}
|
---|
85 | should be available for advanced processing).
|
---|
86 | %%TODO%% give example
|
---|
87 | \item Continuum data.
|
---|
88 | \item Pulsar timing observations.
|
---|
89 | \end{itemize}
|
---|
90 |
|
---|
91 | \section{Priorities}
|
---|
92 |
|
---|
93 | Requirements have been given a value of 0 to 3. The ``0'' priority
|
---|
94 | functions will be implemented in a demonstrator version of the
|
---|
95 | software (with no GUI interface). The other requirements will be
|
---|
96 | implemented mainly depending on priority, with ``1'' the
|
---|
97 | highest. Priority 3 and some priority 2 requirements will probably not
|
---|
98 | get implemented in the first released version of the software.
|
---|
99 |
|
---|
100 | \section{User Interface}
|
---|
101 |
|
---|
102 | The user interface (UI) is the most important part of a single dish
|
---|
103 | processing package, but probably the most difficult to get right. The
|
---|
104 | UI for this software will consist of three parts.
|
---|
105 | \begin{itemize}
|
---|
106 | \item A graphical user interface (GUI).
|
---|
107 | \item An interactive command line interface (CLI).
|
---|
108 | \item A scriptable interface for batch processing.
|
---|
109 | \end{itemize}
|
---|
110 |
|
---|
111 | The CLI and scriptable interface may essentially be the same.
|
---|
112 |
|
---|
113 | The software does not {\em need} to be able to run solely from a
|
---|
114 | ``vt100'' style terminal. It can be assumed that the user is running
|
---|
115 | the software from within a windowed (i.e. X11) environment. This will
|
---|
116 | mean it will not necessarily be possible to run the software remotely
|
---|
117 | over a slow network connection (e.g. internationally or from home).
|
---|
118 | Where possible, operations on the data should be possible from all
|
---|
119 | three aspects of the user interface.
|
---|
120 |
|
---|
121 | The user interface needs to be implemented so that the user can easily
|
---|
122 | and transparently work on spectra either one at a time or by
|
---|
123 | processing multiple spectra in parallel. This means there must be an
|
---|
124 | easy way to select specific or multiple spectra to display or process.
|
---|
125 |
|
---|
126 | \subsection{Graphical User Interface}
|
---|
127 |
|
---|
128 | The GUI is intended to be the main interactive interface with the
|
---|
129 | software.
|
---|
130 |
|
---|
131 | \smallskip
|
---|
132 | \requirement{It should be simple, intuitive and
|
---|
133 | uncluttered. Specifically, use of many windows simultaneously should
|
---|
134 | be discouraged, as should hiding functionality behind layers of dialog
|
---|
135 | boxes.}{1}
|
---|
136 |
|
---|
137 | \requirement{The plotting window should be a major component of the GUI
|
---|
138 | control, not a separate isolated window.}{1}
|
---|
139 |
|
---|
140 | \requirement{The interface should use minimal ``always visible''
|
---|
141 | controls, with use of pull down menus and maybe a toolbar for
|
---|
142 | frequency used functions. }{1}
|
---|
143 |
|
---|
144 | \requirement{Keyboard shortcuts should be available.}{2}
|
---|
145 |
|
---|
146 | \requirement{Most user preferences (i.e. keywords in the CLI) should
|
---|
147 | be presented in a popup, tabbed, dialog box.}{2}
|
---|
148 |
|
---|
149 | \requirement{When performing line profile fitting, a spreadsheet type
|
---|
150 | window should be viewable which shows the current parameter values
|
---|
151 | (amplitude, velocity etc) for each line fitted and allow the user to
|
---|
152 | change these parameters or set the current value as fixed. This gui
|
---|
153 | should stay synchronised with any CLI changes to these values.}{2}
|
---|
154 |
|
---|
155 | \subsection{Command Line Interface}
|
---|
156 |
|
---|
157 | \requirement{While the GUI should be the main interface for new users
|
---|
158 | and for basic manipulation, some tasks can be more efficiently
|
---|
159 | performed using a CLI. A virtual CLI could be integrated as part of
|
---|
160 | the GUI.}{1}
|
---|
161 |
|
---|
162 | \requirement{The CLI should have a keyword/argument form and never
|
---|
163 | prompt the user for specific values (the user should be able to change
|
---|
164 | values which are retained until they wants to change them again).}{1}
|
---|
165 |
|
---|
166 | \requirement{The CLI should be case insensitive and accept minimum
|
---|
167 | matching and short forms of keywords.}{2}
|
---|
168 |
|
---|
169 | \requirement{The user must be able to quickly and easily see from the
|
---|
170 | command line the available routines and keywords which affect it, so
|
---|
171 | they can see which parameters may need changing.}{1}
|
---|
172 |
|
---|
173 | \subsection{Scripting}
|
---|
174 |
|
---|
175 | \requirement{It must be possible to run the software in a scripting
|
---|
176 | mode. This would be to process large amounts of data in a routine
|
---|
177 | manner and also to automatically reproduce specific plots etc (So the
|
---|
178 | scripting must have full control of the plotter). Preferably the
|
---|
179 | scripting ``language'' and the CLI would be the same. }{1}
|
---|
180 |
|
---|
181 | \requirement{It would be worthwhile having a method to auto-generate
|
---|
182 | scripts (for reduction or plotting) from current spectra history, or
|
---|
183 | some similar method.}{3}
|
---|
184 |
|
---|
185 | \section{Plotter}
|
---|
186 |
|
---|
187 | The plotter should be fully interactive and be an integral part of the
|
---|
188 | GUI and software interface.
|
---|
189 |
|
---|
190 | \requirement{It must be able to produce plots of publishable
|
---|
191 | quality. This includes being able to specify line thickness, character
|
---|
192 | size, colours, position of axis ticks, axis titles etc and producing
|
---|
193 | hard copies in postscript and .png format.}{0}
|
---|
194 |
|
---|
195 | \requirement{It must be possible to flexibly select the data to plot
|
---|
196 | (e.g. Tsys vs time etc as well as plots such as amplitude vs channel
|
---|
197 | number or velocity). Preferably any of the header values for a
|
---|
198 | selection of scans could be plotted on a scatter plot (e.g. Tsys vs
|
---|
199 | elevation)}{2}
|
---|
200 |
|
---|
201 | \requirement{It must be possible to overlay multiple spectra on a
|
---|
202 | single plot using different colours and/or different line
|
---|
203 | styles. (Including multiple stokes data and multiple IFs).}{1}
|
---|
204 |
|
---|
205 | \requirement{It must be possible to plot either the individual
|
---|
206 | integrations (in either a stacked fashion, or using a new subplot
|
---|
207 | per integration) or some type of average of all the integrations in
|
---|
208 | a scan.}{2}
|
---|
209 |
|
---|
210 | \requirement{Multi-panelling of spectra in an n$\times$m size grid. If
|
---|
211 | more spectra than can fit on the plot matrix are to be plotted, then
|
---|
212 | it must be possible to step back and forth between the viewable
|
---|
213 | spectra (i.e. ``multi-page'' plots). It must be possible to quickly
|
---|
214 | and easily change the number of plots per page, and define the ``n''
|
---|
215 | and ``m'' values.}{1}
|
---|
216 |
|
---|
217 | \requirement{When using multi-panelling, it should be possible to
|
---|
218 | easily change the display to flip between a single spectra display
|
---|
219 | and multi-panels display (i.e. zoom into a specific sub-window).}{3}
|
---|
220 |
|
---|
221 | \requirement{It must be possible to interactively zoom the plot
|
---|
222 | (channel range selection and amplitude of the spectra etc.) This
|
---|
223 | includes both GUI control of the zooming as well as command line
|
---|
224 | control of either the zoom factor or directly specifying the zoom
|
---|
225 | bounds. }{1}
|
---|
226 |
|
---|
227 | \requirement{On a single plot, it should be possible to plot the full
|
---|
228 | spectrum and a zoomed copy of the data (using a different lie style)
|
---|
229 | to see weak features. The user must be able to specify the zoom
|
---|
230 | factor.}{3}
|
---|
231 |
|
---|
232 | \requirement{Optionally when stacking multiple spectral plots in one
|
---|
233 | subwindow, a (user definable) offset in the ``y'' direction should
|
---|
234 | be added to each subsequent spectra.}{2}
|
---|
235 |
|
---|
236 | \requirement{The plotter should automatically update to reflect user
|
---|
237 | processing, either from the CLI or GUI. The user should have to option
|
---|
238 | to turn this feature off if they so wish.}{2}
|
---|
239 |
|
---|
240 | \requirement{It should be possible to plot individual integrations
|
---|
241 | (possibly from multiple scans) in a ``waterfall'' plot. This is an
|
---|
242 | image based display, where spectral channel is along the x-axis of the
|
---|
243 | plot, time (or integration number) along the y-axis and greyscale or
|
---|
244 | colour represent the amplitude of spectra. Interactive zooming and
|
---|
245 | panning of this image should be supported. }{3}
|
---|
246 |
|
---|
247 | \requirement{When plotting ``waterfall'' plots, it should be possible
|
---|
248 | to interactively select regions or points and mark them as invalid
|
---|
249 | (i.e. to remove RFI affected data). The plotter should also show the
|
---|
250 | time/velocity of the pixel beneath the cursor.}{3}
|
---|
251 |
|
---|
252 | \requirement{It should be possible to export the ``waterfall'' plot
|
---|
253 | images as a FITs file, for user specific analysis.}{3}
|
---|
254 |
|
---|
255 | \requirement{Line markers overlays, read from a catalogue should be
|
---|
256 | optionally available. This would include the full Lovas catalogue,
|
---|
257 | the JPL line catalogue, radio recombination lines and a simple user
|
---|
258 | definable catalogue. The lines would be Doppler corrected to the
|
---|
259 | line velocity. The user must be able to plot just a sub-section of
|
---|
260 | the lines in any specific catalogue (to avoid clutter).}{2}
|
---|
261 |
|
---|
262 | \requirement{Optionally plot fitted functions (e.g line profiles or
|
---|
263 | baseline fit). If multiple components (e.g. Gaussians) have been
|
---|
264 | fit, it should be possible to show the individual functions or the
|
---|
265 | sum of the components}{1}
|
---|
266 |
|
---|
267 | \requirement{It should be possible to plot the residual data with or
|
---|
268 | without subtraction of fit functions. This includes plotting the
|
---|
269 | spectra with or without baseline removal and the residual after
|
---|
270 | subtracting Gaussian fits. The default should be to plot the data
|
---|
271 | with baseline subtracted but profile fits not subtracted.}{2}
|
---|
272 |
|
---|
273 | \requirement{Basic header data (source name, molecule, observation
|
---|
274 | time etc) should be optionally shown, either on the plot or next to
|
---|
275 | it. This may either consist of a set of values, or only one or two
|
---|
276 | values the user specifically wants to see (source name and molecule,
|
---|
277 | for example). Preferably the user would be able to define where on
|
---|
278 | the plot the header info would appear.}{2}
|
---|
279 |
|
---|
280 | \requirement{Optionally, relevant data such as the current mouse
|
---|
281 | position should be displayed (maybe with a mode to display an
|
---|
282 | extended cross, horizontal or vertical line at the current cursor
|
---|
283 | position).}{2}
|
---|
284 |
|
---|
285 | \requirement{The user should be able to define simple
|
---|
286 | annotations. This would include text overlay and probably simple
|
---|
287 | graphics (lines, arrows etc).}{3}
|
---|
288 |
|
---|
289 | The user must be able to use the plotter window to interactively set
|
---|
290 | initial values and ranges used for fitting functions etc. The use of
|
---|
291 | keyboard ``shortcuts'' or other similar ``power user'' features should
|
---|
292 | be available to save the time of experienced users.
|
---|
293 |
|
---|
294 | The plotter should be used to set the following values:
|
---|
295 |
|
---|
296 | \requirement{Range of spectral points needed for specific tasks (See
|
---|
297 | requirement \reqref{ref:chansel})}{1}
|
---|
298 |
|
---|
299 | \requirement{Initial Gaussian parameters (velocity, width, amplitude)
|
---|
300 | for profile fitting.}{1}
|
---|
301 |
|
---|
302 | \requirement{Change the parameter values of existing line profile
|
---|
303 | fits, or channel ranges used for baseline fits.}{3}
|
---|
304 |
|
---|
305 | \section{Functionality}
|
---|
306 |
|
---|
307 | \subsection{Import/export}
|
---|
308 |
|
---|
309 | The software needs a set of import/export functions to deal with a
|
---|
310 | variety of data formats and to be able to exchange data with other
|
---|
311 | popular packages. These functions should be flexible enough to allow
|
---|
312 | the user to perform analysis functions in an different package and
|
---|
313 | re-import the data (or vice versa). The import function must be
|
---|
314 | modular enough to easily add new file formats when the need arises.
|
---|
315 | To properly import data, extra information may have to be read from
|
---|
316 | secondary calibration files (such as GTP, Gated Total Power, for 3~mm
|
---|
317 | wavelength data taken with Mopra). The import functions should be
|
---|
318 | flexible enough to gracefully handle data files with missing headers
|
---|
319 | etc. They should also be able to make telescope and date specific
|
---|
320 | corrections to the data (for ATNF observatories).
|
---|
321 |
|
---|
322 | The software must be able to read (import) the following file formats.
|
---|
323 |
|
---|
324 | \requirement{The rpfits file format produced by all current ATNF
|
---|
325 | correlators.}{0}
|
---|
326 |
|
---|
327 | \requirement{SDFITS (currently written by {\tt SPC}).}{1}
|
---|
328 |
|
---|
329 | \requirement{Simple ``image'' FITS (used by CLASS}{2}
|
---|
330 |
|
---|
331 | \requirement{Historic ATNF single dish formats (Spectra, SPC,
|
---|
332 | SLAP). Possibly a set of routines to translate these formats to SDFITs
|
---|
333 | would suffice.}{3}
|
---|
334 |
|
---|
335 | \requirement{PSRFIT for pulsar spectroscopy.}
|
---|
336 |
|
---|
337 | \requirement{For online analysis, the software should be able to read
|
---|
338 | an rpfits file which is is still currently open for writing by the
|
---|
339 | telescope backend processor.}{1}
|
---|
340 |
|
---|
341 | \requirement{Data which has been observed in either a fixed frequency
|
---|
342 | or Doppler tracked fashion needs to be handled transparently.}{1}
|
---|
343 |
|
---|
344 | The software should be able to export the data in the following formats.
|
---|
345 |
|
---|
346 | \requirement{Single Dish FITS.}{1}
|
---|
347 |
|
---|
348 | \requirement{Simple ``image'' FITS (used by CLASS. It must be possible
|
---|
349 | to to export multiple spectra simultaneously, using default file name
|
---|
350 | and postfix.}{2}
|
---|
351 |
|
---|
352 | \requirement{In a format which can be imported by other popular
|
---|
353 | packages such as Class. }{2}
|
---|
354 |
|
---|
355 | \requirement{Simple ascii format, suitable for use with programs such
|
---|
356 | as Perl, Python, SuperMongo etc.}{2}
|
---|
357 |
|
---|
358 | \requirement{The exported data should retain as much header data as
|
---|
359 | possible. It should also be possible to request specific data be
|
---|
360 | written in the desired form (B1950 coordinates, optical velocity
|
---|
361 | definition etc).}{2}
|
---|
362 |
|
---|
363 | \requirement{The import function should apply relevant corrections
|
---|
364 | (especially those which are time dependent) to specific
|
---|
365 | telescopes. See $\S$\ref{sec:issues} for a list of currently known
|
---|
366 | issues.}{1}
|
---|
367 |
|
---|
368 | \subsection{Sky subtraction}
|
---|
369 | \label{sec:skysubtraction}
|
---|
370 | To remove the effects of the passband filter shape and atmospheric
|
---|
371 | fluctuations across the band, sky subtraction must be performed on the
|
---|
372 | data. The software must be able to do sky subtraction using both
|
---|
373 | position switching (quotient spectra) and frequency switching
|
---|
374 | techniques.
|
---|
375 |
|
---|
376 | \requirement{\label{ref:skysub} Position switched sky subtraction
|
---|
377 | should be implemented using the algorithm \medskip\reqeqn{T_{ref}
|
---|
378 | \times \frac{S}{R} - T_{sig}} -- removes continuum\bigskip
|
---|
379 | \reqeqn{T_{ref} \times \frac{S}{R} - T_{ref}} -- preserves
|
---|
380 | continuum\medskip}{0}
|
---|
381 |
|
---|
382 | \requirement{The user should be able to specify an arbitrarily complex
|
---|
383 | reference/source order (which repeats), which can then be used to make
|
---|
384 | perform multiple sky subtractions in parallel.}{3}
|
---|
385 |
|
---|
386 | \requirement{Frequency switched sky subtraction should be
|
---|
387 | supported. (Ref. Liszt, 1997, A\&AS, 124, 183) }{2}
|
---|
388 |
|
---|
389 | %\requirement{For wideband multibit sampled data it may be desirable or
|
---|
390 | %even required to assume Tsys has a frequency dependency. Appropriate
|
---|
391 | %sky subtraction algorithms will need to be investigated.}{3}
|
---|
392 |
|
---|
393 | \requirement{For pulsar binned data, the (user specified) off pulse
|
---|
394 | bins can be used as the reference spectra. Due to potentially rapid
|
---|
395 | amplitude fluctuations, sky subtractions may need to be done on a per
|
---|
396 | integration basis.}{3}
|
---|
397 |
|
---|
398 | Multibeam systems can observe in a nodding fashion (called MX mode at
|
---|
399 | Parkes), where the telescope position is nodded between scans so that
|
---|
400 | the source is observed in turn by two beams and a reference spectra
|
---|
401 | for one beam is obtained while the other is observing the target source.
|
---|
402 |
|
---|
403 | \requirement{For multibeam systems, it must be possible to perform sky
|
---|
404 | subtraction with the source and reference in an alternate pair of
|
---|
405 | beams}{2}
|
---|
406 |
|
---|
407 | \subsection{Baseline removal}
|
---|
408 |
|
---|
409 | Baseline removal is needed to correct for imperfections in sky
|
---|
410 | subtraction. Depending on the stability of the system, the residual
|
---|
411 | spectral baseline errors can be small or quite large. Baseline removal
|
---|
412 | is usually done by fitting a function to the (user specified) line
|
---|
413 | free channels.
|
---|
414 |
|
---|
415 | \requirement{The software must be able to do baseline removal by
|
---|
416 | fitting a n'th order polynomials to the line free channels using a
|
---|
417 | least squares method.}{0}
|
---|
418 |
|
---|
419 | %\requirement{The baseline fitting should be reversible, i.e. the fit
|
---|
420 | %parameters must be retained.}{2}
|
---|
421 |
|
---|
422 | \requirement{Removal of standing wave ripples should be done by
|
---|
423 | fitting a Sine function to the line free channels.}{2}
|
---|
424 |
|
---|
425 | \requirement{``Robust'' fitting functions should be available, which are more
|
---|
426 | tolerant to RFI.}{1}
|
---|
427 |
|
---|
428 | \requirement{Automatic techniques for baselining should be
|
---|
429 | investigated.}{3}
|
---|
430 |
|
---|
431 | \subsection{Line Profile Fitting}
|
---|
432 |
|
---|
433 | The user will want to fit multicomponent line profiles to the data in
|
---|
434 | a simple manner and be able to manipulate the exact fitting
|
---|
435 | parameters.
|
---|
436 |
|
---|
437 | \requirement{The software must be able to do multi-component Gaussian
|
---|
438 | fitting of the spectra. The initial amplitude, width and velocity of
|
---|
439 | each component should be able to be set by the user and specific
|
---|
440 | values to be fit should be easily set.}{0}
|
---|
441 |
|
---|
442 | \requirement{The reduce Chi square (or similar statistic) of the fit
|
---|
443 | should given to the user, so that they can easily see if adding extra
|
---|
444 | components give a statistically significant improvement to the fit.}{1}
|
---|
445 |
|
---|
446 | %\requirement{The fit parameters should be stored with the data so that
|
---|
447 | %the user can work on multiple data sets simultaneously and experiment
|
---|
448 | %with different fitting values. These values should be saved to disk
|
---|
449 | %along with the data.}{1}
|
---|
450 |
|
---|
451 | \requirement{For multiple polarisation data, the individual stokes
|
---|
452 | parameters or polarisation products should be fit independently.}{1}
|
---|
453 |
|
---|
454 | \requirement{There should be an easy way of exporting the fit
|
---|
455 | parameter from multiple spectra, e.g. as an ASCII table.}{2}
|
---|
456 |
|
---|
457 | \requirement{It should be also possible to do constrained fitting of
|
---|
458 | multiple hyperfine components, e.g. the NH$_3$ hyperfine
|
---|
459 | components. (The constraints may be either the frequency separation of
|
---|
460 | the individual components or the amplitude ratio etc.)}{3}
|
---|
461 |
|
---|
462 | \requirement{It must be possible to alter the line profile fit
|
---|
463 | parameter values by hand at any stage.}{2}
|
---|
464 |
|
---|
465 | \requirement{It must be possible to ``fix'' particular values of the
|
---|
466 | line profile parameters, so that only subset of lines or (say) the
|
---|
467 | width of a line is fit.}{1}
|
---|
468 |
|
---|
469 | \requirement{The software should allow hooks for line profile shapes
|
---|
470 | other than Gaussian to be added in the future, possible user
|
---|
471 | specified.}{2}
|
---|
472 |
|
---|
473 | %\makenote{Should it be possible to attach multiple sets of fits to the
|
---|
474 | %data (similar to CL tables in classic AIPS), so the user can
|
---|
475 | %experiment with different ways of fitting the data?}
|
---|
476 |
|
---|
477 | %\makenote{Should calculations of rotational temperatures etc be
|
---|
478 | %handled when fitting hyperfine components, or should the user be doing
|
---|
479 | %this themselves?}
|
---|
480 |
|
---|
481 | \subsection{Calibration}
|
---|
482 |
|
---|
483 | The software should handle all basic system temperature (Tsys) and
|
---|
484 | gain calibration as well as opacity corrections where relevant. The
|
---|
485 | Tsys value should be contained in the rpfits files. The actual
|
---|
486 | application of the T$_{\mbox{sys}}$ factor will be applied as part of
|
---|
487 | the sky subtraction ($\S$\ref{sec:skysubtraction}). The units of Tsys
|
---|
488 | recorded in the data may be either in Jy or Kelvin, which will affect
|
---|
489 | how the data is calibrated. The rpfits file does {\em not} distinguish
|
---|
490 | if the flux units are Kelvin or Janskys.
|
---|
491 |
|
---|
492 | \requirement{Gain elevation corrections should be implemented using a
|
---|
493 | elevation dependent polynomial. The polynomial coefficients will be
|
---|
494 | telescope and frequency dependent. They will also have a (long term)
|
---|
495 | time dependence.}{1}
|
---|
496 |
|
---|
497 | \requirement{The user may wish to supply their own gain polynomial.}{2}
|
---|
498 |
|
---|
499 | \requirement{When required by the user, the spectral units must be
|
---|
500 | converted from Kelvin to Jansky. At higher (3mm) frequencies this
|
---|
501 | conversion is often not applied. The conversion factor is\medskip
|
---|
502 | \reqeqn{\mbox{Flux (Jy)} = \frac{T \times 2 k_b \times
|
---|
503 | 10^{26}}{\eta A}},\medskip\\where $k_b$ is Boltzmann's constant, A is
|
---|
504 | the illuminated area of the telescope and $\eta$ is the efficiency of
|
---|
505 | the telescope (frequency, telescope and time dependent)}{1}
|
---|
506 | %%TODO%% Use planks formula here?
|
---|
507 |
|
---|
508 | \requirement{In some cases the recorded Tsys values will be
|
---|
509 | wrong. There needs to be a mechanism to scale the Tsys value and the
|
---|
510 | spectrum if the Tsys value has already been applied (i.e. a simple and
|
---|
511 | consistent rescaling factor).}{2}
|
---|
512 |
|
---|
513 | \requirement{The data may need to be corrected for opacity effects,
|
---|
514 | particularly at frequencies of 20~GHz and higher. The opacity factor
|
---|
515 | to apply is given by\medskip\reqeqn{C_o = e^{\tau/cos(z)}}\medskip\\
|
---|
516 | where $\tau$ is the opacity and z is the zenith angle (90-El). These
|
---|
517 | corrections will generally be derived from periodic ``skydip''
|
---|
518 | measurements. These values will not be contained in the rpfits files,
|
---|
519 | so there should be a simple way of the software obtaining them and
|
---|
520 | interpolating in time (the user should not {\em have} to type them in,
|
---|
521 | but may want to). Reading in an ascii file which contains the skydip
|
---|
522 | data along with a time-stamp would be one possibility.}{1}
|
---|
523 |
|
---|
524 | \requirement{For wideband, multibit observations, the software should
|
---|
525 | have the option to handle Tsys which varies across the band. The exact
|
---|
526 | implementation will have to be decided once experience is gained with
|
---|
527 | the new Mopra digital filterbank. This will affect the sky subtraction
|
---|
528 | algorithms (requirement \reqref{ref:skysub}).}{2}
|
---|
529 |
|
---|
530 | %\makenote{Is the dependence of gain on frequency weak enough for one
|
---|
531 | %set of coefficients for each receiver, or is a full frequency dependent
|
---|
532 | %set of values needed?}
|
---|
533 |
|
---|
534 | %\makenote{Should it be possible to read ``correct'' Tsys values from
|
---|
535 | %an external ascii file?}
|
---|
536 |
|
---|
537 | \subsection{Editing \& RFI robustness}
|
---|
538 |
|
---|
539 | In a data set with many observations, individual spectra may be
|
---|
540 | corrupted or the data may be affected by RFI and ``birdies''. The user
|
---|
541 | needs to be able to easily flag individual spectra or channels. This
|
---|
542 | may affect other routines such as sky-subtraction, as this will
|
---|
543 | disrupt the reference/source sequence.
|
---|
544 |
|
---|
545 | \requirement{The user must be able to set an entire spectra or part
|
---|
546 | thereof (individual polarisation, IF etc) as being invalid. The
|
---|
547 | effected channels should either be blanked or interpolated depending
|
---|
548 | on the user wishes. When blanked data is plotted, the plotting routine
|
---|
549 | should also either interpolate the data on the fly or show a blank in
|
---|
550 | the spectrum, depending on the users preferences.}{1}
|
---|
551 |
|
---|
552 | \requirement{The user must be able to indicate an individual spectral
|
---|
553 | point or range of spectral points are invalid. This should be applied
|
---|
554 | to an individual spectra, or set of spectra.}{1}
|
---|
555 |
|
---|
556 | \requirement{The user should be able to plot the average spectral flux
|
---|
557 | across the band, or part of the band, as a function of time and
|
---|
558 | interactively select sections of data which should be marked as
|
---|
559 | invalid (similar to IBLED in classic aips).}{3}
|
---|
560 |
|
---|
561 | \requirement{Where relevant, fitting routines etc should have the
|
---|
562 | option of selecting RFI tolerant (``robust'') algorithms. This will
|
---|
563 | require investigating alternate fitting routines other than the
|
---|
564 | least-squares approach.}{3}
|
---|
565 |
|
---|
566 | \requirement{A routine to automatically find birdies or RFI corrupted
|
---|
567 | data and indicate the data as invalid would be useful.}{3}
|
---|
568 |
|
---|
569 | \requirement{Other routines must be able to cope with portions of data
|
---|
570 | which are marked as invalid.}{1}
|
---|
571 |
|
---|
572 | \subsection{Spectra mathematics and manipulation}
|
---|
573 |
|
---|
574 | A flexible suite of mathematical operations on the spectra should be
|
---|
575 | possible. This should include options such as adding, subtracting,
|
---|
576 | averaging and scaling the data. For common operations such as
|
---|
577 | averaging and smoothing, it must be simple for the user to invoke the
|
---|
578 | function (i.e. not to have to start up a complex spectral
|
---|
579 | calculator). Where it makes sense, it should be possible to manipulate
|
---|
580 | multiple spectra simultaneously.
|
---|
581 |
|
---|
582 | The spectral manipulations which should be available are:
|
---|
583 |
|
---|
584 | \requirement{Add or subtract multiple spectra.}{1}
|
---|
585 |
|
---|
586 | \requirement{Averaging multiple spectra, with optional weighting based
|
---|
587 | on Tsys, integration or rms. If the velocity of the spectra to be
|
---|
588 | averaged is different, the data should be automatically aligned in
|
---|
589 | velocity.}{0}
|
---|
590 |
|
---|
591 | \requirement{Various robust averaging possibilities (e.g. median
|
---|
592 | averaging, clipped means etc) should be possible.}{2}
|
---|
593 |
|
---|
594 | \requirement{Re-sampling or re-binning of the data to a lower (or
|
---|
595 | higher) spectral resolution (i.e. change the number of spectral
|
---|
596 | points). The re-sampling factor may not necessarily be an integer.}{2}
|
---|
597 |
|
---|
598 | \requirement{It must be possible to shift the data in
|
---|
599 | ``frequency/velocity''. This should include channel, frequency and
|
---|
600 | velocity shifts of an arbitrary amount.}{1}
|
---|
601 |
|
---|
602 | \requirement{Spectral smoothing of the data. Hanning, Tukey, boxcar
|
---|
603 | and Gaussian smoothing of variable widths should be possible.}{1}
|
---|
604 |
|
---|
605 | \requirement{Scaling of the spectra.}{1}
|
---|
606 |
|
---|
607 | \requirement{Calculate basic statistical values (maximum, minimum,
|
---|
608 | rms, mean) on a range of spectral points. The range may not be
|
---|
609 | contiguous. The calculated rms value should be retained with the
|
---|
610 | spectra so it can be optionally used for weighted averaging of
|
---|
611 | spectra.}{1}
|
---|
612 |
|
---|
613 | \requirement{It must be possible to calculate the flux integral over a
|
---|
614 | range of channels. The units should be Jy.km/s (or Kelvin.km/s). The
|
---|
615 | channel range for the calculation should be specific via the GUI or
|
---|
616 | CLI.}{2}
|
---|
617 |
|
---|
618 | \requirement{It must be possible to calculate the numerical ``width''
|
---|
619 | of a line (full width at half maximum type measurement). This should
|
---|
620 | be calculated by specifying a channel range and finding the maximum
|
---|
621 | value in this range and then finding the interpolated crossing point
|
---|
622 | of the data as a user defined fraction of the maximum (default
|
---|
623 | 50\%). The profile width and velocity mid-point should then be
|
---|
624 | computed. If the profile shape is complex (e.g. double arch) with
|
---|
625 | multiple crossing points of the fraction value, the minimum and
|
---|
626 | maximum width values should be calculated. There should be the option
|
---|
627 | of using a user specified ``maximum value''.}{2}
|
---|
628 |
|
---|
629 | \requirement{The user must be able to easily change the rest-frequency
|
---|
630 | to which the velocity is referenced.}{1}
|
---|
631 |
|
---|
632 | \requirement{FFT filtering for high- and lowpass filtering and
|
---|
633 | tapering.}{3}
|
---|
634 |
|
---|
635 | \requirement{It should be possible to FFT the data to and from power
|
---|
636 | spectra to the autocorrelation function.}{2}
|
---|
637 |
|
---|
638 | \requirement{The user may wish to compute the cross correlation
|
---|
639 | function of two spectra. The result should be a standard ``spectra'',
|
---|
640 | which can be displayed and analysed using other functions (max, rms
|
---|
641 | etc).}{3}
|
---|
642 |
|
---|
643 | \requirement{Complex experiment specific processing can often be done
|
---|
644 | using a series of the simple of basic functions. A spectral calculator
|
---|
645 | options should be added to the CLI to perform a series of
|
---|
646 | manipulations on a set of spectra.}{3}
|
---|
647 |
|
---|
648 | The user may want to perform specific analysis on the data using the
|
---|
649 | functionality above, but wish to do the manipulation between two
|
---|
650 | polarisations or IFs. Allowing the functions to also, optionally,
|
---|
651 | specify specific polarisations or IF would be an implementation and
|
---|
652 | interface nightmare. The simplest solution is the allow the data to be
|
---|
653 | ``split'' into separate spectra.
|
---|
654 |
|
---|
655 | \requirement{It must be possible to take multi IF, multibeam or
|
---|
656 | polarisation data and split out the individual spectral portions to
|
---|
657 | form self contained spectra.}{2}
|
---|
658 |
|
---|
659 | \subsection{Polarimetry}
|
---|
660 |
|
---|
661 | The software must fully support polarmetric analysis. This includes
|
---|
662 | calibration and basic conversions. Observations may be made with
|
---|
663 | linear or circular feed and the backend may or may not compute the
|
---|
664 | cross polarisation products. As such the software must cope with a
|
---|
665 | variety of conversions. The software should be able to calculate
|
---|
666 | stokes parameters with or without solving for leakage terms.
|
---|
667 |
|
---|
668 | %\makenote{It is debatable whether stokes I is the sum or average or
|
---|
669 | %two dual polarisation measurements.}
|
---|
670 |
|
---|
671 | \requirement{All functions on the data (calibration, sky subtraction
|
---|
672 | spectral mathematics) must support arbitrary, multiple, polarisation
|
---|
673 | (linear, circular \& stokes and single, dual \& cross
|
---|
674 | polarisations.}{1}
|
---|
675 |
|
---|
676 | \requirement{It must be possible to calculate stokes I from single or
|
---|
677 | dual polarisation observations.}{1}
|
---|
678 |
|
---|
679 | \requirement{Average a mixture of dual polarisation and single
|
---|
680 | polarisation data and form average stokes I (e.g. for a long
|
---|
681 | observation of a source, in which one polarisation is missing for some
|
---|
682 | time.}{3}
|
---|
683 |
|
---|
684 | \requirement{Full stokes parameters should be obtained from dual pol
|
---|
685 | (linear or circular) observations where the cross polarisation
|
---|
686 | products have been calculated.}{1}
|
---|
687 |
|
---|
688 | %\requirement{If the observations used linear polarisations and the
|
---|
689 | %cross polarisations were not computed, the source needs to be
|
---|
690 | %observed with the feeds set at least 3 different parallactic angles
|
---|
691 | %(note that if dual linear feeds are available, 2 orthogonal
|
---|
692 | %parallactic angles are obtained at once). The Stokes parameters can be
|
---|
693 | %solved using a least squares fit to the equation:
|
---|
694 | %\reqeqn{Iu/2 + Ip * cos^2 (PA + p)},\\
|
---|
695 | %where PA is the linear feed position angle, p is the polarisation
|
---|
696 | %angle, Iu and Ip and the unpolarised and linearly polarised
|
---|
697 | %intensity. {\em Stolen from SPC. I need to write this in more useful
|
---|
698 | %language. Is this technique likely to be used anymore?.}}{3}
|
---|
699 |
|
---|
700 | \requirement{If dual circular polarisation measurements are taken,
|
---|
701 | without computing the cross products, the software should still be
|
---|
702 | able to compute stokes I and V.}{2}
|
---|
703 |
|
---|
704 | \requirement{The software should be able to calculate leakage terms
|
---|
705 | from a calibrator source and correct the data either before or after
|
---|
706 | conversion to Stokes. (ref. Johnston, 2002, PASA, 19, 277)}{3}
|
---|
707 |
|
---|
708 | \requirement{The software should be able to determine absolute
|
---|
709 | position angle from a calibrator source and correct the data either
|
---|
710 | before or after conversion to Stokes.}{3}
|
---|
711 |
|
---|
712 | \requirement{Zeeman splitting factors should be derived from
|
---|
713 | (previous) profile fitting and the left and right circular
|
---|
714 | polarisations. The velocity shift varies linearly with the magnetic
|
---|
715 | field, but the scaling factor depends on the molecule and
|
---|
716 | transition. Scaling factor for common transitions should be known by
|
---|
717 | the software and the user able to enter factors for less common
|
---|
718 | transitions. Correctly identifying Zeeman pairs is crucial in getting
|
---|
719 | the correct result. The software should attempt to make an initial
|
---|
720 | guess of pairs (based on component velocity and width) but make the
|
---|
721 | user confirm and override the pairing if required.}{3}
|
---|
722 |
|
---|
723 | \subsection{Data Selection}
|
---|
724 | While the software is running the user will usually have loaded
|
---|
725 | multiple (possibly many) spectra each of which may have multiple IFs,
|
---|
726 | data from multiple beams and multiple polarisations. The user will
|
---|
727 | want to be able to quickly flip from considering one spectra to
|
---|
728 | another and, where relevant, want to perform parallel processing on
|
---|
729 | multiple spectra at once (e.g. baselining a sequence of on/off
|
---|
730 | observations of the same source which will later be averaged
|
---|
731 | together).
|
---|
732 |
|
---|
733 | \requirement{The software needs an easy-to-use mechanism to select
|
---|
734 | either individual or multiple spectra for viewing, parallel processing
|
---|
735 | etc.}{1}
|
---|
736 |
|
---|
737 | \requirement{An easy-to-use mechanism to select individual IFs, beams
|
---|
738 | or polarisations is needed.}{1}
|
---|
739 |
|
---|
740 | \requirement{\label{ref:chansel} The range of spectral points to use
|
---|
741 | for baseline removal, statistical calculations, RFI editing, analysis
|
---|
742 | etc must be easily set by the user from both the CLI and GUI. From the
|
---|
743 | CLI there must be the option of setting the range using a variety of
|
---|
744 | units (channel number, velocity, frequency). The selection range will
|
---|
745 | probably not be a contiguous set of channels, but many sets of
|
---|
746 | disjoint channel ranges. For some tasks (such as baseline subtraction
|
---|
747 | and statistical values), the channel range should be retained and be
|
---|
748 | available as a plot overlay.}{1}
|
---|
749 |
|
---|
750 | \requirement{When performing baseline subtraction on many spectra
|
---|
751 | simultaneously, the software should have a mechanism for identifying
|
---|
752 | ``on'' and ``off'' spectra and automatically selecting the signal and
|
---|
753 | quotient spectra. The algorithm needs to cope with on/off/on/off
|
---|
754 | sequences as well as off/on/on/off. If an individual quotient spectra
|
---|
755 | has been marked as invalid, an alternative should be found.}{3}
|
---|
756 |
|
---|
757 | \requirement{The software should be able to select sets of sources
|
---|
758 | based on simple regular expression type filtering (wild cards) on a
|
---|
759 | range of header values. Examples include G309$*$ or G309$*$w to select
|
---|
760 | on source name, or NH3$*$ to select on molecule name.}{3}
|
---|
761 |
|
---|
762 | \subsection{Plugins}
|
---|
763 |
|
---|
764 | \requirement{It would be desirable to support ``plugins'', user
|
---|
765 | definable functions for specific processing. The plugin code must have
|
---|
766 | full access (read/write) to the spectra data and headers. It should
|
---|
767 | also be possible to create new spectra which the software treats the
|
---|
768 | same as the original data. Preferably some (limited) access to the
|
---|
769 | plotter would also be possible and a number of the standard functions
|
---|
770 | accessible as ``library'' routines.}{3}
|
---|
771 |
|
---|
772 | \subsection{Pipelining}
|
---|
773 |
|
---|
774 | \requirement{Some sort of pipelining mode is required. This would
|
---|
775 | involve doing a quotient spectra, applying appropriate calibration and
|
---|
776 | possibly fitting a Gaussian to any lines present.}{3}
|
---|
777 |
|
---|
778 | \subsection{Methanol Multibeam Survey}
|
---|
779 |
|
---|
780 | The software may need to support reduction of data from the methanol
|
---|
781 | multibeam project. If so the pipelining will need to be flexible and
|
---|
782 | powerful enough to support this.
|
---|
783 |
|
---|
784 | \subsection{Miscellaneous functionality}
|
---|
785 |
|
---|
786 | \requirement{The software should be able to take a simple ``grid'' of
|
---|
787 | observations (normally a set of observations in a cross pattern on the
|
---|
788 | sky) and, for a subset of channels, fit the position of the
|
---|
789 | emission. The fit positions should be either plotted on the screen or
|
---|
790 | exported in a simple ascii form.}{3}
|
---|
791 |
|
---|
792 | \requirement{The kinematic distance of a source should be calculated
|
---|
793 | using basic Galactic rotation models. Multiple Galactic rotation
|
---|
794 | models must be supported and a mechanism for easily adding more.}{3}
|
---|
795 |
|
---|
796 | \requirement{For 1420 MHz observations of HI, the rms (Tsys) values
|
---|
797 | vary significantly across the band. The software should be able to
|
---|
798 | compute the rms as a function of frequency across the spectra from the
|
---|
799 | off-pulse data and then be able to plot n-sigma error bars on the
|
---|
800 | spectra.}{3}
|
---|
801 |
|
---|
802 | \requirement{It should be possible to take a selection of calibrated
|
---|
803 | spectra which are then passed to the ``Gridzilla'' program to produce
|
---|
804 | an image cube. Analysis of this cube would be done using external
|
---|
805 | programs (e.g. Miriad, aips++)}{3}
|
---|
806 |
|
---|
807 | \section{Help}
|
---|
808 |
|
---|
809 | \requirement{There should be built-in web-based documentation, which
|
---|
810 | can be easily kept up-to-date}{1}
|
---|
811 |
|
---|
812 | \requirement{A short and simple end-to-end cookbook for basic data
|
---|
813 | analysis should be available.}{1}
|
---|
814 |
|
---|
815 | \section{Data and meta-data}
|
---|
816 |
|
---|
817 | \requirement{The software must be capable of handling multi-IF
|
---|
818 | (potentially dozens of IFs) and multi-beam data with arbitrary
|
---|
819 | polarisation (e.g. single pol, dual pol, full stokes etc).}{1}
|
---|
820 |
|
---|
821 | \requirement{The software should handle pulsar binned data for pulsar
|
---|
822 | absorption experiments.}{3}
|
---|
823 |
|
---|
824 | \subsection{History}
|
---|
825 |
|
---|
826 | \requirement{A user viewable history of data processing steps should
|
---|
827 | be kept as part of the data. Where possible this should be retained
|
---|
828 | when data is imported from other packages.}{1}
|
---|
829 |
|
---|
830 | \requirement{It should be possible to use the history information to
|
---|
831 | create template pipeline scripts for batch processing.}{2}
|
---|
832 |
|
---|
833 | \subsection{Multiple IFs}
|
---|
834 |
|
---|
835 | \requirement{If multiple IFs are present (currently Tidbinbilla can
|
---|
836 | produce two IFs and the new wideband spectrometer for Mopra may have
|
---|
837 | dozens of IFs), the software should handle the data
|
---|
838 | transparently. Potentially each IF may have a significantly different
|
---|
839 | sky frequency and be observing a different molecule or transition with
|
---|
840 | a different rest frequency. From the users point of view,
|
---|
841 | simultaneously obtained IFs should be kept within the same
|
---|
842 | ``container'' (not split into a myriad of separate ``container'').}{1}
|
---|
843 |
|
---|
844 | %\makenote{Does the case of multiple lines (so multiple
|
---|
845 | %rest frequencies) within a single IF need special attention?}
|
---|
846 |
|
---|
847 | \subsection{Multibeam}
|
---|
848 |
|
---|
849 | \requirement{Basic handling of multibeam data should be possible (ie
|
---|
850 | in general each beam will be treated as a separate observation, but
|
---|
851 | all within the same container. The user should be able to view or
|
---|
852 | process either individual beams or all beams in parallel.}{2}
|
---|
853 |
|
---|
854 | \requirement{The use of a single beam observing a source and the
|
---|
855 | rest of the beams as reference beams for sky-subtraction should be
|
---|
856 | investigated.}{2}
|
---|
857 |
|
---|
858 | \subsection{Robust fitting}
|
---|
859 |
|
---|
860 | \requirement{If robust fitting using median filtering is used, then
|
---|
861 | the individual integrations from the observations should {\em not} be
|
---|
862 | averaged when the data is imported, but retained within a single
|
---|
863 | container. Inspection of this data should be optionally of the averaged
|
---|
864 | or individual data.}{2}
|
---|
865 |
|
---|
866 | \subsection{Fit parameters}
|
---|
867 |
|
---|
868 | \requirement{The fitting parameters for functions which have been fit
|
---|
869 | to the data (e.g. for baseline removal or Gaussian fits) should be
|
---|
870 | retained as an integral part of the data and stored permantely on
|
---|
871 | disk.}{1}
|
---|
872 |
|
---|
873 | \requirement{It must be possible to export fitting values in an
|
---|
874 | appropriate form. (i.e. ascii text format)}{1}
|
---|
875 |
|
---|
876 | \requirement{It should be possible to ``undo'' functions which have
|
---|
877 | been subtracted from the data (e.g. baseline polynomials).}{3}
|
---|
878 |
|
---|
879 | \subsection{Coordinate frames and units}
|
---|
880 |
|
---|
881 | \requirement{Coordinate frames and unit selection and handling needs
|
---|
882 | to be flexible and relatively transparent to the user (i.e. if the
|
---|
883 | users preference is for LSRK velocities, they do not need to worry
|
---|
884 | about the reference frame in which the data was observed).}{1}
|
---|
885 |
|
---|
886 | \requirement{At a minimum the following reference frames and
|
---|
887 | conventions should be handled: \setlength{\parindent}{0pt}
|
---|
888 |
|
---|
889 | \smallskip
|
---|
890 | \anitem{Position}{(RA,Dec) in J2000 \& B1950 (as well as other
|
---|
891 | arbitrary epochs), Galactic, (Az,El).}
|
---|
892 |
|
---|
893 | \anitem{Frequency}{Velocity (Topocentric, Geocentric, Barycentric,
|
---|
894 | Heliocentric, kinematical LSR, dynamical LSR, Rest), Frequency
|
---|
895 | (MHz, GHz), channel number.}
|
---|
896 |
|
---|
897 | \anitem{Velocity}{ Optical, Radio, Relativistic.}
|
---|
898 |
|
---|
899 | \anitem{Flux}{ Jansky, Kelvin (mJy etc).}}{1}
|
---|
900 |
|
---|
901 | \requirement{All data should be internally labelled with the
|
---|
902 | appropriate coordinate frame and units. If this information is
|
---|
903 | ambiguous for some reason, it should be set when the data is imported
|
---|
904 | and the user should not have to worry about it again.}{1}
|
---|
905 |
|
---|
906 | \requirement{It should be clear to the user what coordinate frame
|
---|
907 | (velocity, position etc) the data is being presented as.}{1}
|
---|
908 |
|
---|
909 | \subsection{Meta-data}
|
---|
910 |
|
---|
911 | A comprehensive set of header data should be read from the input data
|
---|
912 | files. In general all meta-data available in the rpfits file should be
|
---|
913 | retained. The user may wish to enter some specific values by hand.
|
---|
914 |
|
---|
915 | \requirement{All header data should be viewable and editable by the
|
---|
916 | user. This includes changes such as scaling the given Tsys values.}{2}
|
---|
917 |
|
---|
918 | \requirement{Missing header data should be handled gracefully,
|
---|
919 | i.e. the software should fill the values with ``blanks'' and be able
|
---|
920 | to continue to process the data if possible.}{1}
|
---|
921 |
|
---|
922 | \requirement{The user must be able to add missing header data, which
|
---|
923 | is not present in the RPFITs file. It must be possible to add the same
|
---|
924 | header data to multiple scans simultaneously.}{2}
|
---|
925 |
|
---|
926 | \extendedrequirement{
|
---|
927 | The following header data would be required per scan:
|
---|
928 | \begin{itemize}
|
---|
929 | \item Source name
|
---|
930 | \item Scan type (signal or reference)
|
---|
931 | \item Integration time
|
---|
932 | \item Scan length (actual time of observation, $\ge$ integration time)
|
---|
933 | \item Telescope
|
---|
934 | \item UT time and date of observation
|
---|
935 | \item Telescope elevation of observation
|
---|
936 | \item Parallactic angle
|
---|
937 | \item Beam size
|
---|
938 | \item Scan ID
|
---|
939 | \item Observer
|
---|
940 | \item Project
|
---|
941 | \item Polarisation
|
---|
942 | \item Receiver
|
---|
943 | \item Telescope coordinates
|
---|
944 | \item Weather info (temperature, pressure, humidity)
|
---|
945 | \item LO chain setup
|
---|
946 | \item User axis display preference (LSR velocity, frequency etc).
|
---|
947 | \end{itemize}
|
---|
948 | }{1}
|
---|
949 |
|
---|
950 | \extendedrequirement{
|
---|
951 | \label{req:if}
|
---|
952 | The following header data is required for each IF, beam etc:
|
---|
953 | \begin{itemize}
|
---|
954 | \item Source coordinates and coordinate frame
|
---|
955 | \item Frequency/velocity axis definition and type
|
---|
956 | \item System Temperature
|
---|
957 | \item Antenna gain (if Tsys measured in Kelvin)
|
---|
958 | \item Beam number
|
---|
959 | \item Molecule rest frequency$^\dagger$
|
---|
960 | \item Molecular name$^\dagger$
|
---|
961 | \item Molecular transition$^\dagger$
|
---|
962 | \item Molecular formula$^\dagger$
|
---|
963 | \end{itemize}
|
---|
964 | }{1}
|
---|
965 |
|
---|
966 | \requirement{The molecular formula could be stored with embedded
|
---|
967 | superscripted and subscripted symbols for ``pretty'' printing on the
|
---|
968 | plotted, but printed in plain text on the CLI or in ascii output}{3}
|
---|
969 |
|
---|
970 | Some molecular line rest-frequencies are close enough that two or more
|
---|
971 | molecules or transitions may be observed in a single IF. Typical
|
---|
972 | examples include the 1665/1667~MHz OH maser pair, NH$_3$ transitions,
|
---|
973 | and many observations in the 3~mm band.
|
---|
974 |
|
---|
975 | \vspace{\parskip}
|
---|
976 | \requirement{The software should optionally support multiple lines per
|
---|
977 | IF, by storing a set of rest frequencies per IF, rather than a single
|
---|
978 | value. The header values in requirement \reqref{req:if} marked with a
|
---|
979 | $\dagger$ would all have to be stored as an array of values rather
|
---|
980 | than a scalar. A simple mechanism must be posible to change the
|
---|
981 | currently ``active'' rest-frequency.}{3}
|
---|
982 |
|
---|
983 | \section{Installation}
|
---|
984 |
|
---|
985 | \requirement{It must be possible for astronomers to install the
|
---|
986 | software at their own institute with either a moderate amount of OS
|
---|
987 | experience or some help from the local system administrators. This
|
---|
988 | includes installation on a central ``NFS'' server as well as local
|
---|
989 | desk-tops.}{1}
|
---|
990 |
|
---|
991 | \requirement{The software must run on Solaris and all major flavours
|
---|
992 | of Linux (Fedora/Redhat, Debian, etc).
|
---|
993 | }{1}
|
---|
994 |
|
---|
995 | \requirement{It must be possible for users to
|
---|
996 | install the software on their (unix) laptops and run with no network
|
---|
997 | connection. }{1}
|
---|
998 |
|
---|
999 | \requirement{It should be relatively easy to upgrade to the lastest
|
---|
1000 | version of the software.}{2}
|
---|
1001 |
|
---|
1002 | \requirement{The software should run on MacOS/X}{3}
|
---|
1003 |
|
---|
1004 | \requirement{It would be desirable for the software to run on
|
---|
1005 | Windows.}{3}
|
---|
1006 |
|
---|
1007 | \section{Known Issues}
|
---|
1008 | \label{sec:issues}
|
---|
1009 | The following issue are known problems with the data from ATNF
|
---|
1010 | telescopes, which probably should be automatically corrected for if at
|
---|
1011 | all possible. The best place to do this is while loading the data.
|
---|
1012 |
|
---|
1013 | \subsection{General}
|
---|
1014 |
|
---|
1015 | \begin{itemize}
|
---|
1016 | \item All polarisations in the RPFITS files are labelled as
|
---|
1017 | XX/YY. These need to be relabelled as LL/RR when appropriate.
|
---|
1018 | \end{itemize}
|
---|
1019 |
|
---|
1020 | \subsection{Mopra}
|
---|
1021 |
|
---|
1022 | \begin{itemize}
|
---|
1023 | \item Data obtained in 2002 \& 2003 (and probably before) have an
|
---|
1024 | error in the frequency headers (this may be corrected by an external
|
---|
1025 | program). \makenote{Nedd Ladd}
|
---|
1026 |
|
---|
1027 | \item The (RA,Dec) positions in the data file are in date coordinates
|
---|
1028 | not J2000. This causes problems for packages like Class when
|
---|
1029 | averaging the data. \makenote{Maria Hunt}
|
---|
1030 |
|
---|
1031 | \item It is possible Tsys calibration is inconsistent currently.
|
---|
1032 | \makenote{Cormac Purcell??}
|
---|
1033 |
|
---|
1034 | \end{itemize}
|
---|
1035 |
|
---|
1036 | \subsection{Parkes}
|
---|
1037 |
|
---|
1038 | \begin{itemize}
|
---|
1039 | \item For pulsar data the automatic gain control is disabled. This
|
---|
1040 | means the nominal Tsys measurement does not change and Tsys per
|
---|
1041 | integration is encoded in a non-standard way. \makenote{Simon
|
---|
1042 | Johnston}
|
---|
1043 | \end{itemize}
|
---|
1044 |
|
---|
1045 | \subsection{Tidbinbilla}
|
---|
1046 |
|
---|
1047 | \begin{itemize}
|
---|
1048 | \item All 20-GHz data is calibrated in flux units of Kelvin.
|
---|
1049 | \end{itemize}
|
---|
1050 |
|
---|
1051 | \section{Acknowledgements}
|
---|
1052 |
|
---|
1053 | We would like to thank the following people for input directly or from
|
---|
1054 | previous documents: Maria Hunt, Paul Jones, Jim Caswell \& Dave
|
---|
1055 | McConnell, Frank Briggs, Juergen Ott, Daniel Pisano, Jim Lovell, Ray
|
---|
1056 | Norris, WIm Brouw, Maxim Voronkov, Vincent McIntyre, Jessica Chapman,
|
---|
1057 | Simon Johnston, Nedd Ladd, Lister Staveley-Smith, Cormac Purcell \&
|
---|
1058 | Rachel Deacon.
|
---|
1059 |
|
---|
1060 | \end{document}
|
---|