View source: R/topo.distance.R
topo.distance | R Documentation |
Calculates topographic corrected distance for a line object
topo.distance(x, r, echo = FALSE)
x |
sf LINESTRING object |
r |
terra SpatRaster class elevation raster |
echo |
(FALSE/TRUE) print progress to screen |
This function corrects straight-line (euclidean) distances for topographic-slope effect.
Vector of corrected topographic distances same length as nrow(x)
Jeffrey S. Evans <jeffrey_evans@tnc.org>
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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.