R Observatory
Search
install.packages("sf")
CRAN checks, method
OKnotes on 8 of 13
CRAN 30-day downloads, method
293K−7.9% down on the 30 days before, the worse direction
Test coverage, method
79%of lines run by tests

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

Full description

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.

Maintainer
Edzer Pebesma
Latest release
11 Sep 2026
First release
26 Oct 2016

Compare with another package

More details
Releases
74
Needs compilation
Yes
Needs R
>= 4.1.0
Config/needs/coverage
XML
Config/roxygen2/markdown
TRUE
Config/roxygen2/version
8.1.0
Config/testthat/edition
2
SystemRequirements
GDAL (>= 2.0.1), GEOS (>= 3.4.0), PROJ (>= 4.8.0), sqlite3
Task views (2)
Collections (2) Method, Collections
Subjects (1) Method, Subjects
Cite

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.

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-27. https://doi.org/10.5281/zenodo.21843040
About

From data release v2026-10-27, which the citation names so these numbers can be found later.

No warnings or errors. 8 of 13 check platforms have notes.

  • r-devel-linux-x86_64-debian-clang

    The unreleased R on Linux, x86_64, debian-clang

    Note

    Version checked
    1.1-3
    Time taken
    508 s

    tests: Note

    Running ‘aggregate.R’ [1s/2s]

    Full output

  • r-devel-linux-x86_64-debian-gcc

    The unreleased R on Linux, x86_64, debian-gcc

    Note

    Version checked
    1.1-3
    Time taken
    379 s

    tests: Note

    Running ‘aggregate.R’ [1s/2s]

    Full output

  • r-devel-linux-x86_64-fedora-clang

    The unreleased R on Linux, x86_64, fedora-clang

    Note

    Version checked
    1.1-3
    Time taken
    373 s

    tests: Note

    Running ‘aggregate.R’

    Full output

  • r-devel-linux-x86_64-fedora-gcc

    The unreleased R on Linux, x86_64, fedora-gcc

    Note

    Version checked
    1.1-3
    Time taken
    383 s

    tests: Note

    Running ‘aggregate.R’

    Full output

  • r-devel-windows-x86_64

    The unreleased R on Windows, x86_64

    Note

    Version checked
    1.1-3
    Time taken
    1,278 s

    tests: Note

    Running 'aggregate.R' [2s]

    Full output

  • r-oldrel-macos-arm64

    The previous release of R on macOS, arm64

    Note

    Version checked
    1.1-3
    Time taken
    106 s

    tests: Note

    Running ‘aggregate.R’ [0s/0s]

    Full output

  • r-oldrel-macos-x86_64

    The previous release of R on macOS, x86_64

    Note

    Version checked
    1.1-3
    Time taken
    422 s

    tests: Note

    Running ‘aggregate.R’ [1s/1s]

    Full output

  • r-oldrel-windows-x86_64

    The previous release of R on Windows, x86_64

    Note

    Version checked
    1.1-3
    Time taken
    1,452 s

    tests: Note

    Running 'aggregate.R' [2s]

    Full output

  • r-patched-linux-x86_64

    The patched release of R on Linux, x86_64

    OK

    Version checked
    1.1-3
    Time taken
    514 s
  • r-release-linux-x86_64

    The current release of R on Linux, x86_64

    OK

    Version checked
    1.1-3
    Time taken
    496 s
  • r-release-macos-arm64

    The current release of R on macOS, arm64

    OK

    Version checked
    1.1-3
    Time taken
    106 s
  • r-release-macos-x86_64

    The current release of R on macOS, x86_64

    OK

    Version checked
    1.1-3
    Time taken
    401 s
  • r-release-windows-x86_64

    The current release of R on Windows, x86_64

    OK

    Version checked
    1.1-3
    Time taken
    1,081 s
  • 8 Note
  • 5 OK
Check output (1)

tests, Note on 8 platforms

Running ‘aggregate.R’ [1s/2s]
  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’ [1s/2s]
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’ [4s/6s]
  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/4s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [30s/39s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ... OK
  Running ‘graticule.R’ [4s/6s]
  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’ [18s/25s]
  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/7s]
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ... OK
  Running ‘stars.R’ [4s/6s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘test-by-element.R’ [1s/2s]
  Comparing ‘test-by-element.Rout’ to ‘tes
[cut here]
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/1s]
  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/3s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [21s/28s]
  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/3s]
  Comparing ‘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/14s]
  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/4s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘test-by-element.R’ [1s/1s]
  Comparing ‘test-by-element.Rout’ to ‘tes
