Algorithm

For each merged catchment all streams are found, and sorted by their Strahler stream order value.

The number of streams, the length of these streams and the catchment areas are found for all streams of a certain Strahler stream order number within each catchment. Connected streams with the same order number are joined and are counted as a single stream. Values are summed for each Strahler stream order number within each catchment.

Then a least squares fit is performed on all output columns containing summed values:

• When the total number of stream orders, i.e. the number of records in the Horton table, is £ 2, a least squares fit will not be calculated.
• When the total number of stream orders equals 4, the highest order is ignored during the least squares fit (i.e. values in the last record will not be taken into account).
• When the total number of stream orders is ³ 5, the lowest and highest orders are ignored during the least squares fit (i.e. values in the first and the last record in the table will not be taken into account.)

If you wish to perform the least squares fit by hand, as described below, you should first assign some undefined values in the columns containing summed values, using the rules above.

Expected values are calculated:

• by taking the logarithm of the empirical values,
• by performing a least squares fit through the logarithmic values,
• by 'undoing' the logarithm of the first step: the expected values equal 10 raised to the power of the outcome least squares fit values of the previous step.

In TabCalc syntax, this is obtained as follows (example to calculate expected values for C1_N):

C1_N_log = log(C1_N)

C1_N_poly = ColumnLeastSquaresFit(Order, C1_N_log, polynomial, 2)

C1_N_expected = 10 ^ C1_N_poly

This is repeated for C1_L and C1_A, and if required for other catchments C2, C3, etc. as well.

For more information, please refer to Table window: Least Squares Fit.

RB, RL, RA for subsequent stream orders i:

RB, RL, or RA value for subsequent stream orders i can be calculated as follows:

• The bifurcation ratio RB for a catchment is defined as: Ni / (Ni + 1)
• To calculate RB for catchment C1, type on the command line of the table window:
C1_RB = C1_N / C1_N[%r+1]
•

• The length ratio RL for a catchment is defined as: (Li + 1) / Li
• To calculate RL for catchment C1, type on the command line of the table window:
C1_RL = C1_L[%r+1] / C1_L
•

• RA for a catchment is defined as: (Ai + 1) / Ai
• To calculate RA for catchment C1, type on the command line of the table window:
C1_RA = C1_A[%r+1] / C1_A

This can be done for all other catchments C2, C3, etc. as well.

For more information on %R, see Table Calculation : predefined variable %R

RB, RL, RA as the slope of the regression lines:

The RB, RL, or RA as the slope of the regression lines can be calculated as follows:

• To calculate RB for catchment C1, open the Column Properties of the C1_N_poly column, and click the Additional Info button.
• You will see the formula that is the result of the least squares fit, e.g. Y = b + a * X
•

• Copy value a, or write this value down.
•

• To calculate the bifurcation ration RB, type on the command line of the table window:
RB = 10 ^ ABS(a)
•

• To calculate the Length Ratio RL, use regression coefficient a of column C1_L_poly.
• To calculate RA, use regression coefficient a of column C1_A_poly.

Reference:

Ven te Chow, D.R. Maidment, L.W. Mays (1988) Applied hydrology. In: McGraw-Hill Series in Water Resources and Environmental Engineering. McGraw-Hill, New York. pp. 166-170. ISBN 0-07-010810-2.