# st: Create simple feature from a numeric vector, matrix or list In sf: Simple Features for R

## Description

Create simple feature from a numeric vector, matrix or list

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28``` ```st_point(x = c(NA_real_, NA_real_), dim = "XYZ") st_multipoint(x = matrix(numeric(0), 0, 2), dim = "XYZ") st_linestring(x = matrix(numeric(0), 0, 2), dim = "XYZ") st_polygon(x = list(), dim = if (length(x)) "XYZ" else "XY") st_multilinestring(x = list(), dim = if (length(x)) "XYZ" else "XY") st_multipolygon(x = list(), dim = if (length(x)) "XYZ" else "XY") st_geometrycollection(x = list(), dims = "XY") ## S3 method for class 'sfg' print(x, ..., width = 0) ## S3 method for class 'sfg' head(x, n = 10L, ...) ## S3 method for class 'sfg' format(x, ..., width = 30) ## S3 method for class 'sfg' c(..., recursive = FALSE, flatten = TRUE) ## S3 method for class 'sfg' as.matrix(x, ...) ```

## Arguments

 `x` for `st_point`, numeric vector (or one-row-matrix) of length 2, 3 or 4; for `st_linestring` and `st_multipoint`, numeric matrix with points in rows; for `st_polygon` and `st_multilinestring`, list with numeric matrices with points in rows; for `st_multipolygon`, list of lists with numeric matrices; for `st_geometrycollection` list with (non-geometrycollection) simple feature objects `dim` character, indicating dimensions: "XY", "XYZ", "XYM", or "XYZM"; only really needed for three-dimensional points (which can be either XYZ or XYM) or empty geometries; see details `dims` character; specify dimensionality in case of an empty (NULL) geometrycollection, in which case `x` is the empty `list()`. `...` objects to be pasted together into a single simple feature `width` integer; number of characters to be printed (max 30; 0 means print everything) `n` integer; number of elements to be selected `recursive` logical; ignored `flatten` logical; if TRUE, try to simplify results; if FALSE, return geometrycollection containing all objects

## Details

"XYZ" refers to coordinates where the third dimension represents altitude, "XYM" refers to three-dimensional coordinates where the third dimension refers to something else ("M" for measure); checking of the sanity of `x` may be only partial.

When `flatten=TRUE`, this method may merge points into a multipoint structure, and may not preserve order, and hence cannot be reverted. When given fish, it returns fish soup.

## Value

object of the same nature as `x`, but with appropriate class attribute set

as.matrix returns the set of points that form a geometry as a single matrix, where each point is a row; use `unlist(x, recursive = FALSE)` to get sets of matrices.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66``` ```(p1 = st_point(c(1,2))) class(p1) st_bbox(p1) (p2 = st_point(c(1,2,3))) class(p2) (p3 = st_point(c(1,2,3), "XYM")) pts = matrix(1:10, , 2) (mp1 = st_multipoint(pts)) pts = matrix(1:15, , 3) (mp2 = st_multipoint(pts)) (mp3 = st_multipoint(pts, "XYM")) pts = matrix(1:20, , 4) (mp4 = st_multipoint(pts)) pts = matrix(1:10, , 2) (ls1 = st_linestring(pts)) pts = matrix(1:15, , 3) (ls2 = st_linestring(pts)) (ls3 = st_linestring(pts, "XYM")) pts = matrix(1:20, , 4) (ls4 = st_linestring(pts)) outer = matrix(c(0,0,10,0,10,10,0,10,0,0),ncol=2, byrow=TRUE) hole1 = matrix(c(1,1,1,2,2,2,2,1,1,1),ncol=2, byrow=TRUE) hole2 = matrix(c(5,5,5,6,6,6,6,5,5,5),ncol=2, byrow=TRUE) pts = list(outer, hole1, hole2) (ml1 = st_multilinestring(pts)) pts3 = lapply(pts, function(x) cbind(x, 0)) (ml2 = st_multilinestring(pts3)) (ml3 = st_multilinestring(pts3, "XYM")) pts4 = lapply(pts3, function(x) cbind(x, 0)) (ml4 = st_multilinestring(pts4)) outer = matrix(c(0,0,10,0,10,10,0,10,0,0),ncol=2, byrow=TRUE) hole1 = matrix(c(1,1,1,2,2,2,2,1,1,1),ncol=2, byrow=TRUE) hole2 = matrix(c(5,5,5,6,6,6,6,5,5,5),ncol=2, byrow=TRUE) pts = list(outer, hole1, hole2) (pl1 = st_polygon(pts)) pts3 = lapply(pts, function(x) cbind(x, 0)) (pl2 = st_polygon(pts3)) (pl3 = st_polygon(pts3, "XYM")) pts4 = lapply(pts3, function(x) cbind(x, 0)) (pl4 = st_polygon(pts4)) pol1 = list(outer, hole1, hole2) pol2 = list(outer + 12, hole1 + 12) pol3 = list(outer + 24) mp = list(pol1,pol2,pol3) (mp1 = st_multipolygon(mp)) pts3 = lapply(mp, function(x) lapply(x, function(y) cbind(y, 0))) (mp2 = st_multipolygon(pts3)) (mp3 = st_multipolygon(pts3, "XYM")) pts4 = lapply(mp2, function(x) lapply(x, function(y) cbind(y, 0))) (mp4 = st_multipolygon(pts4)) (gc = st_geometrycollection(list(p1, ls1, pl1, mp1))) st_geometrycollection() # empty geometry c(st_point(1:2), st_point(5:6)) c(st_point(1:2), st_multipoint(matrix(5:8,2))) c(st_multipoint(matrix(1:4,2)), st_multipoint(matrix(5:8,2))) c(st_linestring(matrix(1:6,3)), st_linestring(matrix(11:16,3))) c(st_multilinestring(list(matrix(1:6,3))), st_multilinestring(list(matrix(11:16,3)))) pl = list(rbind(c(0,0), c(1,0), c(1,1), c(0,1), c(0,0))) c(st_polygon(pl), st_polygon(pl)) c(st_polygon(pl), st_multipolygon(list(pl))) c(st_linestring(matrix(1:6,3)), st_point(1:2)) c(st_geometrycollection(list(st_point(1:2), st_linestring(matrix(1:6,3)))), st_geometrycollection(list(st_multilinestring(list(matrix(11:16,3)))))) c(st_geometrycollection(list(st_point(1:2), st_linestring(matrix(1:6,3)))), st_multilinestring(list(matrix(11:16,3))), st_point(5:6), st_geometrycollection(list(st_point(10:11)))) ```

sf documentation built on Sept. 17, 2019, 9:03 a.m.