|AHELP for CIAO 4.2||
Group an array by the number of counts per group.
grpNumCounts( Array_Type countsArray, Double_Type numCounts ) grpNumCounts( Array_Type countsArray, Double_Type numCounts, Integer_Type maxLength ) grpNumCounts( Array_Type countsArray, Double_Type numCounts, Integer_Type maxLength, Array_Type tabStops ) Returns: ( Array_Type grouping, Array_Type quality )
This function returns the grouping and quality arrays that represent the input data (countsArray) after it has been grouped so that each group contains at least numCounts counts. The optional parameters maxLength and tabStops represent the maximum number of elements that can be combined and an array representing those elements that should be ignored, respectively. The tabStops array must be the same length as the channels array. A value of 0 means no tab; a value of 1 means that there is a tab stop.
This function provides the same functionality as the NUM_CTS option of dmgroup.
The group module is not available by default; to use it in a S-Lang program, it must be loaded using the S-Lang require() function:
slsh> (g,q) = grpNumCounts( y, 20 );
This example calculates the grouping and quality arrays that represent the input data (here the contents of the y array) after it has been grouped to at least 20 counts per group.
slsh> x = [0.5:6.0:0.05]; slsh> y = 3 + 30 * exp( - (x-2.0)^2 / 0.1 ); slsh> (g,q) = grpNumCounts( y, 15 ); slsh> ysum = grpGetGroupSum( y, g ); slsh> nchan = grpGetChansPerGroup( g ); slsh> i = where( g == 1 ); slsh> yavg = ysum[i] / nchan[i];
Here we take the function
y = 3 + 30 * exp( -(x-2)^2 / 0.1 )
and group it by 15 counts per group.
In this example we have ignored the quality array; the last group (corresponding to the last 3 elements of the x and y arrays) has a quality value of 2, indicating that the total number of counts for the group (9) is less than 15.
See the bugs page for the group library on the CIAO website for an up-to-date listing of known bugs.