modify to use views

This commit is contained in:
2025-07-07 13:39:01 -04:00
parent 2acbc14352
commit 3d85ac0a17
+4 -56
View File
@@ -66,70 +66,18 @@ split_full_lf_id <- function(full_lf_id) {
# returns a list of loss storms we have data on # returns a list of loss storms we have data on
get_all_loss_storms <- function() { get_all_loss_storms <- function() {
query <- econ.storm_base_loss %>% query <- "SELECT * FROM all_loss_storms"
select(
storm_basin, storm_year, storm_name
) %>%
distinct(
storm_basin, storm_year, storm_name
) %>%
left_join(
hurdat.hurdat_storms %>%
mutate(hurdatId = paste0(storm_basin, storm_number, storm_year)),
by = c("storm_basin", "storm_year", "storm_name")) %>%
select(
hurdatId, storm_basin, storm_name, storm_year
)
result <- query %>% collect() result <- dbGetQuery(con, query)
return(result) return(result)
} }
# returns a list of latest normalized losses # returns a list of latest normalized losses
get_latest_aggregate_losses <- function() { get_latest_aggregate_losses <- function() {
latest_loss_year <- econ.normalized_landfalls %>% query <- "SELECT * FROM all_normalized_losses"
select(normalization_year) %>%
arrange(desc(normalization_year)) %>%
head(1) %>%
collect() %>%
pull(normalization_year)
query <- econ.normalized_landfalls %>% result <- dbGetQuery(con, query)
filter(normalization_year == latest_loss_year) %>%
left_join(econ.storm_base_loss %>%
filter(!is.na(base_loss)) %>%
mutate(
ncei_priority = case_when(
str_like(base_loss_source, "%ncei%") ~ 1,
str_like(base_loss_source, "%mwr%") ~ 2,
TRUE ~ 3
)
) %>%
group_by(storm_basin, storm_year, storm_name, lf_type, lf_id) %>%
slice_min(ncei_priority, n = 1, with_ties = F) %>%
ungroup(),
by = c("storm_basin", "storm_year", "storm_name", "lf_type", "lf_id")) %>%
mutate(
mmh_lf = (base_loss * gdp_deflator * rwhu * affected_housing),
mmp_lf = (base_loss * gdp_deflator * rwpc * affected_population)
) %>%
group_by(storm_basin, storm_year, storm_name) %>%
summarize(
mmh = sum(mmh_lf, na.rm = T),
mmp = sum(mmp_lf, na.rm = T),
.groups = "drop"
) %>%
filter(!is.na(mmh) & !is.na(mmp)) %>%
left_join(hurdat.hurdat_storms, by = c("storm_basin", "storm_year", "storm_name")) %>%
mutate(
hurdatId = paste0(storm_basin, storm_number, storm_year)
) %>%
select(
hurdatId, storm_name, storm_year, mmh, mmp
)
result <- query %>% collect()
return(result) return(result)
} }