ฉันสามารถฉายไฟล์ LAS ใน LidR อีกครั้งได้ไหม

Aug 16 2020

ฉันกำลังทำงานกับชุดข้อมูล LAS 2014 2 รายการที่อยู่ติดกันใน 2 การคาดการณ์:

อย่างไรก็ตามเมื่อฉันพิมพ์ espg (las) คำตอบที่กลับมาของฉันคือ 0

ถ้าฉันพิมพ์สรุป (las) พิกัดของฉันอ้างอิง: NA

ฉันต้องการฉายภาพทั้งสองใหม่เป็น NAD83 / UTM18 และประมวลผลร่วมกันผ่าน LiDR ฉันไม่ชัดเจนว่าสามารถทำใน LiDR ได้หรือไม่? จะดำเนินการอย่างไรดีที่สุด? ฉันมีกระเบื้อง 1,000 แผ่น 1 กม. ที่ต้องจัดการ

คำตอบ

3 JRR Aug 17 2020 at 04:02

คุณสามารถระบุ CRS ให้กับวัตถุ LAS ของคุณด้วยไฟล์ epsg()<-

epsg(las) <- 12345

คุณสามารถฉายซ้ำได้spTransform()แต่ฟังก์ชันนี้ไม่เหมาะสมในการใช้งานปัจจุบัน มันเปลี่ยนLASเป็นการSpatialPointsใช้งานsp::spTransform()และอัปเดตกลับไฟล์LAS. ฉันแนะนำให้ใช้las2lasจาก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)