XMM-Newton Science Analysis System
omdetect (omdetect-5.14.2) [???]
Meta Index / Home Page / Algorithm / The detection algorithms
This algorithm is designed to pick up sources that have either extents much greater
than that of the points-spread function or any other sources that were not picked up by
the point-source detection algorithm.
The subroutine is called with the following parameters:
- nESources - the total number of extended-sources detected so far
- eSourceList - a linked list storing the data for each extended-source detected so far.
- image - The two-dimensional image
- backgroundimage - The two-dimensional background image
- eLevelImage - a two-dimension array that stores the pixels assigned to the extended-sources-
each pixel assigned
to the source is set equal to the number assigned to the source. Numbering
starts at -1 and is decremented by one for each new source detected.
- pLevelImage - a two-dimension array that stores the pixels assigned to the point-sources-
Numbering is from 1 upwards.
- minNumPixels - The minimum number of pixels that any possible extended-source
is allowed to have.
- maxNumPixels - The maximum number of pixels that any possible extended-source
is allowed to have.
- maxHeight - The maximum pixel value that any possible extended-source is allowed to have.
- HeightFunction - A function that returns, for any given pixel indices, the minimum pixel value
that the image must have for it to be considered a possible source pixel.
- ValidationFunction A function that carries out various checks on any possible source and decides
if it is a valid one or not.
The algorithm works as follows:
- Initialise number to nPSoures to 1 - will identify pixels that may be part of a source
- Initialise nPixel to 0
- Loop through all the pixels, ignoring any where the corresponding pixel in the elevelimage is not zero, or
if the image pixel value is either null or less than equal to zero, or if the value is greater than maxHeight.
- Determine the minimum required pixel value necessary for the pixel to be considered as part of a source by
calling the HeightFunction function. If the pixel value is at least this minimum value then set the elevelImage
pixel value to number, increment nPixel by 1 and proceed to the next pixel.
- Create an array of pixel structures, of size equal to nPixel. Each pixel structure contains the following entries:
- x - stores the pixel index i
- y - stores the pixel index j
- counts - stores the image value
- backgroundCounts - stores the background image counts
- numNeighbours - Number of elevelImage pixels immediately to the left/right and bottom/top that have
the value number.
- For each elevelImage pixel which has been asigned a value of number, fill out the values of its pixel structure.
- Loop through the array of pixel structures and identify groups of connected pixels (ie a pixel is connected to another
pixel if any of their sides or corners are touching).
- For each new group found
- Check to see if the number of pixels is greater than or equal to minNumPixels and less than or equal to maxNumPixels.
If not, move on to the next group.
- call the validation function. If the function returns false move on to the next group.
- Increment neSources by -1 and set all the pixels on the elevimage belonging to the source group to -neSources
- Compute the source-parameters for this source
- If all the groups of pixels have been identified exit this loop.
XMM-Newton SOC/SSC -- 2008-10-22