Learn R Programming

tidyterra (version 1.3.0)

as_spatvector: Coerce objects to SpatVector

Description

as_spatvector() turns an existing object into a SpatVector. It wraps the terra::vect() S4 method for the data.frame signature.

Usage

as_spatvector(x, ...)

# S3 method for data.frame as_spatvector(x, ..., geom = c("lon", "lat"), crs = "")

# S3 method for sf as_spatvector(x, ...)

# S3 method for sfc as_spatvector(x, ...)

# S3 method for SpatVector as_spatvector(x, ...)

Value

A SpatVector.

Arguments

x

A tibble, data frame or sf object of class sf or sfc.

...

Additional arguments passed to terra::vect().

geom

Character vector naming the fields that contain the geometry data. Use two names for point coordinates (x and y) or one name for a column with WKT geometries.

crs

A CRS in several formats (PROJ.4, WKT, EPSG code, etc.) or a spatial object from sf or terra that includes the target coordinate reference system. See pull_crs() and Details.

<a href="https://CRAN.R-project.org/package=terra"><span class="pkg">terra</span></a> equivalent

terra::vect().

Details

This function differs from terra::vect() in the following ways:

  • Rows with geometry values NA or "" are removed before conversion.

  • If x is a grouped data frame (see dplyr::group_by()), the grouping variables are transferred and a grouped SpatVector is created (see group_by.SpatVector()).

  • If no crs is provided and the tibble was created with as_tibble.SpatVector(), the crs is inferred from attr(x, "crs").

  • It handles the conversion of EMPTY geometries between sf and terra.

See Also

pull_crs() for retrieving CRS and the corresponding utilities sf::st_crs() and terra::crs().

Coercing objects: as_coordinates(), as_sf(), as_spatraster(), as_tibble.Spat, fortify.Spat, tidy.Spat

Examples

Run this code
library(terra)

v <- vect(matrix(1:80, ncol = 2), crs = "EPSG:3857")

v$cat <- sample(LETTERS[1:4], size = nrow(v), replace = TRUE)

v

# Create tibble
as_tbl <- as_tibble(v, geom = "WKT")

as_tbl

# From tibble
newvect <- as_spatvector(as_tbl, geom = "geometry", crs = "EPSG:3857")
newvect

Run the code above in your browser using DataLab