Skip to content
Snippets Groups Projects
Commit 4cc570bd authored by Blodgett, David L.'s avatar Blodgett, David L.
Browse files

add rpu output to prepare_vpu_base_layers for #153

parent d6e55009
No related branches found
No related tags found
1 merge request!183Refactor - progress
......@@ -394,8 +394,9 @@ finalize_gages <- function(SWIM, NHDPlusV2_gages, gfv11_gages, gages_ii_ref,
#' @param nav_gpkg character path to geopackage where vpu base layers will be written
#' @param vpu vpu that will be written into output list
#' @param full_cat_table table of all catchments for each vpu
#' @param rpu_vpu data.frame ontaining all rpu-vpu pairs
#' @return a list with the vpu and three tables for flowlines, waterbodies, and catchments
prepare_vpu_base_layers <- function(ref_gpkg, nav_gpkg, vpu, full_cat_table) {
prepare_vpu_base_layers <- function(ref_gpkg, nav_gpkg, vpu, full_cat_table, rpu_vpu) {
fline <- read_sf(ref_gpkg, "flowlines")
catchment <- read_sf(ref_gpkg, "catchments")
......@@ -439,5 +440,51 @@ prepare_vpu_base_layers <- function(ref_gpkg, nav_gpkg, vpu, full_cat_table) {
write_sf(cat_network, nav_gpkg, nhd_network)
write_sf(waterbodies, nav_gpkg, nhd_waterbody)
return(list(vpu = vpu, flowline = nhd, catchment = cat_network, waterbodies = waterbodies))
rpus <- rpu_vpu[rpu_vpu$vpuid == vpu,]$rpuid
cats_rpu <- full_cat_table %>%
filter(RPUID %in% rpus)
cats <- catchment %>%
rename(FEATUREID = featureid,
AREASQKM = areasqkm) %>%
mutate(VPUID = vpu) %>%
left_join(select(cats_rpu, FEATUREID, RPUID), by = c("FEATUREID")) %>%
filter(FEATUREID %in%
unique(c(nhd$COMID,
full_cat_table$FEATUREID[full_cat_table$RPUID %in% rpus]))) %>%
mutate(hy_cats = ifelse(FEATUREID %in% nhd$COMID, 1, 0),
full_cats = ifelse(FEATUREID %in% cats_rpu$FEATUREID, 1, 0)) %>%
filter(full_cats == 1 | hy_cats == 1) %>%
st_sf()
write_sf(cats, nav_gpkg, nhd_catchment)
rpu_list <- setNames(rep(list(list()), length(rpus)), rpus)
for(rpu_code in rpus) {
out_refac_gpkg <- file.path("cache", paste0(rpu_code, "_refactor.gpkg"))
nhd_sub <- subset_rpu(nhd, rpu_code, run_make_standalone = TRUE) %>%
st_sf()
write_sf(nhd_sub, out_refac_gpkg, nhd_flowline)
cats_rpu <- full_cat_table %>%
filter(RPUID == rpu_code)
catchments <- cats %>%
mutate(hy_cats = ifelse(FEATUREID %in% nhd_sub$COMID, 1, 0),
full_cats = ifelse(FEATUREID %in% cats_rpu$FEATUREID, 1, 0)) %>%
filter(full_cats == 1 | hy_cats == 1) %>%
st_sf()
write_sf(catchments, out_refac_gpkg, nhd_catchment)
rpu_list[[rpu_code]] <- list(flowline = nhd, catchment = catchments)
}
return(list(vpu = vpu, flowline = nhd, catchment = cats, catchment_network = cat_network, waterbodies = waterbodies, rpus = rpu_list))
}
......@@ -80,6 +80,6 @@ list(
pattern = map(vpu_codes)),
# ~1GB of memory
tar_target(vpu_base, prepare_vpu_base_layers(ref_gpkg, nav_gpkg, vpu_codes, full_cat_table),
tar_target(vpu_base, prepare_vpu_base_layers(ref_gpkg, nav_gpkg, vpu_codes, full_cat_table, rpu_vpu),
pattern = map(ref_gpkg, nav_gpkg, vpu_codes), deployment = "worker")
)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment