Simple Features for R
A package that provides simple features access for R. Package sf:
- simple features are
tibbleswith a geometry list-column
- represents natively in R all 17 simple feature types for all dimensions (XY, XYZ, XYM, XYZM)
- interfaces to GEOS to support the DE9-IM
- interfaces to GDAL, supporting all driver options, Date and DateTime (
POSIXct) columns, and coordinate reference system transformations through PROJ
- uses well-known-binary serialisations written in C++/Rcpp for fast I/O with GDAL and GEOS
- directly reads from and writes to spatial databases such as PostGIS using DBI
- is extended by pkg lwgeom for further liblwgeom/PostGIS functions, including spherical geometry functions
(Illustration (c) by Allison Horst)
Blogs, presentations, vignettes, sp-sf wiki
- package vignettes: first, second, third, forth, fifth, sixth
- blog posts: first, second, third, fourth
- the original R Consortium ISC proposal, the R Consortium blog post
- presentations: rstudio::conf 2018 (video), UseR! 2016
- wiki page describing sp-sf migration
Install either from CRAN with:
this will install binary packages on Windows and MacOS, unless you configured R such that it tries to install source packages; in that case, see below.
Install development versions from github with
One way to install the dependencies is using
sudo; the other is using homebrew.
Homebrew commands might be:
brew unlink gdal brew tap osgeo/osgeo4mac && brew tap --repair brew install proj brew install geos brew install udunits brew install gdal2 --with-armadillo --with-complete --with-libkml --with-unsupported brew link --force gdal2
after that, you might be able to install
sf as a source package.
For MacOS Sierra, see these instruction, using kyngchaos frameworks.
For Unix-alikes, GDAL (>= 2.0.0), GEOS (>= 3.3.0) and Proj.4 (>= 4.8.0) are required.
To install the dependencies on Ubuntu, either add ubuntugis-unstable to the package repositories:
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable sudo apt-get update sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev
or install dependencies from source; see e.g. an older travis config file for hints.
The following command installs all required dependencies:
sudo dnf install gdal-devel proj-devel proj-epsg proj-nad geos-devel udunits2-devel
Get gdal, proj and geos from the main repos and udunits from the AUR:
pacman -S gdal proj geos pacaur/yaourt/whatever -S udunits
Multiple GDAL, GEOS and/or PROJ versions on your system
In case you use dynamic linking (installation from source) and have multiple versions of these libraries installed (e.g. one from ubuntugis-unstable, another installed from source in
/usr/local/lib) then this will in general not work, even when setting
LD_LIBRARY_PATH manually. See here for the reason why.
Functions and methods that require
st_make_valid and all spherical or ellipsoidal metrics (area, distances), have since sf 0.5-5 been moved to their own package, lwgeom, which is also on CRAN.
- Contributions of all sorts are most welcome, issues and pull requests are the preferred ways of sharing them.
- When contributing pull requests, please adhere to the package style (in package code use
<-; don't change indentation; tab stops of 4 spaces are preferred)
- This project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
This project gratefully acknowledges financial support from the