View source: R/powerlines-find_transmissiontowers.R
| find_transmissiontowers | R Documentation | 
Individual transmission tower detection function that find the positions of the transmission towers. The method is supervised by a map of the electric network and the tower types.
find_transmissiontowers(
  las,
  powerline,
  dtm,
  type = c("waist-type", "double-circuit"),
  buffer = 125,
  debug = FALSE
)
las | 
 An object of class LAS with absolute elevations or a LAScatalog.  | 
powerline | 
 A   | 
dtm | 
 
  | 
type | 
 character. One of "waist-type", "waist-type-small", "double-circuit" according to Hydro-Quebec. Can also be a list with custom specifications. See get_tower_spec.  | 
buffer | 
 numeric. The   | 
debug | 
 logical. Plot the different steps of the algorithm so one can try to figure out what is going wrong.  | 
A SpatialPointDataFrame with several attributes. Z the elevation of the tower,
dtm the elevation of the bottom of the tower aligned with the top, theta the angle
of the tower with the x axis in radian, ux, uy the directional vectors, deflection
tells if a given tower is on a deflection (deflection towers are found twice by design) and
type the type name.
Roussel J, Achim A, Auty D. 2021. Classification of high-voltage power line structures in low density ALS data acquired over broad non-urban areas. PeerJ Computer Science 7:e672 https://doi.org/10.7717/peerj-cs.672
# A simple file with wires already clipped from 4 files + shapefile
# of the network
LASfile <- system.file("extdata", "wires.laz", package="lidRplugins")
wireshp <- system.file("extdata", "wires.shp", package="lidRplugins")
dtmtif  <- system.file("extdata", "wire-dtm.tif", package="lidRplugins")
las <- readLAS(LASfile, select = "xyzc")
network <- sf::st_read(wireshp)
dtm <- raster::raster(dtmtif)
towers <- find_transmissiontowers(las, network, dtm, "waist-type")
plot(header(las))
plot(towers, add = TRUE, col = towers$deflection + 1)
arrows(
   towers@coords[,1],
   towers@coords[,2],
   towers@coords[,1] + 100 * towers$ux,
   towers@coords[,2] + 100 * towers$uy,
   length = 0.05,
   col = towers$deflection + 1)
x = plot(las)
add_treetops3d(x, towers, radius = 5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.