From 9ba608461d250cb9f51f5e7eb392fe7ff7269f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Darius=20G=C3=B6rgen?= Date: Tue, 1 Oct 2024 15:44:54 +0200 Subject: [PATCH] address #375 (#376) --- NEWS.md | 2 ++ R/calc_mangroves_area.R | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 4957f161..4d3daab3 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,8 @@ - fixes `portfolio_wide()` throwing an error when single assets with `NULL` values are present +- `calc_mangroves_area()` returned NULL if invalid geometries were encountered + Now it tries to repair geometries and return the area of valid geometries (#375) # mapme.biodiversity 0.9.1 diff --git a/R/calc_mangroves_area.R b/R/calc_mangroves_area.R index a2db6cb6..0dd00053 100644 --- a/R/calc_mangroves_area.R +++ b/R/calc_mangroves_area.R @@ -53,7 +53,10 @@ calc_mangroves_area <- function() { } results <- purrr::map(1:length(gmw), function(j) { - intersected <- suppressWarnings(st_intersection(gmw[[j]], x)) + mangroves <- st_make_valid(gmw[[j]]) + intersected <- suppressWarnings(st_intersection(mangroves, x)) + intersected <- st_make_valid(intersected) + intersected <- intersected[st_is_valid(intersected), ] area <- sum(as.numeric(st_area(intersected)), na.rm = TRUE) / 10000 year <- strsplit(names(gmw[j]), "_|.gpkg")[[1]][3]