[cut here]

Over time

No change since 17 Sep 2026

As a list (13)
ChangedWorst statusOKNotesWarningsErrors
17 Sep 2026Note5800
8 Sep 2026Error7501
23 Jul 2026Note11200
19 Jul 2026Error01201
8 Jun 2026Note21000
7 Jun 2026Error21001
2 May 2026Note6700
25 Apr 2026Error4701
22 Apr 2026Note41000
18 Apr 2026Error31001
11 Apr 2026Note41000
9 Apr 2026Error31001
10 Mar 2026Note31100

Since March 2026

Check results on CRAN

Total downloads in the last 30 days
318,884−3.8% down on the 30 days before, the worse directionIt is the sum of 5 channels: CRAN, r2u, autoCRAN, conda-forge and c2d4u.

CRAN rank

188 of 26,529

CRAN

292,719 downloads in the last 30 days

Rank
188 of 26,529
Change
−7.9% down on the 30 days before, the worse direction

It is in the total. Take it out

r2u

11,017 downloads in the last 30 days

Rank
293 of 30,526
Change
+127% up on the 30 days before, the better direction

It is in the total. Take it out

autoCRAN

146 downloads in the last 30 days

Rank
442 of 29,212
Change
+17.7% up on the 30 days before, the better direction

It is in the total. Take it out

conda-forge

14,925 downloads in the last 30 days

Rank
369 of 3,828
Change
+78.1% up on the 30 days before, the better direction

It is in the total. Take it out

c2d4u, no longer updated

77 downloads in the last 30 days

Rank
378 of 7,575
Change
−67.1% down on the 30 days before, the worse direction

It is in the total. Take it out

Over time

Compare downloads

Needs
12
Dependent packages
894
Suggested by
391
Needs (12)
Installing it adds
8 packages, 7.5 MB of source
Of those, need compilation
7
Optional extras (36)
Dependent packages (50 of 894)
PackageTitleDownloads in 30 days
leafletCreate Interactive Web Maps with the JavaScript 'Leaflet' Library137,847
spdepSpatial Dependence: Weighting Schemes, Statistics55,482
starsSpatiotemporal Arrays, Raster and Vector Data Cubes49,588
leafem'leaflet' Extensions for 'mapview'40,091
lwgeomBindings to Selected 'liblwgeom' Functions for Simple Features39,152
tmapThematic Maps38,546
maptilesDownload and Display Map Tiles36,003
mapviewInteractive Viewing of Spatial Data in R33,039
tmaptoolsThematic Map Tools30,517
leafglHigh-Performance 'WebGl' Rendering for Package 'leaflet'29,910
leafpopInclude Tables, Images and Graphs in Leaflet Pop-Ups28,671
rnaturalearthWorld Map Data from Natural Earth28,345
ggspatialSpatial Data Framework for ggplot219,701
gstatSpatial and Spatio-Temporal Geostatistical Modelling, Prediction and Simulation19,397
epiRTools for the Analysis of Epidemiological Data17,825
tigrisLoad Census TIGER/Line Shapefiles17,482
tidyterra'tidyverse' Methods and 'ggplot2' Helpers for 'terra' Objects16,247
sftimeClasses and Methods for Simple Feature Objects that Have a Time Column16,071
spatialregSpatial Regression Analysis13,411
tidycensusLoad US Census Boundary and Attribute Data as 'tidyverse' and 'sf'-Ready Data Frames13,245
transformrPolygon and Path Transformations13,142
exactextractrFast Extraction from Raster Datasets using Polygons12,209
fmesherTriangle Meshes and Related Geometry Tools10,143
gridpattern'grid' Pattern Grobs9,636
dataRetrievalRetrieval Functions for USGS and EPA Hydrology and Water Quality Data6,293
rmapshaperClient for 'mapshaper' for 'Geospatial' Operations5,896
metRTools for Easier Analysis of Meteorological Fields5,837
giscoRDownload 'Eurostat' 'GISCO' Spatial Data5,628
elevatrAccess Elevation Data from Various APIs5,050
geobrDownload Official Spatial Data Sets of Brazil4,752
concavemanA Very Fast 2D Concave Hull Algorithm4,497
BIENTools for Accessing the Botanical Information and Ecology Network Database4,400
sfnetworksTidy Geospatial Networks4,360
geojsonioConvert Data from and to 'GeoJSON' or 'TopoJSON'4,342
duckspatialR Interface to 'DuckDB' Database with Spatial Extension4,323
automapAutomatic Interpolation Package4,191
blockCVSpatial and Environmental Blocking for Cross-Validation4,050
mapsfThematic Cartography4,033
pgirmessSpatial Analysis and Data Mining for Field Ecologists3,919
lidRAirborne Point Cloud Data Manipulation and Visualization for Forestry Applications3,894
inlabruBayesian Latent Gaussian Modelling using INLA and Extensions3,351
CAST'caret' Applications for Spatial-Temporal Models3,049
SUMMERSmall-Area-Estimation Unit/Area Models and Methods for Estimation in R3,041
ncdfgeom'NetCDF' Geometry and Time Series2,944
rgeodaR Library for Spatial Data Analysis2,927
usmapdataMapping Data for 'usmap' Package2,495
secrSpatially Explicit Capture-Recapture2,479
spatialsampleSpatial Resampling Infrastructure2,460
smoothrSmooth and Tidy Spatial Features2,392
waywiserErgonomic Methods for Assessing Spatial Models2,330
Functions
1,243
Public exports
157
Lines of R code
14,865
Median complexity
1
Functions (1,243)
Size and composition

