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