CCG_WTM4x

Forms the weighted median of a list of ordered data values. Incrementing the contributing pixel buffers and estimating the variance change

Description:

This routine finds a value which can be associated with the half- weight value. It sums all weights then finds a value for the half-weight. The comparison with the half-weight value proceeds in halves of the weights for each data point (half of the first weight, then the second half of the first weight and the first half of the second weight etc.) until the half weight is exceeded. The data values around this half weight position are then found and a linear interpolation of these values is the weighted median. The values which contribute to the result are flagged and passed through the USED array. This routine also uses the order statistic covariance array (for a population EL big) to estimate the change in the variance from a optimal measurement from the given population, returning the adjusted variance.

This version is specialised to accept bounds for the values that can be used in ARR, these are from ARR(LBND:UBND). It is designed for use when some outliers of the population have already been flagged for removal (say by some clipping algorithm and the variance still needs to be determined from the original population size).

Invocation

CALL CCG_WTM4x( EL, ORDDAT, WEIGHT, VAR, LBND, UBND, COVAR, USED, RESULT, RESVAR, STATUS )

Arguments

EL = INTEGER (Given)
The number of entries in the data array.
ARR( EL ) = ? (Given)
The list of ordered data for which the weighted median is required
WEIGHT( EL ) = ? (Given)
The weights of the values.
VAR = DOUBLE PRECISION (Given)
The variance of the unordered sample now ordered in ARR.
LBND = INTEGER (Given)
Lower bound of data to be considered in ARR.
UBND = INTEGER (Given)
Upper bound of data to be considered in ARR.
COVAR( ) = DOUBLE PRECISION (Given)
The packed variance-covariance matrix of the order statistics from a normal distribution of size EL.
USED( EL ) = LOGICAL (Returned)
If a value contributes to the median value it is flagged as true in this array, otherwise the array element is set to false.
RESULT = DOUBLE PRECISION (Returned)
The weighted median
RESVAR = DOUBLE PRECISION (Returned)
The variance of result.
STATUS = INTEGER (Given and Returned)
The global status.

Notes:

Prior Requirements