¿Puedo volver a proyectar un archivo LAS en LidR?

Aug 16 2020

Estoy trabajando con 2 conjuntos de datos LAS adyacentes de 2014 proporcionados en 2 proyecciones:

Sin embargo, cuando escribo espg (las), mi respuesta devuelta es 0

Si escribo resumen (las) mi coord. Ref .: NA

Deseo volver a proyectar ambos a NAD83 / UTM18 y procesarlos juntos a través de LiDR. No tengo claro si es posible hacerlo en LiDR. ¿Cuál es la mejor forma de proceder? Tengo 1000 fichas de 1 km con las que lidiar.

Respuestas

3 JRR Aug 17 2020 at 04:02

Puede atribuir un CRS a su objeto LAS con epsg()<-

epsg(las) <- 12345

Puede volver a proyectar con, spTransform()pero esta función no es óptima en su implementación actual. En realidad, transforma el LASen a SpatialPoints, usa sp::spTransform()y actualiza el LAS. Recomiendo usar las2lasfrom LAStoolspara este tipo de tareas de procesamiento de archivos LAS, pero para conjuntos de datos pequeños spTransformpuede ser conveniente.

library(lidR)
LASfile <- system.file("extdata", "Megaplot.laz", package="lidR")
las = readLAS(LASfile)
las
#> class        : LAS (v1.2 format 1)
#> memory       : 6.2 Mb 
#> extent       : 684766.4, 684993.3, 5017773, 5018007 (xmin, xmax, ymin, ymax)
#> coord. ref.  : +proj=utm +zone=17 +datum=NAD83 +units=m +no_defs 
#> area         : 53112.69 m²
#> points       : 81.6 thousand points
#> density      : 1.54 points/m²
las2 = spTransform(las, sp::CRS(SRS_string = "EPSG:26918"))
las2
#> class        : LAS (v1.2 format 1)
#> memory       : 6.2 Mb 
#> extent       : 214261.7, 214504.9, 5021517, 5021767 (xmin, xmax, ymin, ymax)
#> coord. ref.  : +proj=utm +zone=18 +datum=NAD83 +units=m +no_defs 
#> area         : 53174.62 m²
#> points       : 81.6 thousand points
#> density      : 1.53 points/m²

Nota : antes, lidR 3.0.4la función tiene un poco de errores. Si marca las2, verá que ya no cumple estrictamente con las especificaciones. Fue arreglado en lidR 3.0.4.

las_check(las2)