Могу ли я перепроецировать файл LAS в LidR

Aug 16 2020

Я работаю с двумя смежными наборами данных LAS за 2014 год, представленными в двух прогнозах:

Однако, когда я набираю espg (las), я возвращаю 0

Если я наберу резюме (las), мой координатор Ссылка: Н / Д

Я хочу перепроецировать их на NAD83 / UTM18 и обрабатывать их вместе с помощью LiDR. Мне непонятно, можно ли это сделать в LiDR? Как лучше действовать? У меня есть 1000 плиток длиной 1 км.

Ответы

3 JRR Aug 17 2020 at 04:02

Вы можете связать CRS с вашим объектом LAS с помощью epsg()<-

epsg(las) <- 12345

Вы можете перепроектировать, spTransform()но эта функция неоптимальна в текущей реализации. Он фактически преобразует LASобъект в файл SpatialPoints, использует sp::spTransform()и обновляет LAS. Я рекомендую использовать las2lasfrom LAStoolsдля такого рода задач обработки файлов LAS, но для небольших наборов данных spTransformможет быть удобно.

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²

Обратите внимание - раньше lidR 3.0.4функция немного глючная. Если вы проверите, las2то увидите, что он больше не соответствует спецификациям. Это было исправлено в lidR 3.0.4.

las_check(las2)