st_buffer
receives the buffer stylesendCapStyle
,joinStyle
andmitreLimit
; #833, #842 by Mike Sumner
-
st_area
is now a generic; r-spatial/stars#32 -
st_write
now resolves~
correctly; #456 -
read and write feature IDs as sfc list column names; #812
-
st_centroid
now works for empty geometries, returning an empty point #769 -
add
st_nearest_points
, to obtain the (LINESTRING
connecting the) two nearest points for pairs of geometries; #788 -
add hexagonal tiling to
st_make_grid
-
add regular and hexagonal sampling to
st_sample
-
fixes for PROJ 5.0.1; #545
-
fixes for GDAL 2.3.0; #759
-
st_sample
supports regular sampling ofLINESTRING
; #725 by @statnmap -
Support reading and writing of database
Pool
objects; #756 -
fix plotting of
sf
objects without attributes; #755 -
add reference to the R Journal article in CITATION
-
move dependency
RPostgreSQL
from Imports: back to Suggests: -
st_centroid.sf
andst_point_on_surface.sf
now also warn if attributes are not constant over geometries. -
summarise
now allows the user to define geometries for summaries; #714, by Kirill Mueller -
plot.sf
now emits a warning ifcol
does not have length 1 ornrow(x)
, and requirespal
(rather thancol
) to set a palette for factors. -
plot.sf
provides control over legend keys usingkey.length
andkey.width
, decrease default key length; #731 -
sgbp
objects receive anas.data.frame
method; #715
-
GDAL read/write now supports logical variables; #722
-
add
st_crop
to simplify cropping objects with a rectangular area; #720 -
fix bug in
[<-
when columns are added to ansf
object; #718 -
use dynamic registration of S3 methods, similar to how hms does this; #710 by Kirill Mueller
-
(partially) address writing GPKG to network drive, writing to temp file first; #628
-
add Kirill Mueller as contributor
-
st_make_grid
is now faster; #708, by Dan Baston -
st_read
andst_write
are now generic, with methods for directly reading from and writing to database connections;st_read_db
andst_write_db
are now deprecated; #558, thanks to Etienne Racine @etiennebr -
Package
RPostgreSQL
moved from Suggests to Imports -
restore compatibility with GDAL 2.0.x versions (which won't have
gdal_utils
); #686 -
read_sf
can now also read tables without geometry; #684, by Andy Teucher
-
method
distinct
now works; #669, #672 -
+
,-
,*
and/
for pairs of geometries (sfg
,sfc
) now return geometric union, difference, intersection and symmetric difference, respectively. -
st_cast
fromMULTIPOLYGON
toMULTILINESTRING
should now work properly; #660 -
all Rcpp interfaces needed by package
stars
have now been moved intosf
; pkgstars
is now R-only, and onlysf
needs linking to GDAL. -
gdal_utils()
now interfaces the 9 gdal utils using the C++ API -
improve resetting (base) plots; add
reset = FALSE
in a call toplot
to enable adding to plots that have a legend -
st_read
now returns adata.frame
when a table contains no geometries, rather than giving an error; it does emit a warning in this case. See https://stat.ethz.ch/pipermail/r-sig-geo/2018-February/026344.html -
move
pillar
fromImports:
toSuggests:
-
update to the new rwinlib distribution of gdal (adds JPG2000); #639
-
speed up computation of centroids for largest polygon; #623
-
add
st_as_sfc.raw
method -
Bugfix: binary operations (
st_intersection
,st_difference
, etc) no longer fail when operating on data frames of class"tbl_df"
with common column names; #644
-
add
pillar
to Imports: to provide method for printing WKT geometries in tibbles -
st_as_text
, and subsequentlyformat
andprint
, now use argumentdigits
(oroptions(digits = n)
) to control the number of digits used for printing coordinates; default is nowoptions("digits")
, which is typically 7. -
st_is_within_distance
now works with geographic coordinates -
st_cast
fromMULTIPOLYGON
toMULTILINESTRING
no longer changes the number of features/feature geometries, but conversion fromMULTIPOLYGON
toLINESTRING
now (typically) does; #596 -
st_distance
for long/lat geographic coordinates now useslwgeom
, accepting all geometry types; argumentdist_fun
is deprecated as a consequence, and distance calculations are different from those in sf versions 0.5-5 or earlier; #593 -
add package
lwgeom
to Suggests;st_area
,st_length
,st_distance
,st_segmentize
for long/lat CRS now use packagelwgeom
instead ofgeosphere
; #593 -
st_length
now returns zero for polygon-type geometries; #593 -
if present, add units of attribute to default plot title; #591
-
add
unnest
method, which depends ontidyr
> 0.7-2; #570 PR by @karldw -
add
largest
option tost_join
to get largest intersection match only; #547, by @tiernanmartin -
change default maximum number of feature to print to 10, controllable by
options(sf_max_print)
; #556 -
add
Hausdorff
(andFrechet
for those with GEOS 3.7.0) as options tost_distance
; addpar
for densified versions -
add
st_snap
, for snapping geometries to other geometries, within a tolerance -
make
st_wrap_dateline
a generic, with methods forsf
,sfc
andsfg
; #541 -
plot.sf
andst_as_grob
(used by ggplot2) are now robust against misspecified ring directions (holes that have the same direction as the exterior rings), by usingrule = "evenodd"
; #540 -
functions depending on
liblwgeom
(st_make_valid
,st_geohash
,st_plit
) have been moved to their own package, https://github.com/r-spatial/lwgeom; argumentuse_gdal
ofst_transform
has been deprecated, instead one can now uselwgeom::st_transform_proj
; sf now no longer tries to link to liblwgeom; #509, #537, #487 -
st_read
,st_sf
andst_sfc
gain a parametercheck_ring_dir
(default:FALSE
) that checks ring directions and corrects to: exterior counter clockwise, holes clockwise, when seen from above. -
get rid of
classInt::classIntervals
warning if number of unique values is smaller than the number of breaks asked for
-
have
classInt
in Imports:, to not break other package checks -
add vignettes 5: plotting sf objects and 6: miscellaneous; #324
-
add (default) color key to
plot.sf
if single map is plotted, contributed by @hughjonesd; #528 -
st_as_sfc
can now read EWKT; #530 -
argument
max.plot
takes its default fromoptions(sf_max.plot=n)
, if present; #516 -
plot.sf
gets an argumentspal
to specify a color palette function; #526 -
plot.sf
gets argumentsbreaks
andnbreaks
; add support forclassInt::classIntervals
styles for finding class intervals (usingbreaks
) -
add
st_as_sf
methods forppp
,lpp
andpsp
objects from spatstat. -
allow for direct route to proj.4 ignoring GDAL (requiring liblwgeom); #509, #511
-
add
print
method forcrs
objects; #517 -
sf_extSoftVersion
now reveals whether GDAL was linked to GEOS; #510 -
better check input of
st_polygon
; #514 -
add
st_node
, similar torgeos::gNode
-
support for reading
OFTInteger64List
fields; #508 -
sparse geometric binary predicate lists now have a class,
sgbp
, and attributesregion.id
andpredicate
; #234, #524 -
prevent
st_split
from stopping the R session; #492 -
st_intersection
,st_union
and so on now also print a message when used directly on long/lat coordinates; #496 -
add
rep
method forsfc
objects -
comparing two
crs
objects now uses the GDAL functionIsSame
; #180 -
add
st_collection_extract
, which, given an object with geometries of typeGEOMETRY
orGEOMETRYCOLLECTION
, returns an object consisting only of elements of the specified type; by Andy Teucher, #482 -
st_write
exports GeoJSON with UTF-8 encoding on Windows; #444 -
move package methods from Imports: to Depends: ; #478
-
deal better with precision setting and propagation; #476
-
fix bug in
st_layers
in case layers have no geometry; #334 -
clarify argument
envelope
inst_voronoi
; #474 -
change aggregate to make it return the same geometry as 'by', padding attributes with NA where needed; #453
-
fix compatibility problems introduced by
tidyr
0.7-0 using rlang magic -
convert path names to UTF-8 in
st_read
,st_write
andst_layers
; #471 -
st_sfc
convertsNULL
values into empty geometries, and correctly identifies emptyPOINT
s; #466, #463 -
st_write
abbreviates column names if driver isESRI Shapefile
; #464 -
add
of_largest_polygon
argument tost_centroid
, to get the centroid of the largest polygon; #450 -
fix use of
st_relate
as join predicate forst_join
; #454 -
fix bug where
st_intersects
with empty second argument would crash; #458 -
produce better WKT; #463
-
fix bug in
st_cast.sf
; #461, #462 -
change
st_read
SRS assignment logic; corrects reading projected geojson with gdal 2.2.0; #449 -
st_intersection
etc. ontbl
now also returntbl
; #448 -
[.sf
preserves class, e.g. oftbl
; #448
-
support and propagate all Proj.4 +units=xx length units; #446
-
allow for arith ops on empty
sfc
objects -
have
st_graticule
return an empty graticule object when argumentdatum
isNA
; -
export
as_Spatial
, to make it easer for packages to convertsfc
objects without importingsf
-
st_distance
gains a parameterby_element
to obtain pairwise distances; #437 -
add the ability to
aggregate
using a simple featureby
argument; #429 -
make the
op
argument to[.sf
work -
speed up
st_coordinates
forPOINT
geometries; #433 -
fix performance regression for
st_bbox
; #418 -
correct bug in
st_union
,st_difference
andst_sym_difference
introduced in 0.5-2; #431 -
inform gdal about the CRS always through the proj4string, never through the epsg; see #424
-
properly deal with kilometre units; #424 (fixed by Karl Dunkle Werner)
-
add
st_is_within_distance
, only to return a sparse index matrix; #419 -
have
st_graticule
work with world2 (0,360); #421, #422, fixed by Ben Best -
st_graticule
to return graticules in native crs; tidyverse/ggplot2#2200 (WIP) -
st_graticule
to support data inNA_crs_
; tidyverse/ggplot2#2199 -
fix bug when joining an sf-tibble with a
tibble
; #414 -
read gdal
StringList
,RealList
, andIntegerList
fields into a list-column; #416
-
made ready for rwinlib/gdal2; #408
-
make
[.sf
for selections includingNA
values likex[c(1,NA,2)]
; #403 -
add a
[<-
method forsfc
objects; automatically replacesNULL
with an empty geometry; #411 -
add
st_point_on_surface()
to return a point that is guaranteed to be on the surface (standard compliance) -
read_sf
now returns an sf-tibble, an object of classc("sf", "tbl_df", "tbl", "data.frame")
-
work around for
dplyr::filter
not dispatching geometry column subsetting tosf::[.sfc
-
allow
units
object asdist
argument tost_buffer
; these must be convertable toarc_degree
for geographic, and to a length unit for non-geographic data; #399 -
prevent gdal from crashing when trying to
st_transform
an empty geometry; #398 -
add
st_as_sfc
method forbbox
, returning the bbox polygon; #377 -
strip file name extension from default layer name in
st_write
; #392 -
have
st_sf
replaceNULL
values in ansfc
list-column with the appropriate empty geometry; #372 -
allow setting
ndiscr
throughggplot2::coords_sf
to improve graticule plotting ingeom_sf
; #396
-
add spatial indexes to most binary geometry operations; #394 and http://r-spatial.org/r/2017/06/22/spatial-index.html
-
drastically reduce memory footprint of
st_intersection
and similar; #394 -
support RSQLite 2.0 by providing an
st_as_sfc
method for list columns of classblob
-
drop dependency on dbplyr
-
better handle empty/NULL geometries in shapefiles; #351
-
add
unite_.sf
method -
deprecate
FUN
argument tost_join
; #376 -
improve graticule tic label placement in
ggplot2
; #375 and tidyverse/ggplot2#2119 -
improve
configure
logic to deal with libraries installed in custom locations; #335 -
fix bug where
geom_sf
wouldn't deal with Z and/or M geoms; #373 -
return more conveniently typed empty geoms; #372
-
fix subsetting with
[
ofsf
usingdrop = TRUE
, #370 -
in addition to
m
, allowrad
units tost_segmentize
-
add example how to
st_read
GeoJSON from a string; #185 -
add
separate_.sf
method -
add
st_split
to split geometries (only available if compiled against liblwgeom), #359 -
fix bug reading and writing dates (months 1 off): #358
-
[.sf and [.sfc now also select on i when i is an
sfg
object, and accept a geometric predicate function with optional arguments; #352 -
on reading through GDAL, empty (NULL) geometries no longer result in an error; on creation, they no longer automatically give a
GEOMETRY
object; #351 -
on plotting with
ggplot2::geom_sf
, empty geometries no longer break; grid functions returnnullGrob()
for them; #351 -
arith operations on empty geometries no longer break or give warnings; #351
-
have
st_as_sf.data.frame
by default break onNA
values in coordinates; #342 -
have
st_join
accept further arguments, to be passed on to thejoin
function (e.g. a pattern forst_relate
) -
have WKB reader throw an error on (some) malformed inputs, and check for buffer bounds
-
back-port
do_union
argument to dplyr <= 0.5.0, using lazyeval -
all strings returned from OGR/GDAL now get encoding set to
UTF-8
, making them work on non-UTF-8 platforms; #5 -
$.crs
now retrieves proj4string components, such asst_crs(4326)$datum
in addition toepsg
andproj4string
-
let
st_geohash
return geohash for (average) points (only when sf was linked to liblwgeom)
-
summarise.sf
now always returns ansf
object, also for global (non-grouped) summaries. -
summarise.sf
gains an argumentdo_union
which determines whether to union the geometries for which a summary is given, or tost_combine
them (not resolving boundaries); #331 -
rename argument
union
ofaggregate.sf
intodo_union
, for consistency withsummarise
; #331 -
add a
nest_
method forsf
objects -
st_relate
gets apattern
parameter, same asrgeos::gRelate
; add examples to get rook and queen neighbour lists using this; #234 -
support for direct reading of spatialite and sqlite geometry wkb blobs
-
build proper support for
cbind
andrbind
methods forsf
, which work (as documented) when all arguments are of classsf
;dplyr::bind_cols
orst_sf(data.frame(sf, df))
work for bindingdata.frame
s to ansf
object. -
st_segmentize()
andst_line_sample()
now accept units arguments -
document problem reading shapefiles from USB drives on OSX; #252
-
improve docs of
st_is_valid
andst_make_valid
; #296 -
coercing
sf
todata.frame
now works better; #298 -
st_line_sample
gains argumentsample
to specify the points t.b. sampled; #299 #300 thanks to @joethorley -
add compatibility to upcoming dplyr 0.6.0; #304 #42
-
write GDAL fields by name, not by number, fixing a KML problem #308
-
st_write
gains argumentsdelete_layer
anddelete_dsn
to allow overwrite capability #307 #274 -
write_sf
defaults todelete_layer=TRUE
, silently overwriting layers if they're already present -
compatibility with GDAL 2.2beta0; #303; #309
-
replace
st_write_db
with a version that is fast for large datasets (#285), thanks to Josh London -
take out more memory leaking examples in tests
-
the
aggregate
method forsf
objects now assumes theby
argument to be identical to that ofstats::aggregate
-
st_wrap_dateline
wraps (cuts up) geometries crossing the antimeridian, such that they no longer cross it.
-
restore 3.3.0 and c++11 requirement
-
st_read
now respects time that is read as UTC -
st_write
now writes time always as UTC, since GDAL does not have a mechanism to define local timezones other than "unkown" or "local" -
st_length
now works for POINT and MULTIPOINT (returning 0); POLYGON and MULTIPOLYGON are converted to MULTILINESTRING before computing length, thus giving polygon perimeter (#268) -
st_write
now hasupdate
depend on driver; now, for databases, the default isTRUE
, otherwiseFALSE
(it refers to update of the database, and not to overwriting the table in the database, this will by default not succeed); #274 -
st_read
supports reading objects with multiple geometry columns #257 #255 -
support writing (exporting) objects with non-standard columns, such as
units
orPOSIXlt
#264 -
catch dependencies on GEOS 3.3.5 (hence no 0.4-0 CRAN binary for MacOSX) #260
-
have
st_is_valid
catch corrupt geometries too, returningNA
in that case (requiring GEOS 3.5.0) -
add
st_make_valid
, only available when sf was linked toliblwgeom
-
add
st_coordinates
method, returning coordinates matrix with indexes -
remove
unlist.sfg
-
add
as.matrix.sfg
; have as.matrix.sfg add indexes to coordinates -
add
st_bind_cols
method -
improve handling features that can't be projected
-
support uniform sampling over polygons on the sphere
-
add
st_sample
, for sampling points on multipoints, linestrings, or polygons -
add
c
method forsfc
objects -
import and export
magrittr::%>%
-
support ggplot'ing geometrycollections
-
drop C++11 requirement, allowing build for older R versions
-
add
st_proj_info
, modelled afterrgdal::projInfo
-
overwriting datasets with
st_write
is no longer allowed; update=TRUE appends to them, permitted the driver supports appending. -
st_write
gains an argument,update
, which whenTRUE
will try to append to existing datasets (#204) -
added list of corresponding function for migration from sp, rgdal and rgeos to sf at https://github.com/edzer/sfr/wiki/migrating
-
remove deprecated
st_list
-
rename
st_makegrid
tost_make_grid
, andst_linemerge
tost_line_merge
-
add NEWS.md file (#207)
-
faster conversion of
data.frame
intoPOINT
sf
object, usingst_as_sf
(Mike Sumner) -
rbind
method forsf
objects now keeps coordinate reference system
-
add
st_contains_properly
spatial predicate -
GEOS functions (geometry operations) now accept XYZ geometries (and ignore Z)
-
make
prepared = TRUE
the default for all geometry binary operations
-
add user interrupt checks in all GEOS geometry operations
-
make
st_graticule
do something useful for polar projections -
make
st_graticule
returnNA
labels when labels are useless -
add
merge.sf
methods to mergesf
object anddata.frame
(#193) -
add
st_join
for table joins based on (user-defined) spatial predicates -
add
dplyr
-style non-spatial joins forsf
objects (left_join
,full_join
etc.) (#193) -
allow for multiple non-gathered variables (#196)
-
add missing meridian to
st_graticule
(#198)
-
add
merge
method (#193) -
st_graticule
for laea (#198) -
allow
st_buffer
with feature-dependent buffer distance (#197) -
have
spread
return ansf
object (#196) -
clarify
overwrite = TRUE
in write docs -
fix
st_as_sf.map
(#194) -
add
prepared
arg to spatial binary predicates, to speed up large intersections -
add
st_voronoi
interface (requires that lib GEOS >= 3.5.0) -
add
st_as_sf
methods formap
objects (library maps) -
add RStudio project file
-
have
st_bbox
return abbox
object which has anst_crs
method -
rename
st_drop_zm
intost_zm
, for general more handling of Z and M -
allow for 3D coordinates returned, when
+proj=geocent
(#172; #103) -
fix
NA_integer_
handling in shapefiles I/O (#184) -
add and fix
st_agr
API, to set and get attribute-to-geometry relationships