Nothing
source(list.files(pattern = "helper.R", recursive = TRUE, full.names = TRUE))
test_that("subset errors", {
temp_dir <- tempdir()
nhdplus_path(file.path(temp_dir, "borked"))
expect_error(subset_nhdplus(1234567,
output_file = tempfile(fileext = ".gpkg")),
"couldn't find nhdplus data")
expect_error(subset_nhdplus(comids = "dud",
output_file = "test",
"output_file must end in '.gpkg'"))
expect_error(subset_nhdplus(output_file = "test",
"must provide comids or bounding box"))
nhdplus_path("../NHDPlusV21_National_Seamless.gdb")
expect_error(subset_nhdplus(nhdplus_data = "download"), "must provide comids or bounding box")
expect_error(subset_nhdplus(comids = integer(0), nhdplus_data = "download"), "comids must be NULL or non-empty")
})
test_that("subset runs as expected", {
temp_dir <- tempdir()
dir.create(temp_dir, recursive = TRUE, showWarnings = FALSE)
unlink(file.path(temp_dir, "*"))
source(system.file("extdata/sample_data.R", package = "nhdplusTools"))
fl <- sf::read_sf(sample_data, "NHDFlowline_Network")
fl <- sf::st_zm(fl)
fl$geom[2] <- sf::st_cast(fl$geom[2], "LINESTRING")
fl <- nhdplusTools:::check_valid(fl)
expect_s3_class(sf::st_geometry(fl), "sfc_LINESTRING")
expect_null(nhdplusTools:::check_valid(NULL))
expect_equal(nhdplusTools:::get_catchment_layer_name(TRUE, sample_data), "CatchmentSP")
expect_equal(nhdplusTools:::get_catchment_layer_name(TRUE, "download"), "CatchmentSP")
expect_equal(nhdplusTools:::get_catchment_layer_name(FALSE, "download"), "CatchmentSP")
nc <- sf::read_sf(system.file("shape/nc.shp", package="sf"))
tempf <- file.path(temp_dir, "temp.geojson")
sf::write_sf(nc, tempf, "Catchment")
expect_equal(nhdplusTools:::get_catchment_layer_name(FALSE, tempf), "Catchment")
nhdplus_path(sample_data)
if (!dir.exists(temp_dir)) dir.create(temp_dir)
fline <- sf::read_sf(nhdplus_path(), "NHDFlowline_Network")
all_comids <- fline$COMID
comids <- get_UM(fline, 13293392)
out_file <- tempfile(fileext = ".gpkg")
# No output file
fi <- subset_nhdplus(comids = comids,
output_file = NULL,
nhdplus_data = sample_data,
status = FALSE)
expect_equal(names(fi), c("NHDFlowline_Network", "CatchmentSP", "NHDArea",
"NHDWaterbody", "NHDFlowline_NonNetwork", "Gage", "Sink"))
expect_equal(nrow(fi$CatchmentSP), 4)
expect_equal(nrow(fi$NHDWaterbody), 1)
# flowline only
fi <- subset_nhdplus(comids = comids,
output_file = NULL,
nhdplus_data = sample_data,
status = FALSE,
flowline_only = TRUE)
expect_equal(names(fi), "NHDFlowline_Network")
# write to output file
fi <- subset_nhdplus(comids = comids,
output_file = out_file,
nhdplus_data = sample_data,
return_data = FALSE,
status = FALSE)
expect_equal(fi, out_file)
# don't overwrite
expect_error(
subset_nhdplus(comids = comids,
output_file = out_file,
nhdplus_data = sample_data,
overwrite = FALSE,
status = FALSE),
"output_file exists and overwrite is false.")
# check that status works
messages <- capture_messages(
fi <- subset_nhdplus(comids = comids,
output_file = out_file,
overwrite = TRUE,
status = TRUE))
expect_equal(length(messages), 17)
check_layers(out_file)
unlink(file.path(temp_dir, "*"))
# Make sure passing data directly works
fi <- subset_nhdplus(comids = comids,
output_file = out_file,
nhdplus_data = sample_data,
overwrite = FALSE,
status = FALSE)
check_layers(out_file)
unlink(file.path(temp_dir, "*"))
nhdplus_path("../NHDPlusV21_National_Seamless.gdb")
})
test_that("subset download", {
skip_on_cran()
temp_dir <- tempdir()
dir.create(temp_dir, recursive = TRUE, showWarnings = FALSE)
out_file <- tempfile(fileext = ".gpkg")
source(system.file("extdata/sample_data.R", package = "nhdplusTools"))
fl <- sf::read_sf(sample_data, "NHDFlowline_Network")
comids <- get_UM(fl, 13293392)
all_comids <- fl$COMID
# download option
expect_true("No nhdarea features found" %in%
capture_warnings(fi <- subset_nhdplus(comids = comids,
output_file = out_file,
nhdplus_data = "download",
overwrite = FALSE,
status = FALSE,
flowline_only = FALSE)))
check_layers(out_file)
unlink(file.path(temp_dir, "*"))
fi <- subset_nhdplus(comids = comids,
output_file = out_file,
nhdplus_data = "download",
overwrite = FALSE,
status = FALSE)
expect_equal(length(names(fi)), 1)
unlink(file.path(temp_dir, "*"))
bs <- get("bb_break_size", nhdplusTools:::nhdplusTools_env)
assign("bb_break_size", value = 0.1, nhdplusTools:::nhdplusTools_env)
fi <- subset_nhdplus(comids = all_comids,
output_file = out_file,
nhdplus_data = "download",
overwrite = FALSE,
status = FALSE)
expect_equal(nrow(fi$NHDFlowline_Network), length(all_comids))
assign("bb_break_size", value = bs, nhdplusTools:::nhdplusTools_env)
})
test_that("subset works with HR", {
work_dir <- tempdir()
skip_on_cran()
get_test_file(work_dir)
out_gpkg <- file.path(work_dir, "temp.gpkg")
hr <- get_nhdplushr(work_dir, out_gpkg = out_gpkg,
layers = c("NHDFlowline", "NHDPlusCatchment", "NHDWaterbody",
"NHDArea", "NHDPlusSink"))
expect_equal(nhdplusTools:::get_catchment_layer_name(TRUE, out_gpkg), "NHDPlusCatchment")
expect_equal(nhdplusTools:::get_catchment_layer_name(FALSE, out_gpkg), "NHDPlusCatchment")
flowlines <- sf::read_sf(out_gpkg, "NHDFlowline")
up_ids <- get_UT(flowlines, 15000500028335)
suppressWarnings(sub <- subset_nhdplus(up_ids,
file.path(work_dir,
"sub.gpkg"),
out_gpkg,
return_data = FALSE))
layers <- sf::st_layers(sub)
expect_equal(length(layers$name), 4)
expect_equal(layers$features[which(layers$name == "NHDFlowline")], 1427)
})
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.