From 2f676f2723389feda85ba208cd17d7ff35e75fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=B6nig?= <ye87zine@usr.idiv.de> Date: Thu, 9 Jan 2025 11:08:45 +0100 Subject: [PATCH] some tweaks in presence and absence preparation --- R/03_01_presence_preparation.R | 3 ++- R/03_02_absence_preparation.R | 16 +++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/R/03_01_presence_preparation.R b/R/03_01_presence_preparation.R index 6344de7..9fb6ee3 100644 --- a/R/03_01_presence_preparation.R +++ b/R/03_01_presence_preparation.R @@ -74,5 +74,6 @@ occs_final = st_transform(occs_final, proj_string) env_data = extract(raster_data, vect(occs_final), ID = F) # Save occurrences -occs_final = bind_cols(occs_final, env_data) +occs_final = bind_cols(occs_final, env_data) %>% + drop_na() save(occs_final, file = "data/r_objects/occs_final.RData") diff --git a/R/03_02_absence_preparation.R b/R/03_02_absence_preparation.R index 6104ae6..951dded 100644 --- a/R/03_02_absence_preparation.R +++ b/R/03_02_absence_preparation.R @@ -103,12 +103,15 @@ model_data = furrr::future_walk( abs_prob = spatial_kde * env_kde while(nrow(abs_spec) < nrow(occs_spec)){ sample_points_raw = st_sample(sampling_region, nrow(occs_spec)) - p = extract(abs_prob, vect(sample_points_raw))$z + p = na.omit(extract(abs_prob, vect(sample_points_raw))$z) x = runif(length(p)) sample_points = sample_points_raw[x<p] + if(length(sample_points) == 0){ + next + } + samples_required = nrow(occs_spec) - nrow(abs_spec) - if(length(sample_points) > samples_required){ sample_points = sample(sample_points, samples_required) } @@ -145,11 +148,6 @@ model_data = furrr::future_walk( # # ggsave(paste0(species, ".pdf"), path = "plots/pa_sampling", device = "pdf", scale = 2) - # Split into train and test datasets - train_index = caret::createDataPartition(pa_spec$present, p = 0.7, list = FALSE) - pa_spec$train = 0 - pa_spec$train[train_index] = 1 - # Define cross-validation folds folds = tryCatch({ spatial_folds = suppressMessages( @@ -174,9 +172,9 @@ model_data = furrr::future_walk( save(pa_spec, file = paste0("data/r_objects/pa_sampling/", species, ".RData")) }) -# Combine presence absence data +# Combine presence-absence data files = list.files("data/r_objects/pa_sampling/", full.names = T) model_data = lapply(files, function(f){load(f); return(pa_spec)}) %>% bind_rows() -save(model_data, file = "data/r_objects/model_data.RData") \ No newline at end of file +save(model_data, file = "data/r_objects/pa_sampling/model_data.RData") -- GitLab