是否有一种方法可以执行等同于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)))