source: trunk/CHANGES @ 1213

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

Documentation updates, plus incrementing the version number to 1.3.2

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