## ----setup, include = FALSE--------------------------------------------------- library(hydrogeofetch) local <- (Sys.getenv("BUILD_VIGNETTES") == "TRUE") if(local) { cache_path <- file.path(hydrogeofetch_data_dir(), "nhdpt_v_cache") } else { cache_path <- tempdir() } knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width=6, fig.height=4, eval=local, cache=local, cache.path=(cache_path) ) oldoption <- options(scipen = 9999) ## ----tldr--------------------------------------------------------------------- # # Uncomment to install! # # install.packages("hydrogeofetch") # # library(hydrogeofetch) # library(sf) # # start_point <- st_sfc(st_point(c(-89.362239, 43.090266)), crs = 4269) # start_comid <- discover_nhdplus_id(start_point) # # flowline <- navigate_nldi(list(featureSource = "comid", # featureID = start_comid), # mode = "upstreamTributaries", # distance_km = 1000) # # subset_file <- tempfile(fileext = ".gpkg") # subset <- subset_nhdplus(comids = as.integer(flowline$UT$nhdplus_comid), # output_file = subset_file, # nhdplus_data = "download", # flowline_only = FALSE, # return_data = TRUE, overwrite = TRUE) # # flowline <- subset$NHDFlowline_Network # catchment <- subset$CatchmentSP # waterbody <- subset$NHDWaterbody # # ## Or using a file: # # flowline <- sf::read_sf(subset_file, "NHDFlowline_Network") # catchment <- sf::read_sf(subset_file, "CatchmentSP") # waterbody <- sf::read_sf(subset_file, "NHDWaterbody") # # plot(sf::st_geometry(flowline), col = "blue") # plot(start_point, cex = 1.5, lwd = 2, col = "red", add = TRUE) # plot(sf::st_geometry(catchment), add = TRUE) # plot(sf::st_geometry(waterbody), col = rgb(0, 0, 1, alpha = 0.5), add = TRUE) ## ----tldr2-------------------------------------------------------------------- # # ?plot_nhdplus for more # plot_data <- plot_nhdplus( # outlets = list(featureSource = "nwissite", featureID = "USGS-05428500"), # gpkg = subset_file, overwrite = TRUE) # ## ----work_dir, echo=TRUE------------------------------------------------------ # work_dir <- file.path(hydrogeofetch_data_dir(), "nhdpt_v_cache") # # dir.create(work_dir, showWarnings = FALSE, recursive = TRUE) ## ----nhdplus_path_setup, echo=FALSE, include=FALSE---------------------------- # source(system.file("extdata/sample_data.R", package = "hydrogeofetch")) # # file.copy(sample_data, # file.path(work_dir, "natseamless.gpkg")) ## ----nhdplus_path, echo=TRUE-------------------------------------------------- # nhdplus_path(file.path(work_dir, "natseamless.gpkg")) # # basename(nhdplus_path()) ## ----get_vaa------------------------------------------------------------------ # vaa <- get_vaa() # names(vaa) # nrow(vaa) ## ----nhdplushr_secret, echo=FALSE, include=FALSE------------------------------ # source(system.file("extdata/nhdplushr_data.R", package = "hydrogeofetch")) ## ----nhdplus_hr--------------------------------------------------------------- # download_nhdplushr(nhd_dir = "download_dir", # hu_list = c("0101"), # can mix hu02 and hu04 codes. # download_files = FALSE) # TRUE will download files. # # out_gpkg <- file.path(work_dir, "nhd_hr.gpkg") # hr_data <- get_nhdplushr(work_dir, # out_gpkg = out_gpkg) # (layers <- st_layers(out_gpkg)) # names(hr_data) # unlink(out_gpkg) # # hr_data <- get_nhdplushr(work_dir, # out_gpkg = out_gpkg, # layers = NULL) # (layers <- st_layers(out_gpkg)) # names(hr_data) ## ----point-------------------------------------------------------------------- # lon <- -89.36 # lat <- 43.09 # # start_point <- sf::st_sfc(sf::st_point(c(lon, lat)), # crs = 4269) # # plot(sf::st_geometry(flowline)) # plot(start_point, cex = 1.5, lwd = 2, col = "red", add = TRUE) ## ----discover_nhdplus_id------------------------------------------------------ # start_comid <- discover_nhdplus_id(start_point, raindrop = TRUE) # start_comid # # plot(sf::st_geometry(start_comid)) # plot(sf::st_geometry(flowline), add = TRUE, col = "blue", lwd = 2) # plot(start_point, cex = 1.5, lwd = 2, col = "red", add = TRUE) ## ----discover_nldi------------------------------------------------------------ # dataRetrieval::get_nldi_sources()$source # # nldi_feature <- list(featureSource = "comid", # featureID = as.integer(start_comid$comid)[1]) # # get_nldi_feature(nldi_feature) ## ----navigate_nldi------------------------------------------------------------ # flowline_nldi <- navigate_nldi(nldi_feature, # mode = "upstreamTributaries", # distance_km = 1000) # # plot(sf::st_geometry(flowline), lwd = 3, col = "black") # plot(sf::st_geometry(flowline_nldi$origin), lwd = 3, col = "red", add = TRUE) # plot(sf::st_geometry(flowline_nldi$UT), lwd = 1, col = "red", add = TRUE) ## ----subset_nhdplus_download-------------------------------------------------- # output_file_download <- file.path(work_dir, "subset_download.gpkg") # # output_file_download <-subset_nhdplus(comids = as.integer(flowline_nldi$UT$nhdplus_comid), # output_file = output_file_download, # nhdplus_data = "download", return_data = FALSE, # overwrite = TRUE) # # sf::st_layers(output_file_download) # # flowline_download <- sf::read_sf(file.path(work_dir, "subset_download.gpkg"), # "NHDFlowline_Network") # # plot(sf::st_geometry(dplyr::filter(flowline_download, # streamorde > 2)), # lwd = 7, col = "darkgrey") # plot(sf::st_geometry(flowline_nldi$UT), # lwd = 3, col = "red", add = TRUE) ## ----nldi_nwissite------------------------------------------------------------ # nldi_feature <- list(featureSource = "nwissite", # featureID = "USGS-05428500") # # flowline_nldi <- navigate_nldi(nldi_feature, # mode = "upstreamTributaries", # distance_km = 1000) # # output_file_nwis <- file.path(work_dir, "subset_download_nwis.gpkg") # # output_file_nwis <-subset_nhdplus(comids = as.integer(flowline_nldi$UT$nhdplus_comid), # output_file = output_file_nwis, # nhdplus_data = "download", # return_data = FALSE, overwrite = TRUE) # # sf::st_layers(output_file_download) # # flowline_nwis <- sf::read_sf(output_file_nwis, # "NHDFlowline_Network") # # upstream_nwis <- navigate_nldi(nldi_feature, # mode = "upstreamTributaries", # data_source = "nwissite", # distance_km = 1000) # # plot(sf::st_geometry(flowline_nwis), # lwd = 3, col = "blue") # plot(sf::st_geometry(upstream_nwis$UT_nwissite), # cex = 1, lwd = 2, col = "red", add = TRUE) ## ----get_UT------------------------------------------------------------------- # UT_comids <- hydroloom::navigate_hydro_network(flowline, start_comid$comid[1], "UT") # UT_comids ## ----plot_fline_subset-------------------------------------------------------- # plot(sf::st_geometry(flowline)) # plot(start_point, cex = 1.5, lwd = 2, col = "red", add = TRUE) # plot(sf::st_geometry(dplyr::filter(flowline, comid %in% UT_comids)), # add=TRUE, col = "red", lwd = 2) ## ----subset_nhdplus----------------------------------------------------------- # output_file <- file.path(work_dir, "subset.gpkg") # # output_file <-subset_nhdplus(comids = UT_comids, # output_file = output_file, # nhdplus_data = nhdplus_path(), # return_data = FALSE, overwrite = TRUE) # # sf::st_layers(output_file) ## ----plot_result-------------------------------------------------------------- # catchment <- sf::read_sf(output_file, "CatchmentSP") # waterbody <- sf::read_sf(output_file, "NHDWaterbody") # # plot(sf::st_geometry(flowline)) # plot(start_point, cex = 1.5, lwd = 2, col = "red", add = TRUE) # plot(sf::st_geometry(dplyr::filter(flowline, comid %in% UT_comids)), # add=TRUE, col = "red", lwd = 2) # plot(sf::st_geometry(catchment), add = TRUE) # plot(sf::st_geometry(waterbody), col = rgb(0, 0, 1, alpha = 0.5), add = TRUE) ## ----indexing----------------------------------------------------------------- # hydroloom::index_points_to_lines(flowline, start_point) ## ----index_list--------------------------------------------------------------- # gage <- sf::read_sf(output_file, "Gage") # # hydroloom::index_points_to_lines(flowline, sf::st_geometry(gage), precision = 10) ## ----teardown, include=FALSE-------------------------------------------------- # options(oldoption) # # if(Sys.getenv("BUILD_VIGNETTES") != "TRUE") { # unlink(work_dir, recursive = TRUE) # }