lgdf <- cumulus$download_fieldmaps_sf(iso3 = "AFG", layer = list("afg_adm0", "afg_adm1", "afg_adm2"))
df_seas5_adm2 <- seas5$load_seas5_historical_weighted(weight_set = "WT_ADM2")
df_seas5_adm1 <- seas5$load_seas5_historical_weighted(weight_set = "WT_ADM1")
df_seas5_adm1_mam <- seas5$aggregate_forecast(
df_seas5_adm1,
valid_months = c(3, 4, 5),
by = c(
"iso3",
"pcode",
"adm1_name",
"n_upsampled_pixels", # keep in for flexible weighting
"issued_date"
)
) |>
mutate(
pub_mo = month(issued_date, label = T, abbr = T)
)
df_seas5_adm2_mam <- seas5$aggregate_forecast(
df_seas5_adm2,
valid_months = c(3, 4, 5),
by = c(
"iso3",
"pcode",
"adm1_name",
"adm1_pcode",
"adm2_name",
"n_upsampled_pixels",
"issued_date"
)
)
# custom grouped aggregations
df_seas5_mam_no_wakhan <- df_seas5_adm2_mam |>
group_by(valid_month_label,
iso3,
adm1_name,
adm1_pcode,
issued_date,
pub_mo = month(issued_date, label = T, abbr = T),
leadtime
) |>
summarise(
mm = weighted.mean(mm, w = n_upsampled_pixels),
.groups = "drop"
) |>
rename(
pcode = adm1_pcode
)
# 1 - single AOI - Badakshan removed
df_seas_mam_aoi1 <- df_seas5_adm1_mam |>
filter(adm1_name != "Badakhshan") |>
group_by(valid_month_label, iso3, issued_date, pub_mo = month(issued_date, label = T, abbr = T), leadtime) |>
summarise(
mm = weighted.mean(mm, w = n_upsampled_pixels),
.groups = "drop"
)
# 2 AOIs - North Central/North East
df_seas5_region_mam <- df_seas5_adm1_mam |>
mutate(
region = ifelse(adm1_name %in% c("Faryab", "Sar-e-Pul"), "North Central", "North East")
) |>
group_by(valid_month_label, iso3, region, issued_date, pub_mo = month(issued_date, label = T, abbr = T), leadtime) |>
summarise(
mm = weighted.mean(mm, w = n_upsampled_pixels),
.groups = "drop"
)
box::reload(seas5)
threshold_sets <- c("ADM1_AOI4", "ADM1_AOI4_NO_WAKHAN", "ADM1_AOI2", "ADM1_AOI1")
threshold_sets <- set_names(threshold_sets, threshold_sets) # name em
ldf_thresholds <- map(threshold_sets, ~ seas5$load_seas5_threshold_tables(.x))
df_sea5_mam_aoi4_classified <- df_seas5_adm1_mam |>
left_join(
# attach 3 levels of thresholds
filter(ldf_thresholds$ADM1_AOI4, rp %in% c(3, 4, 5)),
relationship = "many-to-many",
by = c("iso3", "pcode", "adm1_name", "pub_mo", "leadtime")
) |>
mutate(
flag = mm < rv
)
df_seas5_mam_aoi4_no_wakhan_classified <- df_seas5_mam_no_wakhan |>
left_join(
ldf_thresholds$ADM1_AOI4_NO_WAKHAN |>
filter(
rp %in% c(3, 4, 5)
) |>
rename(pcode = "adm1_pcode"),
relationship = "many-to-many",
by = c("iso3", "pcode", "adm1_name", "pub_mo", "leadtime")
) |>
mutate(
flag = mm < rv
)
df_seas5_mam_aoi1_classified <- df_seas_mam_aoi1 |>
left_join(
# attach 3 levels of thresholds
filter(ldf_thresholds$ADM1_AOI1, rp %in% c(3, 4, 5)),
relationship = "many-to-many",
by = c("iso3", "pub_mo", "leadtime")
) |>
mutate(
flag = mm < rv
)
df_seas5_region_aoi2_classified <- df_seas5_region_mam |>
left_join(
# attach 3 levels of thresholds
filter(ldf_thresholds$ADM1_AOI2, rp %in% c(3, 4, 5)),
relationship = "many-to-many",
by = c("iso3", "region", "pub_mo", "leadtime")
) |>
mutate(
flag = mm < rv
)