Skip to content
Snippets Groups Projects
Commit 31c15381 authored by Bock, Andy's avatar Bock, Andy
Browse files

Merge branch 'main' into 'main'

Fix duplication in merge code

Closes #79

See merge request wma/nhgf/gfv2.0!138
parents e844edc8 e4cbb24c
No related branches found
No related tags found
1 merge request!138Fix duplication in merge code
......@@ -48,7 +48,7 @@ atts <- readRDS(file.path(data_paths$nhdplus_dir, "nhdplus_flowline_attributes.r
if(needs_layer(temp_gpkg, nav_poi_layer)) {
nhd <- read_sf(nav_gpkg, nhd_flowline)
try(nhd <- select(nhd, -c(minNet, WB, struct_POI, struct_Net, POI_ID)))
try(nhd <- select(nhd, -c(minNet, WB, struct_POI, struct_Net, POI_ID)), silent = TRUE)
# HUC02 includes some
if(vpu == "02"){
......@@ -237,7 +237,7 @@ if(all(is.na(tmp_POIs$Type_WBOut))) {
# Get NHDArea and HI-Res waterbodies for ResOpsUS locaitons
WBs_VPU_areaHR <- HR_Area_coms(nhd, WBs_VPU, data_paths)
# If the return is not NA
if(!is.na(WBs_VPU_areaHR)){
if(inherits(WBs_VPU_areaHR, "list")){
# Attribute flowlines that intersect NHDARea and/or NHD HR waterbodies with
# waterbody COMIDs
nhd <- nhd %>%
......@@ -264,10 +264,14 @@ if(all(is.na(tmp_POIs$Type_WBOut))) {
select(wb_outlet_events, COMID, WBAREACOMI))
}
WBs_VPU_areaHR$wb <- nhdplusTools::st_compatibalize(
WBs_VPU_areaHR$wb, WBs_VPU)
# Append NHDArea and NHDHR waterbodies to waterbody layer
WBs_VPU <- data.table::rbindlist(list(WBs_VPU, WBs_VPU_areaHR$wb), fill = TRUE) %>%
st_as_sf() %>%
st_make_valid()
st_as_sf()
st_geometry(WBs_VPU) <- st_make_valid(st_geometry(WBs_VPU))
}
# Write out waterbodies
......@@ -288,9 +292,9 @@ if(all(is.na(tmp_POIs$Type_WBOut))) {
}
write_sf(nhd, nav_gpkg, nhd_flowline)
write_sf(tmp_POIs, nav_gpkg, nav_poi_layer)
write_sf(tmp_POIs, temp_gpkg, nav_poi_layer)
} else {
tmp_POIs <- read_sf(nav_gpkg, nav_poi_layer)
tmp_POIs <- read_sf(temp_gpkg, nav_poi_layer)
nhd <- read_sf(nav_gpkg, nhd_flowline)
WBs_VPU <- read_sf(nav_gpkg, WBs_layer)
resops_POIs_df <- read.csv(file.path("data/reservoir_Data", paste0("resops_POIs_",vpu,".csv")))
......@@ -637,6 +641,7 @@ if(needs_layer(temp_gpkg, nsegments_layer)) {
mutate(struct_POI = ifelse(COMID %in% strucFeat$struc_POIs$COMID, 1, 0),
struct_Net = ifelse(COMID %in% strucFeat$structnet$COMID, 1, 0))
write_sf(nhd_Final, nav_gpkg, nhd_flowline)
write_sf(nsegments, temp_gpkg, nsegments_layer)
} else {
# Read in NHDPlusV2 flowline simple features and filter by vector processing unit (VPU)
......
......@@ -81,7 +81,7 @@ final_poi_layer <- "POIs"
# Settings for refactor workflow
split_meters <- 10000
combine_meters <- 1000
min_da_km <- 20
min_da_km <- 3
aggregate_da_thresh_sqkm <- 1
......
......@@ -441,10 +441,13 @@ merge_refactor <- function(rpus, rpu_vpu_out,
}, out = out), names(out[[1]]))
# blow up so we have unique COMIDs to join on.
# need to keep the top most of any splits (the .1 variety)
# this makes sure out toCOMID assignments go to the right new id.
long_form <- st_drop_geometry(out[[reconciled_layer]]) %>%
select(newID, member_COMID) %>%
mutate(member_COMID = strsplit(member_COMID, ",")) %>%
tidyr::unnest(cols = member_COMID) %>%
filter(grepl("\\.1$", member_COMID) | !grepl("\\.", member_COMID)) %>%
mutate(NHDPlusV2_COMID = as.integer(member_COMID)) %>%
select(-member_COMID, update_newtoID = newID)
......
......@@ -10,8 +10,9 @@ source("R/config.R")
source("R/utils.R")
ref <- paste0("cache/reference_", VPU, ".gpkg")
nav <- paste0("cache/nav_", VPU, ".gpkg")
unlink(ref)
unlink(nav)
for(r in rpu_codes$rpuid) {
unlink(paste0("cache/", r, "_refactor.gpkg"))
......
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