topo.distance: Topographic distance

View source: R/topo.distance.R

topo.distanceR 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


spatialEco documentation built on Nov. 18, 2023, 1:13 a.m.