# combineGeoms: Combine geometries In terra: Spatial Data Analysis

 combineGeoms R Documentation

## Combine geometries

### Description

Combine the geometries of one SpatVector with those of another. Geometries can be combined based on overlap, shared boundaries and distance (in that order of operation).

The typical use-case of this method is when you are editing geometries and you have a number of small polygons in one SpatVector that should be part of the geometries of the another SpatVector; perhaps because they were small holes inbetween the borders of two SpatVectors.

To append SpatVectors use 'rbind' and see methods like `intersect` and `union` for "normal" polygons combinations.

### Usage

``````## S4 method for signature 'SpatVector,SpatVector'
combineGeoms(x, y, overlap=TRUE, boundary=TRUE, distance=TRUE,
append=TRUE, minover=0.1, maxdist=Inf, dissolve=TRUE, erase=TRUE)
``````

### Arguments

 `x` SpatVector of polygons `y` SpatVector of polygons geometries that are to be combined with `x` `overlap` logical. If `TRUE`, a geometry is combined with the geometry it has most overlap with, if the overlap is above `minover` `boundary` logical. If `TRUE`, a geometry is combined with the geometry it has most shared border with `distance` logical. If `TRUE`, a geometry is combined with the geometry it is nearest to `append` logical. Should remaining geometries be appended to the output? Not relevant if `distance=TRUE` `minover` numeric. The fraction of the geometry in `y` that overlaps with a geometry in `x`. Below this threshold, geometries are not considered overlapping `maxdist` numeric. Geometries further away from each other than this distance (in meters) will not be combined `dissolve` logical. Should internal boundaries be dissolved? `erase` logical. If `TRUE` no new overlapping areas are created

### Value

SpatVector

`union`, `erase`, `intersect`

`sharedPaths`, `erase`, `intersect`

### Examples

``````x1 <- vect("POLYGON ((0 0, 8 0, 8 9, 0 9, 0 0))")
x2 <- vect("POLYGON ((10 4, 12 4, 12 7, 11 7, 11 6, 10 6, 10 4))")

y1 <- vect("POLYGON ((5 6, 15 6, 15 15, 5 15, 5 6))")
y2 <- vect("POLYGON ((8 2, 9 2, 9 3, 8 3, 8 2))")
y3 <- vect("POLYGON ((2 6, 3 6, 3 8, 2 8, 2 6))")
y4 <- vect("POLYGON ((2 12, 3 12, 3 13, 2 13, 2 12))")

x <- rbind(x1, x2)
values(x) <- data.frame(xid=1:2)
crs(x) <- "+proj=utm +zone=1"

y <- rbind(y1, y2, y3, y4)
values(y) <- data.frame(yid=letters[1:4])
crs(y) <- "+proj=utm +zone=1"

plot(rbind(x, y), border=c(rep("red",2), rep("blue", 4)), lwd=2)
text(x, "xid")
text(y, "yid")

v <- combineGeoms(x, y)
plot(v, col=c("red", "blue"))

v <- combineGeoms(x, y, boundary=FALSE, maxdist=1, minover=.05)
plot(v, col=rainbow(4))
``````

terra documentation built on Oct. 13, 2023, 5:08 p.m.