Skip to content

Simple Features for R

891packages dependsuggested by 386
5Mdownloads / year
78.9%test coverage
5/13flavors OK

Overview

About

Support for simple feature access, a standardized way to encode and analyze spatial vector data. Binds to 'GDAL' doi:10.5281/zenodo.5884351 for reading and writing data, to 'GEOS' doi:10.5281/zenodo.11396894 for geometrical operations, and to 'PROJ' doi:10.5281/zenodo.5884394 for projection conversions and datum transformations. Uses by default the 's2' package for geometry operations on geodetic (long/lat degree) coordinates.

Changes in 1.1-3
  • move st_interpolate_aw.stars() from stars to sf, to get ready for using GEOS::GEOSGridIntersectionFractions() in the future
  • guess Parquet driver from .parquet file extension; #2506
  • adapt tests to changes in GEOS >= 3.15.0
  • new argument round to st_coordinates to round output coordinates to a given precision level; #2620

From NEWS.md in the release

Install

Health

CRAN checks
8NOTE5OK
Check messages
NOTEtestsr-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64, r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64

r-devel-linux-x86_64-debian-clang

Running ‘aggregate.R’ [1s/1s]
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’ [2s/3s]
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’ [1s/2s]
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ... OK
  Running ‘dist.R’ [2s/2s]
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’ [4s/5s]
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’ [1s/2s]
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘full.R’ [2s/3s]
  Comparing ‘full.Rout’ to ‘full.Rout.save’ ... OK
  Running ‘gdal_geom.R’ [2s/3s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [29s/36s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ... OK
  Running ‘graticule.R’ [4s/5s]
  Comparing ‘graticule.Rout’ to ‘graticule.Rout.save’ ... OK
  Running ‘grid.R’ [2s/2s]
  Comparing ‘grid.Rout’ to ‘grid.Rout.save’ ... OK
  Running ‘maps.R’ [3s/4s]
  Comparing ‘maps.Rout’ to ‘maps.Rout.save’ ...
43d42
< There were 
...[truncated]...
  Comparing ‘plot.Rout’ to ‘plot.Rout.save’ ... OK
  Running ‘read.R’ [3s/5s]
  Comparing ‘read.Rout’ to ‘read.Rout.save’ ... OK
  Running ‘roundtrip.R’ [3s/3s]
  Comparing ‘roundtrip.Rout’ to ‘roundtrip.Rout.save’ ... OK
  Running ‘s2.R’ [3s/3s]
  Comparing ‘s2.Rout’ to ‘s2.Rout.save’ ... OK
  Running ‘sample.R’ [1s/2s]
  Comparing ‘sample.Rout’ to ‘sample.Rout.save’ ... OK
  Running ‘sfc.R’ [17s/22s]
  Comparing ‘sfc.Rout’ to ‘sfc.Rout.save’ ... OK
  Running ‘sfg.R’ [1s/1s]
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’ [5s/6s]
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’ [4s/5s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘test-by-element.R’ [1s/1s]
  Comparing ‘test-by-element.Rout’ to ‘test-by-element.Rout.save’ ... OK
  Running ‘testthat.R’ [25s/33s]
  Running ‘units.R’ [1s/2s]
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’ [1s/2s]
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK

r-devel-linux-x86_64-debian-gcc

Running ‘aggregate.R’ [1s/2s]
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’ [2s/2s]
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’ [1s/2s]
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ... OK
  Running ‘dist.R’ [1s/2s]
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’ [3s/4s]
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’ [1s/1s]
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘full.R’ [1s/2s]
  Comparing ‘full.Rout’ to ‘full.Rout.save’ ... OK
  Running ‘gdal_geom.R’ [2s/2s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [20s/26s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ... OK
  Running ‘graticule.R’ [3s/4s]
  Comparing ‘graticule.Rout’ to ‘graticule.Rout.save’ ... OK
  Running ‘grid.R’ [1s/2s]
  Comparing ‘grid.Rout’ to ‘grid.Rout.save’ ... OK
  Running ‘maps.R’ [2s/3s]
  Comparing ‘maps.Rout’ to ‘maps.Rout.save’ ...
43d42
< There were 
...[truncated]...
  Comparing ‘plot.Rout’ to ‘plot.Rout.save’ ... OK
  Running ‘read.R’ [3s/4s]
  Comparing ‘read.Rout’ to ‘read.Rout.save’ ... OK
  Running ‘roundtrip.R’ [2s/2s]
  Comparing ‘roundtrip.Rout’ to ‘roundtrip.Rout.save’ ... OK
  Running ‘s2.R’ [2s/3s]
  Comparing ‘s2.Rout’ to ‘s2.Rout.save’ ... OK
  Running ‘sample.R’ [1s/1s]
  Comparing ‘sample.Rout’ to ‘sample.Rout.save’ ... OK
  Running ‘sfc.R’ [11s/15s]
  Comparing ‘sfc.Rout’ to ‘sfc.Rout.save’ ... OK
  Running ‘sfg.R’ [1s/1s]
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’ [4s/5s]
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’ [3s/5s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘test-by-element.R’ [1s/1s]
  Comparing ‘test-by-element.Rout’ to ‘test-by-element.Rout.save’ ... OK
  Running ‘testthat.R’ [17s/22s]
  Running ‘units.R’ [1s/2s]
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’ [1s/1s]
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK

r-devel-linux-x86_64-fedora-clang

Running ‘aggregate.R’
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ... OK
  Running ‘dist.R’
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘full.R’
  Comparing ‘full.Rout’ to ‘full.Rout.save’ ... OK
  Running ‘gdal_geom.R’
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ...
244,248c244,248
< [1,] 1760242094 0.114
< [2,]  946426033 0.061
< [3,] 2202239126 0.143
< [4,] 1074338664 0.070
< [5,] 2352518951 0.153
---
> [1,] 1760230516 0.114
> [2,]  946417787 0.061
> [3,] 2202223078 0.143
> [4,] 1074332698 0.070
> [5,] 2352528086 0.153
  Running ‘geos.R’ [21s/21s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ...
13,22c13,22
<  [1,]      0.00      0.00  25652.42 440561.04 299772.09 36152
...[truncated]...

> Bounding box:  xmin: 1216510 ymin: 935852 xmax: 1428880 ymax: 1031490
720,724c720,724
< POINT (1264559 935867)
< POINT (1256623 949384)
< POINT (1222665 972639)
< POINT (1333530 968278)
< POINT (1310838 958645)
---
> POINT (1264558 935852)
> POINT (1256623 949369)
> POINT (1222665 972624)
> POINT (1333528 968263)
> POINT (1310837 958630)
734c734
< Bounding box:  xmin: -81.6893 ymin: 36.2492 xmax: -80.914 ymax: 36.5726
---
> Bounding box:  xmin: -81.6893 ymin: 36.2491 xmax: -80.914 ymax: 36.5726
  Running ‘sfg.R’
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘test-by-element.R’
  Comparing ‘test-by-element.Rout’ to ‘test-by-element.Rout.save’ ... OK
  Running ‘testthat.R’ [19s/23s]
  Running ‘units.R’
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK

r-devel-linux-x86_64-fedora-gcc

Running ‘aggregate.R’
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ... OK
  Running ‘dist.R’
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘full.R’
  Comparing ‘full.Rout’ to ‘full.Rout.save’ ... OK
  Running ‘gdal_geom.R’
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ...
244,248c244,248
< [1,] 1760242094 0.114
< [2,]  946426033 0.061
< [3,] 2202239126 0.143
< [4,] 1074338664 0.070
< [5,] 2352518951 0.153
---
> [1,] 1760230516 0.114
> [2,]  946417787 0.061
> [3,] 2202223078 0.143
> [4,] 1074332698 0.070
> [5,] 2352528086 0.153
  Running ‘geos.R’ [20s/21s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ...
13,22c13,22
<  [1,]      0.00      0.00  25652.42 440561.04 299772.09 36152
...[truncated]...

> Bounding box:  xmin: 1216510 ymin: 935852 xmax: 1428880 ymax: 1031490
720,724c720,724
< POINT (1264559 935867)
< POINT (1256623 949384)
< POINT (1222665 972639)
< POINT (1333530 968278)
< POINT (1310838 958645)
---
> POINT (1264558 935852)
> POINT (1256623 949369)
> POINT (1222665 972624)
> POINT (1333528 968263)
> POINT (1310837 958630)
734c734
< Bounding box:  xmin: -81.6893 ymin: 36.2492 xmax: -80.914 ymax: 36.5726
---
> Bounding box:  xmin: -81.6893 ymin: 36.2491 xmax: -80.914 ymax: 36.5726
  Running ‘sfg.R’
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘test-by-element.R’
  Comparing ‘test-by-element.Rout’ to ‘test-by-element.Rout.save’ ... OK
  Running ‘testthat.R’ [17s/21s]
  Running ‘units.R’
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK

r-devel-windows-x86_64

Running 'aggregate.R' [2s]
  Comparing 'aggregate.Rout' to 'aggregate.Rout.save' ... OK
  Running 'cast.R' [2s]
  Comparing 'cast.Rout' to 'cast.Rout.save' ... OK
  Running 'crs.R' [1s]
  Comparing 'crs.Rout' to 'crs.Rout.save' ... OK
  Running 'dist.R' [2s]
  Comparing 'dist.Rout' to 'dist.Rout.save' ... OK
  Running 'dplyr.R' [4s]
  Comparing 'dplyr.Rout' to 'dplyr.Rout.save' ... OK
  Running 'empty.R' [2s]
  Comparing 'empty.Rout' to 'empty.Rout.save' ... OK
  Running 'full.R' [2s]
  Comparing 'full.Rout' to 'full.Rout.save' ... OK
  Running 'gdal_geom.R' [2s]
  Comparing 'gdal_geom.Rout' to 'gdal_geom.Rout.save' ... OK
  Running 'geos.R' [26s]
  Comparing 'geos.Rout' to 'geos.Rout.save' ... OK
  Running 'graticule.R' [4s]
  Comparing 'graticule.Rout' to 'graticule.Rout.save' ... OK
  Running 'grid.R' [2s]
  Comparing 'grid.Rout' to 'grid.Rout.save' ... OK
  Running 'maps.R' [3s]
  Comparing 'maps.Rout' to 'maps.Rout.save' ...
43d42
< There were 50 or more warnings (use warnings() t
...[truncated]...
the first 50)
  Running 'plot.R' [8s]
  Comparing 'plot.Rout' to 'plot.Rout.save' ... OK
  Running 'read.R' [4s]
  Comparing 'read.Rout' to 'read.Rout.save' ... OK
  Running 'roundtrip.R' [3s]
  Comparing 'roundtrip.Rout' to 'roundtrip.Rout.save' ... OK
  Running 's2.R' [2s]
  Comparing 's2.Rout' to 's2.Rout.save' ... OK
  Running 'sample.R' [2s]
  Comparing 'sample.Rout' to 'sample.Rout.save' ... OK
  Running 'sfc.R' [15s]
  Comparing 'sfc.Rout' to 'sfc.Rout.save' ... OK
  Running 'sfg.R' [1s]
  Comparing 'sfg.Rout' to 'sfg.Rout.save' ... OK
  Running 'spatstat.R' [5s]
  Comparing 'spatstat.Rout' to 'spatstat.Rout.save' ... OK
  Running 'stars.R' [4s]
  Comparing 'stars.Rout' to 'stars.Rout.save' ... OK
  Running 'test-by-element.R' [1s]
  Comparing 'test-by-element.Rout' to 'test-by-element.Rout.save' ... OK
  Running 'testthat.R' [30s]
  Running 'units.R' [2s]
  Comparing 'units.Rout' to 'units.Rout.save' ... OK
  Running 'wkb.R' [1s]
  Comparing 'wkb.Rout' to 'wkb.Rout.save' ... OK

r-oldrel-macos-arm64

Running ‘aggregate.R’ [0s/0s]
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’ [0s/0s]
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’ [0s/0s]
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ... OK
  Running ‘dist.R’ [0s/0s]
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’ [1s/1s]
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’ [0s/0s]
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘full.R’ [0s/0s]
  Comparing ‘full.Rout’ to ‘full.Rout.save’ ... OK
  Running ‘gdal_geom.R’ [1s/1s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [6s/6s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ... OK
  Running ‘graticule.R’ [1s/1s]
  Comparing ‘graticule.Rout’ to ‘graticule.Rout.save’ ... OK
  Running ‘grid.R’ [0s/0s]
  Comparing ‘grid.Rout’ to ‘grid.Rout.save’ ... OK
  Running ‘maps.R’ [1s/1s]
  Comparing ‘maps.Rout’ to ‘maps.Rout.save’ ... OK
  Running ‘plot.R’
...[truncated]...
ring ‘roundtrip.Rout’ to ‘roundtrip.Rout.save’ ... OK
  Running ‘s2.R’ [1s/1s]
  Comparing ‘s2.Rout’ to ‘s2.Rout.save’ ... OK
  Running ‘sample.R’ [0s/0s]
  Comparing ‘sample.Rout’ to ‘sample.Rout.save’ ... OK
  Running ‘sfc.R’ [3s/3s]
  Comparing ‘sfc.Rout’ to ‘sfc.Rout.save’ ... OK
  Running ‘sfg.R’ [0s/0s]
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’ [1s/1s]
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’ [1s/1s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ...127c127
<                 Min.   1st Qu.    Median         Mean   3rd Qu.      Max.  NA's
---
>                 Min.   1st Qu.    Median         Mean   3rd Qu.      Max.   NAs
  Running ‘test-by-element.R’ [0s/0s]
  Comparing ‘test-by-element.Rout’ to ‘test-by-element.Rout.save’ ... OK
  Running ‘testthat.R’ [5s/7s]
  Running ‘units.R’ [0s/0s]
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’ [0s/0s]
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK

r-oldrel-macos-x86_64

Running ‘aggregate.R’ [1s/1s]
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’ [2s/2s]
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’ [1s/1s]
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ... OK
  Running ‘dist.R’ [1s/1s]
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’ [3s/4s]
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’ [1s/1s]
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘full.R’ [1s/2s]
  Comparing ‘full.Rout’ to ‘full.Rout.save’ ... OK
  Running ‘gdal_geom.R’ [2s/2s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [19s/26s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ... OK
  Running ‘graticule.R’ [3s/4s]
  Comparing ‘graticule.Rout’ to ‘graticule.Rout.save’ ... OK
  Running ‘grid.R’ [1s/2s]
  Comparing ‘grid.Rout’ to ‘grid.Rout.save’ ... OK
  Running ‘maps.R’ [2s/3s]
  Comparing ‘maps.Rout’ to ‘maps.Rout.save’ ... OK
  Running ‘plot.
...[truncated]...
 ‘roundtrip.Rout’ to ‘roundtrip.Rout.save’ ... OK
  Running ‘s2.R’ [2s/2s]
  Comparing ‘s2.Rout’ to ‘s2.Rout.save’ ... OK
  Running ‘sample.R’ [1s/1s]
  Comparing ‘sample.Rout’ to ‘sample.Rout.save’ ... OK
  Running ‘sfc.R’ [11s/16s]
  Comparing ‘sfc.Rout’ to ‘sfc.Rout.save’ ... OK
  Running ‘sfg.R’ [1s/1s]
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’ [3s/5s]
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’ [3s/4s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ...127c127
<                 Min.   1st Qu.    Median         Mean   3rd Qu.      Max.  NA's
---
>                 Min.   1st Qu.    Median         Mean   3rd Qu.      Max.   NAs
  Running ‘test-by-element.R’ [1s/1s]
  Comparing ‘test-by-element.Rout’ to ‘test-by-element.Rout.save’ ... OK
  Running ‘testthat.R’ [17s/25s]
  Running ‘units.R’ [1s/2s]
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’ [1s/1s]
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK

r-oldrel-windows-x86_64

Running 'aggregate.R' [2s]
  Comparing 'aggregate.Rout' to 'aggregate.Rout.save' ... OK
  Running 'cast.R' [3s]
  Comparing 'cast.Rout' to 'cast.Rout.save' ... OK
  Running 'crs.R' [2s]
  Comparing 'crs.Rout' to 'crs.Rout.save' ... OK
  Running 'dist.R' [2s]
  Comparing 'dist.Rout' to 'dist.Rout.save' ... OK
  Running 'dplyr.R' [5s]
  Comparing 'dplyr.Rout' to 'dplyr.Rout.save' ... OK
  Running 'empty.R' [2s]
  Comparing 'empty.Rout' to 'empty.Rout.save' ... OK
  Running 'full.R' [2s]
  Comparing 'full.Rout' to 'full.Rout.save' ... OK
  Running 'gdal_geom.R' [3s]
  Comparing 'gdal_geom.Rout' to 'gdal_geom.Rout.save' ... OK
  Running 'geos.R' [38s]
  Comparing 'geos.Rout' to 'geos.Rout.save' ... OK
  Running 'graticule.R' [6s]
  Comparing 'graticule.Rout' to 'graticule.Rout.save' ... OK
  Running 'grid.R' [2s]
  Comparing 'grid.Rout' to 'grid.Rout.save' ... OK
  Running 'maps.R' [4s]
  Comparing 'maps.Rout' to 'maps.Rout.save' ... OK
  Running 'plot.R' [13s]
  Comparing 'plot.Rout' to '
...[truncated]...
g 'roundtrip.R' [3s]
  Comparing 'roundtrip.Rout' to 'roundtrip.Rout.save' ... OK
  Running 's2.R' [3s]
  Comparing 's2.Rout' to 's2.Rout.save' ... OK
  Running 'sample.R' [2s]
  Comparing 'sample.Rout' to 'sample.Rout.save' ... OK
  Running 'sfc.R' [22s]
  Comparing 'sfc.Rout' to 'sfc.Rout.save' ... OK
  Running 'sfg.R' [1s]
  Comparing 'sfg.Rout' to 'sfg.Rout.save' ... OK
  Running 'spatstat.R' [6s]
  Comparing 'spatstat.Rout' to 'spatstat.Rout.save' ... OK
  Running 'stars.R' [5s]
  Comparing 'stars.Rout' to 'stars.Rout.save' ...127c127
<                 Min.   1st Qu.    Median         Mean   3rd Qu.      Max.  NA's
---
>                 Min.   1st Qu.    Median         Mean   3rd Qu.      Max.   NAs
  Running 'test-by-element.R' [1s]
  Comparing 'test-by-element.Rout' to 'test-by-element.Rout.save' ... OK
  Running 'testthat.R' [38s]
  Running 'units.R' [2s]
  Comparing 'units.Rout' to 'units.Rout.save' ... OK
  Running 'wkb.R' [2s]
  Comparing 'wkb.Rout' to 'wkb.Rout.save' ... OK

CRAN check page ↗

Slowest check: 24.3 min · r-oldrel-windows-x86_64
Status changes
  • NOTE5 OK, 8 NOTE2026-09-17
  • ERROR7 OK, 5 NOTE, 1 ERROR2026-09-08
  • NOTE1 OK, 12 NOTE2026-07-23
  • ERROR12 NOTE, 1 ERROR2026-07-19
  • NOTE2 OK, 10 NOTE, 1 FAILURE2026-06-08
Show 8 earlier changesHide 8 earlier changes
  • ERROR2 OK, 10 NOTE, 1 ERROR2026-06-07
  • NOTE6 OK, 7 NOTE2026-05-02
  • ERROR4 OK, 7 NOTE, 1 ERROR2026-04-25
  • NOTE4 OK, 10 NOTE2026-04-22
  • ERROR3 OK, 10 NOTE, 1 ERROR2026-04-18
  • NOTE4 OK, 10 NOTE2026-04-11
  • ERROR3 OK, 10 NOTE, 1 ERROR2026-04-09
  • NOTE3 OK, 11 NOTE2026-03-10
Advisories

none known

Documentation

In release 1.1-3
README· In the repository, left out of the releaseVignettesYes · 7 · dynamicNEWSYes · 100% structured · mentions 1.1-3Citation fileYes · cites a publicationWebsiteYes · pkgdown
Cites an R Journal article
Help pages
85 (5 internal)includes a package overview page
Examples that run
95%55 run in a plain check · 2 only when donttest examples are enabled (R CMD check --as-cran) · 1 never run
Exported functions with examples
79%
Documented parameters
93%
Return-value docs
64%
Help pages citing references
1%

Also includes 6 demo scripts (run with demo())

Downloads

5M
CRAN downloads in the past year
Rank #185 · ~13.8K/day · ~418.4K/mo
Daily download trend is not available in this view yet.
307.8K30 days
911.6K90 days
5M1 year
Compare downloads with other packages →
Also on47.9K r2u139 autocran118.1K conda_forge1.1K c2d4u

Repository

1,451Stars
305Forks
58Open issues
7Open PRs
8Releases
5,582Commits
131Commit identities
rspatialgdalgeosprojr-packagerstats
5,582 commits · Last activity 2026-10-21 · +0.3% stars, 30d · Default branch at 1.1-4, ahead of CRAN 1.1-3 (checked 2026-10-18) · Discussions: 8 posts
Responsiveness
How these are sampled
PRs merged (all time)
80%
Median days to close, 50 most recently updated closed issues
3
Median days to close, 50 most recently updated closed PRs
2

Stars over time

2025-10-06 · 1,3822026-10-16 · 1,451
PracticesBeta

11 development-tooling and community-health practices detected across 6 families in the upstream repository

Checks run against github.com/r-spatial/sf on 2026-10-18.

Continuous integration (3)
GitHub ActionsR CMD check workflowtic

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Governance and community (2)
Code of conductIssue templates
Docs source (3)
pkgdown

GitHub Pages site last deployed 2026-10-18 · The repository has a site deploy workflow

pkgdown site last built 2026-10-18

Coverage (1)
Coverage reporting (Codecov)
Show all practicesHide 2 practices
Lint, format, editor (1)
RStudio project
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2026-09-27
    Commits: at least 1 crediting it in the message
From outside contributors
  • Claude Code
    Pull requests: 1 from outside contributors, first on 2026-09-28, 1 from forks
Models named in its commits
  • Claude Opus 5.51 commit · Sep 2026
Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
40 external dependencies (excludes base and recommended)

Installing sf adds 8 packages (7 with compiled code, 7.5 MB of source tarballs). Heaviest: s2 2.8 MB, Rcpp 1.8 MB, wk 1.0 MB.

Depends (2)
R >= 4.1.0methods
Imports (10)
classIntDBIgraphicsgrDevicesgrids2statstoolsunitsutils
LinkingTo (1)
Enhances (0)
none

People & History

People (14)
Author, Maintainer since 0.2-0 (2016)
Contributor · added in 0.8-0
Contributor
Contributor
Contributor · added in 1.1-1
Contributor · added in 1.0-0
Contributor
Contributor
Contributor · added in 0.6-2
Show 5 more contributorsHide 5 contributors
Contributor
Contributor · added in 0.7-3
Contributor · added in 0.3-0
Contributor
Contributor
Listed in earlier versions (1)
Kirill M<U+00FC>ller
no longer listed · 0.8-1
Releases (74)

Pick two releases to compare their code metrics.

  • 1.1-3Latest
    record
    2026-09-11 · current release · diff ↗
  • 1.1-2
    record
    2026-07-23 · diff ↗
  • 1.1-1
    record
    2026-05-06 · diff ↗ ·
    removed 1 export
    %>%
  • R
    R 4.6.0 released · 2026-04-24
  • 1.1-0
    record
    2026-02-24 · diff ↗ ·
    removed 2 exports
    vec_cast.sfc, vec_ptype2.sfc
    added 1 export
    gdal_compressors
  • 1.0-24
    record
    2026-01-13 · diff ↗
  • 1.0-23
    record
    2025-11-28 · diff ↗
  • 1.0-22
    record
    2025-11-10 · diff ↗
  • 1.0-21
    record
    2025-05-15 · diff ↗
  • R
    R 4.5.0 released · 2025-04-11
  • 1.0-20
    record
    2025-03-24 · diff ↗ ·
    added 1 export
    st_minimum_bounding_circle
  • 1.0-19
    record
    2024-11-05 · diff ↗
  • 1.0-18
    record
    2024-10-11 · diff ↗ ·
    added 2 exports
    FULL_bbox_, st_is_full
  • 1.0-17
    record
    2024-09-06 · diff ↗ ·
    added 1 export
    st_exterior_ring
  • R
    R 4.4.0 released · 2024-04-24
  • 1.0-16
    record
    2024-03-25 · diff ↗ ·
    removed 1 export
    pivot_wider.sf
    added 2 exports
    st_line_interpolate, st_line_project
Show 69 earlier eventsHide 69 earlier events
  • 1.0-15
    record
    2023-12-18 · diff ↗ ·
    added 1 export
    st_perimeter
  • 1.0-14
    record
    2023-07-11 · diff ↗
  • 1.0-13
    record
    2023-05-24 · diff ↗
  • R
    R 4.3.0 released · 2023-04-21
  • 1.0-12
    record
    2023-03-20 · diff ↗
  • 1.0-11
    record
    2023-03-15 · diff ↗ ·
    added 2 exports
    st_concave_hull, st_triangulate_constrained
  • 1.0-10
    record
    2023-03-12 · diff ↗ ·
    added 1 export
    st_can_transform
  • 1.0-9
    record
    2022-11-08 · diff ↗ ·
    added 1 export
    st_break_antimeridian
  • 1.0-8
    record
    2022-07-14 · diff ↗ ·
    added 3 exports
    gdal_addo, pivot_wider.sf, st_minimum_rotated_rectangle
  • R
    R 4.2.0 released · 2022-04-22
  • 1.0-7
    record
    2022-03-07 · diff ↗
  • 1.0-6
    record
    2022-02-04 · diff ↗ ·
    added 1 export
    gdal_create
  • 1.0-5
    record
    2021-12-17 · diff ↗
  • 1.0-4
    record
    2021-11-14 · diff ↗ ·
    added 1 export
    st_delete
  • 1.0-3
    record
    2021-10-07 · diff ↗
  • 1.0-2
    record
    2021-07-26 · diff ↗
  • 1.0-1
    record
    2021-06-29 · diff ↗
  • 1.0-0
    record
    2021-06-09 · diff ↗ ·
    added 2 exports
    gdal_read_mdim, gdal_write_mdim
  • R
    R 4.1.0 released · 2021-05-18
  • 0.9-8
    record
    2021-03-17 · diff ↗ ·
    added 3 exports
    sf_proj_network, sf_proj_pipelines, st_inscribed_circle
  • 0.9-7
    record
    2021-01-06 · diff ↗ ·
    added 1 export
    gdal_extract
  • 0.9-6
    record
    2020-09-13 · diff ↗ ·
    added 1 export
    sf_proj_search_paths
  • 0.9-5
    record
    2020-07-14 · diff ↗ ·
    added 2 exports
    sf_use_s2, st_as_s2
  • 0.9-4
    record
    2020-06-13 · diff ↗
  • 0.9-3
    record
    2020-05-04 · diff ↗
  • R
    R 4.0.0 released · 2020-04-24
  • 0.9-2
    record
    2020-04-14 · diff ↗ ·
    added 1 export
    sf_add_proj_units
  • 0.9-1
    record
    2020-04-06 · diff ↗
  • 0.9-0
    record
    2020-03-24 · diff ↗ ·
    removed 2 exports
    sf_as_sfc.pq_geometry, st_proj_info
    added 4 exports
    sf_proj_info, st_axis_order, st_make_valid, st_reverse
  • 0.8-1
    record
    2020-01-28 · diff ↗ ·
    added 9 exports
    NA_m_range_, NA_z_range_, sf_as_sfc.pq_geometry, st_filter, st_m_range, st_shift_longitude, st_z_range, vec_cast.sfc, vec_ptype2.sfc
  • 0.8-0
    record
    2019-09-17 · diff ↗
  • 0.7-7
    record
    2019-07-24 · diff ↗
  • 0.7-6
    record
    2019-07-05 · diff ↗
  • 0.7-5
    record
    2019-07-03 · diff ↗
  • 0.7-4
    record
    2019-04-26 · diff ↗
  • R
    R 3.6.0 released · 2019-04-26
  • 0.7-3
    record
    2019-02-21 · diff ↗ ·
    added 1 export
    st_normalize
  • 0.7-2
    record
    2018-12-20 · diff ↗ ·
    added 1 export
    st_drop_geometry
  • 0.7-1
    record
    2018-10-24 · diff ↗
  • 0.7-0
    record
    2018-10-17 · diff ↗ ·
    added 4 exports
    gdal_polygonize, gdal_rasterize, st_nearest_feature, st_nearest_points
  • 0.6-3
    record
    2018-05-17 · diff ↗
  • 0.6-2
    record
    2018-04-25 · diff ↗ ·
    removed 28 exports
    anti_join.sf, arrange.sf, distinct.sf, filter.sf, full_join.sf, gather.sf, group_by.sf, inner_join.sf, left_join.sf, mutate.sf, nest.sf, obj_sum.sfc, pillar_shaft.sfc, rename.sf, right_join.sf, sample_frac.sf, sample_n.sf, select.sf, semi_join.sf, separate.sf, slice.sf, spread.sf, summarise.sf, transmute.sf, type_sum.sfc, ungroup.sf, unite.sf, unnest.sf
    added 1 export
    st_crop
  • R
    R 3.5.0 released · 2018-04-23
  • 0.6-1
    record
    2018-03-22 · diff ↗ ·
    added 13 exports
    .degAxis, .get_layout, .image_scale, .image_scale_factor, gdal_crs, gdal_inv_geotransform, gdal_metadata, gdal_read, gdal_subdatasets, gdal_utils, gdal_write, get_key_pos, pillar_shaft.sfc
  • 0.6-0
    record
    2018-01-06 · diff ↗ ·
    removed 3 exports
    st_geohash, st_make_valid, st_split
    added 5 exports
    .stop_geos, sf_project, st_is_empty, st_snap, unnest.sf
  • 0.5-5
    record
    2017-10-31 · diff ↗ ·
    added 3 exports
    st_collection_extract, st_jitter, st_node
  • 0.5-4
    record
    2017-08-28 · diff ↗ ·
    removed 15 exports
    arrange_.sf, distinct_.sf, filter_.sf, gather_.sf, group_by_.sf, mutate_.sf, nest_.sf, rename_.sf, select_.sf, separate_.sf, slice_.sf, spread_.sf, summarise_.sf, transmute_.sf, unite_.sf
    added 6 exports
    as_Spatial, gather.sf, nest.sf, separate.sf, spread.sf, unite.sf
  • 0.5-3
    record
    2017-07-30 · diff ↗ ·
    added 2 exports
    NA_bbox_, st_is_within_distance
  • 0.5-2
    record
    2017-07-12 · diff ↗ ·
    added 1 export
    st_point_on_surface
  • 0.5-1
    record
    2017-06-23 · diff ↗
  • 0.5-0
    record
    2017-06-15 · diff ↗ ·
    added 3 exports
    separate_.sf, st_split, unite_.sf
  • 0.4-3
    record
    2017-05-15 · diff ↗ ·
    added 2 exports
    st_geohash, ungroup.sf
  • 0.4-2
    record
    2017-05-05 · diff ↗ ·
    added 12 exports
    arrange.sf, distinct.sf, filter.sf, group_by.sf, mutate.sf, nest_.sf, rename.sf, select.sf, slice.sf, st_wrap_dateline, summarise.sf, transmute.sf
  • R
    R 3.4.0 released · 2017-04-21
  • 0.4-1
    record
    2017-03-28 · diff ↗
  • 0.4-0
    record
    2017-03-21 · diff ↗ ·
    removed 3 exports
    st_linemerge, st_list, st_makegrid
    added 11 exports
    %>%, sample_frac.sf, sample_n.sf, st_bind_cols, st_coordinates, st_line_merge, st_make_grid, st_make_valid, st_proj_info, st_sample, st_set_geometry
  • 0.3-4
    record
    2017-02-06 · diff ↗ ·
    removed 2 exports
    cbind.sf, rbind.sf
    added 1 export
    st_contains_properly
  • 0.3-2
    record
    2017-02-04 · diff ↗ ·
    added 7 exports
    anti_join.sf, full_join.sf, inner_join.sf, left_join.sf, right_join.sf, semi_join.sf, st_join
  • 0.3-1
    record
    2017-01-31 · diff ↗ ·
    added 1 export
    st_voronoi
  • 0.3-0
    record
    2017-01-28 · diff ↗ ·
    removed 1 export
    st_drop_zm
    added 11 exports
    st_agr<-, st_precision<-, NA_agr_, read_sf, st_agr, st_is, st_precision, st_set_agr, st_set_precision, st_zm, write_sf
  • 0.2-8
    record
    2017-01-05 · diff ↗ ·
    added 9 exports
    plot_sf, sf.colors, sf_extSoftVersion, st_dimension, st_graticule, st_interpolate_aw, st_line_sample, st_linemerge, st_makegrid
  • 0.2-7
    record
    2016-12-07 · diff ↗ ·
    added 1 export
    st_layers
  • 0.2-6
    record
    2016-12-06 · diff ↗ ·
    added 1 export
    st_cast
  • 0.2-5
    record
    2016-11-24 · diff ↗ ·
    removed 1 export
    st_union_cascaded
  • 0.2-4
    record
    2016-11-22 · diff ↗ ·
    removed 2 exports
    st_is_within_distance, st_merge
    added 21 exports
    NA_crs_, arrange_.sf, cbind.sf, distinct_.sf, filter_.sf, gather_.sf, group_by_.sf, mutate_.sf, rawToHex, rbind.sf, rename_.sf, select_.sf, slice_.sf, spread_.sf, st_area, st_combine, st_length, st_list, st_set_crs, summarise_.sf, transmute_.sf
  • 0.2-2
    record
    2016-10-31 · diff ↗
  • 0.2-1
    record
    2016-10-27 · diff ↗
  • 0.2-0
    record
    2016-10-26
  • R
    R 3.3.0 released · 2016-05-03

Package metadata

First published
2016-10-26
Total releases
74 / 10 yrs
License
GPL-2 | MIT + file LICENSE OSI
Minimum R
≥ 4.1.0
Download size
9.3 MB

Cite

Cite this package

Run in R for the authors' entry:

citation("sf")

The package provides a citation file, so citation() returns the authors' own entry.

It points to 10.1201/9780429459016, 10.32614/rj-2018-009.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for sf version 1.1-3 [Data set]. HJJB, LLC. Data release v2026-10-21. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy