R: Methods to coerce simple features to Spatial* and...

as {sf} | R Documentation

## Methods to coerce simple features to `Spatial*` and `Spatial*DataFrame` objects

### Description

`as_Spatial()` allows to convert `sf` and `sfc` to `Spatial*DataFrame` and `Spatial*` for `sp` compatibility. You can also use `as(x, "Spatial")` To transform `sp` objects to `sf` and `sfc` with `as(x, "sf")`.

### Usage

    as_Spatial(from, cast = TRUE, IDs = paste0("ID", seq_along(from)))

### Arguments

`from` | object of class `sf`, `sfc_POINT`, `sfc_MULTIPOINT`, `sfc_LINESTRING`, `sfc_MULTILINESTRING`, `sfc_POLYGON`, or `sfc_MULTIPOLYGON`.
`cast` | logical; if `TRUE`, `st_cast()` `from` before converting, so that e.g. `GEOMETRY` objects with a mix of `POLYGON` and `MULTIPOLYGON` are cast to `MULTIPOLYGON`.
`IDs` | character vector with IDs for the `Spatial*` geometries

### Details

Package `sp` supports three dimensions for `POINT` and `MULTIPOINT` (`SpatialPoint*`). Other geometries must be two-dimensional (`XY`). Dimensions can be dropped using `st_zm()` with `what = "M"` or `what = "ZM"`.

For converting simple features (i.e., `sf` objects) to their `Spatial` counterpart, use `as(obj, "Spatial")`

### Value

geometry-only object deriving from `Spatial`, of the appropriate class

### Examples

    nc <- st_read(system.file("shape/nc.shp", package="sf"))
    # convert to SpatialPolygonsDataFrame
    spdf <- as_Spatial(nc)
    # identical to
    spdf <- as(nc, "Spatial")
    # convert to SpatialPolygons
    as(st_geometry(nc), "Spatial")
    # back to sf
    as(spdf, "sf")

[Package sf version 1.0-7 Index]