Learn R Programming

⚠️There's a newer version (1.8-54) of this package.Take me there.

terra

This R package is a replacement of the raster package. It has a very similar, but simpler, interface, and it is much faster.

All native computations are done in C++. Classes, methods and properties are exposed via a Rcpp module. The R side has two main S4 classes (SpatRaster and SpatVector) that represent spatial data. These classes have only slot, a reference to a C++ object. They are used to provide a "normal" "S4" R user-interface as in the raster package.

The first (alpha) release is expected by July 2019.

Installation

You need to have the current version of raster from CRAN (>= 2.9-22) or install the development version of "raster".

Windows

If you are on Windows, you need to first install Rtools to get a C++ compiler that R can use. After that, you need the first install development version of "raster" for "terra" to work.

Then, in R, install the packages.

library(devtools)
install.packages("raster")
#devtools::install_github("rspatial/raster")
devtools::install_github("rspatial/terra")

Mac - OSX

The libraries GDAL (>= 2.0.0), GEOS (>= 3.3.0) and Proj.4 (>= 4.8.0) are required (as for sf)

With Homebrew you can do:

brew install gdal

And now, in R, install the packages.

library(devtools)
install.packages("raster")
#devtools::install_github("rspatial/raster")
devtools::install_github("rspatial/terra")

Linux

The libraries GDAL (>= 2.0.0), GEOS (>= 3.3.0) and Proj.4 (>= 4.8.0) are required (as for sf)

To install these on Ubuntu you can do:

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install libgdal-dev libgeos-dev libproj-dev 

And now, in R, install the packages.

library(devtools)
install.packages("raster")
#devtools::install_github("rspatial/raster")
devtools::install_github("rspatial/terra")

See the sf instructions for installation on other linux systems.

Copy Link

Version

Install

install.packages('terra')

Monthly Downloads

179,039

Version

0.2-10

License

GPL (>=3)

Issues

Pull Requests

Stars

Forks

Maintainer

Robert Hijmans

Last Published

June 1st, 2025

Functions in terra (0.2-10)

app

Apply a function to the cells of a SpatRaster
buffer

Create a buffer around patches
align

Align a SpatExtent with a SpatRaster
cover

Cover (replace) NA values with values of another raster
aggregate

Aggregate raster cells
boundaries

Detect boundaries (edges)
contour

Contour plot
density

Density plot
dimensions

Dimensions of a SpatRaster or SpatVector
draw

Draw a polygon, line, extent, or points
collapse

Collapse cell values from a multi-layer SpatRaster
compareGeom

Compare geometries of SpatRaster objects
area

Area and length
isLonLat

Check for longitude/latitude crs
global

global statistics
geomtype

Geometry type of a SpatVector
interpolate

Interpolate
extend

Extend
extent

Create, get or set a SpatExtent
extract

Extract values from a SpatRaster
SpatRaster-class

SpatRaster class
focal

Focal values
geom

Get the geometry (coordinates) of a SpatVector
disaggregate

Disaggregate raster cells
coerce

Coercion to other object types
click

Query by clicking on a map
range

Get or compute the minimum and maximum cell values
names

Names of Spat objects
project

Change the coordinate reference system
distance

Geographic distance
rast

Create a SpatRaster
initialize

Initialize a SpatRaster with values
hist

Histogram
ifel

ifelse for SpatRaster objects
head and tail

Show the head or tail of a Spat* object
rasterize

Rasterize vector data
math

Mathematical operations with SpatRaster objects
read and write

Read from, or write to, file
subset

Subset of a SpatRaster
tapp

Apply a function to subsets of layers of a SpatRaster
crop

Cut out a geographic subset
plotRGB

Red-Green-Blue plot of a multi-layered SpatRaster
merge

Merge SpatRaster or SpatExtent objects
crs

Get or set a coordinate reference system (projection)
plot

Plot a SpatRaster or SpatVector
shift

Shift
select

Geometric subsetting
persp

Perspective plot
writeRaster

Write raster data to a file
zonal

Zonal statistics
xyRowColCell

Coordinates from a row, column or cell number and vice versa
zoom

Zoom in on a map
factors

Factors
flip

Flip a raster
transpose

Transpose
sampleRegular

Take a regular sample
warp

Transfer values of a SpatRaster to another one with a different geometry
rotate

Rotate a SpatRaster along longitude
vect

Create SpatVector objects
local

Local statistics
sources

Data sources of a SpatRaster
mask

Mask values in a SpatRaster
pairs

Pairs plot (matrix of scatterplots)
overlay

Overlay SpatRaster objects
predict

Spatial model predictions
terra-package

The "terra" package
tmpFiles

Temporary files
text

Add labels to a map
trim

Trim a SpatRaster
SpatOptions-class

Inspect of set general options for "terra"
unique

Unique values
values

Get cell values
subset-vector

Subset of a SpatVector
SpatExtent-class

Class "SpatExtent"
SpatVector-class

Class "SpatVector"
as.data.frame

Get the attributes of a SpatVector
atan2

Two argument arc-tangent
adjacent

Adjacent cells
clamp

Clamp values
c

Combine
SpatDataFrame-class

C++ classes
classify

Classify (or reclassify) cell values
freq

Frequency table