From 7f6904085f94726a0ede29bdb0c775f30401b1f1 Mon Sep 17 00:00:00 2001
From: Francesco Sabatini <francesco.sabatini@idiv.de>
Date: Mon, 30 Nov 2020 16:21:46 +0100
Subject: [PATCH] A98 - optimized for multipolygons

---
 code/A98_PredictorsExtract.R | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/code/A98_PredictorsExtract.R b/code/A98_PredictorsExtract.R
index 6b3e2f3..a1153a1 100644
--- a/code/A98_PredictorsExtract.R
+++ b/code/A98_PredictorsExtract.R
@@ -60,9 +60,13 @@ PredExtr <- function(x.shp, myfunction=NA, output=NA,
     toassign <- header.shp[i.toassign,]
     print(paste(length(toassign), "plots not matched directly - seek for NN"))
   if(length(toassign)>0){
-    ## explode multipolygon
-    mypredictor.expl <- explode(mypredictor) %>% 
-      as_Spatial()
+    # Crack if multipolygon
+    if(any( (st_geometry_type(mypredictor %>% st_as_sf)) == "MULTIPOLYGON")) {
+      ## explode multipolygon
+      mypredictor.expl <- explode(mypredictor) %>% 
+        as_Spatial()
+      } else {
+        mypredictor.expl <- mypredictor}
     
     nearest <- foreach(i=1:length(toassign), .packages=c('raster'), .combine=rbind) %dopar% { 
       print(i)
-- 
GitLab