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.