fix_flowdir | R Documentation |
If flowlines aren't digitized in the expected direction, this will reorder the nodes so they are.
fix_flowdir(comid, network = NULL, fn_list = NULL)
comid |
integer The COMID of the flowline to check |
network |
sf data.frame The entire network to check from. Requires a "toCOMID" field. |
fn_list |
list containing named elements 'flowline', 'network', and 'check_end', where 'flowline' is the flowline to be checked and 'network' the feature up or downstream of the flowline to be checked, and 'check_end' is '"start"' or '"end"' depending if the 'network' input is upstream ('"start"') or downstream ('"end"') of the flowline to be checked. This option allows pre-compilation of pairs of features which may be useful for very large numbers of flow direction checks. |
a geometry for the feature that has been reversed if needed.
source(system.file("extdata/sample_data.R", package = "nhdplusTools")) fline <- sf::read_sf(sample_data, "NHDFlowline_Network") # We add a tocomid with prepare_nhdplus fline <- sf::st_sf(prepare_nhdplus(fline, 0, 0, 0, FALSE), geom = sf::st_zm(sf::st_geometry(fline))) # Look at the end node of the 10th line. (n1 <- get_node(fline[10, ], position = "end")) # Break the geometry by reversing it. sf::st_geometry(fline)[10] <- sf::st_reverse(sf::st_geometry(fline)[10]) # Note that the end node is different now. (n2 <- get_node(fline[10, ], position = "end")) # Pass the broken geometry to fix_flowdir with the network for toCOMID sf::st_geometry(fline)[10] <- fix_flowdir(fline$COMID[10], fline) # Note that the geometry is now in the right order. (n3 <- get_node(fline[10, ], position = "end")) plot(sf::st_geometry(fline)[10]) plot(n1, add = TRUE) plot(n2, add = TRUE, col = "blue") plot(n3, add = TRUE, cex = 2, col = "red")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.