source: tags/release-1.1.12/docs/outputs.tex

Last change on this file was 831, checked in by MatthewWhiting, 13 years ago

Solving #118 - have new parameter flagPlotSpectra (defaulting to true) that controls whether the spectral plots are done. Also, we take notice of whether the USE_PGPLOT flag is set. Updating docs etc for new parameter as well.

File size: 25.5 KB
Line 
1% -----------------------------------------------------------------------
2% outputs.tex: Section detailing the different forms of text- and
3%              plot-based output.
4% -----------------------------------------------------------------------
5% Copyright (C) 2006, Matthew Whiting, ATNF
6%
7% This program is free software; you can redistribute it and/or modify it
8% under the terms of the GNU General Public License as published by the
9% Free Software Foundation; either version 2 of the License, or (at your
10% option) any later version.
11%
12% Duchamp is distributed in the hope that it will be useful, but WITHOUT
13% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14% FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15% for more details.
16%
17% You should have received a copy of the GNU General Public License
18% along with Duchamp; if not, write to the Free Software Foundation,
19% Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
20%
21% Correspondence concerning Duchamp may be directed to:
22%    Internet email: Matthew.Whiting [at] atnf.csiro.au
23%    Postal address: Dr. Matthew Whiting
24%                    Australia Telescope National Facility, CSIRO
25%                    PO Box 76
26%                    Epping NSW 1710
27%                    AUSTRALIA
28% -----------------------------------------------------------------------
29\secA{Outputs}
30\label{sec-output}
31
32\secB{During execution}
33
34\duchamp provides the user with feedback whilst it is running, to
35keep the user informed on the progress of the analysis. Most of this
36consists of self-explanatory messages about the particular stage the
37program is up to. The relevant parameters are printed to the screen at
38the start (once the file has been successfully read in), so the user
39is able to make a quick check that the setup is correct (see
40Appendix~{app-input} for an example).
41
42\duchamp will report the amount of memory that is allocated when the
43image is read in. This includes the storage for the array as well as
44additional storage for the reconstructed/smoothed array and/or the
45baseline arrays (if these are needed).
46
47If the cube is being trimmed (\S\ref{sec-modify}), the resulting
48dimensions are printed to indicate how much has been trimmed. If a
49reconstruction is being done, a continually updating message shows
50either the current iteration and scale, compared to the maximum scale
51(when \texttt{reconDim = 3}), or a progress bar showing the amount of
52the cube that has been reconstructed (for smaller values of
53\texttt{reconDim}).
54
55During the searching algorithms, the progress through the search is
56shown. When completed, the number of objects found is reported (this
57is the total number found, before any merging is done).
58
59In the merging process (where multiple detections of the same object
60are combined -- see \S\ref{sec-merger}), two stages of output
61occur. The first is when each object in the list is compared with all
62others. The output shows two numbers: the first being how far through
63the list the current object is, and the second being the length of the
64list. As the algorithm proceeds, the first number should increase and
65the second should decrease (as objects are combined). When the numbers
66meet, the whole list has been compared. If the objects are being
67grown, a similar output is shown, indicating the progress through the
68list. In the rejection stage, in which objects not meeting the minimum
69pixels/channels requirements are removed, the total number of objects
70remaining in the list is shown, which should steadily decrease with
71each rejection until all have been examined. Note that these steps can
72be very quick for small numbers of detections.
73
74Since this continual printing to screen has some overhead of time and
75CPU involved, the user can elect to not print this information by
76setting the parameter \texttt{verbose = false}. In this case, the user
77is still informed as to the steps being undertaken, but the details of
78the progress are not shown.
79
80There may also be Warning or Error messages printed to screen. The
81Warning messages occur when something happens that is unexpected (for
82instance, a desired keyword is not present in the FITS header), but
83not detrimental to the execution. An Error message is something more
84serious, and indicates some part of the program was not able to
85complete its task. The message will also indicate which function or
86subroutine generated it -- this is primarily a tool for debugging, but
87can be useful in determining what went wrong.
88
89\secB{Text-based output files}
90
91\secC{Table of results}
92\label{sec-results}
93
94Finally, we get to the results -- the reason for running \duchamp in
95the first place. Once the detection list is finalised, it is sorted
96according to the value of the \texttt{sortingParam}. This can take the
97value ``x-value'', ``y-value'', ``z-value'', ``ra'', ``dec'', ``vel'',
98``w50'', ``iflux'' (for integrated flux), or ``pflux'' (for peak
99flux), or ``snr''. The default value is ``vel''. If no good WCS
100exists, the mean pixel position equivalent is used (``ra'' is replaced
101by ``x-value'', ``dec'' by ``y-value'', ``vel'' and ``w50'' by
102``z-value''). The results are then printed to the screen and to the
103output file, given by the \texttt{OutFile} parameter.
104
105The output consists of two sections. First, a list of the parameters
106are printed to the output file, for future reference. Next, the
107detection threshold that was used is given, so comparison can be made
108with other searches. The statistics estimating the noise parameters
109are given (see \S\ref{sec-stats}). Thirdly, the number of detections
110are reported.
111
112All this information, known as the ``header'', can either be written
113to the start of the output file (denoted by the parameter
114\texttt{OutFile}), or written to a separate file from the list of
115detections. This second option is activated by the parameter
116\texttt{flagSeparateHeader}, and the information is written to the
117file given by \texttt{HeaderFile}.
118
119The most interesting part, however, is the list of detected
120objects. This list, an example of which can be seen in
121Appendix~\ref{app-output}, contains the following columns (note that
122the title of the columns depending on WCS information will depend on
123the details of the WCS projection: they are shown below for the
124Equatorial and Galactic projection cases).
125
126\begin{Lentry}
127\item[{Obj\#}] The ID number of the detection (simply the
128  sequential count for the list, which is ordered by increasing
129  velocity, or channel number, if the WCS is not good enough to find
130  the velocity).
131\item[{Name}] The ``IAU''-format name of the detection (derived from the
132  WCS position -- see below for a description of the format).
133\item[{X,Y,Z}] The ``centre'' pixel position, determined by the input
134  parameter \texttt{pixelCentre}.
135\item[{RA/GLON}] The Right Ascension or Galactic Longitude of the centre
136  of the object.
137\item[{DEC/GLAT}] The Declination or Galactic Latitude of the centre of
138  the object.
139\item[{VEL}] The mean velocity of the object [units given by the
140  \texttt{spectralUnits} parameter].
141\item[{w\_RA/w\_GLON}] The width of the object in Right Ascension or
142  Galactic Longitude (depending on FITS coordinates) [arcmin].
143\item[{w\_DEC/w\_GLAT}] The width of the object in Declination Galactic
144  Latitude [arcmin].
145\item[{w\_50}] The velocity width of the detection at 50\% of the peak
146  flux (the measured full-width at half-maximum, FWHM), in velocity
147  units [see note below].
148\item[{F\_int}] The integrated flux over the object, in the units of
149  flux times velocity, corrected for the beam if necessary. See below
150  for a discussion on this correction.
151\item[{F\_peak}] The peak flux over the object, in the units of flux.
152\item[{S/Nmax}] The signal-to-noise ratio at the peak pixel.
153\item[{X1, X2}] The minimum and maximum X-pixel coordinates.
154\item[{Y1, Y2}] The minimum and maximum Y-pixel coordinates.
155\item[{Z1, Z2}] The minimum and maximum Z-pixel coordinates.
156\item[{Npix}] The number of voxels (\ie distinct $(x,y,z)$ coordinates)
157  in the detection.
158\item[{Flag}] Whether the detection has any warning flags (see below).
159\end{Lentry}
160
161These parameters are written to the screen during execution. There are
162alternative ways of calculating the total flux, the position and
163velocity width, however, and so additional parameters are written to
164the output file:
165\begin{Lentry}
166\item[{w\_20}] The velocity width of the detection at 20\% of the peak
167  flux, in velocity units [see note below].
168\item[{w\_VEL}] The full velocity width of the detection (max channel
169  $-$ min channel, in velocity units).
170\item[{F\_tot}] The sum of the flux values of all detected voxels.
171\item[{X\_av, Y\_av, Z\_av}] The average pixel value in each
172  axis direction \ie X\_av is the average of the $x$-values of all
173  pixels in the detection.
174\item[{X\_cent, Y\_cent, Z\_cent}] The centroid position, being
175  the flux-weighted average of the pixels.
176\item[{X\_peak, Y\_peak, Z\_peak}] The location of the pixel
177  containing the peak flux value.
178\end{Lentry}
179
180The velocity width of the detection is calculated at 50\% and 20\% of
181the peak flux, as well as the full detected width (if the detection
182threshold is greater than 20\% or 50\% of the peak, then these values
183will be the same as \texttt{w\_VEL}. The type of position value given
184in the \texttt{X, Y, Z} columns in the screen output is determined by
185the \texttt{pixelCentre} parameter. All three alternatives are shown
186in the output file.
187
188The user can specify the precision used to display the flux, velocity
189and S/Nmax values, by using the input parameters \texttt{precFlux},
190\texttt{precVel} and \texttt{precSNR} respectively. These values apply
191to the tables written to the screen and to the output file, as well as
192for the VOTable (see below).
193
194The \texttt{Name} is derived from the WCS position. For instance, a
195source that is centred on the RA,Dec position 12$^h$53$^m$45$^s$,
196-36$^\circ$24$'$12$''$ will be given the name J125345$-$362412, if the
197epoch is J2000, or the name B125345$-$362412 if it is B1950. An
198alternative form is used for Galactic coordinates: a source centred on
199the position ($l$,$b$) = (323.1245, 5.4567) will be called
200G323.124$+$05.457. If the WCS is not valid (\ie is not present or does
201not have all the necessary information), the \texttt{Name, RA, DEC,
202VEL} and related columns are not printed, but the pixel coordinates
203are still provided.
204
205The velocity units can be specified by the user, using the parameter
206\texttt{spectralUnits} (enter it as a single string with no
207spaces). The default value is km/s, which should be suitable for most
208users. These units are also used to give the units of integrated
209flux. Note that if there is no rest frequency specified in the FITS
210header, the \duchamp output will instead default to using Frequency,
211with units of MHz.
212
213When the cube brightness units are quoted per beam (\eg Jy/beam), then
214the integrated flux \texttt{F\_int} includes a correction for
215this. This involves dividing by the integral over the beam. This is
216calculated using the BMAJ, BMIN \& BPA header keywords from the FITS
217file. BMAJ and BMIN are assumed to be the full-width at half maximum
218(FWHM) in the major and minor axis directions of a Gaussian beam. The
219integral is calculated as follows: the functional form of a 2D
220elliptical Gaussian can be written as
221$\exp(-((x^2/2\sigma_x^2)+(y^2/2\sigma_y^2)))$, and the FWHM in a
222given direction is then $f=2\sqrt{2\ln2}\sigma$. Then,
223\[
224\int
225\exp\left(-\left(\frac{x^2}{2\sigma_x^2}+\frac{y^2}{2\sigma_y^2}\right)\right)
226= 2\pi\sigma_x\sigma_y
227=\frac{\pi f_x f_y}{4\ln2}
228\]
229provides the correction factor to go from units of Jy/beam to Jy.
230
231If the FITS file does not have the beam information, the user can
232either:
233\begin{enumerate}
234\item Specify the FWHM of the beam in pixels (assuming a circular
235  beam) via the parameter \texttt{beamFWHM}.
236\item Specify the area of the beam, again in pixels, via the parameter
237  \texttt{beamArea}\footnote{Note that this is equivalent to the old
238    parameter \texttt{beamSize}, which was highlighted as being
239    ambiguous.}. This should be the value given by the equation above.
240\end{enumerate}
241If both are given, \texttt{beamFWHM} takes precendence. If neither are
242given, and there is no beam information in the header, then no
243correction to the integrated flux is made (and so it will stay in
244units of Jy/beam or equivalent).
245
246If the WCS is absent or not sufficiently specified, then all columns
247from \texttt{RA/GLON} to \texttt{w\_VEL} will be left blank. Also,
248\texttt{F\_int} will be replaced with the more simple \texttt{F\_tot}.
249
250The \texttt{Flag} column contains any warning flags, such as:
251\begin{itemize}
252\item \textbf{E} -- The detection is next to the spatial edge of the image,
253meaning either the limit of the pixels, or the limit of the non-BLANK
254pixel region.
255\item \textbf{S} -- The detection lies at the edge of the spectral region.
256\item \textbf{N} -- The total flux, summed over all the (non-BLANK)
257pixels in the smallest box that completely encloses the detection, is
258negative. Note that this sum is likely to include non-detected
259pixels. It is of use in pointing out detections that lie next to
260strongly negative pixels, such as might arise due to interference --
261the detected pixels might then also be due to the interference, so
262caution is advised.
263\end{itemize}
264In the absence of any of these flags, a \textbf{-} will be recorded in
265this column.
266
267\secC{Other results lists}
268
269Three additional results files can also be requested. One option is a
270VOTable-format XML file, containing just the RA, Dec, Velocity and the
271corresponding widths of the detections, as well as the fluxes. The
272user should set \texttt{flagVOT = true}, and put the desired filename
273in the parameter \texttt{votFile} -- note that the default is for it
274not to be produced. This file should be compatible with all Virtual
275Observatory tools (such as Aladin%
276\footnote{%Aladin can be found on the web at
277\href{http://aladin.u-strasbg.fr/}{http://aladin.u-strasbg.fr/}}
278or TOPCAT\footnote{%Tool for OPerations on Catalogues And Tables:
279\href{http://www.star.bristol.ac.uk/~mbt/topcat/}%
280{http://www.star.bristol.ac.uk/~mbt/topcat/}}).
281
282A second option is an annotation file for use with the Karma toolkit
283of visualisation tools (in particular, with \texttt{kvis}). There are
284two options on how objects are represented, governed by the
285\texttt{annotationType} parameter. Setting this to \texttt{borders}
286results in a border being drawn around the spatial pixels of the
287object, in a manner similar to that seen in Fig.~\ref{fig-spect}. Note
288that Karma/\texttt{kvis} does not always do this perfectly, so the
289lines may not be directly lined up with pixel borders. The other
290option is \texttt{annotationType = circles}. This will draw a circle
291at the position of each detection, scaled by the spatial size of the
292detection, and number it according to the Obj\# given above. To make
293use of this option, the user should set \texttt{flagKarma = true}, and
294put the desired filename in the parameter \texttt{karmaFile} -- again,
295the default is for it not to be produced.
296
297The final optional results file produced is a simple text file that
298contains the spectra for each detected object. The format of the file
299is as follows: the first column has the spectral coordinate, over the
300full range of values; the remaining columns represent the flux values
301for each object at the corresponding spectral position. The flux value
302used is the same as that plotted in the spectral plot detailed below,
303and governed by the \texttt{spectralMethod} parameter. An example of
304what a spectral text file might look like is given below:
305
306\begin{quote}
307  {\footnotesize
308    \begin{tabular}{lllll}
309      1405.00219727  &0.01323344  &0.23648241  &0.04202826  &-0.00506790  \\
310      1405.06469727  &0.01302835  &0.27393046  &0.04686056  &-0.00471084  \\
311      1405.12719727  &0.01583361  &0.27760920  &0.04114933  &-0.01168737  \\
312      1405.18969727  &0.01271889  &0.31489247  &0.03307962  &-0.00300790  \\
313      1405.25219727  &0.01597644  &0.30401203  &0.05356426  &-0.00551653  \\
314      1405.31469727  &0.00773827  &0.30031312  &0.04074831  &-0.00570147  \\
315      1405.37719727  &0.00738304  &0.27921870  &0.05272378  &-0.00504959  \\
316      1405.43969727  &0.01353923  &0.26132512  &0.03667958  &-0.00151006  \\ 
317      1405.50219727  &0.01119724  &0.28987029  &0.03497849  &-0.00645589  \\ 
318      1405.56469727  &0.00813379  &0.29839963  &0.04711142  &0.00536576   \\ 
319      1405.62719727  &0.00774377  &0.26530230  &0.04620502  &0.00724631   \\ 
320      1405.68969727  &0.00576067  &0.23215000  &0.04995513  &0.00290841   \\
321      1405.75219727  &0.00452834  &0.16484940  &0.04261605  &-0.00612812  \\ 
322      1405.81469727  &0.01406293  &0.15989439  &0.03817926  &-0.00758385  \\
323      1405.87719727  &0.01116611  &0.11890682  &0.05499069  &-0.00626362  \\ 
324      1405.93969727  &0.00687582  &0.10620256  &0.04743370  &0.00055177   \\
325      $\vdots$       &$\vdots$    &$\vdots$    &$\vdots$    &$\vdots$     \\
326    \end{tabular}
327  }
328\end{quote}
329
330In addition to these three files, a log file can also be produced. As
331the program is running, it also (optionally) records the detections
332made in each individual spectrum or channel (see \S\ref{sec-detection}
333for details on this process). This is recorded in the file given by
334the parameter \texttt{LogFile}. This file does not include the columns
335\texttt{Name, RA, DEC, w\_RA, w\_DEC, VEL, w\_VEL}. This file is
336designed primarily for diagnostic purposes: \eg to see if a given set
337of pixels is detected in, say, one channel image, but does not survive
338the merging process. The list of pixels (and their fluxes) in the
339final detection list are also printed to this file, again for
340diagnostic purposes. The file also records the execution time, as well
341as the command-line statement used to run \duchamp. The creation of
342this log file can be prevented by setting \texttt{flagLog = false}
343(which is the default).
344
345\secB{Graphical output}
346
347\begin{figure}[t]
348  \begin{center}
349    \includegraphics[width=\textwidth]{example_spectrum}
350  \end{center}
351  \caption{\footnotesize An example of the spectral output. Note several
352    of the features discussed in the text: the red lines indicating the
353    reconstructed spectrum; the blue dashed lines indicating the
354    spectral extent of the detection; the green hashed area indicating
355    the Milky Way channels that are ignored by the searching algorithm;
356    the blue border showing its spatial extent on the 0th moment map;
357    and the 15~arcmin-long scale bar.}
358  \label{fig-spect}
359\end{figure}
360
361\begin{figure}[!t]
362  \begin{center}
363    \includegraphics[width=\textwidth]{example_moment_map}
364  \end{center}
365  \caption{\footnotesize An example of the moment map created by
366    \duchamp. The full extent of the cube is covered, and the 0th moment
367    of each object is shown (integrated individually over all the
368    detected channels). The purple line indicates the limit of the
369    non-BLANK pixels.}
370  \label{fig-moment}
371\end{figure}
372
373\secC{Mask image}
374\label{sec-maskOut}
375
376It is possible to create a FITS file containing a mask array. This
377array is designed to indicate the location of detected objects. The
378value of the detected pixels is determined by the
379\texttt{flagMaskWithObjectNum} parameter: if \texttt{true}, the value
380of the pixels is given by the corresponding object ID number; if
381\texttt{false}, they take the value 1 for all objects. Pixels not in a
382detected object have the value 0. To create this FITS file, set the
383input parameter \texttt{flagOutputMask=true}. The file will be named
384according to the \texttt{fileOutputMask} parameter, or, if this is not
385given, \texttt{image.MASK.fits} (where the input image is called
386\texttt{image.fits}).
387
388\secC{Spectral plots}
389
390As well as the output data file, a postscript file (with the filename
391given by the \texttt{spectralFile} parameter) is created that shows
392the spectrum for each detection, together with a small cutout image
393(the 0th moment) and basic information about the detection (note that
394any flags are printed after the name of the detection, in the format
395\texttt{[E]}). If the cube was reconstructed, the spectrum from the
396reconstruction is shown in red, over the top of the original
397spectrum. The spectral extent of the detected object is indicated by
398two dashed blue lines, and the region covered by the ``Milky Way''
399channels is shown by a green hashed box. An example detection can be
400seen in Fig.~\ref{fig-spect}.
401
402The spectrum that is plotted is governed by the
403\texttt{spectralMethod} parameter. It can be either \texttt{peak} (the
404default), where the spectrum is from the spatial pixel containing the
405detection's peak flux; or \texttt{sum}, where the spectrum is summed
406over all spatial pixels, and then corrected for the beam size.  The
407spectral extent of the detection is indicated with blue lines, and a
408zoom is shown in a separate window.
409
410The cutout image can optionally include a border around the spatial
411pixels that are in the detection (turned on and off by the
412\texttt{drawBorders} parameter -- the default is \texttt{true}). It
413includes a scale bar in the bottom left corner to indicate size -- its
414length is indicated next to it (the choice of length depends on the
415size of the image).
416
417There may also be one or two extra lines on the image. A yellow line
418shows the limits of the cube's spatial region: when this is shown, the
419detected object will lie close to the edge, and the image box will
420extend outside the region covered by the data. A purple line, however,
421shows the dividing line between BLANK and non-BLANK pixels. The BLANK
422pixels will always be shown in black. The first type of line is always
423drawn, while the second is governed by the parameter
424\texttt{drawBlankEdges} (whose default is \texttt{true}), and
425obviously whether there are any BLANK pixel present.
426
427Note that the creation of the spectral plots can be prevented by
428setting \texttt{flagPlotSpectra = false}.
429
430\secC{Output for 2-dimensional images}
431
432When the input image is two-dimensional, with no spectral dimension,
433this spectral plot would not make much sense. Instead, \duchamp
434creates a similar postscript file that simply includes the text
435headers as well as the 0th-moment map of the detection. As for the
436normal spectral case, this file will be written to the filename given
437by the \texttt{spectralFile} parameter.
438
439\secC{Spatial maps}
440
441Finally, a couple of images are optionally produced: a 0th moment map
442of the cube, combining just the detected channels in each object,
443showing the integrated flux in grey-scale; and a ``detection image'',
444a grey-scale image where the pixel values are the number of channels
445that spatial pixel is detected in. In both cases, if
446\texttt{drawBorders = true}, a border is drawn around the spatial
447extent of each detection, and if \texttt{drawBlankEdges = true}, the
448purple line dividing BLANK and non-BLANK pixels (as described above)
449is drawn. An example moment map is shown in Fig.~\ref{fig-moment}.
450The production or otherwise of these images is governed by the
451\texttt{flagMaps} parameter.
452
453The moment map is also displayed in a PGPlot XWindow (with the
454\texttt{/xs} display option). This feature can be turned off by
455setting \texttt{flagXOutput = false} -- this might be useful if
456running \duchamp on a terminal with no window display capability, or
457if you have set up a script to run it in a batch mode.
458
459The moment map can also be written to a FITS file, so that it can be
460examined more closely, and have annotation files overlaid. This works
461in the same way as for the mask image. To create the FITS file, set the
462input parameter \texttt{flagOutputMomentMap=true}. The file will be named
463according to the \texttt{fileOutputMomentMap} parameter, or, if this is not
464given, \texttt{image.MOM0.fits} (where the input image is called
465\texttt{image.fits}).
466
467The purpose of these images are to provide a visual guide to where the
468detections have been made, and, particularly in the case of the moment
469map, to provide an indication of the strength of the source. In both
470cases, the detections are numbered (in the same sense as the output
471list and as the spectral plots), and the spatial borders are marked
472out as for the cutout images in the spectra file. Both these images
473are saved as postscript files (given by the parameters
474\texttt{momentMap} and \texttt{detectionMap} respectively), with the
475latter also displayed in a \textsc{pgplot} window (regardless of the
476state of \texttt{flagMaps}).
477
478
479
480\secB{Re-using previous detections}
481\label{sec-reuse}
482
483It may be the case that, once you have run \duchamp with a set of
484parameters, you are unsatisfied with the output spectra -- perhaps you
485would have preferred integrated rather than peak flux to be
486plotted. However, the searching might have taken a while to run, and
487the thought of doing it again just for different plots may be a bit
488off-putting.
489
490Well, provided you have made a log file when running \duchamp (with
491the \texttt{flagLog=true} setting), it is possible to do this easily
492without having to go through the process of detecting your sources a
493second time. By using the same input file, with the additional
494parameter \texttt{usePrevious=true}, the log file that was created
495with a previous \duchamp run can be read to extract each of the
496individual detections. The output stage is then run again, with the
497parameters (in particular \texttt{pixelCentre} and
498\texttt{spectralMethod}) as given in the input file.
499
500Perhaps you would also like to extract a single source's
501spectral plot (\eg for use in a journal paper). The use-previous
502method allows you to specify particular sources to re-plot. Only these
503sources will be plotted in the \texttt{SpectraFile} file, and
504individual files will be created for each of the listed sources. Their
505filenames will follow the format of \texttt{SpectraFile}: if,
506\texttt{SpectraFile=file.ps}, source \#3 will appear in
507\texttt{file-03.ps}. To give a list of sources, use the
508\texttt{objectList} parameter, and provide a string with individual
509object numbers or object ranges: \eg 1,2,4-7,8,11.
Note: See TracBrowser for help on using the repository browser.