เครื่องมือการประมวลผล LiDAR ใดที่มีใน Python


22

ฉันใช้FUSIONและบรรทัดคำสั่ง FUSION Lidar Toolkit (LTK) เพื่อประมวลผลข้อมูล LiDAR การค้นหาในวงกว้างของ Google ("Lidar Python") ให้ผลlibLASและpyLASเป็นไลบรารี Python LiDAR อย่างไรก็ตามสิ่งเหล่านี้ดูเหมือนจะให้สิทธิ์การอ่านและเขียนข้อมูล LAS เท่านั้น

ฉันสนใจเป็นพิเศษในการสร้างภาพความเข้มและความหนาแน่นเพิ่มเติมจากแบบจำลองพื้นผิวท้องฟ้าจากจุดเมฆ มีชุดเครื่องมือที่ได้รับการยอมรับโดยทั่วไปใน Python ที่สามารถทำงานประเภทเดียวกันได้ FUSION LTK มีความสามารถหรือไม่?


1
มันไม่ได้เป็นคำตอบสำหรับคำถามของคุณโดยตรง แต่เนื่องจากฉันได้ทำงานกับซอฟต์แวร์ Pythonสำหรับการสร้างต้นไม้พฤกษศาสตร์จากจุดข้อมูลคลาวด์ LIDAR ที่ได้มาบางทีบางทีเทคโนโลยีกองซ้อนที่ฉันใช้อาจทำให้คุณมีความคิด โดยเฉพาะเลเยอร์การสร้างภาพสร้างโดยใช้ VTK ซึ่งมีประสิทธิภาพมาก
cjauvin

ArcMap 10.1 มีความสามารถในการจัดการตัวกรอง Lidar Datacloud สำหรับการแสดงผลและการวิเคราะห์กับเลเยอร์อื่น ๆ C ++ น่าจะเป็นวิธีที่ดีที่สุดในการจัดการไฟล์. Atlas แบบ rich data ตามที่แนะนำไว้ข้างต้น

ฉันไม่เห็นว่าคำตอบของคำถามนี้เป็นอย่างไร เขาต้องการเครื่องมือใน Python หากคุณแนะนำ C ++ คุณควรสำรองการอ้างสิทธิ์นั้นด้วยเหตุผลอย่างละเอียด
Devdatta Tengshe

คำตอบ:


13

laspyเป็นอีกหนึ่งซอฟต์แวร์การอ่าน / เขียน LAS ที่ดี รองรับการทำงานกับข้อมูลโดยตรงในอาร์เรย์ที่มีค่าสูงและฟีเจอร์ Pythonic อื่น ๆ อีกมากมาย อย่างไรก็ตามมันไม่ได้ประมวลผลซอฟต์แวร์ใด ๆ

PDALมีความสามารถในการใช้ Python เป็นภาษาการกรองในท่อ แต่นี่ไม่ใช่เครื่องมือประมวลผล

Python ตัวสั่นไม่มากเกินไปสำหรับ LiDAR และการประมวลผลแบบคลาวด์แบบจุด ฉันคิดว่าสิ่งเหล่านี้เกี่ยวข้องกับปริมาณข้อมูลที่ประมวลผลตามปกติและการตอบสนองโดยทั่วไปสำหรับ C / C ++ เมื่อเผชิญกับความท้าทาย ฉันหวังว่าเมื่อ Python พัฒนาขึ้น (PyPy กำลังขับสิ่งต่างๆมากมายและเป็นเหตุผลที่ฉันทำงานเพื่อพัฒนา Laspy) ซอฟต์แวร์ประมวลผลระบบคลาวด์ Python point ก็มีให้มากขึ้น ฉันคิดว่าแนวโน้มจะดีขึ้น แต่ก็ยังมีสิ่งต่าง ๆ ไม่มากนัก


7

ฉันเพิ่งเปิดตัวห้องสมุดโอเพ่นซอร์ส (MIT) แบบสแตนด์อโลน (เช่นไม่มีการอ้างอิง) ที่เรียกว่าWhiteboxToolsสำหรับดำเนินการวิเคราะห์เชิงพื้นที่หลายประเภทรวมถึงการประมวลผลข้อมูล LiDAR ห้องสมุดที่เขียนใน Rust และมีการสนับสนุนอย่างกว้างขวางสำหรับการเขียนสคริปต์หลามตาม ตัวอย่างเช่นสคริปต์ Python ต่อไปนี้ใช้ไลบรารี WhiteboxTools เพื่อเติมข้อมูลสี RGB ของจุด LiDAR ในไฟล์ LAS:

from whitebox_tools import WhiteboxTools

wbt = WhiteboxTools()
wbt.work_dir = "/path/to/data/"
in_lidar = "lidar_data.las"
in_image = "airphoto.tif"
out_lidar = "colourized_lidar.las"
wbt.lidar_colourize(in_lidar, in_image, out_lidar) 

