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