R: Convert foreign object to an sf object

st_as_sf {sf} | R Documentation

## Convert foreign object to an sf object

### Description

Convert foreign object to an sf object

### Usage

    st_as_sf(x, ...)

    ## S3 method for class 'data.frame'
    st_as_sf(
      x,
      ...,
      agr = NA_agr_,
      coords,
      wkt,
      dim = "XYZ",
      remove = TRUE,
      na.fail = TRUE,
      sf_column_name = NULL
    )

    ## S3 method for class 'sf'
    st_as_sf(x, ...)

    ## S3 method for class 'sfc'
    st_as_sf(x, ...)

    ## S3 method for class 'Spatial'
    st_as_sf(x, ...)

    ## S3 method for class 'map'
    st_as_sf(x, ..., fill = TRUE, group = TRUE)

    ## S3 method for class 'ppp'
    st_as_sf(x, ...)

    ## S3 method for class 'psp'
    st_as_sf(x, ...)

    ## S3 method for class 'lpp'
    st_as_sf(x, ...)

    ## S3 method for class 's2_geography'
    st_as_sf(x, ..., crs = st_crs(4326))

### Arguments

`x` | object to be converted into an object class `sf`
`...` | passed on to st_sf, might included named arguments `crs` or `precision`
`agr` | character vector; see details section of st_sf
`coords` | in case of point data: names or numbers of the numeric columns holding coordinates
`wkt` | name or number of the character column that holds WKT encoded geometries
`dim` | passed on to st_point (only when argument coords is given)
`remove` | logical; when coords or wkt is given, remove these columns from data.frame?
`na.fail` | logical; if `TRUE`, raise an error if coordinates contain missing values
`sf_column_name` | character; name of the active list-column with simple feature geometries; in case there is more than one and `sf_column_name` is `NULL`, the first one is taken.
`fill` | logical; the value for `fill` that was used in the call to map.
`group` | logical; if `TRUE`, group id labels from map by their prefix before `:`
`crs` | coordinate reference system to be assigned; object of class `crs`

### Details

setting argument `wkt` annihilates the use of argument `coords`. If `x` contains a column called "geometry", `coords` will result in overwriting of this column by the sfc geometry list-column. Setting `wkt` will replace this column with the geometry list-column, unless `remove` is `FALSE`.

### Examples

    pt1 = st_point(c(0,1))
    pt2 = st_point(c(1,1))
    st_sfc(pt1, pt2)
    d = data.frame(a = 1:2)
    d$geom = st_sfc(pt1, pt2)
    df = st_as_sf(d)
    d$geom = c("POINT(0 0)", "POINT(0 1)")
    df = st_as_sf(d, wkt = "geom")
    d$geom2 = st_sfc(pt1, pt2)
    st_as_sf(d) # should warn
    data(meuse, package = "sp")
    meuse_sf = st_as_sf(meuse, coords = c("x", "y"), crs = 28992, agr = "constant")
    meuse_sf[1:3,]
    summary(meuse_sf)
    library(sp)
    x = rbind(c(-1,-1), c(1,-1), c(1,1), c(-1,1), c(-1,-1))
    x1 = 0.1 * x + 0.1
    x2 = 0.1 * x + 0.4
    x3 = 0.1 * x + 0.7
    y = x + 3
    y1 = x1 + 3
    y3 = x3 + 3
    m = matrix(c(3, 0), 5, 2, byrow = TRUE)
    z = x + m
    z1 = x1 + m
    z2 = x2 + m
    z3 = x3 + m
    p1 = Polygons(list( Polygon(x[5:1,]), Polygon(x2), Polygon(x3),
       Polygon(y[5:1,]), Polygon(y1), Polygon(x1), Polygon(y3)), "ID1")
    p2 = Polygons(list( Polygon(z[5:1,]), Polygon(z2), Polygon(z3), Polygon(z1)),
      "ID2")
    r = SpatialPolygons(list(p1,p2))
    a = suppressWarnings(st_as_sf(r))
    summary(a)
    demo(meuse, ask = FALSE, echo = FALSE)
    summary(st_as_sf(meuse))
    summary(st_as_sf(meuse.grid))
    summary(st_as_sf(meuse.area))
    summary(st_as_sf(meuse.riv))
    summary(st_as_sf(as(meuse.riv, "SpatialLines")))
    pol.grd = as(meuse.grid, "SpatialPolygonsDataFrame")
    # summary(st_as_sf(pol.grd))
    # summary(st_as_sf(as(pol.grd, "SpatialLinesDataFrame")))
    if (require(spatstat.geom)) {
      g = st_as_sf(gorillas)
      # select only the points:
      g[st_is(g, "POINT"),]
    }
    if (require(spatstat.linnet)) {
     data(chicago)
     plot(st_as_sf(chicago)["label"])
     plot(st_as_sf(chicago)[-1,"label"])
    }

[Package sf version 1.0-7 Index]