CRAN Task View: Analysis of Spatial Data

Maintainer:Roger Bivand
Contact:Roger.Bivand at

Base R includes many functions that can be used for reading, visualising, and analysing spatial data. The focus in this view is on "geographical" spatial data, where observations can be identified with geographical locations, and where additional information about these locations may be retrieved if the location is recorded with care.

Base R functions are complemented by contributed packages, some of which are on CRAN, and others are still in development. One location is Github . Some key packages including sf and stars are grouped under r-spatial , others including raster under rspatial . Maintenance of the sp is continuing here: sp.

Another set of locations for the development and maintenance of packages on R-Forge , which lists "Spatial Data and Statistics" projects in its project tree . Information on R-spatial packages was until 2016 posted on the R-Forge rspatial project website , including a visualisation gallery.

The contributed packages address two broad areas: moving spatial data into and out of R, and analysing spatial data in R.

The R-SIG-Geo mailing-list is a good place to begin for obtaining help and discussing questions about both accessing data, and analysing it. The mailing list is a good place to search for information about relevant courses. Further information about courses may be found under the "Events" tab of this blog .

There are a number of contributed tutorials and introductions; a recent one is Introduction to visualising spatial data in R by Robin Lovelace and James Cheshire.

The packages in this view can be roughly structured into the following topics. If you think that some package is missing from the list, please fork the task view repository and provide a pull request in ctv format for the ctv/Spatial.ctv file.

Classes for spatial data and metadata

Because many of the packages importing and using spatial data have had to include objects of storing data and functions for visualising it, an initiative is in progress to construct shared classes and plotting functions for spatial data.

Complementary initiatives are ongoing to support better handling of geographic metadata in R.

Spatial data - general

Raster data

Geographic metadata

Reading and writing spatial data

Reading and writing spatial data - rgdal

Maps may be vector-based or raster-based. The rgdal package provides bindings to GDAL (Geospatial Data Abstraction Library) -supported raster formats and OGR -supported vector formats. It contains functions to write raster and vector files in supported formats. Formats supported by GDAL/OGR include both OGC standard data formats (e.g. GeoJSON) and proprietary formats (e.g. ESRI Shapefile). The package also provides PROJ.4 projection support for vector objects ( this site provides searchable online PROJ.4 representations of projections). Affine and similarity transformations on sp objects may be made using functions in the vec2dtransf package. The Windows and Mac OSX CRAN binaries of rgdal include subsets of possible data source drivers; if others are needed, use other conversion utilities, or install from source against a version of GDAL with the required drivers.

Reading and writing spatial data - data formats

Other packages provide facilities to read and write spatial data, dealing with open standard formats or proprietary formats.

OGC Standard Data formats

Proprietary Data Formats

Reading and writing spatial data - GIS Software connectors

Interfaces to Spatial Web-Services

Some R packages focused on providing interfaces to web-services and web tools in support of spatial data management. Here follows a first tentative (non-exhaustive) list:

Specific geospatial data sources of interest

Handling spatial data

A number of packages dedicated to spatial data handling have been written using sp classes.

Data processing - general

Data processing - raster and imagery data

Data cleaning

Visualizing spatial data

Base visualization packages

Thematic cartography packages

Packages based on web-mapping frameworks

Building Cartograms

Analyzing spatial data

Point pattern analysis

The spatial package is a recommended package shipped with base R, and contains several core functions, including an implementation of Khat by its author, Prof. Ripley. In addition, spatstat allows freedom in defining the region(s) of interest, and makes extensions to marked processes and spatial covariates. Its strengths are model-fitting and simulation, and it has a useful homepage . It is the only package that will enable the user to fit inhomogeneous point process models with interpoint interactions. The spatgraphs package provides graphs, graph visualisation and graph based summaries to be used with spatial point pattern analysis. The splancs package also allows point data to be analysed within a polygonal region of interest, and covers many methods, including 2D kernel densities. The smacpod package provides various statistical methods for analyzing case-control point data. The methods available closely follow those in chapter 6 of Applied Spatial Statistics for Public Health Data by Waller and Gotway (2004).

ecespa provides wrappers, functions and data for spatial point pattern analysis, used in the book on Spatial Ecology of the ECESPA/AEET. The functions for binning points on grids in ash may also be of interest. The ads package perform first- and second-order multi-scale analyses derived from Ripley's K-function. The aspace package is a collection of functions for estimating centrographic statistics and computational geometries from spatial point patterns. DSpat contains functions for spatial modelling for distance sampling data and spatialsegregation provides segregation measures for multitype spatial point patterns. GriegSmith uses the Grieg-Smith method on 2 dimensional spatial data. The dbmss package allows simple computation of a full set of spatial statistic functions of distance, including classical ones (Ripley's K and others) and more recent ones used by spatial economists (Duranton and Overman's Kd, Marcon and Puech's M). It relies on spatstat for core calculation. latticeDensity contains functions that compute the lattice-based density estimator of Barry and McIntyre, which accounts for point processes in two-dimensional regions with irregular boundaries and holes.


