source: trunk/docs/intro.tex @ 298

Last change on this file since 298 was 298, checked in by Matthew Whiting, 17 years ago

Updated documentation, and changed the version number to 1.1 ready for the next release.

File size: 12.3 KB
Line 
1\secA{Introduction and getting going quickly}
2
3This document provides a user's guide to \duchamp, an object-finder
4for use on spectral-line data cubes. The basic execution of \duchamp
5is to read in a FITS data cube, find sources in the cube, and produce
6a text file of positions, velocities and fluxes of the detections, as
7well as a postscript file of the spectra of each detection.
8
9\duchamp searches fro groups of connected voxels (or pixels) that are
10all above some flux threshold. No assumption is made as to the shape
11of detections, and the only size constraints applied are those
12specified by the user.
13
14\secB{What to do}
15
16So, you have a FITS cube, and you want to find the sources in it. What
17do you do? First, you need to get \duchamp: there are instructions in
18Appendix~\ref{app-install} for obtaining and installing it. Once you
19have it running, the first step is to make an input file that contains
20the list of parameters. Brief and detailed examples are shown in
21Appendix~\ref{app-input}. This file provides the input file name, the
22various output files, and defines various parameters that control the
23execution.
24
25The standard way to run \duchamp is by the command
26\begin{quote}
27{\footnotesize
28\texttt{> Duchamp -p [parameter file]}
29}
30\end{quote}
31replacing \texttt{[parameter file]} with the name of the file listing
32the parameters.
33
34An even easier way is to use the default values for all parameters
35(these are given in Appendix~\ref{app-param} and in the file
36\texttt{InputComplete} included in the distribution directory) and use
37the syntax
38\begin{quote}
39{\footnotesize
40\texttt{> Duchamp -f [FITS file]}
41}
42\end{quote}
43where \texttt{[FITS file]} is the file you wish to search.
44
45The default action includes displaying a map of detected objects in a
46PGPLOT X-window. This can be disabled by setting the parameter
47\texttt{flagXOutput = false} or using the \texttt{-x} command-line
48option, as in
49\begin{quote}
50{\footnotesize
51\texttt{> Duchamp -x -p [parameter file]}
52}
53\end{quote}
54and similarly for the \texttt{-f} case.
55
56Once a FITS file and parameters have been set, the program will then
57work away and give you the list of detections and their spectra. The
58program execution is summarised below, and detailed in
59\S\ref{sec-flow}. Information on inputs is in \S\ref{sec-param} and
60Appendix~\ref{app-param}, and descriptions of the output is in
61\S\ref{sec-output}.
62
63\secB{Guide to terminology and conventions}
64
65First, a brief note on the use of terminology in this guide. \duchamp
66is designed to work on FITS ``cubes''. These are FITS\footnote{FITS is
67the Flexible Image Transport System -- see \citet{hanisch01} or
68websites such as
69\href{http://fits.cv.nrao.edu/FITS.html}{http://fits.cv.nrao.edu/FITS.html}
70for details.} image arrays with (at least) three dimensions. They
71are assumed to have the following form: the first two dimensions
72(referred to as $x$ and $y$) are spatial directions (that is, relating
73to the position on the sky -- often, but not necessarily,
74corresponding to Equatorial or Galactic coordinates), while the third
75dimension, $z$, is the spectral direction, which can correspond to
76frequency, wavelength, or velocity. The three dimensional analogue of
77pixels are ``voxels'', or volume cells -- a voxel is defined by a
78unique $(x,y,z)$ location and has a single value of flux, intensity
79or brightness (or something equivalent) associated with it.
80
81Sometimes, some pixels in a FITS file are labelled as BLANK -- that
82is, they are given a nominal value, defined by FITS header keywords
83\textsc{blank, bscale, \& bzero}, that marks them as not having a flux
84value. These are often used to pad a cube out so that it has a
85rectangular spatial shape. \duchamp has the ability to avoid these:
86see \S\ref{sec-blank}.
87
88Note that it is possible for the FITS file to have more than three
89dimensions (for instance, there could be a fourth dimension
90representing a Stokes parameter). Only the two spatial dimensions and
91the spectral dimension are read into the array of pixel values that is
92searched for objects. All other dimensions are ignored\footnote{This
93actually means that the first pixel only of that axis is used, and the
94array is read by the \texttt{fits\_read\_subsetnull} command from the
95\textsc{cfitsio} library.}. Herein, we discuss the data in terms of
96the three basic dimensions, but you should be aware it is possible for
97the FITS file to have more than three. Note that the order of the
98dimensions in the FITS file does not matter.
99
100With this setup, each spatial pixel (a given $(x,y)$ coordinate) can
101be said to be a single spectrum, while a slice through the cube
102perpendicular to the spectral direction at a given $z$-value is a
103single channel, with the 2-D image in that channel called a channel
104map.
105
106Detection involves locating a contiguous group of voxels with fluxes
107above a certain threshold. \duchamp makes no assumptions as to the
108size or shape of the detected features, other than having
109user-selected minimum size criteria. Features that are detected are
110assumed to be positive. The user can choose to search for negative
111features by setting an input parameter -- this inverts the cube prior
112to the search (see \S\ref{sec-detection} for details).
113
114Finally, note that it is possible to run \duchamp on a
115two-dimensional image (\ie one with no frequency or velocity
116information), or indeed a one-dimensional array, and many of the
117features of the program will work fine. The focus, however, is on
118object detection in three dimensions, one of which is a spectral
119dimension.
120
121\secB{A summary of the execution steps}
122
123The basic flow of the program is summarised here -- all steps are
124discussed in more detail in the following sections.
125\begin{enumerate}
126\item The necessary parameters are recorded.
127
128  How this is done depends on the way the program is run from the
129  command line. If the \texttt{-p} option is used, the parameter file
130  given on the command line is read in, and the parameters therein are
131  read. All other parameters are given their default values (listed in
132  Appendix~\ref{app-param}).
133
134  If the \texttt{-f} option is used, all parameters are assigned their
135  default values.
136
137\item The FITS image is located and read in to memory.
138
139  The file given is assumed to be a valid FITS file. As discussed
140  above, it can have any number of dimensions, but \duchamp only
141  reads in the two spatial and the one spectral dimensions. A subset
142  of the FITS array can be given (see \S\ref{sec-input} for details).
143
144\item If requested, a FITS file containing a previously reconstructed
145  or smoothed array is read in.
146
147  When a cube is either smoothed or reconstructed with the \atrous
148  wavelet method, the result can be saved to a FITS file, so that
149  subsequent runs of \duchamp can read it in to save having to re-do
150  the calculations (as they can be relatively time-intensive).
151
152\item \label{step-blank} If requested, BLANK pixels are trimmed from
153  the edges, and the baseline of each spectrum is removed.
154
155  BLANK pixels, while they are ignored by all calculations in
156  \duchamp, do increase the size in memory of the array above that
157  absolutely needed. This step trims them from the spatial edges,
158  recording the amount trimmed so that they can be added back in
159  later.
160
161  A spectral baseline (or bandpass) can also be removed at this point
162  as well. This may be necessary if there is a ripple or other
163  large-scale feature present that will hinder detection of faint
164  sources.
165
166\item If the reconstruction method is requested, and the reconstructed
167  array has not been read in at Step 3 above, the cube is
168  reconstructed using the \atrous wavelet method.
169
170  This step uses the \atrous method to determine the amount of
171  structure present at various scales. A simple thresholding technique
172  then removes random noise from the cube, leaving the significant
173  signal. This process can greatly reduce the noise level in the cube,
174  enhancing the detectability of sources.
175
176\item Alternatively (and if requested), the cube is smoothed, either
177  spectrally or spatially.
178
179  This step presents two options. The first considers each spectrum
180  individually, and convolves it with a Hanning filter (with width
181  chosen by the user). The second considers each channel map
182  separately, and smoothes it with a Gaussian kernel of size and shape
183  chosen by the user. This step can help to reduce the amount of noise
184  visible in the cube and enhance fainter sources.
185
186\item A threshold for the cube is then calculated, based on the pixel
187  statistics (unless a threshold is manually specified by the user).
188
189  The threshold can either be chosen as a simple $n\sigma$ threshold
190  (\ie a certain number of standard deviations above the mean), or
191  calculated via the ``False Discovery Rate'' method. Alternatively,
192  the threshold can be specified as a simple flux value, without care
193  as to the statistical significance (\eg ``I want every source
194  brighter than 10mJy'').
195
196  By default, the full cube is used for the statistics calculation,
197  although the user can nominate a subsection of the cube to be used
198  instead.
199
200\item Searching for objects then takes place, using the requested
201  thresholding method.
202
203  The cube is searched one channel-map at a time. Detections are
204  compared to already detected objects and either combined with a
205  neighbouring one or added to the end of the list.
206
207\item The list of objects is condensed by merging neighbouring objects
208  and removing those deemed unacceptable.
209
210  While some merging has been done in the previous step, this process
211  is a much more rigorous comparison of each object with every other
212  one. If a pair of objects lie within requested limits, they are
213  combined.
214
215  After the merging is done, the list is culled (although see comment
216  for the next step). There are certain criteria the user can specify
217  that objects must meet: minimum numbers of spatial pixels and
218  spectral channels, and minimum separations between neighbouring
219  objects. Those that do not meet these criteria are deleted
220  from the list.
221
222\item If requested, the objects are ``grown'' down to a lower
223  threshold, and then the merging step is done a second time.
224
225  In this case, each object has pixels in its neighbourhood examined,
226  and if they are above a secondary threshold, they are added to the
227  object. The merging process is done a second time in case two
228  objects have grown over the top of one another. Note that the
229  rejection part of the previous step is not done until the end of the
230  second merging process.
231
232\item The baselines and trimmed pixels are replaced prior to output.
233
234  This is just the inverse of step~\#\ref{step-blank}.
235
236\item The details of the detections are written to screen and to the
237  requested output file.
238
239  Crucial properties of each detection are provided, showing its
240  location, extent, and flux. These are presented in both pixel
241  coordinates and world coordinates (\eg sky position and
242  velocity). Any warning flags are also printed, showing detections to
243  be wary of. Alternative output options are available, such as a
244  VOTable or a Karma annotation file.
245
246\item Maps showing the spatial location of the detections are written.
247
248  These are 2-dimensional maps, showing where each detection lies on
249  the spatial coverage of the cube. This is provided as an aid to the
250  user so that a quick idea of the distribution of object positions
251  can be gained \eg are all the detections on the edge?
252
253  Two maps are provided: one is a 0th moment map, showing the 0th
254  moment (\ie a map of the integrated flux) of each detection in its
255  appropriate position, while the second is a ``detection map'',
256  showing the number of times each spatial pixel was detected in the
257  searching routines (including those pixels rejected at step 9 and so
258  not in any of the final detections).
259
260  These maps are written to postscript files, and the 0th moment map
261  can also be displayed in a PGPLOT X-window.
262
263\item The integrated or peak spectra of each detection are written to a
264  postscript file.
265
266  The spectral equivalent of the maps -- what is the spectral profile
267  of each detection? Also provided here are basic information for each
268  object (a summary of the information in the results file), as well
269  as a 0th moment map of the detection.
270
271\item If requested, the reconstructed or smoothed array can be written
272  to a new FITS file.
273
274  If either of these procedures were done, the resulting array can be
275  saved as a FITS file for later use. The FITS header will be the same
276  as the input file, with a few additional keywords to identify the
277  file.
278
279\end{enumerate}
280
Note: See TracBrowser for help on using the repository browser.