The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
st_crs(..., parameters = TRUE) returns base
geographic CRS as gcs_crs; #2524
loading sf no longer initializes the RNG state; see
https://github.com/r-quantities/units/issues/409
fix st_sample() on geodetic coordinates;
#2515
use compareVersion() consistently to compare GDAL
versions; #2512
st_buffer() on geodetic coordinates with negative
buffer distance now automatically switches to using GEOS, while giving a
warning; #1987
st_interpolate_aw() fixes bug when a
GEOMETRYCOLLECTION contains multiple POLYGON structures; found by @mtennekes
st_buffer() for geodetic coordinates allows
max_dist and min_level to be specified by
feature; #2488 and https://github.com/r-spatial/s2/pull/264
distinct.sf() allows for comparing exact equality of
geometries when exact = TRUE; #2484
st_minimum_bounding_circle() returns geometries
representing the smallest circle that contains the input; #2473
fix type checks in C++ GDAL area and length computation functions, anticipating GDAL 3.10.0; #2466, #2468, #2469 by @rsbivand and @rouault
improve test on empty geometries, which changed in 1.0-18; #2463
gdal_utils() ogrinfo has an argument
read_only which, when TRUE (or
options includes "-ro"), opens a datasource in
read-only mode (#2460; sf did this before 1.0-17); by
default a datasource is opened in update (read-write) mode (since sf
1.0-17; #2420)
the sf -> ppp conversion
as.ppp.sf() accepts a data.frame of marks instead of just 1
column #2450, by @agila5
add flag for preservation of point order in
st_voronoi #1371 for GEOS >= 3.12
support POLYGON FULL simple feature geometry,
representing the entire Earth surface, as used by
s2geometry; see also
https://r-spatial.org/r/2024/10/11/polygonfull.html for a longer
introduction; #2441
st_sfc() has an argument oriented
which, when set to TRUE, adds an attribute
oriented=TRUE to an sfc object, indicating
that this object should not be reoriented in conversion to
s2_geography (avoiding using the global option
s2_oriented); st_as_sfc.bbox() sets this to
TRUE; #2441
fix build failure with GDAL < 3.4.0 #2436
st_simplify() now accepts feature-wise tolerance
values when s2 is switched on #2442
add st_transform() method for bbox
objects; this uses OGRCoordinateTransformation::TransformBounds(),
densifying first and antemeridian proof; #2415
st_filter.sf() correctly scopes x and
y arguments using !! operator; #2416
[.sfc and [<-.sfc use matrix/array
type subsetting for sfc objects that have a
dim attribute
add st_exterior_ring() to extract exterior rings
(remove holes); #2406
add text.sf(), text.sfc(),
points.sf(), points.sfc() to annotate base
plots at geometry centroids; #2399
st_sf() no longer strips tbl or
tbl_df class labels; #2378
st_layers() returns an object of class
c("sf_layers", "data.frame"), with a dedicated
print method.
when dim is not XYZM,
sf_as_sf.data.frame() interprets a length 4
coords argument to specify the corners of a rectangular
polygon; #2357
st_interpolate_aw() gains an na.rm
argument, for removing features with NA attributes before
interpolating; #830
merge.sf() no longer renames geometry column;
#2334
st_join() no longer renames the geometry column;
#2327
st_sample() works when unprojected polygon geometry
crosses the antemeridian; #2331
clean up and modernization of S3 registration of methods and tests; #2285, #2288, #2316, #2341, #2342, by @olivroy
[.sfc works when setting argument op;
#2320
st_sample() for polygons is sensitive to setting
oriented = TRUE to prevent wrongly correcting ring
directions; #2308
add support for the GDAL footprint utility
(requiring GDAL >= 3.8.0) to gdal_utils; #2305, by @goergen95
existing environment variables PROJ_LIB and
PROJ_DATA are (again) ignored on sf binary
CRAN installations (win + macos), effectively by overwriting them during
the R session and restoring them on exit; this does not happen if
environment variable R_SF_USE_PROJ_DATA is set to
true. #2298
add st_line_project() to find how far a point is
when projected on a line; #2291
add st_line_interpolate() to obtain a point at a
certain distance along a line; #2291
add st_perimeter() generic to cover both geographic
and projected coordinates; #268, #2279, by @JosiahParry
add st_sample() method for bbox, with
special provisions for ellipsoidal coordinates; #2283
documentation clean-up by @olivroy; #2266, #2285
st_convex_hull() uses
s2::s2_convex_hull() for geodetic coordinates;
#2250
add directed argument to
st_line_merge(); #2264
st_union.sfc() given x and
y works consistently across geodetic and projected objects;
#2262
st_union.sf() given x and
y unions pairwise if by_feature = TRUE;
#2259
st_read() work around issue with GPKG driver if
wkt_filter is set; #2248
st_read() uses GDAL’s stream reading when
use_stream = TRUE; #2238 by @paleolimbot
st_transform() responds to in-session changes to
sf_proj_network(); #2166
plot.sf(): key.width is sensitive to
pointsize graphics parameter par("ps"); keys with factor
levels suggest a proper size if they won’t fit.
plot.sf(): key.pos can hold a second
value in [0, 1] determining the relative position of the key in the
available space
[<-.sf fixes the agr attribute when
it is broken; #2211
if the env. variable ADD_SF_NAMESPACE is set to
true, sf objects get a new attribute,
.sf_namespace, which forces loading the sf
namespace when it has not been loaded so far, e.g. for proper printing
or plotting of an sf object; #2212 by Mike Mahoney
distinct.sf() is type-safe for sf
objects with zero rows; #2204
summarise.sf() raises an error if .by
is given but no across() on the geometry; #2207
st_write() matches fields on name first, than on
position; this matters for formats that have pre-defined names, such as
GPX; #2202
fix plot.sf() when using a key for multiple factor
variables; #2196, #2195
fix use of as.numeric_version in a test, for
upcoming change in r-devel
code tidy-ing: fix many lintr suggestions, thanks to Michael Chirico (#2181 - #2191)
gdal_utils() adds "ogrinfo" utility
(requires GDAL >= 3.7.0); #2160
st_as_sf() catches errors when setting invalid crs
values, raised by Jon Skøien
add rename_with.sf() method; #1472
use GEOS’ overlayNG routines for (GEOS) Intersection, Difference, Union and SymDifference; #2143
added duplicated.sf(); #2138, #2140, thanks to @bart1
select.sf() allows selecting the same column twice
under different names; #1886
st_as_sf.ppplist() is deprecated; #1926
st_cast() handles empty geometries; #1961
don’t repeat longlat messages in summarise.sf();
#1519
fix random sampling on the sphere; #2133
update NAMESPACE to
useDynLib(sf, .registration=TRUE); #2127 thanks to @eddelbuettel
fix call in gdal_addo(); #2124
fix issues that came up with older GDAL version, use
GDAL_VERSION_NUM consistently; #2123 #2121 #2119
st_make_grid() also accepts area units for
cellsize, for square and hexagonal grids; #1505
add st_concave_hull(), for concave hulls, if GEOS
>= 3.11.0; #1964
add st_triangulate_constrained(), for constrained
Delaunay triangulation, if GEOS >= 3.10.0; #1964
clean up the retrieval of length or angle units from WKT representations; https://lists.osgeo.org/pipermail/gdal-dev/2023-March/056994.html
conversion to GEOS uses the GEOS_PREC_VALID_OUTPUT
flag, which makes sure that the “[o]utput is always valid. Collapsed
geometry elements (including both polygons and lines) are
removed.”
gdal_utils() has a config_options
argument to set further GDAL options, just like st_write();
#2003
fix slow writing of logical vectors in st_write();
#1409; #1689
st_drivers() has an argument regex to
filter on driver (long) name; #2090
drop C++11 as a system requirement
c.sfc() (and, consequently,
dplyr::bind_rows()) gives an error if components have
different CRS; #1884
data imported from maps are associated with the
Clark 1866 ellipsoid; #2080
fix importing legacy SpatialPolygon objects without
comments; #2063, #2069,
https://github.com/rstudio/leaflet/issues/833
st_read() no longer errors on mixes of
XY and XYZ geometries; #2046 #1592
in plot.sf(), when numeric breaks are
given a legend key is always plotted; #2065
st_crs()$axes returns a data.frame with
axes properties (name, orientation, conversion factor) when GDAL >=
3.0.0
clean up unit handling for geometry measures (length, area, distance) and crs;
st_crs(x)$ud_unit returns NULL if units
are unknown; #2049
st_write() substitutes an NA crs with
ENGCRS["Undefined Cartesian SRS with unknown unit"]; #2049,
#2054
st_can_transform() checks whether a transformation
between two crs exists; see
https://github.com/dieghernan/tidyterra/issues/64; #2049
the matrix returned by st_coordinates() has no row
names, to reduce output size
adjust for changes how R-devel handles POSIXlt;
#2028
add st_break_antimeridian(); #1983, #1991 by Roger
Bivand
add Fibonacci as a spatial sampling type in
st_sample()
use the global options("sf_use_s2") to determine
whether to use s2, rather than a value in a local environment;
#1977
fix utils mdiminfo and mdimtranslate in
gdal_utils()
extend arguments of gdal_read_mdim() needed by
stars::read_mdim() if stars >= 0.5-7; add
gdal_write_mdim()
add drop_na() method for sf objects;
#1975
st_drop_geometry.default() returns x
unmodified;
sf_project() accepts 3- or 4-column matrices,
containing z and t values;
optimization for st_sfc() by @paleolimbot; #1938, #1925
[<-.sfc() recomputes the bounding box;
st_sfc() gets parameter compute_bbox;
#1965
add new algorithm and drop option to st_make_valid()
when using GEOS and GEOS >= 3.10.1; #1655
add st_minimum_rotated_rectangle(), available when
GEOS >= 3.9.0; #1953
fix st_sample() with type = "hexagonal"
for corner case (n=1), add a progress argument for a
progress bar; #1945
add package pbapply to Suggests; #1945
add pdf driver to windows build; #1942
clarify pipeline argument in
st_transform() when axis order is ambiguous; #1934
handle argument xpd in calls to
plot.sfc_POLYGON() and
plot.sfc_MULTIPOLYGON()
add pivot_wider() method, by Henning Teickner;
#1915
add gdal_addo() to add or remove overviews from
raster images; #1921
st_layers() returns crs of each layer
in a crs list of crs objects
restore st_graticule() behaviour to pre-sf 1.0-0;
https://github.com/tidyverse/ggplot2/issues/4571
gdal_metadata() sets metadata item names
properly
st_read() gains an argument optional
passed on to as.data.frame to avoid changing column names;
#1916
GPX files are autodetected by st_read();
#1917
unnecessary coordinate names are not returned in
st_sample(), making the output size smaller; #1879
st_drop_geometry() is a generic; #1914
st_crs(x)$ud_unit returns the unit of the coordinate
reference system of x
geometric predicates return sgbp objects omitting
self-intersections etc. by passing remove_self = TRUE and
unique symmetric relationship by passing
retain_unique = TRUE (to ... if needed); this
simplifies identifying (and removing) duplicated geometries; duplicates
are identified by e.g. by
st_equals(x, retain_unique = TRUE) |> unlist() |> unique();
#1893
fix compile issue against GDAL < 2.5.0 introduced in 1.0-6; #1899
adapt to new spatstat.random package; #1892
st_geometry<-() also allows to rename a geometry
column in an sf object; #1890
for sf objects, the st_as_sfc() method
is an alias for st_geometry(); #1882
st_make_grid() speeded up; #1579 thanks to Krzysztof
Dyba
remove direct and indirect dependencies on rgeos and
rgdal; #1869
use stats::dist rather than GEOS for symmetric
point-point Euclidian distance computation; #1874
package startup message reports status of
sf_use_s2(); #1782
sf_use_s2() uses message() to report a
change; #1782
st_sample() using regular sampling for ellipsoidal
coordinates “works” as if coordinates were Cartesian; #1837
new function st_delete() deletes a data source, or
layer(s) within a data source; #1828
fix memory leak in WKT1_ESRI retrieval;
#1690
cope with how GEOS >= 3.10.0 handles illegal geometries (e.g., non-closed rings); #1807
crs objects have a $srid method to
extract the SRID (as authority “name:code”); #1804
st_as_grob() methods for sfc_* objects
correctly handle empty geometries; #1789 with help from Hiroaki
Yutani
when writing objects with NA as CRS to GeoPackage,
assign “Unknown Cartesian CRS” first - this is in line with using
Cartesian geometry operations for objects with NA as CRS;
#1776
add coerce method from sgbp to
sparseMatrix; #1750
fix st_cast() for GEOMETRYCOLLECTIONS
containing empty geometries; #1767
fix st_is_valid() for bogus polygons and projected
coordinates; #1666, #1760; #1761
st_read() and st_write() using GDAL
handle binary attributes (OFTBinary fields) ; #1721
a pivot_longer method is added for sf
objects (the data.frame method works, but raises a
warning)
rbind.sf preserves primary geometry column;
#1717
configure constrains using --static to
Darwin platform; #1702, #1712, #1713
old-style crs objects created with sf < 0.9-0
generate a message, and will cause a warning in the future.
when st_crs() is called with a WKT2 as text input,
its input field will be replaced with the CRS name (if it
has one).
GEOS (>= 3.9.0) operations use
GEOSGeom_setPrecision_r to set precision of geometries;
#1535
st_read() with specified query ignores
argument layers, and warns if it is given; #1444
fix regression in st_intersection(): when using s2
attributes were assigned wrongly; #1704
crs (sf) to CRS (sp) conversion no
longer needs validation by rgdal;
https://github.com/edzer/sp/issues/107
retrieve ESRI’s WKT version of CRS by
st_crs(id)$WKT1_ESRI; #1690
add s2 to Imports:
add Dewey Dunnington to contributors
sf_use_s2() prints a message when using s2 has been
switched to on or off.
use s2 spherical geometry as default when
coordinates are ellipsoidal. This can be switched off (defaulting to
planar geometry, using GEOS, as in sf < 1.0-0) by setting environment
variable _SF_USE_S2 to false before package
sf is loaded, or by sf_use_s2(FALSE);
#1649
st_nearest_feature() with missing y
returns nearest features in the remaining set of x;
https://github.com/r-spatial/s2/issues/111
st_write() gains an argument
config_options to set GDAL config options; #1618
fix regression in sf_project(..., keep = TRUE);
#1635
add st_as_sf() method for terra’s
SpatVector class; #1567
distinct.sf() works by default on all variables, and
keeps active geometry active; #1613
improve (fix?) polygonize/contour code; #1608
sf_proj_network() reports whether PROJ uses network
(CDN) grids, can switch it on or off, and can set the CDN url.
st_write() returns obj, invisibly; #1597
fix regression in n-ary st_intersection(), #1595,
introduced at #1549
st_inscribed_circle() computes the maximum inscribed
circle for polygons (requires GEOS >= 3.9.0)
allow to st_cast() from COMPOUNDCURVE, MULTISURFACE
or CURVEPOLYGON to GEOMETRYCOLLECTION, and back; #1573
Fixed a bug in st_as_grob() when plotting a mix of
MULTI and non-MULTI geometries of the same base type
n-ary st_intersection() skips failing geometries,
rather than returning an error; #1549
use s2_centroid() for geographical coordinates if
sf_use_s2() is TRUE.
st_as_text() method for crs objects can
return projjson (if GDAL >= 3.1.0 and PROJ > 6.2.0)
st_transform() no longer warns on conversions like
"+proj=ob_tran +o_proj=longlat +o_lat_p=45 +o_lon_p=30"
st_as_wkb() takes srid from
wkt field of crs when input field
doesn’t contain it; #1490
plot.sf() adds key.pos=0 option to run
the logic behind the key without plotting it; #1487
fix bug in select.sf() when selected variables were
renamed; #1483
st_as_sf.stars(..., merge = TRUE) now works if CRS
is NA; #1389
add (dynamically loaded) as_wkb() methods for
sf, sfc and sfg, making
st_as_s2() unnecessary
st_as_s2() transforms non-longlat objects to
EPSG:4326 first
gdal_utils() print (GDAL-style) progress bar if
quiet = FALSE (except for info and
mdiminfo)
fix CPL_gdal_warper for multi bands;
https://github.com/r-spatial/stars/issues/320
sf_proj_search_paths() retrieves and sets the proj
search path (if GDAL > 3.0.3)
when loading sf, sf_use_s2() is set to
FALSE unless environment variable _SF_USE_S2
equals true (this changes to TRUE in sf
1.0-0)
resolve GDAL/PROJ version vulnerabilities in CRS-crs conversion; #1479
st_sample() gains an argument,
by_polygon, to more clevery sample
MULTIPOLYGON geometries; #1480
st_sample() accepts non-integer sample sizes, with a
(suppressable) warning and handles values of sizes that would round to
zero; #1480
gdal_utils() adds utils mdiminfo and
mdimtranslate (requires GDAL >= 3.1)
st_union() gains an argument
is_coverage, which, when set to TRUE, leads to
much faster unioning in case features form a coverage (polygons don’t
overlap); #1462 by Don Baston
fix gdal_utils("translate") locking input file;
#1452
st_make_grid() no longer selects cells intersecting
with x; #1447
use s2::s2_dwithin_matrix() in
st_is_within_distance(); #1367
Only when package s2 >= 1.0.1 is available:
support for spherical geometry operators (predicates, transformers,
measures, nearest point/feature) for geographic coordinates in package
s2 is now by default switched off, and can be switched on
by sf_use_s2(TRUE); see
https://www.r-spatial.org/r/2020/06/17/s2.html and vignette sf7. It is
planned to be switched on by default in sf 1.0-0.
drop Z and/or M coordinate in st_as_s2(), with
message
geometry predicates and transformers gain an … argument to pass
s2::s2_options()
dplyr::select() now ensures the geometry column
sticks to the back rather than the front of the data frame;
#1425
dplyr::rename() now preserves the active geometry
column even when it is renamed; #1431
proj units query adjusted to PROJ 7.1.0 release; #1434
empty geom generators take care of XYZ etc dim; #1400
write_sf() and read_sf() no longer warn
when reading tables without geometries
st_write() writes non-spatial tables when given a
plain data.frame or tbl_df; #1345
the default for stringsAsFactors in
st_read and st_sf is FALSE for R
version >= 4.1.0
the sf method for dplyr::select() supports renaming
the geometry column; #1415
st_is_valid() is a generic
Windows CRAN binaries use GDAL 3.0.4, PROJ 6.3.1 and GEOS 3.8.0, thanks to Jeroen Ooms’ rwinlib work; #1275
plot.sf() gains an extent argument to
set the extent (xlim, ylim) of the plot; extent must be an
object with an st_bbox() method, such as an sf
or a stars object; #1193
st_axis_order(TRUE) gives and error if GDAL has
version < 2.5.0
loading PROJ units link, us_in,
ind_yd, ind_ft, and ind_ch into
the udunits database is no longer done at package load time, but when
function sf_add_proj_units() is called.
fix line sampling for small densities; #1365
sf_project() handles crs objects when
PROJ version is below 6 using proj.4 string representations.
avoid using isFALSE in st_write();
#1342
fix regression in gdal_utils("translate", ...);
#1339
fix an invalid read bug in st_m_range();
#1332
st_crs(4326) == st_crs("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
returns TRUE for GDAL >= 3.0, irrespective authority
compliance of axis order; see #1331 and
https://github.com/ropensci/scrubr/issues/34
sf_project() has a parameter
authority_compliant to return coordinates in “visualisation
order”; when TRUE it returns coordinates in authority
compliant axis order (e.g. EPSG:4326 latitude longitude); default is
st_axis_order().
fix test for Solaris and certain GDAL/PROJ versions
fix error reading category table through GDAL; https://github.com/r-spatial/stars/issues/245
see r-spatial blog post: https://www.r-spatial.org/r/2020/03/17/wkt.html
modify crs objects to reflect our post-proj4string
world (#1146; #1225): crs objects contain two fields, input
with the user input (if any), and wkt with a
well-known-text (or WKT2) representation of the coordinate reference
system. crs objects have a $ method to
dynamically retrieve the epsg (integer) or
proj4string representation, using
e.g. x$epsg.
support for PostGIS 3 using WKT and the new-style
crs objects; #1234, #1303, #1308 by @etiennebr
st_write_db() and st_read_db() are
defunct. Use st_write and st_read
instead.
st_write() uses append, replacing (and
deprecating) argument update; st_write fails
when a layer already exists and append has not been set
explicitly to TRUE (append) or FALSE
(overwrite); #1266
st_proj_info() was renamed into
sf_proj_info; sf_proj_info can get and set the
PROJ data search path and use of CDN; #1277
adapt to new dplyr version;
https://github.com/tidyverse/dplyr/issues/4917
st_sample() is a generic
write stars rasters with wkt info, rather than
proj4strings
when GEOS >= 3.8.0, st_make_valid is provided by
sf rather than by lwgeom #989
allow for single-sided buffers for linear geometries; #1001
add st_reverse() methods to reverse points in a
linestring (requires GEOS >= 3.7.0); #1246
st_make_grid() returns grid cells or points that
intersect with the target geometry, not its bounding box; #1260
allow for PROJ >= 7; #1254
st_geometry_type() accepts by_geometry
argument; #1264
st_as_sf.map() no longer requires
maptools and sp; dropped dependency on
maptools.
work around a bug in 6.0.0 <= PROJ < 6.3.1: replace
+init=epsg:XXXX ... strings with the XXXX EPSG
integer, to work around a bug in PROJ; see
https://github.com/OSGeo/PROJ/pull/1875 and links therein. If
... arguments are present, raise a warning that these are
ignored.
st_as_sf.map() no longer requires
maptools and sp; drop dependency on
maptools.
conversion between spatstat classes
owin, ppp and psp and
sf classes no longer use maptools;
#1204
gdal_utils() processes open options -oo
and -doo properly;
https://github.com/ITSLeeds/geofabric/issues/12
st_sample() directly interfaces
spatstat sampling methods,
e.g. type = "Thomas" calls spatstat::rThomas
after converting input arguments (window) and converts returned
ppp object to sf’s POINT
geometries; #1204 with help from Ege Rubak and Jakub Nowosad
sf_project() gains an option
keep = TRUE to return Inf values for points
not projectable; #1228
support vctrs methods for geometry list columns;
this makes unnest work again (#1172); #1196 by Lionel
Henry
st_as_sf.pq_geometry() converts binary geom columns
from RPostgres::dbGetQuery; #1195
st_cast() can convert MULTICURVE to
MULTILINESTRING; #1194
st_read() gains a parameter wkt_filter
for spatially filtering the features to be read; #1192
st_area() and st_length() handle
+to_meter argument in PROJ strings; #1170
add st_filter() generic for filtering on spatial
features only; #1148
a new UBSAN error in wkb_read() was resolved; #1154,
#1152
new method st_shift_longitude() to re-center data
for a Pacific view. #1218
output of st_as_text() with MULTIPOINT
has nested parentheses around points. E.g.,
MULTIPOINT ((0 0), (1 1)) instead of
MULTIPOINT (0 0, 1 1); #1219, #1221
fix tests for PROJ 6.2.0 not accepting +units=
fixes for tidyr 1.0-0 release; attempt to port
nest.sf() and unnest.sf(); #1068,
#1145
gdal_utils() better closes connections after use;
#1143
st_write() gains a drivers options, to
limit the drivers attempted; #1142
rather than replacing, st_write() and
write_sf() append to an existing layer if
update=TRUE; #1126
improve plotting of POSIXct and Date
attributes (Date requiring classInt >= 0.4-2)
NULL geometries read by GDAL are returned as empty
geometries; #1119
gdal_utils('rasterize', ...) accepts non-existing
destinations, defined by e.g. resolution and extent options (see #1116
for an example), and overwrites if needed (see #1136 for an
example)
add Dan Baston as contributor; #1120 and many others
in addition to NULL, st_sfc() also
converts NA values into empty geometries; #1114.
st_join() is a generic
plot() handles POSIXct values in
legend
constructor functions like st_linestring() check and
break on NA coordinates; #1101, #1102
st_write write only to the temporary R
session directoryas(x, "Spatial") gives a proper error message on
empty geometries; #1093
st_cast() takes care of empty polygons;
#1094
st_nearest_* functions warn in case they are used
with geographic coordinates; #1081
st_union() no longer segfaults on zero row
sf objects; #1077
st_transform() no longer breaks on zero row
sf objects; #1075
when PROJ >= 6.1.0 is available and sf comes with datum files
(as is the case with statically linked Windows and OSX CRAN binaries),
PROJ_LIB is no longer temporarily overwritten, but the PROJ
C api is used to set the datum path; #1074, suggested by Jeroen
Ooms
sf compiles against GDAL 3.x and PROJ 6.1.0, using the new
proj.h interface; #1070
st_distance() returns NA for empty
geometries, rather than 0; #1055
add example on how voronoi polygons can be tied back to the points they contain; #1030
st_difference(x, y), with x an
sfc with zero feature geometries, returns x;
#1024
don’t reset (base) plot device when
add = TRUE
== and != return NA when
one of the operands is an empty geometry; #1013
st_intersects() is a generic
drop requiring proj_api.h in favor of
proj.h, this enables compatibility to PROJ 6.0.0 and GDAL
2.5.0-dev; #988
fix regression in binary predicates introduced in #855; #999 reported by Barry Rowlingson
fix bug in gdal_utils util warper on
certain GDAL/OS combinations;
https://github.com/r-spatial/stars/issues/117
c.sfc() ignores the type (class) of empty
sfc objects when choosing the result type; #985,
#982
rename the default value for distance to
"Euclidean", rather than "distance" in
st_distance()
add argument exact to st_sample(),
defaulting to FALSE; #896
fixed n-ary st_difference() for cases where
geometries are entirely contained in others; #975, by Jonathan
Marshall
faster Ops.sfc(), added st_normalize();
#973 by Thomas Lin Pedersen
new grob constructor for sfc objects; #971 by Thomas Lin Pedersen; add Thomas as contributor
add group_split() and group_map()
methods for sf objects (experimental); #969
make st_interpolate_aw() a generic;
argument col for plot of
GEOMETRY sfc’s is NA (open) for
(multi) polygon geometries
feature IDs are no longer returned as names on the geometry list
column, but optionally returned by st_read as attribute
column; #812
when plotting multiple attributes, plot.sf adds a (single,
common) key if key.pos is set
precision can be specified in distance units; #901
support log-scale in color legend by setting logz to
TRUE in plot.sf
st_intersects() etc. will prepare y
when y is polygons and x is points; #885 by
Dan Baston
st_write() (and write_sf()) returns its
first argument, invisibly; #889
st_intersection() on platforms
using clang; #867adds several interfaces to GDAL functions, meant to be used by
package stars
st_read() receives a query argument
that can run queries against OGR datasets; #834, by Barry Rowlingson and
Michael Sumner
read_sf() no longer first creates tibbles from
data.frames, but creates them directly; #853, db
propagation by Etienne Racine
check difference between compile-time and run-time GEOS versions; #844
all GEOS routines are (more) robust against memory leaks, by using unique pointers; #822, #845, by Dan Baston
st_buffer() receives the buffer styles
endCapStyle, joinStyle and
mitreLimit; #833, #842 by Michael Sumner
st_area() is a generic;
https://github.com/r-spatial/stars/issues/32
st_write() resolves ~ correctly;
#456
read and write feature IDs as sfc list column names; #812
st_centroid() 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 of
LINESTRING; #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() and
st_point_on_surface.sf also warn if attributes are not
constant over geometries.
summarise() allows the user to define geometries for
summaries; #714, by Kirill Mueller
plot.sf() emits a warning if col does
not have length 1 or nrow(x), and requires pal
(rather than col) to set a palette for factors.
plot.sf() provides control over legend keys using
key.length and key.width, decrease default key
length; #731
sgbp objects receive an as.data.frame
method; #715
GDAL read/write supports logical variables; #722
add st_crop() to simplify cropping objects with a
rectangular area; #720
fix bug in [<- when columns are added to an
sf 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 faster; #708, by Dan
Baston
st_read() and st_write() are generic,
with methods for directly reading from and writing to database
connections; st_read_db and st_write_db are
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 also read tables without geometry;
#684, by Andy Teucher
method distinct() works; #669, #672
+, -, * and /
for pairs of geometries (sfg, sfc) return
geometric union, difference, intersection and symmetric difference,
respectively.
st_cast() from MULTIPOLYGON to
MULTILINESTRING should work properly; #660
all Rcpp interfaces needed by package stars have
been moved into sf; pkg stars is R-only, and
only sf needs linking to GDAL.
gdal_utils() interfaces the 9 gdal utils using the
C++ API
improve resetting (base) plots; add reset = FALSE in
a call to plot to enable adding to plots that have a
legend
st_read() returns a data.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 from Imports: to
Suggests:
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 subsequently format and
print, use argument digits (or
options(digits = n)) to control the number of digits used
for printing coordinates; default is options("digits"),
which is typically 7.
st_is_within_distance works with geographic
coordinates
st_cast from MULTIPOLYGON to
MULTILINESTRING no longer changes the number of
features/feature geometries, but conversion from
MULTIPOLYGON to LINESTRING (typically) does;
#596
st_distance for long/lat geographic coordinates uses
lwgeom, accepting all geometry types; argument
dist_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 use package
lwgeom instead of geosphere; #593
st_length returns zero for polygon-type geometries;
#593
if present, add units of attribute to default plot title; #591
add unnest method, which depends on
tidyr > 0.7-2; #570 PR by @karldw
add largest option to st_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 (and Frechet for those
with GEOS 3.7.0) as options to st_distance; add
par for densified versions
add st_snap, for snapping geometries to other
geometries, within a tolerance
make st_wrap_dateline a generic, with methods for
sf, sfc and sfg; #541
plot.sf and st_as_grob (used by
ggplot2) are robust against misspecified ring directions (holes that
have the same direction as the exterior rings), by using
rule = "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; argument use_gdal of
st_transform has been deprecated, instead one can use
lwgeom::st_transform_proj; sf no longer tries to link to
liblwgeom; #509, #537, #487
st_read, st_sf and st_sfc
gain a parameter check_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 read EWKT; #530
argument max.plot takes its default from
options(sf_max.plot=n), if present; #516
plot.sf gets an arguments pal to
specify a color palette function; #526
plot.sf gets arguments breaks and
nbreaks; add support for
classInt::classIntervals styles for finding class intervals
(using breaks)
add st_as_sf methods for ppp,
lpp and psp objects from spatstat.
allow for direct route to proj.4 ignoring GDAL (requiring liblwgeom); #509, #511
add print method for crs objects;
#517
sf_extSoftVersion reveals whether GDAL was linked to
GEOS; #510
better check input of st_polygon; #514
add st_node, similar to
rgeos::gNode
support for reading OFTInteger64List fields;
#508
sparse geometric binary predicate lists have a class,
sgbp, and attributes region.id and
predicate; #234, #524
prevent st_split from stopping the R session;
#492
st_intersection, st_union and so on
also print a message when used directly on long/lat coordinates;
#496
add rep method for sfc objects
comparing two crs objects uses the GDAL function
IsSame; #180
add st_collection_extract, which, given an object
with geometries of type GEOMETRY or
GEOMETRYCOLLECTION, 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 in
st_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 and st_layers; #471
st_sfc converts NULL values into empty
geometries, and correctly identifies empty POINTs; #466,
#463
st_write abbreviates column names if driver is
ESRI Shapefile; #464
add of_largest_polygon argument to
st_centroid, to get the centroid of the largest polygon;
#450
fix use of st_relate as join predicate for
st_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. on tbl also return
tbl; #448
[.sf preserves class, e.g. of tbl;
#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 argument datum is NA;
export as_Spatial, to make it easier for packages to
convert sfc objects without importing
sf
st_distance gains a parameter
by_element to obtain pairwise distances; #437
add the ability to aggregate using a simple feature
by argument; #429
make the op argument to [.sf
work
speed up st_coordinates for POINT
geometries; #433
fix performance regression for st_bbox;
#418
correct bug in st_union, st_difference
and st_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;
https://github.com/tidyverse/ggplot2/issues/2200 (WIP)
st_graticule to support data in
NA_crs_;
https://github.com/tidyverse/ggplot2/issues/2199
fix bug when joining an sf-tibble with a tibble;
#414
read gdal StringList, RealList, and
IntegerList fields into a list-column; #416
made ready for rwinlib/gdal2; #408
make [.sf for selections including NA
values like x[c(1,NA,2)]; #403
add a [<- method for sfc objects;
automatically replaces NULL 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 returns an sf-tibble, an object of class
c("sf", "tbl_df", "tbl", "data.frame")
work around for dplyr::filter not dispatching
geometry column subsetting to sf::[.sfc
allow units object as dist argument to
st_buffer; these must be convertable to
arc_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 for bbox,
returning the bbox polygon; #377
strip file name extension from default layer name in
st_write; #392
have st_sf replace NULL values in an
sfc list-column with the appropriate empty geometry;
#372
allow setting ndiscr through
ggplot2::coords_sf to improve graticule plotting in
geom_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 class blob
drop dependency on dbplyr
better handle empty/NULL geometries in shapefiles; #351
add unite_.sf method
deprecate FUN argument to st_join;
#376
improve graticule tic label placement in ggplot2;
#375 and https://github.com/tidyverse/ggplot2/issues/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 [ of sf using
drop = TRUE, #370
in addition to m, allow rad units to
st_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 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 return nullGrob() for them;
#351
arith operations on empty geometries no longer break or give warnings; #351
have st_as_sf.data.frame by default break on
NA values in coordinates; #342
have st_join accept further arguments, to be passed
on to the join function (e.g. a pattern for
st_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 get encoding set to
UTF-8, making them work on non-UTF-8 platforms; #5
$.crs retrieves proj4string components, such as
st_crs(4326)$datum in addition to epsg and
proj4string
let st_geohash return geohash for (average) points
(only when sf was linked to liblwgeom)
summarise.sf always returns an sf
object, also for global (non-grouped) summaries.
summarise.sf gains an argument do_union
which determines whether to union the geometries for which a summary is
given, or to st_combine them (not resolving boundaries);
#331
rename argument union of aggregate.sf
into do_union, for consistency with summarise;
#331
add a nest_ method for sf
objects
st_relate gets a pattern parameter,
same as rgeos::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 and
rbind methods for sf, which work (as
documented) when all arguments are of class sf;
dplyr::bind_cols or st_sf(data.frame(sf, df))
work for binding data.frames to an sf
object.
st_segmentize() and st_line_sample()
accept units arguments
document problem reading shapefiles from USB drives on OSX; #252
improve docs of st_is_valid and
st_make_valid; #296
coercing sf to data.frame works better;
#298
st_line_sample gains argument sample 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 arguments delete_layer
and delete_dsn to allow overwrite capability #307
#274
write_sf defaults to delete_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 for sf objects
assumes the by argument to be identical to that of
stats::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 respects time that is read as UTC
st_write writes time always as UTC, since GDAL does
not have a mechanism to define local timezones other than “unknown” or
“local”
st_length works for POINT and MULTIPOINT (returning
0); POLYGON and MULTIPOLYGON are converted to MULTILINESTRING before
computing length, thus giving polygon perimeter (#268)
st_write has update depend on driver;
for databases, the default is TRUE, otherwise
FALSE (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 or POSIXlt #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,
returning NA in that case (requiring GEOS 3.5.0)
add st_make_valid, only available when sf was linked
to liblwgeom
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 for sfc objects
import and export magrittr::%>%
support ggplot’ing geometrycollections
drop C++11 requirement, allowing build for older R versions
add st_proj_info, modelled after
rgdal::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 when TRUE 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 to st_make_grid, and
st_linemerge to st_line_merge
add NEWS.md file (#207)
faster conversion of data.frame into
POINT sf object, using st_as_sf
(Michael Sumner)
rbind method for sf objects keeps
coordinate reference system
add st_contains_properly spatial predicate
GEOS functions (geometry operations) 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 return NA labels when
labels are useless
add merge.sf methods to merge sf object
and data.frame (#193)
add st_join for table joins based on (user-defined)
spatial predicates
add dplyr-style non-spatial joins for
sf 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 an sf 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 for map objects
(library maps)
add RStudio project file
have st_bbox return a bbox object which
has an st_crs method
rename st_drop_zm into st_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
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.