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

229,584

Version

0.3-1

License

GPL (>=3)

Issues

Pull Requests

Stars

Forks

Maintainer

Robert Hijmans

Last Published

June 1st, 2025

Functions in terra (0.3-1)

SpatExtent-class

Class "SpatExtent"
area

Area and length
align

Align a SpatExtent with a SpatRaster
SpatVector-class

Class "SpatVector"
aggregate

Aggregate raster cells
as.data.frame

Get the attributes of a SpatVector
adjacent

Adjacent cells
app

Apply a function to the cells of a SpatRaster
SpatRaster-class

SpatRaster class
SpatDataFrame-class

C++ classes
atan2

Two argument arc-tangent
compareGeom

Compare geometries of SpatRaster objects
contour

Contour plot
collapse

Collapse cell values from a multi-layer SpatRaster
draw

Draw a polygon, line, extent, or points
coerce

Coercion to other object types
click

Query by clicking on a map
density

Density plot
boundaries

Detect boundaries (edges)
buffer

Create a buffer around vector objects or raster patches
classify

Classify (or reclassify) cell values
c

Combine
cover

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

ifelse for SpatRaster objects
plot

Plot a SpatRaster or SpatVector
hist

Histogram
persp

Perspective plot
factors

Factors
dimensions

Dimensions of a SpatRaster or SpatVector
global

global statistics
flip

Flip a raster
modal

modal value
merge

Merge SpatRaster or SpatExtent objects, or a SpatVector with a data.frame
head and tail

Show the head or tail of a Spat* object
names

Names of Spat objects
range

Get or compute the minimum and maximum cell values
initialize

Initialize a SpatRaster with values
clamp

Clamp values
interpolate

Interpolate
geom

Get the geometry (coordinates) of a SpatVector
geomtype

Geometry type of a SpatVector
extend

Extend
extent

Create, get or set a SpatExtent
extract

Extract values from a SpatRaster
crs

Get or set a coordinate reference system (projection)
crop

Cut out a geographic subset
overlay

Overlay SpatRaster objects
isLonLat

Check for longitude/latitude crs
rotate

Rotate a SpatRaster along longitude
text

Add labels to a map
tmpFiles

Temporary files
xyRowColCell

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

Take a regular sample
zonal

Zonal statistics
distance

Geographic distance
disaggregate

Disaggregate raster cells
pairs

Pairs plot (matrix of scatterplots)
read and write

Read from, or write to, file
unique

Unique values
vector-attributes

Get or replace attribute values of a SpatVector
values

Get cell values
subset-vector

Subset of a SpatVector
xmin

Get or set single values of an extent
SpatOptions-class

Inspect of set general options for "terra"
sources

Data sources of a SpatRaster
writeRaster

Write raster data to a file
focal

Focal values
terra-package

The "terra" package
local

Local statistics
project

Change the coordinate reference system
select

Geometric subsetting
vect

Create SpatVector objects
transpose

Transpose
quantile

SpatRaster local quantiles
trim

Trim a SpatRaster
warp

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

Subset of a SpatRaster
shift

Shift
tapp

Apply a function to subsets of layers of a SpatRaster
zoom

Zoom in on a map
freq

Frequency table
plotRGB

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

Mask values in a SpatRaster
math

Mathematical operations with SpatRaster objects
rasterize

Rasterize vector data
predict

Spatial model predictions
rast

Create a SpatRaster