Lines by kind (45,148)

KindLinesShare
R code14,86533%
Tests11,37125%
Documentation6,28314%
Guides2,4155%
Compiled code10,21423%

Lines by language

LanguageLinesShare
R21,15247%
C++10,11922%
Rd6,28314%
Other5,16311%
Vignettes2,3365%
C950.2%

Languages are counted from file extensions.

Files
358
R functions
874
Compiled functions
373
Object systems
S3: 376 methods, S4: 4 methods
Deprecated functions
5
Complexity
Median
1
Mean
2.95
Highest
71
Median lines per function
5
About complexity

Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only.

Call graph figures
R functions
874
Calls
1,584
Unconnected
89
Groups
19
Growth (74 releases)
Total lines by release
7,094 on 26 Oct 201645,148 on 11 Sep 2026
Release changes

The tests ran and coverage was measured.

Lines run by tests
78.9%
Expressions run by tests
76.1%
Test cases
239
Exports named in tests
73.9%
Coverage by file (48)
Coverage run
Lines counted
6,683
Lines the tests ran
5,619
Tests passed
Yes
Measured with
covr 3.6.5 on R 4.6.1
Test suite
Has tests
Yes
Test frameworks
testthat, tinytest
Test cases
239
Lines of tests
11,371
Test lines per line of code
0.76
Exports documented
100%
Arguments documented
92.8%
Return value documented
63.6%
Help pages with examples
68.2%
Examples run in checks
94.8%
Guides (7)
Other documentation
README
No
Release notes file
Yes
Help pages
85
Lines of documentation
6,283

r-spatial / sf on github.com

Stars
1,454+0.21% up on 30 days ago, the better direction
Forks
306
Open issues
58
Last commit
26 Oct 2026
Activity
Commits
5,584
Open pull requests
7
Tagged releases
8
Latest tagged release
v0.6-3, 18 May 2018
In development
Default branch at 1.1-4, ahead of CRAN 1.1-3 (checked 2026-10-25)
Issues closed in
3 days (median)
Pull requests closed in
2 days (median)
Pull requests merged
80%
Created
6 Nov 2015
Licence file reads as
–
Development practices (11)
KindFound
Continuous integrationGitHub Actions, R CMD check workflow, tic
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
Governance and communityCode of conduct, Issue templates
Docs sourcepkgdown
GitHub Pages site last deployed 2026-10-21
The repository has a site deploy workflow
pkgdown site last built 2026-10-21
CoverageCoverage reporting (Codecov)
Lint, format, editorRStudio project
Git structural.gitattributes

