Get, set, or replace geometry from an sf object
Get, set, or replace geometry from an sf object
## S3 method for class 'sfc' st_geometry(obj, ...) st_geometry(obj, ...) ## S3 method for class 'sf' st_geometry(obj, ...) ## S3 method for class 'sfc' st_geometry(obj, ...) ## S3 method for class 'sfg' st_geometry(obj, ...) st_geometry(x) <- value st_set_geometry(x, value) st_drop_geometry(x)
obj |
object of class |
... |
ignored |
x |
object of class |
value |
object of class |
when applied to a data.frame
and when value
is an object of class sfc
, st_set_geometry
and st_geometry<-
will first check for the existence of an attribute sf_column
and overwrite that, or else look for list-columns of class sfc
and overwrite the first of that, or else write the geometry list-column to a column named geometry
. In case value
is character and x
is of class sf
, the "active" geometry column is set to x[[value]]
.
the replacement function applied to sf
objects will overwrite the geometry list-column, if value
is NULL
, it will remove it and coerce x
to a data.frame
.
st_drop_geometry
drops the geometry of its argument, and reclasses it accordingly
st_geometry returns an object of class sfc, a list-column with geometries
df = data.frame(a = 1:2) sfc = st_sfc(st_point(c(3,4)), st_point(c(10,11))) st_geometry(sfc) st_geometry(df) <- sfc class(df) st_geometry(df) st_geometry(df) <- sfc # replaces st_geometry(df) <- NULL # remove geometry, coerce to data.frame sf <- st_set_geometry(df, sfc) # set geometry, return sf st_set_geometry(sf, NULL) # remove geometry, coerce to data.frame
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.