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.7482 ymax: 45.46134
#> Geodetic CRS:  NAD83
#> # A tibble: 8 × 139
#>   id           comid fdate               resol…¹ gnis_id gnis_…² lengt…³ reach…⁴
#> * <chr>        <int> <dttm>              <chr>   <chr>   <chr>     <dbl> <chr>  
#> 1 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   0.176 100800…
#> 2 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   1.26  100800…
#> 3 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   2.79  100800…
#> 4 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   1.42  100800…
#> 5 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   1.43  100800…
#> 6 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   1.44  100800…
#> 7 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   1.40  100800…
#> 8 nhdflowlin… 1.28e7 2009-06-15 23:00:00 Medium  779903  Bighor…   0.207 100800…
#> # … with 131 more variables: 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>, tomeas <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)