Dapatkah saya memproyeksikan ulang file LAS di LidR

Aug 16 2020

Saya bekerja dengan 2 set data LAS 2014 yang berdekatan yang disediakan dalam 2 proyeksi:

Namun, ketika saya mengetik espg (las) jawaban saya yang dikembalikan adalah 0

Jika saya mengetik ringkasan (las) coord saya.Ref .: NA

Saya ingin memproyeksikan ulang keduanya ke NAD83 / UTM18 dan memprosesnya bersama melalui LiDR. Saya tidak jelas apakah ini mungkin dilakukan di LiDR? Bagaimana cara terbaik untuk melanjutkan? Saya memiliki 1000 ubin 1km untuk ditangani.

Jawaban

3 JRR Aug 17 2020 at 04:02

Anda dapat mengatribusikan CRS ke objek LAS Anda dengan epsg()<-

epsg(las) <- 12345

Anda dapat memproyeksikan ulang dengan spTransform()tetapi fungsi ini kurang optimal dalam implementasi saat ini. Ini benar-benar mengubah LASmenjadi SpatialPoints, menggunakan sp::spTransform()dan memperbarui kembali LAS. Saya merekomendasikan untuk menggunakan las2lasfrom LAStoolsuntuk jenis tugas pemrosesan file LAS ini tetapi untuk dataset kecil spTransformmungkin nyaman.

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²

Catatan - sebelum lidR 3.0.4fungsinya agak bermasalah. Jika Anda memeriksa, las2Anda akan melihat itu tidak lagi sepenuhnya sesuai dengan spesifikasi. Itu sudah diperbaiki lidR 3.0.4.

las_check(las2)