About Chandra Archive Proposer Instruments & Calibration Newsletters Data Analysis HelpDesk Calibration Database NASA Archives & Centers Chandra Science Links

Skip the navigation links
Last modified: December 2006

URL: http://cxc.harvard.edu/ciao3.4/grpadaptivesnr.html
Hardcopy (PDF): A4 | Letter
AHELP for CIAO 3.4 grpAdaptiveSnr Context: group

Synopsis

Adaptively group an array by signal to noise.

Syntax

grpAdaptiveSnr( Array_Type countsArray, Double_Type snr )
grpAdaptiveSnr( Array_Type countsArray, Double_Type snr, Integer_Type
maxLength )
grpAdaptiveSnr( Array_Type countsArray, Double_Type snr, Integer_Type
maxLength, Array_Type tabStops )
grpAdaptiveSnr( Array_Type countsArray, Double_Type snr, Integer_Type
maxLength, Array_Type tabStops, Array_Type errorCol )

Returns: ( Array_Type grouping, Array_Type quality )

Description

This function returns the grouping and quality arrays that represent the input data (countsArray) after it has been adaptively grouped so that the signal to noise of each group is at least equal to the snr parameter. The optional parameters maxLength and tabStops represent the maximum number of elements that can be combined into a group and an array representing those elements that should be ignored respectively. The errorCol array gives the error for each element of the original array: if it is not supplied then the error is taken to be the square root of the element value.

This function provides the same functionality as the ADAPTIVE_SNR option of dmgroup.

Example 1

chips> (g,q) = grpAdaptiveSnr( y, 5 )

This example calculates the grouping and quality arrays that represent the input data (here the contents of the y array) after it has been adaptively grouped to have a signal to noise of at least 5 per group.

Example 2

chips> x = [0.5:6.0:0.05]
chips> y = 3 + 30 * exp( - (x-2.0)^2 / 0.1 )
chips> (g,q) = grpAdaptiveSnr( y, 5 )
chips> ysum = grpGetGroupSum( y, g )
chips> nchan = grpGetChansPerGroup( g )
chips> i = where( g == 1 )
chips> yavg = ysum[i] / nchan[i]
chips> curve( x, y )
chips> simpleline
chips> curve( x[i], yavg )
chips> symbol square
chips> symbol red

Here we take the function

y = 3 + 30 * exp( -(x-2)^2 / 0.1 )

and adaptively group it so that the signal-to-noise of the group is at least 5. The plot shows the original data (the solid line and the crosses) and the grouped data (as the red squares); the latter has been normalised by the width of each group and is displayed at the left-edge of each group.

Unlike the simple grouping done by grpSnr() - where only the end element(s) may have non-zero quality values - the adaptive grouping scheme can create groups with non-zero quality anywhere in the array. The code below identifies these points and marks them with a solid-yellow circle.

chips> i = where( g == 1 )
chips> j = where( q[i] != 0 )
chips> curve( x[i][j], yavg[j] )
chips> symbol bigpoint
chips> symbol yellow

Bugs

See the bugs page for the group library on the CIAO website for an up-to-date listing of known bugs.

Hardcopy (PDF): A4 | Letter
Last modified: December 2006



The Chandra X-Ray Center (CXC) is operated for NASA by the Smithsonian Astrophysical Observatory.
60 Garden Street, Cambridge, MA 02138 USA.    Email: cxcweb@head.cfa.harvard.edu
Smithsonian Institution, Copyright © 1998-2004. All rights reserved.