The gstat package provides a wide range of functions for univariate and multivariate geostatistics, also for larger datasets, while geoR and geoRglm contain functions for model-based geostatistics. Variogram diagnostics may be carried out with vardiag. Automated interpolation using gstat is available in automap. This family of packages is supplemented by intamap with procedures for automated interpolation. A similar wide range of functions is to be found in the fields package. The spatial package is shipped with base R, and contains several core functions. The spBayes package fits Gaussian univariate and multivariate models with MCMC. ramps is a different Bayesian geostatistical modelling package. The geospt package contains some geostatistical and radial basis functions, including prediction and cross validation. Besides, it includes functions for the design of optimal spatial sampling networks based on geostatistical modelling. spsann is another package to offer functions to optimize sample configurations, using spatial simulated annealing. The geostatsp package offers geostatistical modelling facilities using Raster and SpatialPoints objects are provided. Non-Gaussian models are fit using INLA, and Gaussian geostatistical models use Maximum Likelihood Estimation. The rcosmo package offers various geostatistics methods for spherical data: descriptive statistics, entropy based methods, covariance-variogram methods, etc. Most of rcosmo features were developed for Cosmic Microwave Background data, but they can also be used for any spherical data. The FRK package is a tool for spatial/spatio-temporal modelling and prediction with large datasets. The approach, discussed in Cressie and Johannesson (2008), decomposes the field, and hence the covariance function, using a fixed set of n basis functions, where n is typically much smaller than the number of data points (or polygons) m.

The RandomFields package provides functions for the simulation and analysis of random fields, and variogram model descriptions can be passed between geoR, gstat and this package. In addition, CompRandFld, constrainedKriging and geospt provide alternative approaches to geostatistical modelling. The spTimer package is able to fit, spatially predict and temporally forecast large amounts of space-time data using [1] Bayesian Gaussian Process (GP) Models, [2] Bayesian Auto-Regressive (AR) Models, and [3] Bayesian Gaussian Predictive Processes (GPP) based AR Models. The rtop package provides functions for the geostatistical interpolation of data with irregular spatial support such as runoff related data or data from administrative units. The georob package provides functions for fitting linear models with spatially correlated errors by robust and Gaussian Restricted Maximum Likelihood and for computing robust and customary point and block kriging predictions, along with utility functions for cross-validation and for unbiased back-transformation of kriging predictions of log-transformed data. The SpatialTools package has an emphasis on kriging, and provides functions for prediction and simulation. It is extended by ExceedanceTools, which provides tools for constructing confidence regions for exceedance regions and contour lines. The sperrorest package implements spatial error estimation and permutation-based spatial variable importance using different spatial cross-validation and spatial block bootstrap methods. The spm package provides functions for hybrid geostatistical and machine learning methods for spatial predictive modelling. It currently contains two commonly used geostatistical methods, two machine learning methods, four hybrid methods and two averaging methods.

The sgeostat package is also available. Within the same general topical area are the deldir and tripack packages for triangulation and the akima package for spline interpolation; the MBA package provides scattered data interpolation with multilevel B-splines. In addition, there are the spatialCovariance package, which supports the computation of spatial covariance matrices for data on rectangles, the regress package building in part on spatialCovariance, and the tgp package. The Stem package provides for the estimation of the parameters of a spatio-temporal model using the EM algorithm, and the estimation of the parameter standard errors using a spatio-temporal parametric bootstrap. FieldSim is another random fields simulations package. The SSN is for geostatistical modeling for data on stream networks, including models based on in-stream distance. Models are created using moving average constructions. Spatial linear models, including covariates, can be fit with ML or REML. Mapping and other graphical functions are included. The ipdw provides functions o interpolate georeferenced point data via Inverse Path Distance Weighting. Useful for coastal marine applications where barriers in the landscape preclude interpolation with Euclidean distances. RSurvey may be used as a processing program for spatially distributed data, and is capable of error corrections and data visualisation.

Disease mapping and areal data analysis

