LidR에서 LAS 파일을 재 투영 할 수 있습니까?

Aug 16 2020

2 개의 예측에서 제공된 2 개의 인접한 2014 LAS 데이터 세트로 작업하고 있습니다.

그러나 espg (las)를 입력하면 반환 된 대답은 0입니다.

summary (las) my coord를 입력하면 참조 : NA

이 두 가지를 NAD83 / UTM18에 다시 투영하고 LiDR을 통해 함께 처리하고 싶습니다. LiDR에서 이것이 가능한지 확실하지 않습니까? 어떻게 진행하는 것이 가장 좋습니까? 처리해야 할 1km 타일이 1000 개 있습니다.

답변

3 JRR Aug 17 2020 at 04:02

다음을 사용하여 LAS 객체에 CRS를 지정할 수 있습니다. epsg()<-

epsg(las) <- 12345

로 재 투영 할 수 spTransform()있지만이 기능은 현재 구현에서 차선책입니다. 그것은 실제로 변환 LASSpatialPoints, 사용 sp::spTransform()및 업데이트가를 백업 LAS. 이런 종류의 LAS 파일 처리 작업에는 las2lasfrom 을 사용 하는 것이 좋지만 LAStools작은 데이터 세트의 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)