Calculates arbolate sum given a dendritic network and incremental lengths. Arbolate sum is the total length of all upstream flowlines.
calculate_arbolate_sum(x)
data.frame with ID, toID, and length columns.
numeric with arbolate sum.
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
source(system.file("extdata", "walker_data.R", package = "nhdplusTools"))
catchment_length <- select(walker_flowline, COMID, AreaSqKM) %>%
right_join(prepare_nhdplus(walker_flowline, 0, 0,
purge_non_dendritic = FALSE, warn = FALSE), by = "COMID") %>%
select(ID = COMID, toID = toCOMID, length = LENGTHKM)
arb_sum <- calculate_arbolate_sum(catchment_length)
catchment_length$arb_sum <- arb_sum
catchment_length$nhd_arb_sum <- walker_flowline$ArbolateSu
mean(abs(catchment_length$arb_sum - catchment_length$nhd_arb_sum))
#> [1] 1.73338e-15
max(abs(catchment_length$arb_sum - catchment_length$nhd_arb_sum))
#> [1] 2.842171e-14