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/grpgetgroupsum.html
Hardcopy (PDF): A4 | Letter
AHELP for CIAO 3.4 grpGetGroupSum Context: group

Synopsis

Apply the supplied grouping to an array.

Syntax

Array_Type grpdata = grpGetGroupSum( Array_Type dataArray, Array_Type
grouping )

Description

This function applies the grouping information from the grouping parameter to the dataArray parameter. The return value is an array whose length equals that of the input data (the dataArray argument) and each element within a group contains the same value. As an example,

grpGetGroupSum( [1,2,3,4,5,6], [1,-1,1,-1,1,1] )

will return the array

[3,3,7,7,5,6]

since the groups consist of the first two elements, then the next two elements, with the last two elements being un-grouped.

Example 1

chips> ysum = grpGetGroupSum( y, grp )

The ysum array will contain the data from the y array after the grouping scheme stored in the grp array is applied to it. The ysum array will have the same size as the y array. The following code shows you how you can convert ysum into an array in which each element corresponds to one group.

chips> i = where( grp == 1 )
chips> ygrp = ysum[i]

Here we created an array i whose elements correspond to those elements in the grp array with a value of 1 (this marks the start of a group). The ygrp array is then created by using this array to extract the corresponding elements from the ysum array. It could have been written in one line as:

chips> ygrp = ysum[ where( grp == 1 ) ]

Example 2

chips> x = [0.5:6.0:0.05]
chips> y = 3 + 30 * exp( - (x-2.0)^2 / 0.1 )
chips> ( grp, qual ) = grpNumCounts( y, 15 )
chips> ysum = grpGetGroupSum( y, grp )
chips> nchan = grpGetChansPerGroup( grp )
chips> i = where( grp == 1 and qual == 0 )
chips> xstart = x[i]
chips> 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. We then filter the summed array (ysum) so that it corresponds to only those elements at the start of a group - the

grp == 1

condition - and for which the quality flag is "good" - which is given by

qual == 1

This array is divided by the number of elements in each group to calculate the average value in the group. Note that the xstart array gives the start position of each group.

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.