source: trunk/docs/intro.tex @ 1016

Last change on this file since 1016 was 964, checked in by MatthewWhiting, 12 years ago

Lots of updates to the user guide.

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