work_dir <- file.path(tempdir(), "test_hr")
dir.create(work_dir, recursive = TRUE, showWarnings = FALSE)
out_gpkg <- file.path(work_dir, "temp.gpkg")
test_that("we get urls for nhdplushr and base", {
skip_on_cran()
urls <- download_nhdplushr(work_dir, c("01", "0203"), download_files = FALSE)
expect_equal(length(urls), 11)
urls <- download_nhd(work_dir, c("01", "0203"), download_files = FALSE)
expect_equal(length(urls), 11)
})
test_that("get_nhdplushr layers and gpkg", {
skip_on_cran()
get_test_file(work_dir)
out <- get_nhdplushr(work_dir, out_gpkg = out_gpkg)
layers <- sf::st_layers(out_gpkg)
expect_equal(layers$name, c("NHDFlowline", "NHDPlusCatchment"))
expect_equal(layers$features, c(2691, 2603))
expect_equal(layers$features, c(nrow(out[[1]]), nrow(out[[2]])))
expect_equal(layers$name, names(out))
out <- get_nhdplushr(work_dir, out_gpkg = out_gpkg,
layers = NULL, overwrite = TRUE)
layers <- sf::st_layers(out_gpkg)
expect_equal(length(layers$name), 7)
expect_equal(layers$fields[which(layers$name == "NHDFlowline")], 57)
out <- get_nhdplushr(work_dir, layers = NULL)
expect(length(names(out)), 7)
})
test_that("nhdplus hr waterbody", {
skip_on_cran()
get_test_file(work_dir)
out <- get_nhdplushr(work_dir, out_gpkg = out_gpkg)
out <- get_nhdplushr(work_dir, layers = c("NHDFlowline",
"NHDWaterbody"),
out_gpkg = out_gpkg)
wb <- out$NHDWaterbody[out$NHDWaterbody$Permanent_Identifier == 46376571,]
expect_equal(get_wb_outlet(wb$Permanent_Identifier, out$NHDFlowline)$Permanent_Identifier,
"46338320")
})
test_that("get_nhdplushr overwrite gpkg and pattern", {
skip_on_cran()
get_test_file(work_dir)
out <- get_nhdplushr(work_dir, out_gpkg = out_gpkg)
layer <- c("NHDFlowline")
out_sub <- get_nhdplushr(work_dir, out_gpkg = out_gpkg,
layers = layer, overwrite = FALSE)
expect_equal(names(out_sub), layer)
layers <- sf::st_layers(out_gpkg)
expect_equal(length(layers$name), 7)
fl <- sf::read_sf(out_gpkg, layer)
out_sub <- get_nhdplushr(work_dir, out_gpkg = out_gpkg,
layers = layer, min_size_sqkm = 10,
overwrite = TRUE)
layers <- sf::st_layers(out_gpkg)
expect_equal(length(layers$name), 7)
fl2 <- sf::read_sf(out_gpkg, layer)
expect_true(nrow(fl2) < nrow(fl))
devnull <- file.copy(file.path(work_dir, "03_sub.gpkg"),
file.path(work_dir, "04_sub.gpkg"))
fl <- read_sf(file.path(work_dir, "04_sub.gpkg"), "NHDFlowline")
fl$NHDPlusID <- fl$NHDPlusID + max(fl$NHDPlusID)
write_sf(fl, file.path(work_dir, "04_sub.gpkg"), "NHDFlowline")
out_sub <- get_nhdplushr(work_dir, pattern = ".*sub.gpkg$")
expect_equal(nrow(out_sub$NHDFlowline), 2*nrow(fl))
unlink(file.path(work_dir, "04_sub.gpkg"))
})
test_that("get_nhdplushr simp and proj", {
skip_on_cran()
get_test_file(work_dir)
out <- get_nhdplushr(work_dir)
out_sub <- get_nhdplushr(work_dir, proj = 5070)
expect_equal(st_crs(out_sub$NHDFlowline),
st_crs(5070))
expect_equal(st_crs(out_sub$NHDPlusCatchment),
st_crs(5070))
out_sub2 <- get_nhdplushr(work_dir, proj = 5070, simp = 20)
expect_true(length(st_geometry(out_sub$NHDFlowline)[[1]]) >
length(st_geometry(out_sub2$NHDFlowline)[[1]]))
expect_true(nrow(st_geometry(out_sub$NHDPlusCatchment)[[1]][[1]][[1]]) >
nrow(st_geometry(out_sub2$NHDPlusCatchment)[[1]][[1]]))
})
test_that("get_nhdplushr rename and keep_cols", {
skip_on_cran()
get_test_file(work_dir)
out <- get_nhdplushr(work_dir, out_gpkg = out_gpkg)
out_sub <- get_nhdplushr(work_dir,
keep_cols = c("COMID", "FEATUREID", "StreamOrde", "AreaSqKM"),
check_terminals = FALSE)
expect_equal(names(out_sub$NHDFlowline), c("COMID", "StreamOrde", "AreaSqKM", "geom"))
expect_equal(names(out_sub$NHDPlusCatchment), c("FEATUREID", "AreaSqKM", "geom"))
out_sub <- get_nhdplushr(work_dir, rename = FALSE, check_terminals = FALSE)
expect_true("NHDPlusID" %in% names(out_sub$NHDFlowline))
})
test_that("make_standalone", {
skip_on_cran()
get_test_file(work_dir)
fl <- get_nhdplushr(work_dir, check_terminals = FALSE)$NHDFlowline
sa <- make_standalone(fl)
sa_check <- get_nhdplushr(work_dir, check_terminals = TRUE)$NHDFlowline
expect_true(all(sa$LevelPathI == sa_check$LevelPathI))
expect_true(!all(fl$LevelPathI == sa_check$LevelPathI))
sa <- st_drop_geometry(sa)
expect_true(!unique(fl$TerminalPa) %in% sa$TerminalPa)
outlet <- sa$COMID[sa$Hydroseq == min(sa$Hydroseq)]
sa_UT <- get_UT(sa, outlet)
fl_UT <- get_UT(fl, outlet)
expect_equal(sa_UT, fl_UT)
expect_true(all(sa[sa$Hydroseq == min(sa$Hydroseq), ][c("DnLevel", "DnLevelPat", "DnHydroseq")] == 0))
source(system.file("extdata", "sample_flines.R", package = "nhdplusTools"))
sample_flines <- get_tocomid(sample_flines)
sample_flines[sample_flines$tocomid == 0] <- "12345"
sample_flines <- make_standalone(sample_flines)
expect_true(0 %in% sample_flines$toCOMID)
})
unlink(work_dir, recursive = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.