summaryrefslogtreecommitdiffstats
path: root/funtools/doc/pod/regbounds.pod
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/doc/pod/regbounds.pod')
-rw-r--r--funtools/doc/pod/regbounds.pod203
1 files changed, 0 insertions, 203 deletions
diff --git a/funtools/doc/pod/regbounds.pod b/funtools/doc/pod/regbounds.pod
deleted file mode 100644
index c63a0bd..0000000
--- a/funtools/doc/pod/regbounds.pod
+++ /dev/null
@@ -1,203 +0,0 @@
-=pod
-
-=head1 NAME
-
-
-
-B<RegBounds: Region Boundaries>
-
-
-
-=head1 SYNOPSIS
-
-
-
-
-Describes how spatial region boundaries are handled.
-
-
-
-=head1 DESCRIPTION
-
-
-
-
-
-The golden rule for spatial region filtering was first enunciated by
-Leon VanSpeybroeck in 1986:
-
-
-Each photon will be counted once, and no photon will be counted
-more than once.
-
-
-This means that we must be careful about boundary
-conditions. For example, if a circle is contained in an annulus such
-that the inner radius of the annulus is the same as the radius of the
-circle, then photons on that boundary must always be assigned to one
-or the other region. That is, the number of photons in both regions
-must equal the sum of the number of photons in each region taken
-separately.
-
-With this in mind, the rules for determining whether a boundary image
-pixel or table row are assigned to a region are defined below.
-
-B<Image boundaries : radially-symmetric shapes (circle, annuli, ellipse)>
-
-For image filtering, pixels whose center is inside the boundary are
-included. This also applies non-radially-symmetric shapes. When a
-pixel center is exactly on the boundary, the pixel assignment rule is:
-
-
-
-=over 4
-
-
-
-
-=item *
-
-the outer boundary of a symmetric shape does not include such pixels
-
-
-=item *
-
-the inner boundary of a symmetric shape (annulus) includes such pixels
-
-
-=back
-
-
-
-In this way, an annulus with radius from 0 to 1, centered exactly on a
-pixel, includes the pixel on which it is centered, but none of its
-neighbors.
-
-These rules ensure that when defining concentric shapes, no pixels are
-omitted between concentric regions and no pixels are claimed by two
-regions. When applied to small symmetric shapes, the shape is less
-likely to be skewed, as would happen with non-radially-symmetric
-rules. These rules differ from the rules for box-like shapes, which
-are more likely to be positioned adjacent to one another.
-
-B<Image Boundaries: non-radially symmetric shapes (polygons, boxes)>
-
-For image filtering, pixels whose center is inside the boundary are
-included. This also applies radially-symmetric shapes. When a pixel
-center is exactly on the boundary of a non-radially symmetric region,
-the pixel is included in the right or upper region, but not the left
-or lower region. This ensures that geometrically adjoining regions
-touch but don't overlap.
-
-B<Row Boundaries are Analytic>
-
-When filtering table rows, the boundary rules are the same as for
-images, except that the calculation is not done on the center of a
-pixel, (since table rows, especially X-ray events rows, often have
-discrete, floating point positions) but are calculated exactly. That
-is, an row is inside the boundary without regard to its integerized
-pixel value. For rows that are exactly on a region boundary, the
-above rules are applied to ensure that all rows are counted once and
-no row is counted more than once.
-
-
-Because row boundaries are calculated differently from image boundaries,
-certain programs will give different results when filtering the same
-region file. In particular, fundisp/funtable (which utilize analytic
-row filtering) perform differently from funcnts (which performs image
-filtering, even on tables).
-
-B<Image Boundaries vs. Row Boundaries: Practical Considerations>
-
-
-You will sometimes notice a discrepancy between running funcnts on an
-binary table file and running fundisp on the same file with the same filter.
-For example, consider the following:
-
- fundisp test1.fits"[box(4219,3887,6,6,0)]" | wc
- 8893 320148 3752846
-
-Since fundisp has a 2-line header, there are actually 8891 photons
-that pass the filter. But then run funtable and select only the
-rows that pass this filter, placing them in a new file:
-
- ./funtable test1.fits"[box(4219,3887,6,6,0)]" test2.fits
-
-Now run funcnts using the original filter on the derived file:
-
- ./funcnts test2.fits "physical; box(4219,3887,6,6,0)"
-
- [... lot of processed output ...]
-
- # the following source and background components were used:
- source region(s)
- ----------------
- physical; box(4219,3887,6,6,0)
-
- reg counts pixels
- ---- ------------ ---------
- 1 7847.000 36
-
-There are 1044 rows (events) that pass the row filter in fundisp (or
-funtable) but fail to make it through funcnts. Why?
-
-
-The reason can be traced to how analytic row filtering (fundisp, funtable)
-differs from integerized pixel filtering(funcnts, funimage). Consider the
-region:
-
- box(4219,3887,6,6,0)
-
-Analytically (i.e., using row filtering), positions will pass this
-filter successfully if:
-
- 4216 <= x <= 4222
- 3884 <= y <= 3890
-
-For example, photons with position values of x=4216.4 or y=3884.08 will pass.
-
-
-Integerized image filtering is different in that the pixels that will
-pass this filter have centers at:
-
- x = 4217, 4218, 4219, 4220, 4221, 4222
- y = 3885, 3886, 3887, 3888, 3889, 3890
-
-Note that there are 6 pixels in each direction, as specified by the region.
-That means that positions will pass the filter successfully if:
-
- 4217 <= (int)x <= 4222
- 3885 <= (int)y <= 3890
-
-Photons with position values of x=4216.4 or y=3884.08 will NOT pass.
-
-
-Note that the position values are integerized, in effect, binned into
-image values. This means that x=4222.4 will pass this filter, but not
-the analytic filter above. We do this to maintain the design goal that
-either all counts in a pixel are included in an integerized filter, or
-else none are included.
-
-
-[It could be argued that the correct photon limits for floating point
-row data really should be:
-
- 4216.5 <= x <= 4222.5
- 3884.5 <= y <= 3890.5
-
-since each pixel extends for .5 on either side of the center. We chose
-to the maintain integerized algorithm for all image-style filtering so
-that funcnts would give the exact same results regardless of whether
-a table or a derived non-blocked binned image is used.]
-
-
-
-=head1 SEE ALSO
-
-
-
-See funtools(n) for a list of Funtools help pages
-
-
-
-=cut