source: trunk/CHANGES @ 1278

Last change on this file since 1278 was 1278, checked in by MatthewWhiting, 11 years ago

Commenting on the median baseline capability & removing a bit of unused code.

File size: 60.5 KB
Line 
1Duchamp version 1.5 (2013/??/??)
2--------------------------------
3
4Input parameter changes:
5
6* There is now a more flexible way to specify channels that should be
7  ignored by the source-finding. Use flaggedChannels to provide a list
8  of single channels or channel ranges that should be ignored. This
9  replaces the flagMW/minMW/maxMW parameters, extending their
10  functionality and allowing more than one set of channels to be
11  specified.
12
13* There is now an alternative way to find (and remove) spectral
14  baselines, using a median baselining algorithm. This calculates the
15  baseline value for a given pixel to be the median value within a box
16  of a specified size centred on that pixel. There are two input
17  parameters now available, baselineType (atrous or median), and
18  baselineBoxWidth (the width of the median box). Consult the User's
19  Guide for further information.
20
21Output changes:
22
23* The results files now include the Nchan and Nspatpix columns,
24  showing the number of distinct channels and the number of spatial
25  pixels in each detection. For clarity, the Npix column has been
26  renamed Nvoxel.
27
28* The VOTable now includes the pixel location X, Y, Z columns, and the
29  pixel ranges - this makes it much closer to the ASCII results file
30  (it is just missing the string versions of RA/DEC, and F_tot when
31  F_int is calculated).
32
33Bug fixes:
34
35* Negative velocity (and other) values were resulting in the column
36  widths not adjusting correctly, leading to columns running into each
37  other. This has been fixed, so that the spacing in the results files
38  should be correct.
39
40* Fixed a problem applicable to cubes with blank/masked pixels in the
41  same spectra as detections. The velocity width calculations could
42  sometimes fail due to the mask not being applied.
43
44Code changes:
45
46* The plotting code has been refactored, improving its class structure
47  and inheritance. No functional change from this should be evident,
48  but it improves the maintainability of the code.
49
50
51Duchamp version 1.4 (2013/06/20)
52--------------------------------
53
54Installation:
55
56* The "make lib" command will now create a shared library
57  libduchamp.1.4.so as well as the static library libduchamp.1.4.a
58  (formerly just called libduchamp.a).
59
60Bug Fixes:
61
62* The orientation of ellipses in the DS9 region files are now correct
63  (they were wrong by 90 degrees).
64
65* Corrected the output FITS filenames so that they work when the input
66  filename does *not* end in ".fits".
67
68Code changes:
69
70* The code that manages the output columns for the ASCII and VOTable
71  output has been overhauled and streamlined. Little functional change
72  should be evident, but it should be much more robust. And easier to
73  use in derived software.
74
75Duchamp version 1.3.2 (2013/05/02)
76----------------------------------
77
78Bug fixes:
79
80* The units for the integrated flux (for F_int) were not being
81  calculated for cases of a FITS file without a spectral
82  axis. Additionally, a vestigial default value meant this column had
83  units of "counts". This has been fixed so that a FITS file with
84  Jy/beam units will have F_int values in Jy.
85
86* The ellipse fitting to find the MAJ/MIN/PA was not working correctly
87  in the case of negative searches. This has been fixed.
88
89* The scaling of MAJ/MIN values was not being done correctly in all
90  cases, so that the values were out by a factor of 60 or 3600. This
91  was particularly the case when the ellipse fitting failed (due to
92  small numbers of pixels, for instance).
93
94* The principle axes calculations have been simplified slightly, and
95  now are done only on pixels above half the peak in the moment-0 map
96  (to estimate the FWHM).
97
98Duchamp version 1.3.1 (2013/04/18)
99----------------------------------
100
101Bug fixes:
102
103* The kernel used in the 2D smoothing was not normalised properly,
104  which meant the fluxes in the smoothed array were scaled
105  incorrectly. The kernel is now normalised, so that the fluxes in the
106  smoothed array decrease (and to an increasing degree with larger
107  kernels, as expected).
108
109* The way the position angle of the smoothing kernel was interpreted
110  was wrong. It now conforms to the typical astronomical position
111  angle definition of degrees east of north.
112
113* The Z_PEAK column was being left out of the results file for
114  Duchamp-1.3. It has been put back in.
115
116* The calculation of S/Nmax has changed so that when smoothing or
117  reconstruction is done, the peak flux used is measured in the
118  reconstructed/smoothed array (where the noise is measured).
119
120* The flux errors are now not reported in the case of smoothing, since
121  we don't measure the noise in the original input image array.
122
123Other fixes:
124
125* The vertical range of the spectral plots now properly takes into
126  account all spectra (not just the input array), and quirks with a MW
127  range lying outside the plotted range have been fixed.
128
129* The flux scaling for the moment-0 map plot now ignores negative
130  values, meaning the scale should be sensible.
131
132* The spelling of the Object2D::getPrincipalAxes() has been corrected.
133
134* Minor code optimisations have been made to the smoothing code.
135
136* The subsection class is now initialised with a blank string.
137
138Duchamp version 1.3 (2013/03/08)
139--------------------------------
140
141New features:
142
143* New source parameters:
144
145  # Each source now has a measurement of the major & minor axis sizes,
146    along with the position angle of the major axis. The sizes are the
147    full-width at half maximum, measured from the moment-0 map. These
148    now appear in the catalogue and in the spectral plots, with the
149    ellipse drawn on the moment map cutout in the spectral plots. The
150    old measurements of w_RA & w_DEC are still made and included in
151    the full catalogue, but are no longer reported in the smaller
152    catalogue printed to screen (nor in the XML/VOTable output).
153
154  # Each source also now has a measurement of the error on the
155    integrated and total fluxes. This is calculated from summing in
156    quadrature the statistical noise on each detected voxel. This is
157    from a request by Sara Shakouri.
158
159* Output files - new types and changes to the way they are written:
160
161  # Ability to create CASA region format files showing the location of
162    the detected sources. This is analogous to the Karma annotation
163    files or DS9 region files, for use with the casa viewer, but can
164    also be imported into casapy.
165
166  # Ability to save baseline values to a FITS file (in the same way as
167    for the reconstructed or smoothed array).
168
169  # Ability to save the moment-0 mask to a FITS file (that is, a mask
170    indicating which spatial pixels form part of the moment-0 map).
171
172  # There is an improved way to store the detected pixels for later
173    re-use. While previously the detected pixels were written as scans
174    to the logfile, and then read in when the usePrevious flag was
175    set, we now write the scans and other metadata to a binary
176    catalogue that can be read in again. Writing as a binary file
177    leads to much better compression of the data, particularly when
178    combined with the run-length encoding. It is anticipated future
179    tools will be provided to allow additional interaction with these
180    binary catalogues.
181
182  # There are slight changes to the format of the ASCII catalogues,
183    where lines not containing sources are prefixed with a comment
184    character '#'. This will facilitate their use in other software.
185
186* There is a new command-line parameter, -t THRESH, which specifies
187  the flux threshold for searching. It is designed to be used with the
188  -f option, as a quick way of searching a FITS image to a specified
189  flux level.
190
191Bug fixes:
192
193* A bug in the spatial smoothing has been fixed. The mask was being
194  interpreted incorrectly, so that no valid pixels were getting
195  smoothed.
196
197* The WCS for the moment-0 FITS cube has been fixed (specifically, the
198  axis names).
199
200* When usePrevious was used, the behaviour in previous versions was to
201  always write individual spectra. This is now controlled by a new
202  parameter flagPlotIndividualSpectra.
203
204* Minor improvements to the output when verbose=false.
205
206* Improvements to the Makefile, so that header files from a
207  previously-installed version of Duchamp do not get used instead of
208  those from the current version.
209
210* The vertical range for the spectral plots now take into account the
211  baseline and reconstructed/smoothed arrays as well (outside of any
212  MW range, of course).
213
214Other
215
216* The code-base for reading from and writing to FITS files has been
217  overhauled and streamlined. It can now be found in the FitsIO
218  directory. The interface for the writing of FITS files via the Cube
219  class has not changed.
220
221* The User Guide has been slightly re-ordered to provide more explicit
222  information about the source parameters.
223
224
225Duchamp version 1.2.2 (2012/10/29)
226----------------------------------
227
228Bug fixes:
229
230* The reading of reconstructed & smoothed arrays in the case of large
231  (>2GB) cubes has been improved. While the most recent versions of
232  cfitsio were able to handle these, earlier versions would result in
233  a segementation fault using the previous interface. An alternative
234  interface has been implemented that avoids these faults, even for
235  the older cfitsio libraries.
236
237* A bug affecting the writing of FITS mask files (apparently for the
238  case of flagging by the object number) has been fixed.
239
240* The moment map occasionally failed if sources lay spatially within
241  the blank pixel region of the first channel. This check has been
242  removed and the moment map should be produced successfully in all
243  situations.
244
245Other:
246
247* The UCDs used in the VOTable catalogue output have been
248  updated. Several of these were shared between different columns, and
249  so they have been changed so that each UCD is unique to one
250  column. The column ID strings have been updated for clarity.
251
252* The determination of default output image filenames has been
253  improved -- it previously assumed the input filename ended in
254  '.fits', but this is no longer the case.
255
256Duchamp version 1.2.1 (2012/10/09)
257----------------------------------
258
259New feature:
260
261* Duchamp can now produce region files to annotate images displayed in
262  SAOImage DS9. There are new parameters flagDS9 and ds9File that work
263  in the same way as the Karma annotation file parameters. The region
264  files can also be displayed in (at least some versions of)
265  casaviewer.
266
267* There is a new script to fix occasional problems with the
268  automatically-detected Makefile, and the verification script has
269  been updated and improved.
270
271Bug fixes:
272
273* The main bug fix for this release corrects a problem with the
274  velocity width measurements made when searching for negative
275  detections. It was possible to get very small (and incorrect) widths
276  in some cases - this was due to the integrated spectrum not being
277  inverted correctly.
278
279* In the case of smoothing, the stats of the full cube that were being
280  reported in the output files were actually those of the un-smoothed
281  (input cube). This only affected the output files, not the detection
282  process itself.
283
284* The units were not being reported in the VOTable. This has been
285  fixed.
286
287* The UCDs for the spectral parameters in the VOTable were not being
288  adapted to the user requests, so didn't always match the types of
289  the parameters. All should be consistent now.
290
291Other changes:
292
293* The codebase relating to the creation of and writing to output files
294  (results, logs, annotation, VOTables) has been overhauled, with a
295  cleaner interface. Most of this code is in the new subdirectory
296  src/Outputs, to where the columns code has been moved as well.
297
298  This was instigated by ASKAP/Selavy development, but also allowed
299  the expansion of output formats to include DS9 region files. No
300  change to the user should be visible, but anyone using the software
301  will notice differences. Please get in touch if changes are
302  difficult to follow.
303
304Duchamp version 1.2 (2012/08/08)
305--------------------------------
306
307Key changes:
308
309* The way the wavelet reconstruction is done in the presence of BLANK
310  voxels is slightly different, specifically when there were BLANK
311  voxels on the edge. While BLANK voxels are always ignored by the
312  reconstruction (and left in place), the previous approach dealt with
313  BLANKS on the edge by moving the effective edge of the image inwards
314  until the first non-blank voxel. This meant that the size of the
315  dimensions used to determine the number of scales, and the location
316  where boundary reflections took place where different to the input
317  image size.
318
319  However, this meant that BLANK voxels on the edge were treated
320  differently to those not on the edge, so this inconsistency was
321  removed. The full image dimensions are always used to calculate the
322  number of scales, and reflections (which is how the reconstruction
323  deals with the boundaries) will occur at the actual image edges.
324
325  If your data has this property (BLANK pixels at the image
326  boundaries), then any reconstruction will be affected (most likely
327  only in a small way) and potentially any subsequent searching. You
328  are advised to check this (for instance by saving the results of the
329  resonstruction from 1.1.13 and 1.2 and comparing).
330
331* The way the spectral world coordinate system is dealt with has been
332  improved. Previously Duchamp tried to convert to a velocity axis,
333  and got a bit grumpy if that didn't work well. Now it will express
334  the spectral units in the axis type indicated by the FITS
335  header. Duchamp will also allow you to change this type by providing
336  an appropriate WCS type as an input parameter. You may also provide
337  a rest frequency in the parameter file and this will be used to
338  calculate velocities. And, as before, you can provide specific units
339  for the spectral quantities to be converted into.
340
341* Since v1.1.13 was released, the journal paper describing Duchamp has
342  been published. It can be found at MNRAS 421, 3242 (2012), or
343  http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2966.2012.20548.x/full. It
344  includes descriptions of the various algorithms used for Duchamp, as
345  well as some indicative comparisons of the relative completeness &
346  reliability. Please cite this paper when describing Duchamp.
347
348Other new features:
349
350* The default value of snrCut has changed from 3 to 5. This is
351  espeically important if you use the -f option, but also if you don't
352  provide snrCut in your parameter file.
353
354* The XML VOTable output now includes a more complete list of
355  parameters, matching the output given in text form in the results &
356  log output files. Only those parameters affecting the results are
357  included - things like the output file names and so on are left out.
358
359* The minVoxels parameter is now adjusted to be at least (minPix +
360  minChannels - 1). If it is changed, a warning message is triggered.
361
362* The warning/error reporting has been overhauled, with an improved
363  interface for developers. Also, some ERROR instances that previously
364  resulted in the program terminating now allow it to continue
365  (provided that is possible given the error).
366
367* It is now possible to give the convergence criterion for the wavelet
368  reconstruction via the parameter reconConvergence. When the relative
369  change in standard deviation of the residuals from the
370  reconstruction falls below this value, the a trous algorithm stops
371  iterating.
372
373* The way one-dimensional arrays were dealt with was unsatisfactory,
374  both with the way positions were registered and the format of the
375  graphical output. Improvements have been made such that a 1D data
376  structure is assumed to be a spectrum, and so positions in the
377  spectrum are reported as z-pixels (or the equivalent world
378  coordinate). Instead of a 2D moment map, the X-windows display will
379  show the spectrum with all detected pixels plus the final list of
380  detections highlighted, along with the detection and growth
381  thresholds. This plot will also be written to the "detectionMap"
382  image.
383
384* All spectral plots will now show the detection (and growth, if
385  applicable) thresholds when plotting the peak flux spectrum.
386
387* Accessing FITS files when a subsection string is provided has been
388  streamlined. The cfitsio package, which handles the FITS access,
389  creates a temporary file containing this image section, and this
390  meant the previous approach was slow, particularly for large
391  files/sections. Now the file is only opened once and the overhead of
392  creating the temporary file is only encountered once.
393
394* Several aspects of the processing & output did not handle a
395  non-existent WCS well. This has been improved, so that all stages of
396  execution will proceed without errors.
397
398Bug fixes:
399
400* The absence of a BLANK keyword when trimming will now not trigger a
401  failure, only a warning message.
402
403* The flux unit conversion (eg. from Jy/beam to mJy/beam) was not
404  being applied correctly when an existing reconstructed or smoothed
405  array was being read in. This is now applied properly.
406
407* When saving reconstructed or smoothed arrays, the data type is now
408  set to FLOAT, so that the correct values are written (and
409  subsequently read in). The previous version was potentially saving
410  to a FITS file with integer data type (this depended on the type of
411  the input array). In this case, the full precision of data values
412  would not be preserved, so reading back in and doing an identical
413  search could yield different sources.
414
415* For certain cases, the reconstruction attempted to use a very large
416  number of scales. This has been fixed.
417
418* The maximum scale for the reconstruction was not always being
419  applied. The scale ranges are now enforced for all types of
420  reconstructions.
421
422* When saving a mask image while using a subsection of a cube, the
423  offsets for the subsection were not being accounted for
424  correctly. This is now fixed.
425
426* The detection map plots were not recording pixels added from the
427  growing stage. This has been fixed.
428
429* The RA & Dec now have appropriate precision, rather than an
430  arbitrary 2 decimal places on the seconds value. The RA will be one
431  decimal place more than the Dec, and they will reflect the degree of
432  precision in the image pixels.
433
434* A number of data type conversions (typically ints to floats) led to
435  errors in some calculations, such as WCS conversions. Care has been
436  taken to make sure all indexing is done appropriately with no
437  overflow, and that all conversions (where necessary) are done
438  appropriately.
439
440* It was possible to get world positions looking like 11:59:60.0! Not
441  any more.
442
443* Reading previous detections from the log file (via the use of the
444  usePrevious parameter) did result in error messages due to slightly
445  incompatible formats. These have been fixed, and all graphical
446  output should work properly.
447
448* When using a spectral search, having a blank pixel in the first
449  channel could lead to that entire spectrum being ignored, leading to
450  inconsistent results between spectral and spatial searches. This
451  issue has been fixed, with both types of searches returning the same
452  catalogue.
453
454
455Code base development notes:
456
457* Most instances of integer overflow due to insufficient precision
458  have been tracked down - many of these were indexing variables of
459  type int, which have been changed to size_t.
460
461* Importantly, for code interfacing with the duchamp::Cube and related
462  classes, axisDim is now an array of size_t elements, rather than
463  long.
464
465* Object3D now carries its spatial map with it, rather than
466  calculating it on the fly when requested. This saves a lot of
467  unnecessary computational effort.
468
469* The warning/error interface has improved, making use of C++
470  exception handling. This should be compatible with external logging
471  infrastructure (such as log4cxx).
472
473* The interface to the FitsHeader & WCS structures for external code
474  has been improved, so that the WCS can be set up via function calls.
475
476
477
478Duchamp version 1.1.13 (2011/04/10)
479-------------------------------------
480
481Bug fixes:
482
483* The median statistics calculations had a bug in the test for whether
484  the array under consideration was of even size. The correction for
485  this can mean small differences in the resulting values. This can
486  flow through to calculated detection thresholds - please check this
487  with your data if you use this mode!
488
489* The reconstruction code had a bug where the incorrect number of
490  scales was being used. This occurred when the blank pixel flag was
491  set, and when the spectral dimension was smaller than both the
492  spatial dimensions.
493
494Other:
495
496* The default value of the blank pixel flag has been set to false,
497  rather than true. For Duchamp, this should not matter, as it is set
498  when the FITS file is read in. For external code using, for
499  instance, the reconstruction algorithms, this default may be
500  important. Having it true was contributing to the second bug listed
501  above. It also makes more sense for it to be false unless explicitly
502  set in some way.
503
504* The reconstruction code has been streamlined a little, reducing its
505  memory impact and using more appropriate variable types
506  (eg. unsigned ints instead of ints and so forth).
507
508* For those who care about the actual code base, the statistics
509  functions have been expanded, and separated from getStats.cc into
510  "normal" and "robust" versions.
511
512
513Duchamp version 1.1.12 (2011/03/18)
514-------------------------------------
515
516Bug fixes:
517
518* The velocity width calculations had a bug that occasionally led to
519  very large values. The widths are calculated using the integrated
520  spectrum, using a threshold relative to its peak. In v.1.1.10 and
521  1.1.11, however, the peak was searched for over the entire spectral
522  range, rather than just the range for the current object. This led
523  to spurious values. This has been fixed, so that the peak is only
524  searched for within the detected ranage of the object.
525
526* Both the pixel and statistics subsections are now more carefully
527  examined, with errors reported if there are no valid pixels in the
528  pixel subsection, or if the statistics subsection does not intersect
529  with the pixel subsection.
530
531Other:
532
533* The configure script has been slightly improved so that the pgsbox
534  library is only added if PGPlot has been enabled - this is
535  particularly necessary with the slightly changed build procedure for
536  recent wcslib versions.
537
538* In a related note, one file - momentMap.cc - had some #include
539  statements that failed when PGPlot (and hence pgsbox in WCSLIB) was
540  not enabled. These were actually unnecesssary and have been removed.
541
542* There is a new input parameter - flagPlotSpectra - that allows the
543  user to turn off the production of the spectral plots. It defaults
544  to true (meaning the plots are produced).
545
546
547Duchamp version 1.1.11 (2011/03/01)
548-------------------------------------
549
550Improvements:
551
552* The largest changes in this release involved improving the
553  efficiency of the code, resulting in further speed-ups. The code
554  affected was the low-level object-handling code, with the merging
555  stages in particular showing good speed-ups.
556
557* The default value for the beam size, when the beam parameters are
558  not in the FITS header, has been dropped. Now the default behaviour
559  is to simply not make any beam corrections if the beam is not
560  specified by either the FITS file or the input parameters. Thanks to
561  Tobias Westemeier for the suggestion.
562
563* The reporting of the beam size has changed slightly to provide a bit
564  more information.
565
566Bug Fixes:
567
568* The statistics section (statSec) could be larger than the image
569  subsection (if provided), yet the pixels required would never be
570  read in from the FITS file. The behaviour has been changed so that
571  the statSec, if requested, is trimmed to be wholly within the image
572  section.
573
574* It was possible to request, for instance, spectral smoothing on a 2D
575  image. This resulted in a blank smoothed array, which led to
576  problems in the calculations of statistics (and hence the
577  threshold), as well as subsequent calculations. This has been fixed,
578  so that in cases like this the smoothing is turned off (and a
579  warning message is displayed).
580
581* There was a problem with using a MW range and subsectioning when
582  growing objects, as a result of changes in 1.1.10. This has been
583  fixed.
584
585* Inversion was failing when no array was allocated (not a problem for
586  standard Duchamp, but affected its use as a library by other code).
587
588* Writing text spectra would only occur when PGPlot output was enabled
589  in the build (it was combined with the plotting of the spectral
590  graphs). This has been changed so that this output can be requested
591  without requiring PGPlot.
592
593* The equation for the beam size in Sec.4.2 of the User Guide was
594  incorrect and has been fixed.
595
596* Minor change to the configure script to improve the detection of the
597  PGPlot library.
598
599Code development notes:
600
601* The main work has been additions and improvements to the interfaces
602  for the Param and the Section classes, as well as new classes to
603  manage the beam information. The efficiency changes mentioned above
604  also affected the internals of some of the PixelInfo classes, and
605  provided additional functions for judging the closeness of
606  neighbouring objects.
607
608Duchamp version 1.1.10 (2010/11/15)
609-------------------------------------
610
611Improvements:
612
613* The major change for this release is a greatly improved growing
614  algorithm. The previous incarnation was very inefficient (testing
615  all pixels in an object, most of which only have neighbours that are
616  already in the object), and could take an unnecessarily large amount
617  of time in the case of extended sources. The improved algorithm
618  makes use of voxel flags to quickly identify those voxels not yet in
619  an object and only examines them. For a certain test case
620  (observations of extended Galactic HI), the time required reduced
621  from about a day to about a minute! (Note that compact sources, such
622  as HI galaxies, will not show this degree of speedup...) Many thanks
623  to Tara Murphy for pointing out this bug and her help in
624  diagnosing/fixing the problem.
625
626* There have been a number of further improvements to the code to
627  speed it up, based on some profiling. The most important was the
628  function to add pixels to a 2D object, but there were several other
629  minor changes as well.
630
631* The minimum size of the detections can now also be specified in
632  terms of the total number of voxels (in addition or instead of
633  specifying the minimum spatial pixels or channels).
634
635* The way memory is allocated when reading the image has been
636  streamlined. The amount of memory being allocated is also now
637  reported - this is in an effort to allow users to identify problems
638  with running out of memory.
639
640* The version number is now reported in the results and log files.
641
642* Only the filename of the input image (ie. not the leading
643  directories) is now shown on the detection and moment-0 maps. This
644  is to avoid problems with large directory paths being too wide for
645  the plot.
646
647* The verification script was improved for readability (although no
648  functional change was made).
649
650Bug fixes:
651
652* Growing was not being done when a single source was found. Now
653  fixed.
654
655* For particular WCS setups, the RA can be interpreted as being
656  negative, which corrupted the Source ID (ie. the IAU-format
657  string). This has been fixed.
658
659* When the flux units were changed, problems had been seen when
660  writing a reconstructed cube to a FITS file. Any unit change is now
661  undone prior to writing and there should now be no problem.
662
663* Filenames with spaces in them were not handled well. New functions
664  were included and moved to a more obvious location. These filenames
665  now work as expected.
666
667* Spectral axes of type FREQ that had a rest frequency were not being
668  put into velocity units. Now fixed.
669
670* Improvements to the output to screen, making sure everything is
671  covered by the verbose flag.
672
673* Better management of the allocation of arrays.
674
675* The minSize parameter in Image was never initialised, leading to
676  unpredictable behaviour. Now fixed.
677
678Code development notes:
679
680* New functionality includes: a function to return a vector list of
681  voxels in an Object3D or Detection; a new generic Search function
682  (basically a front-end to each of the individual functions); more
683  complete copy constructors for the DataArray classes; new methods
684  for finding the velocity widths.
685
686Duchamp version 1.1.9 (2010/03/26)
687-------------------------------------
688
689Improvements:
690
691* There is now the ability to save the moment-0 map as a FITS
692  file. This is controlled by the parameters flagOutputMomentMap and
693  fileOutputMomentMap, which work in the same way for the mask file.
694
695* There is a new parameter flagRejectBeforeMerge that, when true,
696  rejects sources according to the minPix/minChannels requirements
697  before the merging and growing is done. This defaults to false (so
698  default behaviour is as before). Thanks to Tobias Westmeier for
699  suggesting this and the above improvement.
700
701* There is also a new parameter flagTwoStageMerging. When true (the
702  default), newly-detected objects are merged with the first close
703  object in the list. When false, they are simply added to the end of
704  the list. In both cases, a second round of merging is done to pick
705  up all close matches.
706
707* The way the beam is specified in the absence of the BMAJ/BMIN/BPA
708  parameters has been slightly changed. The use of "beamSize" was
709  somewhat ambiguous (it meant the number of pixels covered by the
710  beam, not the FWHM), so new parameters have been introduced. The
711  beam can be specified by beamArea (which replaces beamSize), or
712  beamFWHM (the FWHM of the beam in pixels). If beamFWHM is provided,
713  it will be used, else the beamArea will be.
714
715* There is a new parameter searchType that allows the user to choose
716  how the searching is done. The behaviour up till now has been to
717  search the 2D channel maps one at a time to build up the 3D
718  detections. This is the default, and can be obtained by setting
719  searchType=spatial. Alternatively, you can set searchType=spectral
720  to do the searching in the 1D spectra.
721
722* Profiling of the code has led to a few changes that have sped up
723  some calculations, particularly those involving the median. Rather
724  than using std::sort, the code now simply uses std::nth_element,
725  which shows a substantial speedup factor.
726
727* When using the objectList parameter, the maps will now only show the
728  selected objects, rather than all detected objects.
729
730* There is a new verification test that looks at the "growing"
731  functionality.
732
733Bug fixes:
734
735* When saving a mask FITS file, there was an occasional memory leak
736  that caused Duchamp to crash (only when the cube was suitably
737  large). This has been fixed.
738
739* The median calculation had a bug that led to an incorrect value
740  being reported. The difference will not be great (the element of an
741  array being reported as the median was out by one), but could be
742  noticeable depending on the dataset.
743
744* The MW range parameters did not respond to the use of a
745  subsection. They should refer to channel ranges in the original
746  cube, and changes have been made to the code to reflect this.
747
748* There was an occasional error in writing out FITS keywords, due to
749  the way comment strings were intialised. This has been improved and
750  made more robust.
751
752* Testing with gcc-4.3.2 showed a number of compilation warnings &
753  errors, which have been fixed.
754
755* The Gaussian smoothing kernel was too small - it is now made big
756  enough to encompass all possible values. It was also being
757  incorrectly scaled. This had no functional effect on the detection
758  of objects, but for other uses was incorrect. This has been
759  rectified.
760
761* Some outputs that weren't caught by the verbose flag now are.
762
763
764Code development notes:
765
766  The following notes only apply if you want to use the code as a
767  library, rather than the stand-alone package. These have generally
768  come out of the ASKAP software development. If you just use the
769  stand-alone package, they won't be a concern.
770
771* The API for storing detected objects has changed, making it more
772  robust from a programming point of view.
773
774* Additional versions of some functions (and the Gaussian smoothing
775  class) have been added - this has come out of the ASKAP development
776  work.
777
778* A number of instances of "unsigned int" being used for loops have
779  been changed to iterators or "size_t". There shouldn't be any
780  functional change from this -- the code should just build more
781  cleanly.
782
783* The Detection class now records whether the parameters have been
784  set, and unsets that flag when objects are merged. This allows
785  external programs to track which objects have been merged and deal
786  with them appropriately.
787
788
789Duchamp version 1.1.8 (2009/07/20)
790----------------------------------
791
792Improvements:
793
794* The final source list can now be sorted on one of a range of object
795  parameters: x-value, y-value, z-value, ra, dec, vel, w50, iflux,
796  pflux (integrated and peak flux respectively), or snr. Simply use
797  the new input parameter sortingParam. Its default value is vel, so
798  the default behaviour stays the same.
799
800* The FDR method involves calculating how many pixels are
801  correlated. This previously involved multiplying the beam area by 2,
802  implying that 2 neighbouring channels were correlated. This factor
803  is now a user-selectable parameter, so that if you know how many
804  spectral channels should be correlated, you can set the parameter
805  FDRnumCorChan and the FDR calculation will be done correctly.
806
807* Screen output now has more information on the growing threshold when
808  the cube statistics are printed.
809
810
811Bug fixes:
812
813* When reading in previous detections, there was a bug causing a
814  segmentation fault. This has been fixed and made more robust.
815
816* There was an apparent bug when writing out the reconstructed cubes
817  to a FITS file that caused the new file to be very large. Changing
818  the cfitsio function used has fixed this.
819
820* Using NCP projections near the equator could result in a large
821  stream of error messages, due to coordinate transformations being
822  done in blank regions outside of the acceptable range of world
823  coordinates. This has been fixed.
824
825* The function that grows objects had a major bug, that stopped it
826  working when flagAdjacent=false. This has been fixed and should work
827  fine.
828
829* The input parameter spectraTextFile was not being read
830  properly. This has been remedied.
831
832* The units for the integrated flux were wrong for some types of pixel
833  flux units. This has been fixed.
834
835* A minor bug caused incorrect calculation of the 20% widths.
836
837* All calls to uint were changed to unsigned int, as some compilers
838  had problems recognising that they were the same thing.
839
840* src/fitsHeader.cc was missing an include statement for stdlib.h,
841  again causing some compilers to fail.
842
843
844Duchamp version 1.1.7 (2009/01/16)
845----------------------------------
846
847Improvements:
848
849* The mask file that can be created with flagMask can now specify
850  which object a given detected pixel belongs to, by taking the object
851  ID as its value. This applies if you set flagMaskWithObjectNum=true
852  (it defaults to false, which means each detected pixel has the value
853  1). Non-detected pixels still have the value 0.
854
855* The names of the output FITS files are now able to be specified
856  directly by input parameters. These will override the default names
857  that Duchamp provides.
858
859* The Karma annotation file now specifies a font - previously it did
860  not and so was at the mercy of whatever was specified in other
861  annotation files being viewed at the same time. Please let me know
862  if the font I've chosen (lucidasans-12) is not suitable.
863
864* The default flag, used in the absence of 'E', 'S' or 'N', is now '-'
865  rather than blank. This will ensure that each column in the results
866  file has something in it.
867
868* The configure script is somewhat more robust to non-standard
869  systems, particularly when the X11 libraries are in unusual
870  places. It can also deal with the slightly different way that
871  wcslib-4.3 installs itself.
872
873* The installation part of the Makefile was altered so that the
874  symbolic link Duchamp that points to Duchamp-1.1.7 does not have the
875  absolute path encoded in it. This will enable the files to be moved
876  around at a later date.
877
878Bug Fixes:
879
880* Fixed a bug that caused problems when the flux units were less than
881  5 characters long (e.g. 'K')
882
883* The new velocity width values were not getting proper headers in the
884  VOTable output. This has been remedied.
885
886* Minor improvements to help non-pgplot use
887
888* Minor fix in WCS functionality.
889
890* Minor fixes to the FitsHeader class.
891
892* Improved FITS data reading, that doesn't require a nullarray
893  array. This will reduce memory usage.
894
895* Improved subsection parsing, particularly for non-standard WCS
896  systems.
897
898* Improving the memory allocation of the Cube class.
899
900* Fixed a bug that meant the growthThreshold values were sometimes
901  being lost.
902
903* Improving the way the growing and merging is done, particularly in
904  the case of non-adjacent merging.
905
906* Fixed a scaling bug in the GaussSmooth function.
907
908Other:
909
910* Numerous changes to the code that do not affect how Duchamp itself
911  runs, but were necessary for code development with the Duchamp
912  libraries (primarily as a part of the ASKAP code development).
913
914
915Duchamp version 1.1.6 (2008/09/08)
916----------------------------------
917
918New features:
919
920* The velocity widths can now be quoted in two additional ways: the
921  full width at 50% of the peak flux (ie. the FWHM) and the full width
922  at 20% of the peak flux (w_50 and w_20 respectively). The w_50
923  parameter is now quoted in the results printed to the screen
924  (instead of w_VEL), but all three are written to the results file.
925
926* The facility now exists to bypass the searching step and go straight
927  to the output stage using a list of previously detected objects. The
928  list is extracted from a previously-created log file. The user can
929  change the way the spectra are plotted (e.g. choose to plot
930  integrated rather than peak spectra), and select a subset of the
931  detected objects to be printed to individual postscript files. Use
932  the input parameter usePrevious (set to true) to use this facility,
933  and provide a list of objects using the objectList parameter
934  (eg. 1,2,4,7-10,15)
935
936* A new parameter "growthThreshold" has been created, that goes with
937  "threshold". If you manually specify a threshold, and you wish to
938  grow detections, you need to manually specify a growthThreshold (in
939  flux units).
940
941Bug fixes:
942
943* Cubes that do not have a spectral axis (such as Stokes cubes) were
944  causing memory leaks and crashing, due to some assumptions of the
945  existence of the spectral axis. These bugs have been fixed, so that
946  Duchamp will run on such cubes, although the WCS transforms may not
947  always work appropriately. Please let me know via bug reports of
948  difficulties you encounter!
949
950* The growing function has had a few bugs fixed and is now more
951  efficient.
952
953* The FDR method was previously overriding any manually-specified
954  threshold. This has been fixed so that if the user specifies
955  threshold=X, then the FDR method is not called.
956
957* Some undefined things were happening with textual output when no
958  objects were detected. This has been fixed.
959
960* Memory leaks caused by FITS WCS irregularities have been fixed
961  (specifically, if a FITS header had NAXIS=2 but more than two WCS
962  axes were defined).
963
964
965
966Duchamp version 1.1.5 (2008/03/20)
967----------------------------------
968
969Bug fixes:
970* A major bug was discovered in the calculation of integrated
971  fluxes. The flux was incorrectly being weighted by the spatial size
972  of the detection, resulting in a (often considerable) overestimation
973  of the integrated flux. This has been corrected.
974
975* The beam size calculation was also incorrect, being out by a factor
976  of 1/ln(2).
977
978* The "make install" command previously failed to work properly if the
979  library had not been created. This has been fixed so that the
980  installation works even if there is no library file.
981
982New Features:
983* You can now provide a new flux unit string, so that the pixel fluxes
984  will be converted to these new fluxes before any calculations are
985  done. This is done with the newFluxUnits input parameter. The new
986  units should be directly convertible from the old ones (given by the
987  BUNIT header -- e.g. if BUNIT = Jy/beam, you can give newFluxUnits
988  as mJy/beam, but not mJy).
989
990* You can now specify the precision used in the output files for flux,
991  velocity and S/N ratio columns, via new input parameters precFlux,
992  precVel and precSNR. These will apply to the VOTable output as well
993  as the text table and information on the spectral plots.
994
995* The Karma annotation files previously provided just a circle at the
996  spatial location of the detected object. You now have the option to
997  draw a border around the detected pixels (in a similar manner to the
998  PGPLOT moment maps). Karma does not do this perfectly, so the lines
999  may not line up exactly with the pixel borders, so the option
1000  remains to keep using the circles. This is controlled by the
1001  parameter "annotationType", with possible options being "borders"
1002  (the default) or "circles".
1003
1004* There is a new function getMetadata() that loads the header and WCS
1005  data, but no pixel information. This is only of interest if you are
1006  doing code development with the Duchamp library -- it does not
1007  affect the running of Duchamp itself.
1008
1009Duchamp version 1.1.4 (2008/02/15)
1010----------------------------------
1011
1012Most of the changes incorporated in this update result from ASKAP code
1013development (that makes use of some of the Duchamp functionality),
1014but do not actually affect the way Duchamp runs (other than, in a
1015couple of cases, making it a bit faster). Changes that are
1016relevant for regular users of Duchamp are as follows:
1017
1018* A new option has been made available (thanks to Mary Putman et al
1019  for the suggestion!) to save the spectra of all detected objects in
1020  a text file. This has the form of one column for the spectral
1021  coordinates and one column of fluxes for each object. This is
1022  enabled by the input parameters flagTextSpectra and spectraTextFile.
1023
1024* Slight changes to the output include he formatting of the way the
1025  detected objects are written to the log file. This meant the
1026  verification files were also updated. Also the cube statistics are
1027  not printed to the results file if a user threshold is specified (as
1028  they are not calculated!).
1029
1030* The determination of beam size has been made more reliable, as has
1031  the BUNIT determination.
1032
1033* Fixed a bug that meant source merging was not done for 2D images
1034  (not usually a problem, as the source-finding takes care of this,
1035  but came up in parallelisation development).
1036
1037Duchamp version 1.1.3 (2008/01/08)
1038----------------------------------
1039
1040A minor update that just improves the build process. The location of
1041the wcslib include files was not specified correctly, so that some
1042machines were unable to find them. The configure script has been fixed
1043so that the compilation should work in all cases.
1044
1045Some minor changes have also been made to the code in the PixelMap
1046directory, and to param.cc, to fix warnings or errors that may appear
1047in compilation.
1048
1049However, there are no changes to the actual workings of the code in
1050this minor version, so if you have a working version of Duchamp 1.1.2
1051there is probably no reason to update.
1052
1053Duchamp version 1.1.2 (2007/12/07)
1054----------------------------------
1055
1056Compilation:
1057
1058* The compilation had problems working correctly when the cfitsio and
1059  wcs libraries were not in standard locations. The configure script
1060  has been tweaked to make sure the libraries are found.
1061
1062* Problems with compiling in the absence of pgplot have been fixed,
1063  and it should now compile fine.
1064
1065* Improved the configure script for use with Mac OS X and gfortran.
1066
1067
1068Bugfixing:
1069
1070* A major problem with the text-based output was fixed. The widths of
1071  the columns were not being calculated correctly, and were running
1072  together. This should no longer be the case.
1073
1074* There was a bug in the way Duchamp interpreted spectral axes,
1075  particularly AIPS types such as FELO-HEL, leading to incorrect
1076  scaling of the velocity axis. This has been fixed, so that
1077  non-standard types are now dealt with appropriately and the velocity
1078  scaling should be accurate.
1079
1080* Another bug meant the beam correction was always applied to the
1081  integrated spectra, regardless of whether the flux units involved
1082  the beam (e.g. Jy/beam). This has been fixed. Note that the values
1083  of the integrated flux presented in the results table were always
1084  calculated correctly.
1085
1086* Other minor changes to improve the speed and efficiency, especially
1087  of the merging code.
1088
1089New user parameters:
1090
1091* There is now the possibility to save a FITS file that contains a
1092  mask array, indicating where the detected objects are. This is
1093  governed by the flagOutputMask parameter.
1094
1095* The header information that is printed at the start of the results
1096  file -- that is, the list of parameters, the statistics of the cube,
1097  and the number of detections -- can now be written to a separate
1098  file. Set the flagSeparateHeader parameter to true or 1 and it will
1099  go to the file indicated by the headerFile parameter (the default is
1100  duchamp-Results.hdr).
1101
1102* A "scaleMax" parameter has been added, so that the wavelet
1103  reconstruction can include only a specified range of scales (for
1104  instance, if one wants to search just for narrow features such as
1105  absorption lines).
1106
1107* A "flagRobustStats" parameter has been added. This allows the user
1108  to elect to use robust statistics (median and median absolute
1109  deviation from the median) to estimate the noise parameters. If set
1110  to false, the mean and standard deviation will be used. The default
1111  value is true.
1112
1113New Feature:
1114
1115* When Duchamp is run on a 2D image (i.e. with no spectral output), it
1116  now produces a postscript file that shows information each
1117  individual source plus the image cutout of the source. This is
1118  similar to the spectral output file, but without the spectra. The
1119  filename is given by the spectraFile parameter.
1120
1121* Ability to save a FITS file containing a mask array, with pixel
1122  values of 1 for pixels in a detected object, and 0 elsewhere.
1123
1124
1125Duchamp version 1.1.1 (2007/07/20)
1126------------------------------------
1127
1128Minor update to the release, with just a few changes:
1129
1130* The verification script was generating diffs due to differences in
1131  the precision of some calculations when done on different machines.
1132  One of these was the integrated flux, and this has been corrected so
1133  that the same value should appear on all machines.
1134  The verification script has also changed so that just the number of
1135  sources and their positions are tested, as well as the
1136  logfiles. This should avoid the reporting of spurious differences.
1137
1138* The grey-scale used in the image cutouts (in the spectral plots) has
1139  been inverted. This makes it consistent with the scale used in the
1140  maps, and hopefully easier to see when printing.
1141
1142* The configure/make system has been altered to make it easier to
1143  install, and to specify different external libraries. In particular,
1144  it is now not necessary to have PGPLOT installed on your system to
1145  run Duchamp. In the absence of PGPLOT, Duchamp will run as normal,
1146  just without any graphical output. Some source code needed to be
1147  restructured to make this work. Please read the README file, or the
1148  Installation appendix in the User's Guide, for complete details.
1149
1150* The time of completion is now written to the log file, so that the
1151  user can have some idea of how long the program took.
1152
1153
1154Duchamp version 1.1 (2007/05/17)
1155------------------------------------
1156
1157Changes made since the last numbered release:
1158
1159EFFICIENCY OF EXECUTION:
1160
1161* Major change to the way detections are stored. They are now recorded
1162  via run-length encoding in the x-y plane, and stored as collections
1163  of channel-maps. This improves the memory usage and the speed of
1164  execution (particularly for routines such as the merging
1165  routines). The memory usage has also been improved by changing the
1166  way the list of detected objects is stored.
1167
1168SMOOTHING:
1169
1170* Addition of ability to spatially smooth the cube before
1171  searching. This is done with a Gaussian kernel, the size and shape
1172  of which can be specified by the user, using the parameters kernMaj
1173  & kernMin (which are the FWHM for the major & minor axes -- if
1174  kernMin is not given it is assumed to match kernMaj) and kernPA (the
1175  position angle of the major axis).  There is a new parameter
1176  smoothType that distinguishes this method from the spectral (Hanning)
1177  smoothing already in use.
1178
1179DETECTIONS:
1180
1181* Changed the way detection is done -- now only search in 2D images,
1182  keeping all detections (ie. no minimum-pixel requirement). This
1183  should be the same as doing both the 1D and 2D searches with the
1184  minimum pixel requirement in, but simpler. The rejection is done at
1185  the end after all the merging and growing has been done. This leads
1186  to a larger number of intermediate detections (ie.  the number
1187  before merging), which may increase the run-time slightly, although
1188  this is offset by the changes to the efficiency (see above).
1189
1190* Increased the range over which objects can be grown to match the
1191  threshSpatial & threshVelocity parameters, as well as rejecting new
1192  pixels based on the BLANK and MW tests.
1193
1194INPUTS:
1195
1196* There has been a subtle change in the way BLANK pixels are dealt
1197  with. To enable trimming of BLANK pixels, users should use the new
1198  parameter flagTrim. The parameters flagBlankPix and blankPixVal are
1199  no longer accessible via the parameter file -- warning messages are
1200  given if they are provided in the parameter file.
1201
1202* Added ability to specify a statsec, so that the statistics are only
1203  calculated from a given subsection of the cube, rather than the full
1204  cube.
1205
1206* The subsections can also specify the ability to remove a border of n
1207  pixels from the edges of an axis (ie. n from the start and from the
1208  end) -- as requested in Trac ticket #5.
1209
1210* Changed the default value of the reconDim parameter from 3 to 1, and
1211  the default value of the flagATrous parameter to false.
1212
1213OUTPUTS:
1214
1215* The output now includes three different estimates of the "centre" of
1216  the detection: peak location, centroid (flux-weighted), or average.
1217
1218* Some slight improvements to the user feedback during execution.
1219
1220* Spectral output now includes the baseline, if one was fitted. The
1221  format of the plot headers is slightly changed, to stop information
1222  falling off the edge of the page.
1223
1224* Added command-line option -x to directly disable the PGPLOT X-window
1225  map plotting. This overrides the setting of flagXOutput in the
1226  parameter file.
1227
1228* Fallback spectral units (in case the FITS header fails to record
1229  them) changed to SPC, but code has been fixed so that any problem
1230  should be caught before this becomes an issue.
1231
1232BUGFIXES:
1233
1234* Fixed bug (Trac ticket #4) that meant the velocity units were not
1235  correctly dealt with. Duchamp should be more robust for different
1236  velocity axis setups now.
1237
1238* Fixed bug (ticket #9) with the VOTable output, where the tags were
1239  not closing.
1240
1241* Fixed a bug that meant the integrated fluxes were not calculated
1242  properly -- no allowance was made for the number of spatial
1243  pixels. This should also work properly for 2D images now as well.
1244
1245* Fixed minor bug in calculating the flux threshold from the p-value
1246  threshold when the FDR method is used. This did not affect the
1247  actual thresholding, merely the quoted flux threshold in the results
1248  file. Also, the MW channels are kept out of the p-value threshold
1249  determination if they are being flagged.
1250
1251
1252
1253Duchamp version 1.0.7 (2006/11/22)
1254----------------------------------
1255
1256One new feature, and some improvements and bug-fixes.
1257
1258* The user can now elect to Hanning-smooth the spectral direction of
1259  the cube before the searching is done. This can be done instead of the
1260  wavelet reconstruction (although if both are selected, the
1261  reconstruction takes precendence). This functionality is switched on
1262  and off by the flagSmooth parameter, and the width of the Hanning
1263  kernel is governed by the hanningWidth parameter.
1264
1265* The smoothed array can also be written to a FITS file and read in at
1266  the start in the same manner as the reconstructed array.
1267
1268* Several improvements have been made to the memory
1269  management. Several memory leaks were fixed, and the memory usage of
1270  Duchamp is considerably less, which will be a help for running it on
1271  large cubes. The speed of some routines has also been improved, by
1272  removing unnecessarily repetitive loops.
1273
1274* The sorting routines have been changed, and should now be slightly quicker
1275  (and a bit more robust).
1276
1277* Enabled the scale bar (plotted on the 0th moment map in the spectral
1278  output file) to be able to deal with much finer spatial scales (as
1279  may be expected from VLBI data).
1280
1281* Other minor changes to code and presentation.
1282
1283
1284Duchamp version 1.0.6 (2006/11/01)
1285----------------------------------
1286
1287Some incremental improvements and changes to the code:
1288
1289* The statistics used for the detection are now calculated once for
1290  the entire cube, rather than being calculated separately for each
1291  channel map and spectrum. This results in a uniform threshold value
1292  across the entire cube. The way the statistics calculations are
1293  implemented in the code was changed, using a new statistics class.
1294
1295* This means we can report a peak signal-to-noise value for each
1296  detection. This is given in the text-based output, as well as in the
1297  summary information above the spectral output for each source.
1298
1299* The user can now elect not to have the moment map displayed in a
1300  PGPlot window, through the use of the new flagXOutput
1301  parameter. This should help in cases of running Duchamp on a dumb
1302  terminal (with no X-display capabilities), or as part of a batch
1303  script where the continual popping-up of the PGPlot window might
1304  become annoying.
1305
1306* There are different Flags reported for the case of an object lying on
1307  the spatial edge and spectral edge of the cube (E and S respectively).
1308
1309* A few minor bug fixes:
1310  - When providing a subsection, any axes with the range given by *
1311    had the pixel values offset incorrectly. This has been fixed.
1312  - Negative searches now correctly invert the reconstructed array
1313    when it is read in from a file.
1314
1315* Other minor changes to the code, to improve memory handling and
1316  remove redundant arrays and variables.
1317
1318
1319Duchamp version 1.0.5 (2006/09/06)
1320----------------------------------
1321
1322Since version 1.0, there have been a range of mostly minor
1323changes. These are generally bug-fixes, thanks to feedback from a
1324number of users, as well as a few extra features.
1325
1326Here is a summary of the changes since version 1.0:
1327
1328USER INTERFACE:
1329
1330* The user is now able to enter the value of flag parameters in the
1331  parameter file as strings, as well as integers (so one can enter
1332  true or 1 to give the same result).
1333
1334GRAPHICAL OUTPUT:
1335
1336* Added a new function that draws the edge of the blank region on the
1337  maps and image cutouts. There is a new flag parameter --
1338  drawBlankEdges -- that controls the use of this function (the
1339  default is true).
1340  Also, the edge of the field is plotted on the image cutouts as a
1341  yellow line. This distinguishes it from the purple blank pixel
1342  dividing line.
1343
1344* The size of the tick mark in the image cutout (indicating the
1345  spatial scale of the image) is now adaptable, so that it shows the
1346  scale that best fits the image (ranging from 1 arcsec to 15
1347  degrees). (This is a change from the previous standard length of 15
1348  arcmin.)
1349
1350* The zoomed spectrum had its flux scale determined by all points in
1351  the zoom box,including those flagged by the Milky Way (MW)
1352  range. This has been fixed so that any MW channels will not affect
1353  the flux scaling, potentially improving the appearance of objects
1354  detected close in velocity to strong MW emission or absorption.
1355
1356* Improved Karma Annotation file output, so that files without good
1357  WCS are dealt with appropriately.
1358
1359TEXT-BASED OUTPUT:
1360
1361* The position resolution in the IAU-format names has been increased,
1362  so that distinct objects close to one another are more readily
1363  distinguished.  Overlapping sources at different velocities may
1364  still have the same name, but this is a more general problem.
1365
1366* The presentation of the results in tabular format has been improved,
1367  so that the precision of faint sources is sufficient to show their
1368  flux, for instance, is not 0. This also applies to the information
1369  presented above the spectral plots.
1370
1371* Improved error and warning reporting, so that the formatting and
1372  presentation of information is clearer.
1373
1374FITS I/O RELATED:
1375
1376* The previous version was did not deal well with 4 (or greater)
1377  dimensions in the FITS file -- the memory allocation was badly done,
1378  and the axes needed to be in a particular order. This has been
1379  fixed, so that the FITS I/O routines can now handle any sized FITS
1380  file, with axes in any order (as long as there are two spatial and one
1381  spectral axes).
1382
1383* When the FITS file does not have a rest frequency defined, there is
1384  no way to transform the frequency axis into velocity. In this case,
1385  the spectral axis is left as frequency, and put into units of MHz.
1386
1387* If the beam size is not indicated by the FITS header (through the
1388  BMAJ and BMIN keywords), the user can manually specify the size
1389  through the parameter file (using parameter beamSize).
1390
1391* The FITS I/O routines make use of the command fits_file_exists. This
1392  was introduced into the CFITSIO package from version 2.5, so Duchamp
1393  will only work with this version or higher. Version 3+ is preferred.
1394
1395OTHER BUG-FIXING:
1396
1397* Several bugs related to the blank-pixels were dealt with.
1398  The correct values were not propagating through correctly, meaning
1399  that the default values were being used. Also, there was the
1400  potential for blank pixels to be detected when the FDR method was
1401  used. Finally, the image cutout displays occasionally did not
1402  obscure the blank pixels. All these problems should be fixed now.
1403
1404* The FDR setup routine was occasionally failing with a segmentation
1405  fault, due to it accessing unallocated memory. This has been fixed.
1406
1407* Fixed bugs that affected the way 2D images (rather than 3D cubes)
1408  were dealt with. The minChannels test failed when minChannels=0.
1409
1410* If there is no beam information in the FITS header, the user can now
1411  enter a beam size as a parameter.
1412
1413* Other minor fixes to the code, to improve its structure and
1414  robustness.
1415
1416
1417Duchamp version 1.0 (2006/06/30)
1418--------------------------------
1419
1420The first full release version.
1421
1422Several major changes compared to previous version:
1423
1424* Incorporated a FitsHeader class, to keep track of header information
1425  (including WCS) from the FITS file. All units-related calculations
1426  are done with this class, such as conversion to velocity, and
1427  pixel-to-WCS conversion.  The main advantage of this is improved
1428  speed of execution, more adaptable to different units, and improved
1429  code (easier for me!).
1430
1431* Able to select the dimensionality of the reconstruction, rather than
1432  just doing it in 3-D.
1433
1434* Robust text output, so that the columns are sized correctly given
1435  the data being written, and the relevant units (derived from the
1436  FITS header) are included in the output table.
1437
1438* Improved the way the reconstructed image is saved and read back in,
1439  with a better naming scheme and a better set of new FITS header
1440  keywords. The MW headers are now not written.
1441
1442Other, more minor changes include:
1443
1444* MW channels now not set to 0, but just ignored for searching
1445  purposes (and for the scaling of the spectral output -- they are
1446  plotted though and highlighted with a hashed box).
1447
1448* The scale bar in the moment map in the spectral output file has its
1449  length indicated.
1450
1451* Improved VOTable output, with more information about the way Duchamp
1452  was run.
1453
1454* Made sure all statistics calculations in the reconstruction are
1455  based on robust (ie. median) methods.
1456
1457Also moved to an autoconf based configure/make compilation, for ease of use.
1458
1459
1460Duchamp version 0.9.2 (2006/06/27)
1461--------------------------------
1462
1463* Added the use of warning flags for detections: for either edge
1464  location or negative enclosed flux.
1465
1466* A new command line option added so that the user can specify a FITS
1467  file to be searched with the default parameters, rather than giving
1468  a full parameter file.
1469
1470* The scale bar on the moment cutout now works in general case, using
1471  an iterative process to get to the correct length.
1472
1473* RA axes are now done correctly on the full-scale maps.
1474
1475* Various coding fixes, improving the readability of the code,
1476  particularly regarding the declaration of temporary variables.
1477
1478* Changed the way the time of execution is called : now using time.h
1479  functions, rather than a system call.
1480
1481* Changed output in Detection/outputDetection.cc for the pixel
1482  information of detected objects (the info printed above the spectral
1483  plots) -- now print out number of voxels in object, and have
1484  improved the formatting a little.
1485
1486* Improved the functionality of saving the FITS file containing the
1487  reconstructed array. Added ability to save and read back in the MW
1488  parameters when saving a reconstructed cube (if a reconstructed cube
1489  has different MW range to that being considered, it would cause
1490  problems). ReadRecon now just returns a FAILURE and will reconstruct
1491  the cube anew.
1492
1493* Changed default value of flagGrowth to 0.
1494
1495
1496
1497Duchamp version 0.9 (2006/05/05)
1498--------------------------------
1499
1500First public release version.
Note: See TracBrowser for help on using the repository browser.