Ceiling First the mean value (mean) and the standard deviation (stddev) are calculated from all ring widths.
Then all ring width values above a "ceiling level" of mean + 1.5 * stddev are given that ceiling level value.
The trend curve Compute the curving trend from this "ceiled ring width curve" by a
polynomial, normally of the degree 3. (An operator may decide to use another degree.)
Roof trend and floor trend Calculate a roof trend by a polynomial of the same degree as previous
using the points above the trend curve. Do the same to get a floor trend out of the points
below the trend. Send a message to the operator if the roof and floor curves cross each other.
Prefiltering Those ring width values which were "ceiled" above, are now taken into account again.
When such a point has another too high point at either side, then it is marked as non-existent, so that
it will not be considered for any more analysis (i.e. not take part in correlation analysis).
However a sole point surrounded by not too high points, will be left with its "ceiled value".
Standardize each point Create a new index value at each point t as
index(t) = (width(t)-trend(t)) / (roof(t)-floor(t))
Note: 1. The formula above should not be applied to points which are taken out of consideration
during prefiltering. The "width()" value refers to the "ceiled" width value where no value is above
mean + 1.5 * stddev.
2. Please also note, that the formula above implies that corridor data is a mix of positive and negative numbers,
though if shifted up above the zero line it can be plotted as a (green) ring width curve as shown below.
3. The original Besancon formula states that the index(t) could be optionally multiplied
by any factor for convenience of drawing. This implies that if you get corridor data from e.g. Besancon,
that is probably scaled in another way than the CDendro corridor data. Though by using the checkboxes for
individual ring width and for norm. scaling that problem can easily be handled.