CM.processCenterline: Process the centerline

Description Usage Arguments Details Value Author(s) Examples

View source: R/CM.processCenterline.r


Derive width, slope and further principle channel metrics for the channel centerline previously created.


CM.processCenterline(cmgo.obj, set = NULL)



the global object of type list containing data and parameters created with CM.ini()


an optional argument for processing a specific data set, if NULL all available data sets are used


CM.processCenterline() calculate the channel metrics (Fig. 9) based on the centerline previously calculated. It does that by first deriving channel transects. The transects are lines perpendicular to a group of centerline points where the size of that group is defined by the parameter transects.span. By default this span equals three which means for each group of three centerline points a line is created through the outer points of that group to which the perpendicular – the transect – is calculated (see Fig. 8b). In the final step the intersections of the transects with the banks are calculated (Fig. 8c).

Figure: processing Figure 8: A visualization of the transect calculation. a) the channel centerline, b) for each group of n points (in the example n=3) a line is fitted through the outer points (black line). The perpendicular to this line is the transect. c) the vectors from each centerline point to the left and to the right bank are calculated and stored separately.

When the transects cross the banks multiple times, the minimum distance is taken. In addition to the width, the distances of the centerline points to the banks is stored sepearately for the left and the right bank. This is particularly of importance when using multiple time series of channel profiles. See paragraph in the (see paragraph "Time series analyses" of package documentation.

The function returns the global data object extended by the following variables (length equals number of points of the reference centerline):

$metrics$tr       # linear equations of the transects
$metrics$cp.r     # coordinates of crossing points transects / right bank
$metrics$cp.l     # coordinates of crossing points transects / left bank
$metrics$d.r      # distance of reference centerline point / right bank
$metrics$d.l      # distance of reference centerline point / left bank
$metrics$w        # channel width
$metrics$r.r      # direction value: -1 for right, +1 for left to the centerline
$metrics$r.l      # direction value: -1 for right, +1 for left to the centerline
$metrics$diff.r   # difference between right bank point of actual time series and right bank point of reference series
$metrics$diff.l   # difference between left bank point of actual time series and left bank point of reference series

If you calculate channel metrics for one channel survey, the right bank is always to the right side of the centerline and the left bank always left to the centerline. Thus, the values of r.r are all -1 and the values of r.l all +1. However, when using a reference centerline to compare different channel surveys, these values can be required. If for example you examine the bank metrics for a reference centerline that is very different to the actual survey, the centerline is not necessarily between the two banks. This can happen when a massive shift of the channel bed occurred (see Fig. 9). For further calculations consider then the sign of the r.r and r.l values!


returns the global data object extended by the centerline data $metrics for the respective data set


Antonius Golly


# get demo data (find instructions on how to use own data in the documentation of CM.ini())
cmgo.obj = CM.ini("demo1")

# calculate channel metrics from centerline
cmgo.obj = CM.processCenterline(cmgo.obj)

AntoniusGolly/cmgo documentation built on Sept. 24, 2021, 1:33 a.m.