1 | Duchamp version 1.1.11 (2011/02/18) |
---|
2 | ------------------------------------- |
---|
3 | |
---|
4 | Improvements: |
---|
5 | |
---|
6 | * The largest changes in this release involved improving the |
---|
7 | efficiency of the code, resulting in further speed-ups. The code |
---|
8 | affected was the low-level object-handling code, with the merging |
---|
9 | stages in particular showing good speed-ups. |
---|
10 | |
---|
11 | * The default value for the beam size, when the beam parameters are |
---|
12 | not in the FITS header, has been dropped. Now the default behaviour |
---|
13 | is to simply not make any beam corrections if the beam is not |
---|
14 | specified by either the FITS file or the input parameters. Thanks to |
---|
15 | Tobias Westemeier for the suggestion. |
---|
16 | |
---|
17 | * The reporting of the beam size has changed slightly to provide a bit |
---|
18 | more information. |
---|
19 | |
---|
20 | Bug Fixes: |
---|
21 | |
---|
22 | * There was a problem with using a MW range and subsectioning when |
---|
23 | growing objects, as a result of changes in 1.1.10. This has been |
---|
24 | fixed. |
---|
25 | |
---|
26 | * Inversion was failing when no array was allocated (not a problem for |
---|
27 | standard Duchamp, but affected its use as a library by other code). |
---|
28 | |
---|
29 | Duchamp version 1.1.10 (2010/11/15) |
---|
30 | ------------------------------------- |
---|
31 | |
---|
32 | Improvements: |
---|
33 | |
---|
34 | * The major change for this release is a greatly improved growing |
---|
35 | algorithm. The previous incarnation was very inefficient (testing |
---|
36 | all pixels in an object, most of which only have neighbours that are |
---|
37 | already in the object), and could take an unnecessarily large amount |
---|
38 | of time in the case of extended sources. The improved algorithm |
---|
39 | makes use of voxel flags to quickly identify those voxels not yet in |
---|
40 | an object and only examines them. For a certain test case |
---|
41 | (observations of extended Galactic HI), the time required reduced |
---|
42 | from about a day to about a minute! (Note that compact sources, such |
---|
43 | as HI galaxies, will not show this degree of speedup...) Many thanks |
---|
44 | to Tara Murphy for pointing out this bug and her help in |
---|
45 | diagnosing/fixing the problem. |
---|
46 | |
---|
47 | * There have been a number of further improvements to the code to |
---|
48 | speed it up, based on some profiling. The most important was the |
---|
49 | function to add pixels to a 2D object, but there were several other |
---|
50 | minor changes as well. |
---|
51 | |
---|
52 | * The minimum size of the detections can now also be specified in |
---|
53 | terms of the total number of voxels (in addition or instead of |
---|
54 | specifying the minimum spatial pixels or channels). |
---|
55 | |
---|
56 | * The way memory is allocated when reading the image has been |
---|
57 | streamlined. The amount of memory being allocated is also now |
---|
58 | reported - this is in an effort to allow users to identify problems |
---|
59 | with running out of memory. |
---|
60 | |
---|
61 | * The version number is now reported in the results and log files. |
---|
62 | |
---|
63 | * Only the filename of the input image (ie. not the leading |
---|
64 | directories) is now shown on the detection and moment-0 maps. This |
---|
65 | is to avoid problems with large directory paths being too wide for |
---|
66 | the plot. |
---|
67 | |
---|
68 | * The verification script was improved for readability (although no |
---|
69 | functional change was made). |
---|
70 | |
---|
71 | Bug fixes: |
---|
72 | |
---|
73 | * Growing was not being done when a single source was found. Now |
---|
74 | fixed. |
---|
75 | |
---|
76 | * For particular WCS setups, the RA can be interpreted as being |
---|
77 | negative, which corrupted the Source ID (ie. the IAU-format |
---|
78 | string). This has been fixed. |
---|
79 | |
---|
80 | * When the flux units were changed, problems had been seen when |
---|
81 | writing a reconstructed cube to a FITS file. Any unit change is now |
---|
82 | undone prior to writing and there should now be no problem. |
---|
83 | |
---|
84 | * Filenames with spaces in them were not handled well. New functions |
---|
85 | were included and moved to a more obvious location. These filenames |
---|
86 | now work as expected. |
---|
87 | |
---|
88 | * Spectral axes of type FREQ that had a rest frequency were not being |
---|
89 | put into velocity units. Now fixed. |
---|
90 | |
---|
91 | * Improvements to the output to screen, making sure everything is |
---|
92 | covered by the verbose flag. |
---|
93 | |
---|
94 | * Better management of the allocation of arrays. |
---|
95 | |
---|
96 | * The minSize parameter in Image was never initialised, leading to |
---|
97 | unpredictable behaviour. Now fixed. |
---|
98 | |
---|
99 | Code development notes: |
---|
100 | |
---|
101 | * New functionality includes: a function to return a vector list of |
---|
102 | voxels in an Object3D or Detection; a new generic Search function |
---|
103 | (basically a front-end to each of the individual functions); more |
---|
104 | complete copy constructors for the DataArray classes; new methods |
---|
105 | for finding the velocity widths. |
---|
106 | |
---|
107 | Duchamp version 1.1.9 (2010/03/26) |
---|
108 | ------------------------------------- |
---|
109 | |
---|
110 | Improvements: |
---|
111 | |
---|
112 | * There is now the ability to save the moment-0 map as a FITS |
---|
113 | file. This is controlled by the parameters flagOutputMomentMap and |
---|
114 | fileOutputMomentMap, which work in the same way for the mask file. |
---|
115 | |
---|
116 | * There is a new parameter flagRejectBeforeMerge that, when true, |
---|
117 | rejects sources according to the minPix/minChannels requirements |
---|
118 | before the merging and growing is done. This defaults to false (so |
---|
119 | default behaviour is as before). Thanks to Tobias Westmeier for |
---|
120 | suggesting this and the above improvement. |
---|
121 | |
---|
122 | * There is also a new parameter flagTwoStageMerging. When true (the |
---|
123 | default), newly-detected objects are merged with the first close |
---|
124 | object in the list. When false, they are simply added to the end of |
---|
125 | the list. In both cases, a second round of merging is done to pick |
---|
126 | up all close matches. |
---|
127 | |
---|
128 | * The way the beam is specified in the absence of the BMAJ/BMIN/BPA |
---|
129 | parameters has been slightly changed. The use of "beamSize" was |
---|
130 | somewhat ambiguous (it meant the number of pixels covered by the |
---|
131 | beam, not the FWHM), so new parameters have been introduced. The |
---|
132 | beam can be specified by beamArea (which replaces beamSize), or |
---|
133 | beamFWHM (the FWHM of the beam in pixels). If beamFWHM is provided, |
---|
134 | it will be used, else the beamArea will be. |
---|
135 | |
---|
136 | * There is a new parameter searchType that allows the user to choose |
---|
137 | how the searching is done. The behaviour up till now has been to |
---|
138 | search the 2D channel maps one at a time to build up the 3D |
---|
139 | detections. This is the default, and can be obtained by setting |
---|
140 | searchType=spatial. Alternatively, you can set searchType=spectral |
---|
141 | to do the searching in the 1D spectra. |
---|
142 | |
---|
143 | * Profiling of the code has led to a few changes that have sped up |
---|
144 | some calculations, particularly those involving the median. Rather |
---|
145 | than using std::sort, the code now simply uses std::nth_element, |
---|
146 | which shows a substantial speedup factor. |
---|
147 | |
---|
148 | * When using the objectList parameter, the maps will now only show the |
---|
149 | selected objects, rather than all detected objects. |
---|
150 | |
---|
151 | * There is a new verification test that looks at the "growing" |
---|
152 | functionality. |
---|
153 | |
---|
154 | Bug fixes: |
---|
155 | |
---|
156 | * When saving a mask FITS file, there was an occasional memory leak |
---|
157 | that caused Duchamp to crash (only when the cube was suitably |
---|
158 | large). This has been fixed. |
---|
159 | |
---|
160 | * The median calculation had a bug that led to an incorrect value |
---|
161 | being reported. The difference will not be great (the element of an |
---|
162 | array being reported as the median was out by one), but could be |
---|
163 | noticeable depending on the dataset. |
---|
164 | |
---|
165 | * The MW range parameters did not respond to the use of a |
---|
166 | subsection. They should refer to channel ranges in the original |
---|
167 | cube, and changes have been made to the code to reflect this. |
---|
168 | |
---|
169 | * There was an occasional error in writing out FITS keywords, due to |
---|
170 | the way comment strings were intialised. This has been improved and |
---|
171 | made more robust. |
---|
172 | |
---|
173 | * Testing with gcc-4.3.2 showed a number of compilation warnings & |
---|
174 | errors, which have been fixed. |
---|
175 | |
---|
176 | * The Gaussian smoothing kernel was too small - it is now made big |
---|
177 | enough to encompass all possible values. It was also being |
---|
178 | incorrectly scaled. This had no functional effect on the detection |
---|
179 | of objects, but for other uses was incorrect. This has been |
---|
180 | rectified. |
---|
181 | |
---|
182 | * Some outputs that weren't caught by the verbose flag now are. |
---|
183 | |
---|
184 | |
---|
185 | Code development notes: |
---|
186 | |
---|
187 | The following notes only apply if you want to use the code as a |
---|
188 | library, rather than the stand-alone package. These have generally |
---|
189 | come out of the ASKAP software development. If you just use the |
---|
190 | stand-alone package, they won't be a concern. |
---|
191 | |
---|
192 | * The API for storing detected objects has changed, making it more |
---|
193 | robust from a programming point of view. |
---|
194 | |
---|
195 | * Additional versions of some functions (and the Gaussian smoothing |
---|
196 | class) have been added - this has come out of the ASKAP development |
---|
197 | work. |
---|
198 | |
---|
199 | * A number of instances of "unsigned int" being used for loops have |
---|
200 | been changed to iterators or "size_t". There shouldn't be any |
---|
201 | functional change from this -- the code should just build more |
---|
202 | cleanly. |
---|
203 | |
---|
204 | * The Detection class now records whether the parameters have been |
---|
205 | set, and unsets that flag when objects are merged. This allows |
---|
206 | external programs to track which objects have been merged and deal |
---|
207 | with them appropriately. |
---|
208 | |
---|
209 | |
---|
210 | Duchamp version 1.1.8 (2009/07/20) |
---|
211 | ---------------------------------- |
---|
212 | |
---|
213 | Improvements: |
---|
214 | |
---|
215 | * The final source list can now be sorted on one of a range of object |
---|
216 | parameters: x-value, y-value, z-value, ra, dec, vel, w50, iflux, |
---|
217 | pflux (integrated and peak flux respectively), or snr. Simply use |
---|
218 | the new input parameter sortingParam. Its default value is vel, so |
---|
219 | the default behaviour stays the same. |
---|
220 | |
---|
221 | * The FDR method involves calculating how many pixels are |
---|
222 | correlated. This previously involved multiplying the beam area by 2, |
---|
223 | implying that 2 neighbouring channels were correlated. This factor |
---|
224 | is now a user-selectable parameter, so that if you know how many |
---|
225 | spectral channels should be correlated, you can set the parameter |
---|
226 | FDRnumCorChan and the FDR calculation will be done correctly. |
---|
227 | |
---|
228 | * Screen output now has more information on the growing threshold when |
---|
229 | the cube statistics are printed. |
---|
230 | |
---|
231 | |
---|
232 | Bug fixes: |
---|
233 | |
---|
234 | * When reading in previous detections, there was a bug causing a |
---|
235 | segmentation fault. This has been fixed and made more robust. |
---|
236 | |
---|
237 | * There was an apparent bug when writing out the reconstructed cubes |
---|
238 | to a FITS file that caused the new file to be very large. Changing |
---|
239 | the cfitsio function used has fixed this. |
---|
240 | |
---|
241 | * Using NCP projections near the equator could result in a large |
---|
242 | stream of error messages, due to coordinate transformations being |
---|
243 | done in blank regions outside of the acceptable range of world |
---|
244 | coordinates. This has been fixed. |
---|
245 | |
---|
246 | * The function that grows objects had a major bug, that stopped it |
---|
247 | working when flagAdjacent=false. This has been fixed and should work |
---|
248 | fine. |
---|
249 | |
---|
250 | * The input parameter spectraTextFile was not being read |
---|
251 | properly. This has been remedied. |
---|
252 | |
---|
253 | * The units for the integrated flux were wrong for some types of pixel |
---|
254 | flux units. This has been fixed. |
---|
255 | |
---|
256 | * A minor bug caused incorrect calculation of the 20% widths. |
---|
257 | |
---|
258 | * All calls to uint were changed to unsigned int, as some compilers |
---|
259 | had problems recognising that they were the same thing. |
---|
260 | |
---|
261 | * src/fitsHeader.cc was missing an include statement for stdlib.h, |
---|
262 | again causing some compilers to fail. |
---|
263 | |
---|
264 | |
---|
265 | Duchamp version 1.1.7 (2009/01/16) |
---|
266 | ---------------------------------- |
---|
267 | |
---|
268 | Improvements: |
---|
269 | |
---|
270 | * The mask file that can be created with flagMask can now specify |
---|
271 | which object a given detected pixel belongs to, by taking the object |
---|
272 | ID as its value. This applies if you set flagMaskWithObjectNum=true |
---|
273 | (it defaults to false, which means each detected pixel has the value |
---|
274 | 1). Non-detected pixels still have the value 0. |
---|
275 | |
---|
276 | * The names of the output FITS files are now able to be specified |
---|
277 | directly by input parameters. These will override the default names |
---|
278 | that Duchamp provides. |
---|
279 | |
---|
280 | * The Karma annotation file now specifies a font - previously it did |
---|
281 | not and so was at the mercy of whatever was specified in other |
---|
282 | annotation files being viewed at the same time. Please let me know |
---|
283 | if the font I've chosen (lucidasans-12) is not suitable. |
---|
284 | |
---|
285 | * The default flag, used in the absence of 'E', 'S' or 'N', is now '-' |
---|
286 | rather than blank. This will ensure that each column in the results |
---|
287 | file has something in it. |
---|
288 | |
---|
289 | * The configure script is somewhat more robust to non-standard |
---|
290 | systems, particularly when the X11 libraries are in unusual |
---|
291 | places. It can also deal with the slightly different way that |
---|
292 | wcslib-4.3 installs itself. |
---|
293 | |
---|
294 | * The installation part of the Makefile was altered so that the |
---|
295 | symbolic link Duchamp that points to Duchamp-1.1.7 does not have the |
---|
296 | absolute path encoded in it. This will enable the files to be moved |
---|
297 | around at a later date. |
---|
298 | |
---|
299 | Bug Fixes: |
---|
300 | |
---|
301 | * Fixed a bug that caused problems when the flux units were less than |
---|
302 | 5 characters long (e.g. 'K') |
---|
303 | |
---|
304 | * The new velocity width values were not getting proper headers in the |
---|
305 | VOTable output. This has been remedied. |
---|
306 | |
---|
307 | * Minor improvements to help non-pgplot use |
---|
308 | |
---|
309 | * Minor fix in WCS functionality. |
---|
310 | |
---|
311 | * Minor fixes to the FitsHeader class. |
---|
312 | |
---|
313 | * Improved FITS data reading, that doesn't require a nullarray |
---|
314 | array. This will reduce memory usage. |
---|
315 | |
---|
316 | * Improved subsection parsing, particularly for non-standard WCS |
---|
317 | systems. |
---|
318 | |
---|
319 | * Improving the memory allocation of the Cube class. |
---|
320 | |
---|
321 | * Fixed a bug that meant the growthThreshold values were sometimes |
---|
322 | being lost. |
---|
323 | |
---|
324 | * Improving the way the growing and merging is done, particularly in |
---|
325 | the case of non-adjacent merging. |
---|
326 | |
---|
327 | * Fixed a scaling bug in the GaussSmooth function. |
---|
328 | |
---|
329 | Other: |
---|
330 | |
---|
331 | * Numerous changes to the code that do not affect how Duchamp itself |
---|
332 | runs, but were necessary for code development with the Duchamp |
---|
333 | libraries (primarily as a part of the ASKAP code development). |
---|
334 | |
---|
335 | |
---|
336 | Duchamp version 1.1.6 (2008/09/08) |
---|
337 | ---------------------------------- |
---|
338 | |
---|
339 | New features: |
---|
340 | |
---|
341 | * The velocity widths can now be quoted in two additional ways: the |
---|
342 | full width at 50% of the peak flux (ie. the FWHM) and the full width |
---|
343 | at 20% of the peak flux (w_50 and w_20 respectively). The w_50 |
---|
344 | parameter is now quoted in the results printed to the screen |
---|
345 | (instead of w_VEL), but all three are written to the results file. |
---|
346 | |
---|
347 | * The facility now exists to bypass the searching step and go straight |
---|
348 | to the output stage using a list of previously detected objects. The |
---|
349 | list is extracted from a previously-created log file. The user can |
---|
350 | change the way the spectra are plotted (e.g. choose to plot |
---|
351 | integrated rather than peak spectra), and select a subset of the |
---|
352 | detected objects to be printed to individual postscript files. Use |
---|
353 | the input parameter usePrevious (set to true) to use this facility, |
---|
354 | and provide a list of objects using the objectList parameter |
---|
355 | (eg. 1,2,4,7-10,15) |
---|
356 | |
---|
357 | * A new parameter "growthThreshold" has been created, that goes with |
---|
358 | "threshold". If you manually specify a threshold, and you wish to |
---|
359 | grow detections, you need to manually specify a growthThreshold (in |
---|
360 | flux units). |
---|
361 | |
---|
362 | Bug fixes: |
---|
363 | |
---|
364 | * Cubes that do not have a spectral axis (such as Stokes cubes) were |
---|
365 | causing memory leaks and crashing, due to some assumptions of the |
---|
366 | existence of the spectral axis. These bugs have been fixed, so that |
---|
367 | Duchamp will run on such cubes, although the WCS transforms may not |
---|
368 | always work appropriately. Please let me know via bug reports of |
---|
369 | difficulties you encounter! |
---|
370 | |
---|
371 | * The growing function has had a few bugs fixed and is now more |
---|
372 | efficient. |
---|
373 | |
---|
374 | * The FDR method was previously overriding any manually-specified |
---|
375 | threshold. This has been fixed so that if the user specifies |
---|
376 | threshold=X, then the FDR method is not called. |
---|
377 | |
---|
378 | * Some undefined things were happening with textual output when no |
---|
379 | objects were detected. This has been fixed. |
---|
380 | |
---|
381 | * Memory leaks caused by FITS WCS irregularities have been fixed |
---|
382 | (specifically, if a FITS header had NAXIS=2 but more than two WCS |
---|
383 | axes were defined). |
---|
384 | |
---|
385 | |
---|
386 | |
---|
387 | Duchamp version 1.1.5 (2008/03/20) |
---|
388 | ---------------------------------- |
---|
389 | |
---|
390 | Bug fixes: |
---|
391 | * A major bug was discovered in the calculation of integrated |
---|
392 | fluxes. The flux was incorrectly being weighted by the spatial size |
---|
393 | of the detection, resulting in a (often considerable) overestimation |
---|
394 | of the integrated flux. This has been corrected. |
---|
395 | |
---|
396 | * The beam size calculation was also incorrect, being out by a factor |
---|
397 | of 1/ln(2). |
---|
398 | |
---|
399 | * The "make install" command previously failed to work properly if the |
---|
400 | library had not been created. This has been fixed so that the |
---|
401 | installation works even if there is no library file. |
---|
402 | |
---|
403 | New Features: |
---|
404 | * You can now provide a new flux unit string, so that the pixel fluxes |
---|
405 | will be converted to these new fluxes before any calculations are |
---|
406 | done. This is done with the newFluxUnits input parameter. The new |
---|
407 | units should be directly convertible from the old ones (given by the |
---|
408 | BUNIT header -- e.g. if BUNIT = Jy/beam, you can give newFluxUnits |
---|
409 | as mJy/beam, but not mJy). |
---|
410 | |
---|
411 | * You can now specify the precision used in the output files for flux, |
---|
412 | velocity and S/N ratio columns, via new input parameters precFlux, |
---|
413 | precVel and precSNR. These will apply to the VOTable output as well |
---|
414 | as the text table and information on the spectral plots. |
---|
415 | |
---|
416 | * The Karma annotation files previously provided just a circle at the |
---|
417 | spatial location of the detected object. You now have the option to |
---|
418 | draw a border around the detected pixels (in a similar manner to the |
---|
419 | PGPLOT moment maps). Karma does not do this perfectly, so the lines |
---|
420 | may not line up exactly with the pixel borders, so the option |
---|
421 | remains to keep using the circles. This is controlled by the |
---|
422 | parameter "annotationType", with possible options being "borders" |
---|
423 | (the default) or "circles". |
---|
424 | |
---|
425 | * There is a new function getMetadata() that loads the header and WCS |
---|
426 | data, but no pixel information. This is only of interest if you are |
---|
427 | doing code development with the Duchamp library -- it does not |
---|
428 | affect the running of Duchamp itself. |
---|
429 | |
---|
430 | Duchamp version 1.1.4 (2008/02/15) |
---|
431 | ---------------------------------- |
---|
432 | |
---|
433 | Most of the changes incorporated in this update result from ASKAP code |
---|
434 | development (that makes use of some of the Duchamp functionality), |
---|
435 | but do not actually affect the way Duchamp runs (other than, in a |
---|
436 | couple of cases, making it a bit faster). Changes that are |
---|
437 | relevant for regular users of Duchamp are as follows: |
---|
438 | |
---|
439 | * A new option has been made available (thanks to Mary Putman et al |
---|
440 | for the suggestion!) to save the spectra of all detected objects in |
---|
441 | a text file. This has the form of one column for the spectral |
---|
442 | coordinates and one column of fluxes for each object. This is |
---|
443 | enabled by the input parameters flagTextSpectra and spectraTextFile. |
---|
444 | |
---|
445 | * Slight changes to the output include he formatting of the way the |
---|
446 | detected objects are written to the log file. This meant the |
---|
447 | verification files were also updated. Also the cube statistics are |
---|
448 | not printed to the results file if a user threshold is specified (as |
---|
449 | they are not calculated!). |
---|
450 | |
---|
451 | * The determination of beam size has been made more reliable, as has |
---|
452 | the BUNIT determination. |
---|
453 | |
---|
454 | * Fixed a bug that meant source merging was not done for 2D images |
---|
455 | (not usually a problem, as the source-finding takes care of this, |
---|
456 | but came up in parallelisation development). |
---|
457 | |
---|
458 | Duchamp version 1.1.3 (2008/01/08) |
---|
459 | ---------------------------------- |
---|
460 | |
---|
461 | A minor update that just improves the build process. The location of |
---|
462 | the wcslib include files was not specified correctly, so that some |
---|
463 | machines were unable to find them. The configure script has been fixed |
---|
464 | so that the compilation should work in all cases. |
---|
465 | |
---|
466 | Some minor changes have also been made to the code in the PixelMap |
---|
467 | directory, and to param.cc, to fix warnings or errors that may appear |
---|
468 | in compilation. |
---|
469 | |
---|
470 | However, there are no changes to the actual workings of the code in |
---|
471 | this minor version, so if you have a working version of Duchamp 1.1.2 |
---|
472 | there is probably no reason to update. |
---|
473 | |
---|
474 | Duchamp version 1.1.2 (2007/12/07) |
---|
475 | ---------------------------------- |
---|
476 | |
---|
477 | Compilation: |
---|
478 | |
---|
479 | * The compilation had problems working correctly when the cfitsio and |
---|
480 | wcs libraries were not in standard locations. The configure script |
---|
481 | has been tweaked to make sure the libraries are found. |
---|
482 | |
---|
483 | * Problems with compiling in the absence of pgplot have been fixed, |
---|
484 | and it should now compile fine. |
---|
485 | |
---|
486 | * Improved the configure script for use with Mac OS X and gfortran. |
---|
487 | |
---|
488 | |
---|
489 | Bugfixing: |
---|
490 | |
---|
491 | * A major problem with the text-based output was fixed. The widths of |
---|
492 | the columns were not being calculated correctly, and were running |
---|
493 | together. This should no longer be the case. |
---|
494 | |
---|
495 | * There was a bug in the way Duchamp interpreted spectral axes, |
---|
496 | particularly AIPS types such as FELO-HEL, leading to incorrect |
---|
497 | scaling of the velocity axis. This has been fixed, so that |
---|
498 | non-standard types are now dealt with appropriately and the velocity |
---|
499 | scaling should be accurate. |
---|
500 | |
---|
501 | * Another bug meant the beam correction was always applied to the |
---|
502 | integrated spectra, regardless of whether the flux units involved |
---|
503 | the beam (e.g. Jy/beam). This has been fixed. Note that the values |
---|
504 | of the integrated flux presented in the results table were always |
---|
505 | calculated correctly. |
---|
506 | |
---|
507 | * Other minor changes to improve the speed and efficiency, especially |
---|
508 | of the merging code. |
---|
509 | |
---|
510 | New user parameters: |
---|
511 | |
---|
512 | * There is now the possibility to save a FITS file that contains a |
---|
513 | mask array, indicating where the detected objects are. This is |
---|
514 | governed by the flagOutputMask parameter. |
---|
515 | |
---|
516 | * The header information that is printed at the start of the results |
---|
517 | file -- that is, the list of parameters, the statistics of the cube, |
---|
518 | and the number of detections -- can now be written to a separate |
---|
519 | file. Set the flagSeparateHeader parameter to true or 1 and it will |
---|
520 | go to the file indicated by the headerFile parameter (the default is |
---|
521 | duchamp-Results.hdr). |
---|
522 | |
---|
523 | * A "scaleMax" parameter has been added, so that the wavelet |
---|
524 | reconstruction can include only a specified range of scales (for |
---|
525 | instance, if one wants to search just for narrow features such as |
---|
526 | absorption lines). |
---|
527 | |
---|
528 | * A "flagRobustStats" parameter has been added. This allows the user |
---|
529 | to elect to use robust statistics (median and median absolute |
---|
530 | deviation from the median) to estimate the noise parameters. If set |
---|
531 | to false, the mean and standard deviation will be used. The default |
---|
532 | value is true. |
---|
533 | |
---|
534 | New Feature: |
---|
535 | |
---|
536 | * When Duchamp is run on a 2D image (i.e. with no spectral output), it |
---|
537 | now produces a postscript file that shows information each |
---|
538 | individual source plus the image cutout of the source. This is |
---|
539 | similar to the spectral output file, but without the spectra. The |
---|
540 | filename is given by the spectraFile parameter. |
---|
541 | |
---|
542 | * Ability to save a FITS file containing a mask array, with pixel |
---|
543 | values of 1 for pixels in a detected object, and 0 elsewhere. |
---|
544 | |
---|
545 | |
---|
546 | Duchamp version 1.1.1 (2007/07/20) |
---|
547 | ------------------------------------ |
---|
548 | |
---|
549 | Minor update to the release, with just a few changes: |
---|
550 | |
---|
551 | * The verification script was generating diffs due to differences in |
---|
552 | the precision of some calculations when done on different machines. |
---|
553 | One of these was the integrated flux, and this has been corrected so |
---|
554 | that the same value should appear on all machines. |
---|
555 | The verification script has also changed so that just the number of |
---|
556 | sources and their positions are tested, as well as the |
---|
557 | logfiles. This should avoid the reporting of spurious differences. |
---|
558 | |
---|
559 | * The grey-scale used in the image cutouts (in the spectral plots) has |
---|
560 | been inverted. This makes it consistent with the scale used in the |
---|
561 | maps, and hopefully easier to see when printing. |
---|
562 | |
---|
563 | * The configure/make system has been altered to make it easier to |
---|
564 | install, and to specify different external libraries. In particular, |
---|
565 | it is now not necessary to have PGPLOT installed on your system to |
---|
566 | run Duchamp. In the absence of PGPLOT, Duchamp will run as normal, |
---|
567 | just without any graphical output. Some source code needed to be |
---|
568 | restructured to make this work. Please read the README file, or the |
---|
569 | Installation appendix in the User's Guide, for complete details. |
---|
570 | |
---|
571 | * The time of completion is now written to the log file, so that the |
---|
572 | user can have some idea of how long the program took. |
---|
573 | |
---|
574 | |
---|
575 | Duchamp version 1.1 (2007/05/17) |
---|
576 | ------------------------------------ |
---|
577 | |
---|
578 | Changes made since the last numbered release: |
---|
579 | |
---|
580 | EFFICIENCY OF EXECUTION: |
---|
581 | |
---|
582 | * Major change to the way detections are stored. They are now recorded |
---|
583 | via run-length encoding in the x-y plane, and stored as collections |
---|
584 | of channel-maps. This improves the memory usage and the speed of |
---|
585 | execution (particularly for routines such as the merging |
---|
586 | routines). The memory usage has also been improved by changing the |
---|
587 | way the list of detected objects is stored. |
---|
588 | |
---|
589 | SMOOTHING: |
---|
590 | |
---|
591 | * Addition of ability to spatially smooth the cube before |
---|
592 | searching. This is done with a Gaussian kernel, the size and shape |
---|
593 | of which can be specified by the user, using the parameters kernMaj |
---|
594 | & kernMin (which are the FWHM for the major & minor axes -- if |
---|
595 | kernMin is not given it is assumed to match kernMaj) and kernPA (the |
---|
596 | position angle of the major axis). There is a new parameter |
---|
597 | smoothType that distinguishes this method from the spectral (Hanning) |
---|
598 | smoothing already in use. |
---|
599 | |
---|
600 | DETECTIONS: |
---|
601 | |
---|
602 | * Changed the way detection is done -- now only search in 2D images, |
---|
603 | keeping all detections (ie. no minimum-pixel requirement). This |
---|
604 | should be the same as doing both the 1D and 2D searches with the |
---|
605 | minimum pixel requirement in, but simpler. The rejection is done at |
---|
606 | the end after all the merging and growing has been done. This leads |
---|
607 | to a larger number of intermediate detections (ie. the number |
---|
608 | before merging), which may increase the run-time slightly, although |
---|
609 | this is offset by the changes to the efficiency (see above). |
---|
610 | |
---|
611 | * Increased the range over which objects can be grown to match the |
---|
612 | threshSpatial & threshVelocity parameters, as well as rejecting new |
---|
613 | pixels based on the BLANK and MW tests. |
---|
614 | |
---|
615 | INPUTS: |
---|
616 | |
---|
617 | * There has been a subtle change in the way BLANK pixels are dealt |
---|
618 | with. To enable trimming of BLANK pixels, users should use the new |
---|
619 | parameter flagTrim. The parameters flagBlankPix and blankPixVal are |
---|
620 | no longer accessible via the parameter file -- warning messages are |
---|
621 | given if they are provided in the parameter file. |
---|
622 | |
---|
623 | * Added ability to specify a statsec, so that the statistics are only |
---|
624 | calculated from a given subsection of the cube, rather than the full |
---|
625 | cube. |
---|
626 | |
---|
627 | * The subsections can also specify the ability to remove a border of n |
---|
628 | pixels from the edges of an axis (ie. n from the start and from the |
---|
629 | end) -- as requested in Trac ticket #5. |
---|
630 | |
---|
631 | * Changed the default value of the reconDim parameter from 3 to 1, and |
---|
632 | the default value of the flagATrous parameter to false. |
---|
633 | |
---|
634 | OUTPUTS: |
---|
635 | |
---|
636 | * The output now includes three different estimates of the "centre" of |
---|
637 | the detection: peak location, centroid (flux-weighted), or average. |
---|
638 | |
---|
639 | * Some slight improvements to the user feedback during execution. |
---|
640 | |
---|
641 | * Spectral output now includes the baseline, if one was fitted. The |
---|
642 | format of the plot headers is slightly changed, to stop information |
---|
643 | falling off the edge of the page. |
---|
644 | |
---|
645 | * Added command-line option -x to directly disable the PGPLOT X-window |
---|
646 | map plotting. This overrides the setting of flagXOutput in the |
---|
647 | parameter file. |
---|
648 | |
---|
649 | * Fallback spectral units (in case the FITS header fails to record |
---|
650 | them) changed to SPC, but code has been fixed so that any problem |
---|
651 | should be caught before this becomes an issue. |
---|
652 | |
---|
653 | BUGFIXES: |
---|
654 | |
---|
655 | * Fixed bug (Trac ticket #4) that meant the velocity units were not |
---|
656 | correctly dealt with. Duchamp should be more robust for different |
---|
657 | velocity axis setups now. |
---|
658 | |
---|
659 | * Fixed bug (ticket #9) with the VOTable output, where the tags were |
---|
660 | not closing. |
---|
661 | |
---|
662 | * Fixed a bug that meant the integrated fluxes were not calculated |
---|
663 | properly -- no allowance was made for the number of spatial |
---|
664 | pixels. This should also work properly for 2D images now as well. |
---|
665 | |
---|
666 | * Fixed minor bug in calculating the flux threshold from the p-value |
---|
667 | threshold when the FDR method is used. This did not affect the |
---|
668 | actual thresholding, merely the quoted flux threshold in the results |
---|
669 | file. Also, the MW channels are kept out of the p-value threshold |
---|
670 | determination if they are being flagged. |
---|
671 | |
---|
672 | |
---|
673 | |
---|
674 | Duchamp version 1.0.7 (2006/11/22) |
---|
675 | ---------------------------------- |
---|
676 | |
---|
677 | One new feature, and some improvements and bug-fixes. |
---|
678 | |
---|
679 | * The user can now elect to Hanning-smooth the spectral direction of |
---|
680 | the cube before the searching is done. This can be done instead of the |
---|
681 | wavelet reconstruction (although if both are selected, the |
---|
682 | reconstruction takes precendence). This functionality is switched on |
---|
683 | and off by the flagSmooth parameter, and the width of the Hanning |
---|
684 | kernel is governed by the hanningWidth parameter. |
---|
685 | |
---|
686 | * The smoothed array can also be written to a FITS file and read in at |
---|
687 | the start in the same manner as the reconstructed array. |
---|
688 | |
---|
689 | * Several improvements have been made to the memory |
---|
690 | management. Several memory leaks were fixed, and the memory usage of |
---|
691 | Duchamp is considerably less, which will be a help for running it on |
---|
692 | large cubes. The speed of some routines has also been improved, by |
---|
693 | removing unnecessarily repetitive loops. |
---|
694 | |
---|
695 | * The sorting routines have been changed, and should now be slightly quicker |
---|
696 | (and a bit more robust). |
---|
697 | |
---|
698 | * Enabled the scale bar (plotted on the 0th moment map in the spectral |
---|
699 | output file) to be able to deal with much finer spatial scales (as |
---|
700 | may be expected from VLBI data). |
---|
701 | |
---|
702 | * Other minor changes to code and presentation. |
---|
703 | |
---|
704 | |
---|
705 | Duchamp version 1.0.6 (2006/11/01) |
---|
706 | ---------------------------------- |
---|
707 | |
---|
708 | Some incremental improvements and changes to the code: |
---|
709 | |
---|
710 | * The statistics used for the detection are now calculated once for |
---|
711 | the entire cube, rather than being calculated separately for each |
---|
712 | channel map and spectrum. This results in a uniform threshold value |
---|
713 | across the entire cube. The way the statistics calculations are |
---|
714 | implemented in the code was changed, using a new statistics class. |
---|
715 | |
---|
716 | * This means we can report a peak signal-to-noise value for each |
---|
717 | detection. This is given in the text-based output, as well as in the |
---|
718 | summary information above the spectral output for each source. |
---|
719 | |
---|
720 | * The user can now elect not to have the moment map displayed in a |
---|
721 | PGPlot window, through the use of the new flagXOutput |
---|
722 | parameter. This should help in cases of running Duchamp on a dumb |
---|
723 | terminal (with no X-display capabilities), or as part of a batch |
---|
724 | script where the continual popping-up of the PGPlot window might |
---|
725 | become annoying. |
---|
726 | |
---|
727 | * There are different Flags reported for the case of an object lying on |
---|
728 | the spatial edge and spectral edge of the cube (E and S respectively). |
---|
729 | |
---|
730 | * A few minor bug fixes: |
---|
731 | - When providing a subsection, any axes with the range given by * |
---|
732 | had the pixel values offset incorrectly. This has been fixed. |
---|
733 | - Negative searches now correctly invert the reconstructed array |
---|
734 | when it is read in from a file. |
---|
735 | |
---|
736 | * Other minor changes to the code, to improve memory handling and |
---|
737 | remove redundant arrays and variables. |
---|
738 | |
---|
739 | |
---|
740 | Duchamp version 1.0.5 (2006/09/06) |
---|
741 | ---------------------------------- |
---|
742 | |
---|
743 | Since version 1.0, there have been a range of mostly minor |
---|
744 | changes. These are generally bug-fixes, thanks to feedback from a |
---|
745 | number of users, as well as a few extra features. |
---|
746 | |
---|
747 | Here is a summary of the changes since version 1.0: |
---|
748 | |
---|
749 | USER INTERFACE: |
---|
750 | |
---|
751 | * The user is now able to enter the value of flag parameters in the |
---|
752 | parameter file as strings, as well as integers (so one can enter |
---|
753 | true or 1 to give the same result). |
---|
754 | |
---|
755 | GRAPHICAL OUTPUT: |
---|
756 | |
---|
757 | * Added a new function that draws the edge of the blank region on the |
---|
758 | maps and image cutouts. There is a new flag parameter -- |
---|
759 | drawBlankEdges -- that controls the use of this function (the |
---|
760 | default is true). |
---|
761 | Also, the edge of the field is plotted on the image cutouts as a |
---|
762 | yellow line. This distinguishes it from the purple blank pixel |
---|
763 | dividing line. |
---|
764 | |
---|
765 | * The size of the tick mark in the image cutout (indicating the |
---|
766 | spatial scale of the image) is now adaptable, so that it shows the |
---|
767 | scale that best fits the image (ranging from 1 arcsec to 15 |
---|
768 | degrees). (This is a change from the previous standard length of 15 |
---|
769 | arcmin.) |
---|
770 | |
---|
771 | * The zoomed spectrum had its flux scale determined by all points in |
---|
772 | the zoom box,including those flagged by the Milky Way (MW) |
---|
773 | range. This has been fixed so that any MW channels will not affect |
---|
774 | the flux scaling, potentially improving the appearance of objects |
---|
775 | detected close in velocity to strong MW emission or absorption. |
---|
776 | |
---|
777 | * Improved Karma Annotation file output, so that files without good |
---|
778 | WCS are dealt with appropriately. |
---|
779 | |
---|
780 | TEXT-BASED OUTPUT: |
---|
781 | |
---|
782 | * The position resolution in the IAU-format names has been increased, |
---|
783 | so that distinct objects close to one another are more readily |
---|
784 | distinguished. Overlapping sources at different velocities may |
---|
785 | still have the same name, but this is a more general problem. |
---|
786 | |
---|
787 | * The presentation of the results in tabular format has been improved, |
---|
788 | so that the precision of faint sources is sufficient to show their |
---|
789 | flux, for instance, is not 0. This also applies to the information |
---|
790 | presented above the spectral plots. |
---|
791 | |
---|
792 | * Improved error and warning reporting, so that the formatting and |
---|
793 | presentation of information is clearer. |
---|
794 | |
---|
795 | FITS I/O RELATED: |
---|
796 | |
---|
797 | * The previous version was did not deal well with 4 (or greater) |
---|
798 | dimensions in the FITS file -- the memory allocation was badly done, |
---|
799 | and the axes needed to be in a particular order. This has been |
---|
800 | fixed, so that the FITS I/O routines can now handle any sized FITS |
---|
801 | file, with axes in any order (as long as there are two spatial and one |
---|
802 | spectral axes). |
---|
803 | |
---|
804 | * When the FITS file does not have a rest frequency defined, there is |
---|
805 | no way to transform the frequency axis into velocity. In this case, |
---|
806 | the spectral axis is left as frequency, and put into units of MHz. |
---|
807 | |
---|
808 | * If the beam size is not indicated by the FITS header (through the |
---|
809 | BMAJ and BMIN keywords), the user can manually specify the size |
---|
810 | through the parameter file (using parameter beamSize). |
---|
811 | |
---|
812 | * The FITS I/O routines make use of the command fits_file_exists. This |
---|
813 | was introduced into the CFITSIO package from version 2.5, so Duchamp |
---|
814 | will only work with this version or higher. Version 3+ is preferred. |
---|
815 | |
---|
816 | OTHER BUG-FIXING: |
---|
817 | |
---|
818 | * Several bugs related to the blank-pixels were dealt with. |
---|
819 | The correct values were not propagating through correctly, meaning |
---|
820 | that the default values were being used. Also, there was the |
---|
821 | potential for blank pixels to be detected when the FDR method was |
---|
822 | used. Finally, the image cutout displays occasionally did not |
---|
823 | obscure the blank pixels. All these problems should be fixed now. |
---|
824 | |
---|
825 | * The FDR setup routine was occasionally failing with a segmentation |
---|
826 | fault, due to it accessing unallocated memory. This has been fixed. |
---|
827 | |
---|
828 | * Fixed bugs that affected the way 2D images (rather than 3D cubes) |
---|
829 | were dealt with. The minChannels test failed when minChannels=0. |
---|
830 | |
---|
831 | * If there is no beam information in the FITS header, the user can now |
---|
832 | enter a beam size as a parameter. |
---|
833 | |
---|
834 | * Other minor fixes to the code, to improve its structure and |
---|
835 | robustness. |
---|
836 | |
---|
837 | |
---|
838 | Duchamp version 1.0 (2006/06/30) |
---|
839 | -------------------------------- |
---|
840 | |
---|
841 | The first full release version. |
---|
842 | |
---|
843 | Several major changes compared to previous version: |
---|
844 | |
---|
845 | * Incorporated a FitsHeader class, to keep track of header information |
---|
846 | (including WCS) from the FITS file. All units-related calculations |
---|
847 | are done with this class, such as conversion to velocity, and |
---|
848 | pixel-to-WCS conversion. The main advantage of this is improved |
---|
849 | speed of execution, more adaptable to different units, and improved |
---|
850 | code (easier for me!). |
---|
851 | |
---|
852 | * Able to select the dimensionality of the reconstruction, rather than |
---|
853 | just doing it in 3-D. |
---|
854 | |
---|
855 | * Robust text output, so that the columns are sized correctly given |
---|
856 | the data being written, and the relevant units (derived from the |
---|
857 | FITS header) are included in the output table. |
---|
858 | |
---|
859 | * Improved the way the reconstructed image is saved and read back in, |
---|
860 | with a better naming scheme and a better set of new FITS header |
---|
861 | keywords. The MW headers are now not written. |
---|
862 | |
---|
863 | Other, more minor changes include: |
---|
864 | |
---|
865 | * MW channels now not set to 0, but just ignored for searching |
---|
866 | purposes (and for the scaling of the spectral output -- they are |
---|
867 | plotted though and highlighted with a hashed box). |
---|
868 | |
---|
869 | * The scale bar in the moment map in the spectral output file has its |
---|
870 | length indicated. |
---|
871 | |
---|
872 | * Improved VOTable output, with more information about the way Duchamp |
---|
873 | was run. |
---|
874 | |
---|
875 | * Made sure all statistics calculations in the reconstruction are |
---|
876 | based on robust (ie. median) methods. |
---|
877 | |
---|
878 | Also moved to an autoconf based configure/make compilation, for ease of use. |
---|
879 | |
---|
880 | |
---|
881 | Duchamp version 0.9.2 (2006/06/27) |
---|
882 | -------------------------------- |
---|
883 | |
---|
884 | * Added the use of warning flags for detections: for either edge |
---|
885 | location or negative enclosed flux. |
---|
886 | |
---|
887 | * A new command line option added so that the user can specify a FITS |
---|
888 | file to be searched with the default parameters, rather than giving |
---|
889 | a full parameter file. |
---|
890 | |
---|
891 | * The scale bar on the moment cutout now works in general case, using |
---|
892 | an iterative process to get to the correct length. |
---|
893 | |
---|
894 | * RA axes are now done correctly on the full-scale maps. |
---|
895 | |
---|
896 | * Various coding fixes, improving the readability of the code, |
---|
897 | particularly regarding the declaration of temporary variables. |
---|
898 | |
---|
899 | * Changed the way the time of execution is called : now using time.h |
---|
900 | functions, rather than a system call. |
---|
901 | |
---|
902 | * Changed output in Detection/outputDetection.cc for the pixel |
---|
903 | information of detected objects (the info printed above the spectral |
---|
904 | plots) -- now print out number of voxels in object, and have |
---|
905 | improved the formatting a little. |
---|
906 | |
---|
907 | * Improved the functionality of saving the FITS file containing the |
---|
908 | reconstructed array. Added ability to save and read back in the MW |
---|
909 | parameters when saving a reconstructed cube (if a reconstructed cube |
---|
910 | has different MW range to that being considered, it would cause |
---|
911 | problems). ReadRecon now just returns a FAILURE and will reconstruct |
---|
912 | the cube anew. |
---|
913 | |
---|
914 | * Changed default value of flagGrowth to 0. |
---|
915 | |
---|
916 | |
---|
917 | |
---|
918 | Duchamp version 0.9 (2006/05/05) |
---|
919 | -------------------------------- |
---|
920 | |
---|
921 | First public release version. |
---|