Provides a full feature network navigation function that will work with local or web service data. Parameter details provide context.

navigate_network(
  start,
  mode = "UM",
  network = NULL,
  output = "flowlines",
  distance_km = 10,
  trim_start = FALSE,
  trim_stop = FALSE,
  trim_tolerance = 5
)

Arguments

start

list, integer, sf, or sfc if list must be a valid NLDI feature if integer must be a valid comid. If sf, must contain a "comid" field.

mode

character chosen from c(UM, DM, UT, or DD)

network

sf should be compatible with network navigation functions If NULL, network will be derived from requests to the NLDI

output

character flowline or a valid NLDI data source

distance_km

numeric distance to navigate in km

trim_start

logical should start be trimmed or include entire catchment?

trim_stop

logical should stop(s) be trimmed or include entire catchment(s)? # Not supported

trim_tolerance

numeric from 0 to 100 percent of flowline length. If amount to trim is less than this tolerance, no trim will be applied.

Examples


# \donttest{
navigate_network(list(featureSource = "nwissite", featureID = "USGS-06287800"),
                "UM",
                output = "flowlines",
                trim_start = TRUE)
#> All intersections performed in latitude/longitude.
#> Reading NHDFlowline_Network
#> Spherical geometry (s2) switched off
#> Spherical geometry (s2) switched on
#> Writing NHDFlowline_Network
#> Simple feature collection with 8 features and 138 fields
#> Geometry type: LINESTRING
#> Dimension:     XY
#> Bounding box:  xmin: -107.8095 ymin: 45.39128 xmax: -107.7478 ymax: 45.46232
#> Geodetic CRS:  NAD83
#> # A tibble: 8 × 139
#>   id             comid fdate               resolution gnis_id gnis_name lengthkm
#> * <chr>          <int> <dttm>              <chr>      <chr>   <chr>        <dbl>
#> 1 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    0.176
#> 2 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    1.26 
#> 3 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    2.79 
#> 4 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    1.42 
#> 5 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    1.43 
#> 6 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    1.44 
#> 7 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    1.40 
#> 8 nhdflowline_… 1.28e7 2009-06-15 23:00:00 Medium     779903  Bighorn …    0.207
#> # … with 132 more variables: reachcode <chr>, flowdir <chr>, wbareacomi <int>,
#> #   ftype <chr>, fcode <int>, shape_length <dbl>, streamleve <int>,
#> #   streamorde <int>, streamcalc <int>, fromnode <dbl>, tonode <dbl>,
#> #   hydroseq <dbl>, levelpathi <dbl>, pathlength <dbl>, terminalpa <dbl>,
#> #   arbolatesu <dbl>, divergence <int>, startflag <int>, terminalfl <int>,
#> #   dnlevel <int>, uplevelpat <dbl>, uphydroseq <dbl>, dnlevelpat <dbl>,
#> #   dnminorhyd <dbl>, dndraincou <int>, dnhydroseq <dbl>, frommeas <dbl>, …
# }

source(system.file("extdata", "walker_data.R", package = "nhdplusTools"))
hydro_location <- list(comid = 5329339,
                      reachcode = "18050005000078",
                       reach_meas = 30)

hydro_location <- sf::st_sf(
  hydro_location,
  geom = nhdplusTools::get_hydro_location(data.frame(hydro_location),
                                          walker_flowline))

net <- navigate_network(hydro_location,
                       mode = "DM", network = walker_flowline,
                       trim_start = TRUE, distance_km = 20)

plot(sf::st_geometry(walker_flowline))
plot(sf::st_geometry(hydro_location), add = TRUE)
plot(sf::st_geometry(net), add = TRUE, col = "blue", lwd = 2)