เครื่องมือการประมวลผลเฉพาะ LiDAR ของ WhiteboxTools รวมถึงฟังก์ชั่นต่อไปนี้:

  • BlockMaximum: สร้างแรสเตอร์สูงสุดจากไฟล์อินพุต LAS
  • BlockMinimum: สร้างแรสเตอร์ขั้นต่ำแบบบล็อกจากไฟล์ LAS
  • FilterLidarScanAngles: ลบคะแนนในไฟล์ LAS ด้วยมุมการสแกนที่มากกว่าเกณฑ์
  • FindFlightlineEdgePoints: ระบุจุดตามขอบของเที่ยวบินในไฟล์ LAS
  • FlightlineOverlap: อ่านไฟล์จุด LiDAR (LAS) และส่งสัญญาณแรสเตอร์ที่มีจำนวนของเที่ยวบินที่ทับซ้อนกันในแต่ละตารางเซลล์
  • LidarElevationSlice: ส่งออกจุดทั้งหมดภายในไฟล์จุด LiDAR (LAS) ที่อยู่ระหว่างช่วงการยกระดับที่ระบุ
  • LasToAscii: แปลงไฟล์ LAS หนึ่งไฟล์ขึ้นไปเป็นไฟล์ข้อความ ASCII
  • LidarColourize: เพิ่มฟิลด์สีแดง - เขียว - น้ำเงินของไฟล์ LiDAR (LAS) ตามภาพอินพุต
  • LidarGroundPointFilter: ระบุจุดพื้นภายในชุดข้อมูล LiDAR
  • LidarIdwInterpolation: แทรกไฟล์ LAS โดยใช้โครงร่างน้ำหนักถ่วง (IDW) ผกผัน
  • LidarHillshade: คำนวณค่าฮิลล์เชดสำหรับคะแนนภายในไฟล์ LAS และเก็บข้อมูลเหล่านี้ในฟิลด์ RGB
  • LidarHistogram: สร้างฮิสโตแกรมจากข้อมูล LiDAR
  • LidarInfo: พิมพ์ข้อมูลเกี่ยวกับชุดข้อมูล LiDAR (LAS) รวมถึงส่วนหัว, ความถี่การส่งคืนจุดและข้อมูลการจำแนกประเภทและข้อมูลเกี่ยวกับเร็กคอร์ดความยาวผันแปร (VLRs) และ geokeys
  • LidarJoin: รวมไฟล์ LiDAR (LAS) หลายไฟล์ไว้ในไฟล์ LAS เดียว
  • LidarKappaIndex: ทำการวิเคราะห์ดัชนี kappa ของข้อตกลง (KIA) เกี่ยวกับการจำแนกประเภทของไฟล์ LAS สองไฟล์
  • LidarNearestNeighbourGridding: กริดไฟล์ LAS โดยใช้รูปแบบเพื่อนบ้านที่ใกล้ที่สุด
  • LidarPointDensity: คำนวณรูปแบบเชิงพื้นที่ของความหนาแน่นของจุดสำหรับชุดข้อมูล LiDAR
  • LidarPointStats: สร้าง rasters หลายตัวสรุปการกระจายของข้อมูลจุด LAS
  • LidarRemoveDuplicates: ลบจุดที่ซ้ำกันออกจากชุดข้อมูล LiDAR
  • LidarRemoveOutliers: ลบค่าผิดปกติ (คะแนนสูงและต่ำ) ใน LiDAR point cloud
  • LidarSegmentation: แบ่งกลุ่ม LiDAR point cloud ตามเวกเตอร์ปกติ
  • LidarSegmentationBasedFilter: ระบุจุดพื้นภายในเมฆ LiDAR point โดยใช้วิธีการแบ่งกลุ่มตาม
  • LidarTile: เรียงไฟล์ LiDAR LAS เป็นไฟล์ LAS หลายไฟล์
  • LidarTophatTransform: ดำเนินการแปลงหมวกยอดนิยมสีขาวบนชุดข้อมูล Lidar; เป็นค่าประมาณความสูงเหนือพื้นดินสิ่งนี้มีประโยชน์สำหรับการสร้างแบบจำลองหลังคาพืชพรรณ
  • NormalVectors: คำนวณเวกเตอร์ปกติสำหรับจุดภายในไฟล์ LAS และเก็บข้อมูลเหล่านี้ (ส่วนประกอบเวกเตอร์ XYZ) ในฟิลด์ RGB

