Synopsis
Group an array so that its absolute gradient is below a user-defined limit.
Syntax
grpMinSlope( PyArray_Type axisArray, PyArray_Type dataArray, Double_Type slope ) grpMinSlope( PyArray_Type axisArray, PyArray_Type dataArray, Double_Type slope, Integer_Type maxLength ) grpMinSlope( PyArray_Type axisArray, PyArray_Type dataArray, Double_Type slope, Integer_Type maxLength, Array_Type tabStops ) Returns: ( PyArray_Type grouping, PyArray_Type quality )
Description
In this routine, groups are created when the absolute value of the slope of the input data (the axisArray and binArray arguments) is more than the threshold value (the slope argument). The slope is calculated as
delta[dataArray] / delta[axisArray]
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.
This function provides the same functionality as the MIN_SLOPE option of dmgroup.
The group module is not available by default; to use it in a Python program, it must be loaded using the Python import function:
from group import *, or import group
In addition, in order to create arrays, the Python module numpy must be loaded using the Python import function:
import numpy
Examples
Example 1
>>> (g,q) = grpMinSlope( x, y, 2 )
This example calculates the grouping and quality arrays that represent the input data (here the contents of the x and y arrays) in groups in which the slope is less than 2.
Example 2
>>> x = numpy.arange(1,11) >>> y = numpy.array([1, 2, 10, 1, 1, 20, 40, 80, 20, 2 ]) >>> (g,q) = grpMinSlope( x, y, 2 ) >>> ysum = grpGetGroupSum( y, g ) >>> nchan = grpGetChansPerGroup( g ) >>> i = numpy.where( g == 1 ) >>> yavg = ysum[i] / nchan[i]
Here we take a dataset that is essentially flat, except for one point, and group it so that the resulting groups differ by a slope of no more than 2.
Example 3
To see more examples of optional parameters and keywords in the parameter list, please see ahelp grpadaptive
Bugs
See the bugs page for the group library on the CIAO website for an up-to-date listing of known bugs.
Refer to the CIAO bug pages for an up-to-date listing of known issues.