topo.distance {spatialEco} | R Documentation |
Topographic distance
Description
Calculates topographic corrected distance for a line object
Usage
topo.distance(x, r, echo = FALSE)
Arguments
x |
sf LINESTRING object |
r |
terra SpatRaster class elevation raster |
echo |
(FALSE/TRUE) print progress to screen |
Details
This function corrects straight-line (euclidean) distances for topographic-slope effect.
Value
Vector of corrected topographic distances same length as nrow(x)
Author(s)
Jeffrey S. Evans <jeffrey_evans@tnc.org>
Examples
library(sf)
library(terra)
# create example data
elev <- rast(system.file("extdata/elev.tif", package="spatialEco"))
names(elev) <- "elev"
lns <- lapply(1:5, function(i) {
p <- st_combine(st_as_sf(spatSample(elev, size=2, as.points=TRUE)))
st_as_sf(st_cast(p, "LINESTRING")) })
lns <- do.call(rbind, lns)
plot(elev)
plot(st_geometry(lns), add=TRUE)
# Calculate topographical distance
( tdist <- topo.distance(lns, elev) )
( lgt <- as.numeric(st_length(lns)) )
# Increase in corrected distance
tdist - lgt
# Percent increase in corrected distance
((tdist - lgt) / lgt) * 100
[Package spatialEco version 2.0-2 Index]