R sf equivalent of Esri Identity



是否有一种方法可以执行等同于ArcGIS的身份工具,保留空间数据x的所有边界,并使用y的属性和边界更新与空间数据y相交的区域。

回答,以防其他人遇到这个问题。我的一个同事帮我找到了绑定两层相交结果的解决方案,焦点层和相交层的差异。

arc.ident <- function(layer_a, layer_b){
int_a_b <- st_intersection(layer_a, layer_b)
rest_of_a <- st_difference(layer_a, st_union(layer_b))
output <- bind_rows(int_a_b, rest_of_a)
return(st_as_sf(output))
}

或作为一个整齐的管道

arc.ident.output <-  st_intersection(layer_a, layer_b) %>% 
bind_rows(st_difference(layer_a, st_union(layer_b)))

最新更新