Bugs: Data Model
A list of bugs fixed in CIAO 4.2 is available.
Bugs
General
Filtering Data
Applying a bit-filter expression to an integer column does not work, nor does it cause an error.
Using incorrect syntax with the rectangle shape does not fail when filtering.
Using "!=" with string filtering causes dmlist to fail. (05 Mar 2007)
The "or" syntax ("||") doesn't work on string columns (17 Jul 2009)
ASCII Kernel
Binning & Rebinning Images
Bugs
General
-
(The image doesn't have to be square; it just needs to have 8192^2 pixels.)
This condition may be met when the "update=no" option is used. Normally, when you filter a dataset, the data subspace (which describes the boundaries of each column's data and therefore is the intersection of the initial minima and maxima with any subsequent filters) gets updated to reflect the filtering. However, when you give the "update=no" option, you instruct the DM not to update the subspace to reflect the current filter. Therefore, the full ranges for x and y are used in the binning, and you get a 8192x8192 image (and a seg fault, for the reason described above).
-
# DMCOPY (CIAO 4.2): Bad data type in filter string formatting
If a logical column exists in the file, the DM will generate this warning. The output is unaffected by this bug.
Filtering Data
-
Multi-valued string filters don't work
"col=foo" is okay, but "col=foo,bar" isn't.
Workaround:
Use "col=foo,col=bar" instead.
-
Creating a vector on-the-fly when region filtering
When region-filtering images, you can create a vector on the fly from any two axes by using a filter like "(#1,#3)=circle(...)". Although the image is filtered correctly with a temporary vector, the region filter isn't recorded in the subspace. Hence, tools that use the filtered file don't know that pixels outside the filter region are invalid. As a result, dmstat reports no nulls in the filtered image (unless you explicitly tell the DM to set pixels outside the filter to null by using "opt null=...").
Applying a bit-filter expression to an integer column does not work, nor does it cause an error.
-
Using incorrect syntax with the rectangle shape does not fail when filtering.
For example, setting xmax > xmin and/or ymax > ymin. Instead it appears that the Data Model simply swaps the min and max values.
-
The exit status of dmcopy is also incorrectly set to 0 (success):
unix% dmcopy "image.fits[#1=1:20,#2=:]" delme.fits # DMCOPY (CIAO 4.2): [ftColRead]: FITS error 308 bad first element number in dataset image.fits Block 1 PRIMARY unix% echo $status 0
Workarounds:
Omit the "#2=:" from the filter
Specify a range for both elements: [#1=1:20,#2=1:20]
-
For example:
unix% dmcopy "acis_img.fits[exclude sky=region(src.fits)][opt full,update=no]" filtered.fits
The regions are correctly excluded; however, the image is also clipped at the bounding box around all the excluded shapes, so the corners of a few chips are removed.
Workarounds:
-
Remove update=no. In this case, the Data Model internally inverts all exclude filters to be an inclusive filter, and correctly filters the image.
Be aware that this process is much slower if the region is large. In that case, it will also add a large region keyword to the file's header, noticeably slowing down any operation on that file.
-
For ASCII region files, it is also possible to manually invert the filter in the file. The "field()" region syntax is used to include the entire field, then remove the undesired sources. For instance,
# Region file format: CIAO version 1.0 circle(1635.5,4113.5,135.11408) circle(3975,4233,20) circle(2565.5,4129.5,40) circle(2129.5,4007.5,40)
would become
# Region file format: CIAO version 1.0 field() -circle(1635.5,4113.5,135.11408) -circle(3975,4233,20) -circle(2565.5,4129.5,40) -circle(2129.5,4007.5,40)
and the dmcopy filtering command would be
unix% dmcopy "acis_img.fits[sky=region(src.ascii)][opt full,update=no]" filtered.fits
-
-
There is a bug in region and range filters.
This command:
unix% dmcopy "input.fits[sky=circle(4096,4096,100),y=4020:4100,4250,4350]" \ output.fitsfails to do the y filter altogether. This bug also applies to exclude filters.
-
Using "!=" with string filtering causes dmlist to fail. (05 Mar 2007)
For example, the following commands both fail:
unix% dmlist "region.fits[shape!=Annulus]" data unix% dmlist catalog.fits"[COMMENT!='weak'][cols COMMENT]" data
-
The "or" syntax ("||") doesn't work on string columns (17 Jul 2009)
For example, this command does not find all instances of "PMterm" in the selected columns:
unix% dmlist stat.fits"[src=PMterm||det=PMterm||mst=PMterm]" counts 13
Compare to
unix% dmlist stat.fits"[cols det,src,mst]" data,clean | grep PMterm | wc -l 27
ASCII Kernel
-
Virtual columns are not supported. (11 Dec 2007)
In the DM, you can normally do
unix% dmlist evt.fits"[cols ra,dec]" data
even though RA and Dec are just coordinate systems defined on the X and Y columns in the file; the DM applies the transform on the fly. This doesn't work yet for ASCII files.
-
DTF-FIXED keyword comments may be truncated. (15 Jan 2008)
DTF-FIXED header lines may be up to 1024 characters long. However, if the keyword is longer than the FITS standard, the comment is truncated.
unix% input.txt output.dtf'[opt kernel=text/dtf-fixed]'
In input.txt:
TTYPE14 = 'Class' / LV Class Exo: M = missile [B = tactical ballistic missile (except Redstone) apo=80:200] R = research rocket O = orbital LV V = RTV Y = Exo weather rocket X = Big test rocket D= Deep space launch
In output.dtf:
TTYPE14 = "Class " / LV Class Exo: M = missile [B = tactical ballistic missile (except Redstone) apo
Binning & Rebinning Images
-
For example:
unix% dmcopy acis.img"[bin x=::5,y=::6]" acis5x6.img
Using the same value for both axes works correctly:
unix% dmcopy acis.img"[bin (x,y)=::5]" acis5.img
-
The DM doesn't catch incorrect binning syntax (17 Jul 2009)
unix% dmcopy foo.lis"[bin col1=0.5:1024.5:1,col2=0.5:1024:5:1]" foo.img
The bad syntax in the col2 binning - 0.5:1024:5:1 - should produce an error. Instead it ignores the ":1" and bins col2 to a length of 205.
-
unix% dmextract Input event file (ccd3.sky4.fits[y=3767:][bin sky=annulus(3786,3767,0:380:4)]): Enter output file name (rprof.fits): # dmextract (CIAO 4.0 Beta 2): WARNING: Input file, "ccd3.sky4.fits[y=3767:]", has no rows in it. Bus error
Bugs fixed in CIAO 4.2
The following is a list of bugs that were fixed in the CIAO 4.2 software release.
-
Users should specify "[opt null=-999]", or some other number that is not likely to be a valid pixel value.
Header comment values may not exceed 81 characters. (17 Jul 2009)
![[CIAO Logo]](../imgs/ciao_logo_navbar.gif)
![[New]](../imgs/new.gif)