## ---- 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)