source: trunk/CHANGES @ 1273

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

Adding note on fix for #198

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