Method, repository practices

Across r-spatial

Claude Codeat least 1 crediting itClaude CodeFirst seen 27 Sep 2026at least 1 crediting it
Claude Opus 5.5Claude Opus 5.527 Sep 20261 commit

Tools

ToolFirst seenCommits crediting it
Claude Code27 Sep 20261 at least

Models

ModelCommitsFirst commitLast commitCredit lines of
Claude Opus 5.5127 Sep 202627 Sep 2026Claude Code

Across r-spatial

R releases
  • On CRAN
  • Facing archival
  • Release
Named in place of
maptools, archived on 16 Oct 2023, in CRAN's words
Named in place of
rgdal, archived on 16 Oct 2023, in CRAN's words
Named in place of
rgeos, archived on 16 Oct 2023, in CRAN's words
VersionReleasedREvents
1.1-3 current11 Sep 20264.6.1Fix due 29 Sep 2026
The checks were fixed and the deadline was lifted.
1.1-223 Jul 20264.6.1Fix due 21 Aug 2026
The checks were fixed and the deadline was lifted.
1.1-16 May 20264.6.0
1.1-024 Feb 20264.5.2
1.0-2413 Jan 20264.5.2
1.0-2328 Nov 20254.5.2
1.0-2210 Nov 20254.5.2
1.0-2115 May 20254.5.0
Earlier versions (66)
VersionReleasedR
1.0-2024 Mar 20254.4.3
1.0-195 Nov 20244.4.2
1.0-1811 Oct 20244.4.1
1.0-176 Sep 20244.4.1
1.0-1625 Mar 20244.3.3
1.0-1518 Dec 20234.3.2
1.0-1411 Jul 20234.3.1
1.0-1324 May 20234.3.0
1.0-1220 Mar 20234.2.3
1.0-1115 Mar 20234.2.3
1.0-1012 Mar 20234.2.2
1.0-98 Nov 20224.2.2
1.0-814 Jul 20224.2.1
1.0-77 Mar 20224.1.2
1.0-64 Feb 20224.1.2
1.0-517 Dec 20214.1.2
1.0-414 Nov 20214.1.2
1.0-37 Oct 20214.1.1
1.0-226 Jul 20214.1.0
1.0-129 Jun 20214.1.0
1.0-09 Jun 20214.1.0
0.9-817 Mar 20214.0.4
0.9-76 Jan 20214.0.3
0.9-613 Sep 20204.0.2
0.9-514 Jul 20204.0.0
0.9-413 Jun 20204.0.0
0.9-34 May 20204.0.0
0.9-214 Apr 20203.6.3
0.9-16 Apr 20203.6.3
0.9-024 Mar 20203.6.3
0.8-128 Jan 20203.6.2
0.8-017 Sep 20193.6.1
0.7-724 Jul 20193.6.1
0.7-65 Jul 20193.6.0
0.7-53 Jul 20193.6.0
0.7-426 Apr 20193.6.0
0.7-321 Feb 20193.5.2
0.7-220 Dec 20183.5.2
0.7-124 Oct 20183.5.0
0.7-017 Oct 20183.5.0
0.6-317 May 20183.5.0
0.6-225 Apr 20183.5.0
0.6-122 Mar 20183.4.4
0.6-06 Jan 20183.4.3
0.5-531 Oct 20173.4.2
0.5-428 Aug 20173.4.1
0.5-330 Jul 20173.4.1
0.5-212 Jul 20173.4.1
0.5-123 Jun 20173.4.0
0.5-015 Jun 20173.4.0
0.4-315 May 20173.4.0
0.4-25 May 20173.4.0
0.4-128 Mar 20173.3.3
0.4-021 Mar 20173.3.3
0.3-46 Feb 20173.3.2
0.3-24 Feb 20173.3.2
0.3-131 Jan 20173.3.2
0.3-028 Jan 20173.3.2
0.2-85 Jan 20173.3.2
0.2-77 Dec 20163.3.2
0.2-66 Dec 20163.3.2
0.2-524 Nov 20163.3.2
0.2-422 Nov 20163.3.2
0.2-231 Oct 20163.3.2
0.2-127 Oct 20163.3.1
0.2-026 Oct 20163.3.1
Release notes (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