## ----raster-1a---------------------------------------------------------------- library(terra) # SpatRaster with the default parameters x <- rast() x ## ----raster-1b---------------------------------------------------------------- x <- rast(ncol=36, nrow=18, xmin=-1000, xmax=1000, ymin=-100, ymax=900) ## ----raster-1c---------------------------------------------------------------- res(x) res(x) <- 100 res(x) ## ----raster-1d---------------------------------------------------------------- ncol(x) ncol(x) <- 18 ncol(x) res(x) ## ----raster-1e---------------------------------------------------------------- crs(x) <- "+proj=utm +zone=48 +datum=WGS84" x ## ----raster-1h---------------------------------------------------------------- r <- rast(ncol=10, nrow=10) ncell(r) hasValues(r) ## ----raster-1i---------------------------------------------------------------- values(r) <- 1:ncell(r) ## ----raster-1j, fig.width=9, fig.height=4------------------------------------- set.seed(0) values(r) <- runif(ncell(r)) hasValues(r) sources(r) values(r)[1:10] plot(r, main='Raster with 100 cells') ## ----raster-1x---------------------------------------------------------------- hasValues(r) res(r) dim(r) # extent ext(r) ## ----raster-1y---------------------------------------------------------------- xmax(r) <- 0 hasValues(r) res(r) dim(r) ## ----raster-1z---------------------------------------------------------------- ncol(r) <- 6 hasValues(r) res(r) dim(r) xmax(r) ## ----raster-2a1--------------------------------------------------------------- filename <- system.file("ex/elev.tif", package="terra") basename(filename) ## ----raster-2a2--------------------------------------------------------------- r <- rast(filename) sources(r) hasValues(r) plot(r, main="SpatRaster from file") ## ----raster-2b1--------------------------------------------------------------- r1 <- r2 <- r3 <- rast(nrow=10, ncol=10) # Assign random cell values values(r1) <- runif(ncell(r1)) values(r2) <- runif(ncell(r2)) values(r3) <- runif(ncell(r3)) ## ----raster-2b2--------------------------------------------------------------- s <- c(r1, r2, r3) s nlyr(s) ## ----raster-2b5--------------------------------------------------------------- filename <- system.file("ex/logo.tif", package="terra") basename(filename) b <- rast(filename) b nlyr(b) ## ----raster-2b6--------------------------------------------------------------- r <- b[[2]] ## ----raster-3a1--------------------------------------------------------------- r <- rast(ncol=10, nrow=10) values(r) <- 1:ncell(r) ## ----raster-3a2--------------------------------------------------------------- s <- r + 10 s <- sqrt(s) s <- s * r + 5 values(r) <- runif(ncell(r)) r <- round(r) r <- r == 1 ## ----raster-3b---------------------------------------------------------------- #Not yet implemented s[r] <- -0.5 s[!r] <- 5 s[s == 5] <- 15 ## ----raster-3c---------------------------------------------------------------- r <- rast(ncol=5, nrow=5) values(r) <- 1 s <- c(r, r+1) q <- c(r, r+2, r+4, r+6) x <- r + s + q x ## ----raster-3d---------------------------------------------------------------- a <- mean(r,s,10) b <- sum(r,s) st <- c(r, s, a, b) sst <- sum(st) sst ## ----raster-3e---------------------------------------------------------------- global(st, 'sum') global(sst, 'sum') ## ----raster-5, fig.width=9, fig.height=4-------------------------------------- r <- rast() values(r) <- 1:ncell(r) ra <- aggregate(r, 20) rd <- disagg(ra, 20) ## ----raster-5b, fig.width=9, fig.height=4------------------------------------- r1 <- crop(r, ext(-50,0,0,30)) r2 <- crop(r, ext(-10,50,-20, 10)) m <- merge(r1, r2, filename="test.tif", overwrite=TRUE) plot(m) ## ----echo=FALSE, include=FALSE------------------------------------------------ ff <- list.files(patt="^test") file.remove(ff) ## ----raster-6a---------------------------------------------------------------- r <- rast(ncol=3, nrow=2) values(r) <- 1:ncell(r) values(r) ## ----raster-6b---------------------------------------------------------------- s <- app(r, fun=function(x){ x[x < 4] <- NA; return(x)} ) as.matrix(s) ## ----raster-6c---------------------------------------------------------------- rs <- c(r, s) w <- lapp(rs, fun=function(x, y){ x / (2 * sqrt(y)) + 5 } ) as.matrix(w) ## ----raster-6d---------------------------------------------------------------- u <- mask(r, w) as.matrix(u) ## ----raster-6e---------------------------------------------------------------- v <- u==s as.matrix(v) ## ----raster-6f---------------------------------------------------------------- cvr <- cover(w, r) as.matrix(w) ## ----raster-6g---------------------------------------------------------------- x <- classify(w, rbind(c(0,2,1), c(2,5,2), c(4,10,3))) as.matrix(x) ## ----raster-6h---------------------------------------------------------------- y <- classify(x, cbind(id=c(2,3), v=c(40,50))) as.matrix(y) ## ----raster-7----------------------------------------------------------------- r <- rast(nrow=45, ncol=90) values(r) <- round(runif(ncell(r))*3) a <- cellSize(r) zonal(a, r, "sum") ## ----raster-10a--------------------------------------------------------------- r <- rast(ncol=36, nrow=18) values(r) <- runif(ncell(r)) global(r, mean) ## ----raster-10b--------------------------------------------------------------- s <- r values(s) <- round(runif(ncell(r)) * 5) zonal(r, s, 'mean') ## ----raster-10c--------------------------------------------------------------- freq(s) freq(s, value=3) ## ----raster-10d--------------------------------------------------------------- ctb <- crosstab(c(r*3, s)) head(ctb) ## ----raster-15---------------------------------------------------------------- r <- rast(ncol=36, nrow=18) ncol(r) nrow(r) ncell(r) rowFromCell(r, 100) colFromCell(r, 100) cellFromRowCol(r,5,5) xyFromCell(r, 100) cellFromXY(r, cbind(0,0)) colFromX(r, 0) rowFromY(r, 0) ## ----raster-20---------------------------------------------------------------- r <- rast(system.file("ex/elev.tif", package="terra")) v <- values(r) v[3075:3080, ] values(r, row=33, nrow=1, col=35, ncol=6) ## ----raster-21---------------------------------------------------------------- cells <- cellFromRowCol(r, 33, 35:40) cells r[cells] xy <- xyFromCell(r, cells) xy extract(r, xy) ## ----raster-32---------------------------------------------------------------- r[cells] r[1:4] sources(r) r[2:5] <- 10 r[1:4] sources(r) ## ----raster-33---------------------------------------------------------------- r[1:3] r[1,1:3] r[1, 1:5] r[1:5, 2] r[1:3,1:3] # get a vector instead of a a matrix r[1:3, 1:3, drop=TRUE] # or a raster like matrix as.matrix(r, wide=TRUE)[1:3, 1:4] ## ----raster-120--------------------------------------------------------------- r <- rast(ncol=36, nrow=18) values(r) <- runif(ncell(r)) library(raster) x <- raster(r)