elevation_add: Take a linestring and add a third (z) dimension to its...

View source: R/slopes.R

elevation_addR Documentation

Take a linestring and add a third (z) dimension to its coordinates

Description

Take a linestring and add a third (z) dimension to its coordinates

Usage

elevation_add(
  routes,
  dem = NULL,
  method = "bilinear",
  terra = has_terra() && methods::is(dem, "SpatRaster")
)

Arguments

routes

Routes, the gradients of which are to be calculated. The object must be of class sf or sfc with LINESTRING geometries.

dem

Raster overlapping with routes and values representing elevations

method

The method of estimating elevation at points, passed to the extract function for extracting values from raster datasets. Default: "bilinear".

terra

Should the terra package be used? TRUE by default if the package is installed and if dem is of class SpatRast

Value

An sf object that is identical to the input routes, except that the coordinate values in the ouput has a third z dimension representing the elevation of each vertex that defines a linear feature such as a road.

Examples

library(sf)
routes = lisbon_road_network[204, ]
dem = dem_lisbon_raster
(r3d = elevation_add(routes, dem))
library(sf)
st_z_range(routes)
st_z_range(r3d)
plot(st_coordinates(r3d)[, 3])
plot_slope(r3d)

# Get elevation data (requires internet connection and API key):
r3d_get = elevation_add(cyclestreets_route)
plot_slope(r3d_get)


ITSLeeds/slopes documentation built on Oct. 13, 2024, 3:54 a.m.