Snap River Meter to River Meters
fwa_snap_rm_to_rms.Rd
Assigns closest river meter to river meters based on blue line keys. If x already includes new_rm column then non-missing values are preserved. The non-missing new_rm values must be ordered (with respect to x$rm) and must be present in rm$rm. If x already includes new_blk then river meters can be assigned to a creek with a different blue line key and/or river meters from multiple creeks can be assigned to the same creek (for example in the case of a previously unmapped side channel and the mainstem).
Value
An updated version of x with integer columns blk, rm, new_blk, new_rm and numeric column distance_to_new_rm.
Details
The closest river meter is snapped to each rm (by blk = new_blk) and missing new_rm values are replaced with the corresponding rm value. The new_rm values are then ordered by adjusting the values so that firstly all previous values are not greater than each provided new_rm value and then all subsequent values are not less than the maximum previous value. Next all runs of two or more identical new_rm values that do not include a provided new_rm are interpolated between the previous and subsequent new_rm values based on the original rm spacing and then snapped to the closest rm value in rm.
To ensure that pairs of streams snap at their mouths set the new_rm
to be 0 where the rm is 0 or set snap_mouths = TRUE
Examples
rm <- fwa_add_rms_to_blk(data.frame(blk = 356308001))
x <- rm[rm$rm %in% c(0, 2000, 5000, 6000, 7000), ]
rm <- rm[rm$rm %in% c(1000, 3000, 4000, 8000, 9000, 10000), ]
fwa_snap_rm_to_rms(x, rm)
#> Simple feature collection with 5 features and 6 fields
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 1290725 ymin: 467231.2 xmax: 1294079 ymax: 469483.5
#> Projected CRS: NAD83 / BC Albers
#> # A tibble: 5 × 7
#> blk new_blk rm new_rm distance_to_new_rm elevation
#> <int> <int> <int> <int> <dbl> <dbl>
#> 1 356308001 356308001 0 1000 874. 9.63
#> 2 356308001 356308001 2000 3000 536. 7.5
#> 3 356308001 356308001 5000 4000 754. 9.78
#> 4 356308001 356308001 6000 8000 905. 9.78
#> 5 356308001 356308001 7000 8000 515. 9.78
#> # ℹ 1 more variable: geometry <POINT [m]>