DCluster is a package for the detection of spatial clusters of diseases. It extends and depends on the spdep package, which provides basic functions for building neighbour lists and spatial weights, tests for spatial autocorrelation for areal data like Moran's I. Functions for fitting spatial regression models, such as SAR and CAR models prior to version 1.1-1 are now in spatialreg. These models assume that the spatial dependence can be described by known weights. In spatialreg, the ME and SpatialFiltering functions provide Moran Eigenvector model fitting, as do more modern functions in the spmoran package. The SpatialEpi package provides implementations of cluster detection and disease mapping functions, including Bayesian cluster detection, and supports strata. The smerc package provides statistical methods for the analysis of data areal data, with a focus on cluster detection. The diseasemapping package offers the formatting of population and case data, calculation of Standardized Incidence Ratios, and fitting the BYM model using INLA. Regionalisation of polygon objects is provided by AMOEBA: a function to calculate spatial clusters using the Getis-Ord local statistic. It searches irregular clusters (ecotopes) on a map, and by skater in spdep. The seg and OasisR packages provide functions for measuring spatial segregation; OasisR includes Monte Carlo simulations to test the indices. The spgwr package contains an implementation of geographically weighted regression methods for exploring possible non-stationarity. The gwrr package fits geographically weighted regression (GWR) models and has tools to diagnose and remediate collinearity in the GWR models. Also fits geographically weighted ridge regression (GWRR) and geographically weighted lasso (GWL) models. The GWmodel package contains functions for computing geographically weighted (GW) models. Specifically, basic, robust, local ridge, heteroskedastic, mixed, multiscale, generalised and space-time GWR; GW summary statistics, GW PCA and GW discriminant analysis; associated tests and diagnostics; and options for a range of distance metrics. The lctools package provides researchers and educators with easy-to-learn user friendly tools for calculating key spatial statistics and to apply simple as well as advanced methods of spatial analysis in real data. These include: Local Pearson and Geographically Weighted Pearson Correlation Coefficients, Spatial Inequality Measures (Gini, Spatial Gini, LQ, Focal LQ), Spatial Autocorrelation (Global and Local Moran's I), several Geographically Weighted Regression techniques and other Spatial Analysis tools (other geographically weighted statistics). This package also contains functions for measuring the significance of each statistic calculated, mainly based on Monte Carlo simulations. The sparr package provides another approach to relative risks. The CARBayes package implements Bayesian hierarchical spatial areal unit models. In such models, the spatial correlation is modelled by a set of random effects, which are assigned a conditional autoregressive (CAR) prior distribution. Examples of the models included are the BYM model as well as a recently developed localised spatial smoothing model. The spaMM package fits spatial GLMMs, using the Matern correlation function as the basic model for spatial random effects. The PReMiuM package is for profile regression, which is a Dirichlet process Bayesian clustering model; it provides a spatial CAR term that can be included in the fixed effects (which are global, ie. non-cluster specific, parameters) to account for any spatial correlation in the residuals. The spacom package provides tools to construct and exploit spatially weighted context data, and further allows combining the resulting spatially weighted context data with individual-level predictor and outcome variables, for the purposes of multilevel modelling. The geospacom package generates distance matrices from shape files and represents spatially weighted multilevel analysis results. Spatial survival analysis is provided by the spatsurv - Bayesian inference for parametric proportional hazards spatial survival models - and spBayesSurv - Bayesian Modeling and Analysis of Spatially Correlated Survival Data - packages. The spselect package provides modelling functions based on forward stepwise regression, incremental forward stagewise regression, least angle regression (LARS), and lasso models for selecting the spatial scale of covariates in regression models.

Spatial regression

The choice of function for spatial regression will depend on the support available. If the data are characterised by point support and the spatial process is continuous, geostatistical methods may be used, or functions in the nlme package. If the support is areal, and the spatial process is not being treated as continuous, functions provided in the spatialreg package may be used. This package can also be seen as providing spatial econometrics functions, and, as noted above, provides basic functions for building neighbour lists and spatial weights, tests for spatial autocorrelation for areal data like Moran's I, and functions for fitting spatial regression models. spdep provides the full range of local indicators of spatial association, such as local Moran's I and diagnostic tools for fitted linear models, including Lagrange Multiplier tests. Spatial regression models that can be fitted using maximum likelihood and Bayesian MCMC methods in spatialreg include spatial lag models, spatial error models, and spatial Durbin models. For larger data sets, sparse matrix techniques can be used for maximum likelihood fits, while spatial two-stage least squares and generalised method of moments estimators are an alternative. When using GMM, sphet can be used to accommodate both autocorrelation and heteroskedasticity. The McSpatial provides functions for locally weighted regression, semiparametric and conditionally parametric regression, fourier and cubic spline functions, GMM and linearized spatial logit and probit, k-density functions and counterfactuals, nonparametric quantile regression and conditional density functions, Machado-Mata decomposition for quantile regressions, spatial AR model, repeat sales models, and conditionally parametric logit and probit. The splm package provides methods for fitting spatial panel data by maximum likelihood and GM. The two small packages S2sls and spanel provide alternative implementations without most of the facilities of splm. The HSAR package provides Hierarchical Spatial Autoregressive Models (HSAR), based on a Bayesian Markov Chain Monte Carlo (MCMC) algorithm. spatialprobit make possible Bayesian estimation of the spatial autoregressive probit model (SAR probit model). The ProbitSpatial package provides methods for fitting Binomial spatial probit models to larger data sets; spatial autoregressive (SAR) and spatial error (SEM) probit models are included. The starma package provides functions to identify, estimate and diagnose a Space-Time AutoRegressive Moving Average (STARMA) model.

Ecological analysis

There are many packages for analysing ecological and environmental data. They include:

The Environmetrics Task View contains a much more complete survey of relevant functions and packages.

CRAN packages:

Related links: