diff --git a/R/03_01_presence_preparation.R b/R/03_01_presence_preparation.R index 9fb6ee3d20599f952237d2bfb0ec628c5c5627a6..8d3fce31360d1f0a4e1fc663c8eee01514779c54 100644 --- a/R/03_01_presence_preparation.R +++ b/R/03_01_presence_preparation.R @@ -73,7 +73,11 @@ raster_data = terra::project(raster_data, proj_string) occs_final = st_transform(occs_final, proj_string) env_data = extract(raster_data, vect(occs_final), ID = F) -# Save occurrences +# Merge data + final processing occs_final = bind_cols(occs_final, env_data) %>% - drop_na() + drop_na() %>% # Remove records with NA env vars + group_by(species) %>% + distinct() # Remove duplicate records + +# Save occurrences 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 951dded4ed19ee26aecd5846fb9749595b9994df..23905122713428d32430c4ed593c58f6be3c92e2 100644 --- a/R/03_02_absence_preparation.R +++ b/R/03_02_absence_preparation.R @@ -85,8 +85,7 @@ model_data = furrr::future_walk( # Define spatial KDE ref = st_bbox(sampling_region)[c(1,3,2,4)] - min_extent = min(ref[2]-ref[1], ref[4]-ref[3]) - spatial_kde = spatialEco::sf.kde(occs_spec, bw = min_extent/2, res = 10000, ref = ref, standardize = T, scale.factor = 1) %>% + spatial_kde = spatialEco::sf.kde(occs_spec, res = 10000, ref = ref, standardize = T, scale.factor = 1) %>% crop(sampling_region, mask = T, touches = F) # Define reverse niche @@ -110,7 +109,7 @@ model_data = furrr::future_walk( 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) @@ -136,17 +135,19 @@ model_data = furrr::future_walk( dplyr::mutate(present = 1) %>% bind_rows(abs_spec) - # ggplot() + - # ggtitle(species) + - # geom_sf(data = st_crop(sa_polygon, ref), fill = "#756445") + - # tidyterra::geom_spatraster(data = abs_prob) + - # scale_fill_gradient(low="darkblue", high="green", na.value=NA, name = "Absence sampling probability") + - # geom_sf(data = range_spec, alpha = 0, color = "black") + - # geom_sf(data = pa_spec, aes(color = as.factor(present)), size = 0.7) + - # scale_color_discrete(name = "Presence") + - # theme_minimal() - # - # ggsave(paste0(species, ".pdf"), path = "plots/pa_sampling", device = "pdf", scale = 2) + ggplot() + + ggtitle(species) + + geom_sf(data = st_crop(sa_polygon, ref), fill = "#756445") + + tidyterra::geom_spatraster(data = abs_prob) + + scale_fill_gradient(low="darkblue", high="green", na.value=NA, name = "Absence sampling probability") + + geom_sf(data = range_spec, alpha = 0, color = "black") + + geom_sf(data = pa_spec, aes(color = as.factor(present)), size = 0.7) + + scale_color_discrete(name = "Presence") + + theme_minimal() + + try({ + ggsave(paste0(species, ".pdf"), path = "plots/pa_sampling", device = "pdf", scale = 2) + }) # Define cross-validation folds folds = tryCatch({