R: Sample points on a linear geometry

st_line_sample {sf} | R Documentation

## Sample points on a linear geometry

### Description

Sample points on a linear geometry

### Usage

    st_line_sample(x, n, density, type = "regular", sample = NULL)

### Arguments

`x` | object of class `sf`, `sfc` or `sfg`
`n` | integer; number of points to choose per geometry; if missing, n will be computed as `round(density * st_length(geom))`.
`density` | numeric; density (points per distance unit) of the sampling, possibly a vector of length equal to the number of features (otherwise recycled); `density` may be of class `units`.
`type` | character; indicate the sampling type, either "regular" or "random"
`sample` | numeric; a vector of numbers between 0 and 1 indicating the points to sample - if defined sample overrules n, density and type.

### Examples

    ls = st_sfc(st_linestring(rbind(c(0,0),c(0,1))),
    	st_linestring(rbind(c(0,0),c(10,0))))
    st_line_sample(ls, density = 1)
    ls = st_sfc(st_linestring(rbind(c(0,0),c(0,1))),
     st_linestring(rbind(c(0,0),c(.1,0))), crs = 4326)
    try(st_line_sample(ls, density = 1/1000)) # error
    st_line_sample(st_transform(ls, 3857), n = 5) # five points for each line
    st_line_sample(st_transform(ls, 3857), n = c(1, 3)) # one and three points
    st_line_sample(st_transform(ls, 3857), density = 1/1000) # one per km
    st_line_sample(st_transform(ls, 3857), density = c(1/1000, 1/10000)) # one per km, one per 10 km
    st_line_sample(st_transform(ls, 3857), density = units::set_units(1, 1/km)) # one per km
    # five equidistant points including start and end:
    st_line_sample(st_transform(ls, 3857), sample = c(0, 0.25, 0.5, 0.75, 1))

[Package sf version 1.0-7 Index]