Get, set, or replace geometry from an sf object
# S3 method for sfc st_geometry(obj, ...) st_geometry(obj, ...) # S3 method for sf st_geometry(obj, ...) # S3 method for sfc st_geometry(obj, ...) # S3 method for 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 |
st_geometry returns an object of class sfc, a list-column with geometries
st_geometry
returns an object of class sfc. Assigning geometry to a data.frame
creates an sf object, assigning it to an sf object replaces the geometry list-column.
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
#> Geometry set for 2 features #> geometry type: POINT #> dimension: XY #> bbox: xmin: 3 ymin: 4 xmax: 10 ymax: 11 #> CRS: NA#>#>#> [1] "sf" "data.frame"st_geometry(df)#> Geometry set for 2 features #> geometry type: POINT #> dimension: XY #> bbox: xmin: 3 ymin: 4 xmax: 10 ymax: 11 #> CRS: NA#>#>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#> a #> 1 1 #> 2 2