terminal_reaches function

Return terminal reaches from collection intersecting lake

Return terminal reaches from collection intersecting lake

In the case of a network query, a terminal reach is a stream flowline that has no downstream reaches in-network. In the case of a point query, a terminal reach is a flowline that exits the intersecting surface waterbody.

terminal_reaches( lon = NA, lat = NA, buffer_dist = 0.01, network = NA, lakepoly = NA, lakewise = FALSE, lakesize_threshold = 4, approve_all_dl = FALSE, temporary = TRUE, ... )

Arguments

  • lon: numeric decimal degree longitude. optional. See Details section.
  • lat: numeric decimal degree latitude. optional. See Details section.
  • buffer_dist: numeric buffer around lat-lon point in dec. deg.
  • network: sf lines collection. optional. See Details section.
  • lakepoly: sf polygon. optional. See Details section.
  • lakewise: logical. If TRUE, return the terminal reaches of all lakes in the stream network rather than a single terminal reach of the focal lake.
  • lakesize_threshold: numeric above which to count as a lake (ha).
  • approve_all_dl: logical blanket approval to download all missing data. Defaults to TRUE if session is non-interactive.
  • temporary: logical set FALSE to save data to a persistent rappdirs location
  • ...: parameters passed on to sf::st_read

Returns

An sf data frame with LINESTRING geometries

Details

There are multiple ways to execute terminal_reaches:

  • Only providing lon + lat arguments - this will query the corresponding lake polygon layer and find the terminal reach of the lake intersecting a buffer around the specified point.
  • Only providing a lake polygon - this is essentially the same as above except there is no preliminary lake polygon query.
  • Only providing a network of stream lines - this provides the most downstream reach irrespective of lakes.

Examples

## Not run: library(sf) library(mapview) coords <- data.frame(lat = 46.32711, lon = -89.58893) t_reach <- terminal_reaches(coords$lon, coords$lat) coords <- data.frame(lat = 20.79722, lon = -156.47833) # use a non-geographic (projected) buffer size t_reach <- terminal_reaches(coords$lon, coords$lat, buffer_dist = units::as_units(5, "km")) coords <- data.frame(lat = 42.96628, lon = -89.25264) t_reach <- terminal_reaches(coords$lon, coords$lat) coords <- data.frame(lat = 41.42217, lon = -73.24189) t_reach <- terminal_reaches(coords$lon, coords$lat) mapview(st_as_sf(coords, coords = c("lon", "lat"), crs = 4326)) + mapview(t_reach$geometry, color = "red") coords <- data.frame(lat = 41.859080, lon = -71.575422) network <- nhd_plus_query(lon = coords$lon, lat = coords$lat, dsn = "NHDFlowline", buffer_dist = 0.05)$sp$NHDFlowline t_reach <- terminal_reaches(network = network) t_reach_lake <- terminal_reaches(network = network, lakewise = TRUE, lakesize_threshold = 1) mapview(network) + mapview(t_reach_lake, color = "green") + mapview(t_reach, color = "red") ## End(Not run)

Other functions in nhdR

Related functions from the same R package

  • Maintainer: Jemma Stachelek
  • License: GPL
  • Last published: 2023-08-12