Posso riprogettare un file LAS in LidR

Aug 16 2020

Sto lavorando con 2 dataset LAS 2014 adiacenti forniti in 2 proiezioni:

Tuttavia, quando digito espg (las) la mia risposta restituita è 0

Se digito riepilogo (las) il mio rif. Coord .: NA

Desidero riproiettare entrambi su NAD83 / UTM18 ed elaborarli insieme tramite LiDR. Non sono chiaro se è possibile farlo in LiDR? Qual è il modo migliore per procedere? Ho 1000 tessere da 1 km da affrontare.

Risposte

3 JRR Aug 17 2020 at 04:02

Puoi attribuire un SR al tuo oggetto LAS con epsg()<-

epsg(las) <- 12345

È possibile riprogettare con spTransform()ma questa funzione non è ottimale nella sua implementazione corrente. In realtà trasforma il LASin un SpatialPoints, utilizza sp::spTransform()e aggiorna il file LAS. Consiglio di utilizzare las2lasda LAStoolsper questo tipo di attività di elaborazione dei file LAS, ma per piccoli set di dati spTransformpuò essere 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 : prima che lidR 3.0.4la funzione sia un po 'buggata. Se controlli las2vedrai che non è più strettamente conforme alle specifiche. È stato risolto in lidR 3.0.4.

las_check(las2)