knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
The goal of this vignette is to demonstrate how to pull the stream network associated with a waterbody catchment. We will use the
extract_network function to accomplish this task using the built-in
library(nhdR) library(dplyr) library(ggplot2) library(sf)
Let's start by pulling the coordinates associated with Lake Mendota, which will be the largest object (by area) in the waterbody object.
data(mendota) largest_waterbody <- which.max(st_area(mendota$sp$NHDWaterbody)) mendota_lake <- mendota$sp$NHDWaterbody[largest_waterbody, ] mendota_lake <- st_transform(mendota_lake, crs = 4326) mendota_centroid <- st_coordinates(st_centroid(mendota_lake))
Next, we can use the
extract_network function to pull the stream network associated with Lake Mendota. Notice that we have set the
maxsteps parameter to Inf. If the network is anticipated to be very large it can be a good idea to set this to a discrete (lower) number to avoid returning very large lines objects.
mendota_network <- extract_network(lon = mendota_centroid, lat = mendota_centroid, maxsteps = Inf)
Finally, we compare the stream network from a geometric buffer around Lake Mendota against the output of
extract_network to make sure everything is working properly.
ggplot() + geom_sf(data = mendota$sp$NHDFlowLine) + geom_sf(data = mendota_lake, fill = "cyan") + geom_sf(data = mendota_network, color = "blue")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.