## ---- vec1-------------------------------------------------------------------- library(terra) f <- system.file("ex/lux.shp", package="terra") p <- vect(f) p ## ----------------------------------------------------------------------------- plot(p, "NAME_2") ## ----------------------------------------------------------------------------- d <- as.data.frame(p) head(d) ## ----------------------------------------------------------------------------- g <- geom(p) head(g) ## ----------------------------------------------------------------------------- g <- geom(p, wkt=TRUE) substr(g, 1, 50) ## ----------------------------------------------------------------------------- p$NAME_2 ## ----------------------------------------------------------------------------- p[, "NAME_2"] ## ----------------------------------------------------------------------------- set.seed(0) p$lets <- sample(letters, nrow(p)) p ## ----------------------------------------------------------------------------- perim(p) ## ----------------------------------------------------------------------------- p$lets <- sample(LETTERS, nrow(p)) head(p) ## ----------------------------------------------------------------------------- p$lets <- NULL ## ----------------------------------------------------------------------------- dfr <- data.frame(District=p$NAME_1, Canton=p$NAME_2, Value=round(runif(length(p), 100, 1000))) dfr <- dfr[order(dfr$Canton), ] pm <- merge(p, dfr, by.x=c('NAME_1', 'NAME_2'), by.y=c('District', 'Canton')) pm head(pm) ## ----recs--------------------------------------------------------------------- i <- which(p$NAME_1 == 'Grevenmacher') g <- p[i,] g ## ---- zzz--------------------------------------------------------------------- z <- rast(p) dim(z) <- c(2,2) values(z) <- 1:4 names(z) <- 'Zone' # coerce SpatRaster to SpatVector polygons z <- as.polygons(z) z z2 <- z[2,] plot(p) plot(z, add=TRUE, border='blue', lwd=5) plot(z2, add=TRUE, border='red', lwd=2, col='red') ## ----------------------------------------------------------------------------- b <- rbind(p, z) # with older versions # b <- c(p, z) head(b) tail(b) ## ---- agg--------------------------------------------------------------------- pa <- aggregate(p, by='NAME_1') za <- aggregate(z) plot(za, col='light gray', border='light gray', lwd=5) plot(pa, add=TRUE, col=rainbow(3), lwd=3, border='white') ## ---- aggnodis---------------------------------------------------------------- zag <- aggregate(z, dissolve=FALSE) zag plot(zag, col="light gray") ## ----diis--------------------------------------------------------------------- zd <- disagg(zag) zd ## ----raser-------------------------------------------------------------------- e <- erase(p, z2) plot(e) ## ---- int--------------------------------------------------------------------- i <- intersect(p, z2) plot(i) ## ---- intext------------------------------------------------------------------ e <- ext(6, 6.4, 49.7, 50) pe <- crop(p, e) plot(p) plot(e, add=TRUE, lwd=3, col="red") plot(pe, col='light blue', add=TRUE) plot(e, add=TRUE, lwd=3, border="blue") ## ----------------------------------------------------------------------------- u <- union(p, z) u ## ----unionplot---------------------------------------------------------------- set.seed(5) plot(u, col=sample(rainbow(length(u)))) ## ---- cov--------------------------------------------------------------------- cov <- cover(p, z[c(1,4),]) cov plot(cov) ## ---- dif--------------------------------------------------------------------- dif <- symdif(z,p) plot(dif, col=rainbow(length(dif))) dif ## ---- pts--------------------------------------------------------------------- pts <- matrix(c(6, 6.1, 5.9, 5.7, 6.4, 50, 49.9, 49.8, 49.7, 49.5), ncol=2) spts <- vect(pts, crs=crs(p)) plot(z, col='light blue', lwd=2) points(spts, col='light gray', pch=20, cex=6) text(spts, 1:nrow(pts), col='red', font=2, cex=1.5) lines(p, col='blue', lwd=2) ## ----------------------------------------------------------------------------- extract(spts, p) extract(spts, z)