นอกจากนี้ยังมีเครื่องมือมากมายสำหรับการประมวลผล DEM ที่ถูกแก้ไขจากแหล่งข้อมูล LiDAR (เช่นการเก็บรักษาคุณสมบัติการแยกคุณสมบัติการบังคับใช้พลังน้ำ ฯลฯ ) รายละเอียดสามารถพบได้ในคู่มือการใช้งาน รหัสที่มาสามารถพบได้ที่นี่และไบนารีรวบรวมอยู่บนเว็บไซต์ Geomorphometry และ Hydrogeomatics, ที่นี่


ว้าว! รอคอยที่จะทดสอบเครื่องมือเหล่านี้
แอรอน

ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ เพียงส่งอีเมลฉันหากคุณมีคำถามใด ๆ
WhiteboxDev

ฉันถือว่า LidarPointStats คล้ายกับ FUSION GridMetricsหรือไม่ มีเอกสารใดบ้างในตัวชี้วัดกริดที่ถูกสร้างขึ้นเมื่อใช้ LidarPointStats?
Aaron

@Aaron ฉันไม่แน่ใจเกี่ยวกับเครื่องมือของ FUSION มากเกินไปเนื่องจากฉันไม่เคยใช้ซอฟต์แวร์ แต่เครื่องมือนี้แสดงผลลัพธ์ต่อไปนี้: num_points, num_pulses, z_range, dark_range, predom_class รายละเอียดสามารถพบได้ที่นี่ ( github.com/jblindsay/whitebox-geospatial-analysis-tools/blob/… ) และในคู่มือผู้ใช้
WhiteboxDev

@Aaron ฉันอาจจะต้องชี้แจงด้วยเช่นกันว่าเครื่องมือเครื่องมือ lidar_point_stats กำลังรายงานสถิติเหล่านั้นแต่ละรายการแบบ Cell-by-Cell นั่นคือมีการสร้างภาพแรสเตอร์สำหรับแต่ละสถิติที่ผู้ใช้ระบุเป็นผลลัพธ์ที่ต้องการ ตัวอย่างเช่น: lidar_point_stats ('input.las', resolution = 1.0, num_points = True, num_pulses = True)
WhiteboxDev

2

แม้ว่าจะไม่ใช่ไลบรารี 'Python' อย่างเคร่งครัด แต่เป็นชุดของเครื่องมือเสริมอื่น ๆ โดยเฉพาะ GRASS มี 'ARSF DEM Scripts' ซึ่งฉันได้เขียนไว้:

https://github.com/pmlrsg/arsf_dem_scripts

หนึ่งในเป้าหมายคือเพื่อจัดเตรียมชุดทั่วไปของฟังก์ชั่น Python สำหรับเครื่องมือบรรทัดคำสั่งที่แตกต่างกัน (เรียกว่าการใช้กระบวนการย่อย) ด้วยการmethodตั้งค่าสถานะที่ใช้เพื่อระบุเครื่องมือ

ตัวอย่างการใช้งานเพื่อสร้างภาพ DSM ความเข้มและความหนาแน่นคือ:

from arsf_dem import dem_lidar

# DSM image (GRASS, points2grid, SPDLib, FUSION or licensed LAStools)
dem_lidar.las_to_dsm('in_las.las', 'out_dsm.tif',
                      method='points2grid')

# Intensity image (GRASS or licensed version of LAStools)
dem_lidar.las_to_intensity('in_las.las', 'out_intensity.tif',
                           method='GRASS')

# Density image (GRASS only)
dem_lidar.grass_lidar.las_to_density('in_las.las', 'out_density.tif',
                                     bin_size=10)

มีค่อนข้างน้อยเครื่องมือการประมวลผล LiDAR สามารถผ่านกระดาษห่อ GRASS หลามซึ่งยังสามารถนำมาใช้แทน / arsf_demนอกเหนือไปจากสิ่งที่จะผ่านที่มีอยู่


2

pylidarเป็นชุดโมดูล Python ที่ค่อนข้างใหม่สำหรับการประมวลผล LiDAR มันขึ้นอยู่กับSPDLibและRIOSและใช้จำนวนมาก

สามารถดาวน์โหลดได้จากที่นี่


2

เริ่มเล่นด้วยเครื่องมือที่พบที่นี่ มันมีประโยชน์มากทีเดียว https://github.com/brycefrank/pyfor


ลิงค์สุดยอด! โดยเฉพาะอย่างยิ่งฉันตั้งตาคอยที่จะเล่นกับเมตริกซ์กริด
แอรอน

1

ถ้าคุณดูซอร์สโค้ดของกล่องเครื่องมือ QGIS สำหรับ LAStools (ตอนนี้เป็นส่วนหนึ่งของเฟรมเวิร์กปลั๊กอินการประมวลผล) คุณสามารถดูวิธีการเรียกซอฟต์แวร์ภายนอก (ที่นี่LAStools ) สำหรับการดำเนินการประมวลผล LiDAR

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.