Những công cụ xử lý LiDAR nào có sẵn trong Python?


22

Tôi đã và đang sử dụng FUSION và dòng lệnh FUSION Lidar Toolkit (LTK) để xử lý dữ liệu LiDAR. Một tìm kiếm Google rộng rãi ("Python Python") mang lại libLASpyLAS dưới dạng thư viện Python LiDAR, tuy nhiên, chúng dường như chỉ cung cấp quyền truy cập đọc và ghi vào dữ liệu LAS.

Tôi đặc biệt quan tâm đến việc tạo ra các hình ảnh cường độ và mật độ bên cạnh các mô hình bề mặt tán từ các đám mây điểm. Có một bộ công cụ được chấp nhận chung trong Python có thể thực hiện cùng loại nhiệm vụ mà FUSION LTK có khả năng không?


1
Đây không phải là câu trả lời trực tiếp cho câu hỏi của bạn, nhưng khi tôi đang làm việc trên một phần mềm Python để tái tạo cây thực vật từ dữ liệu đám mây điểm có được LIDAR, có lẽ công nghệ mà tôi đang sử dụng có thể cung cấp cho bạn một số ý tưởng. Đặc biệt, lớp trực quan được xây dựng bằng VTK, rất mạnh mẽ.
cjauvin

ArcMap 10.1 có khả năng xử lý các bộ lọc của Datarloud để hiển thị và phân tích với các lớp khác. C ++ có lẽ là phương pháp tốt nhất để xử lý các tệp .las giàu dữ liệu như được đề xuất ở trên.

Tôi không thấy câu trả lời này của OP như thế nào. Anh ta muốn một công cụ trong Python. Nếu bạn đang đề xuất C ++, bạn nên sao lưu yêu cầu đó với một lý do chi tiết.
Devdatta Tengshe

Câu trả lời:


13

laspy là một phần mềm đọc / ghi LAS tốt khác. Nó hỗ trợ làm việc với dữ liệu trực tiếp trong các mảng numpy và một số tính năng Pythonic đẹp khác. Nó không phải là phần mềm xử lý mỗi se, tuy nhiên.

PDAL có khả năng sử dụng Python làm ngôn ngữ lọc trong đường ống, nhưng đây cũng không phải là công cụ xử lý.

Không có quá nhiều trong trình phân tách Python cho LiDAR và xử lý đám mây điểm. Tôi nghĩ rằng một số điều này có liên quan đến khối lượng dữ liệu thường được xử lý và phản ứng điển hình để tiếp cận C / C ++ khi gặp thách thức. Tôi hy vọng rằng khi Python cải thiện (PyPy đang điều khiển rất nhiều thứ và đó là lý do mà tôi đã làm việc để phát triển laspy) phần mềm xử lý đám mây điểm Python trở nên khả dụng hơn. Tôi nghĩ triển vọng đang được cải thiện nhưng mọi thứ vẫn chưa hoàn toàn ở đó.


7

Gần đây tôi đã phát hành một thư viện độc lập nguồn mở (MIT) (tức là không phụ thuộc) được gọi là WhiteboxTools để thực hiện nhiều loại phân tích không gian địa lý, bao gồm cả xử lý dữ liệu LiDAR. Thư viện được viết bằng Rust và có hỗ trợ rộng rãi cho kịch bản dựa trên Python . Ví dụ: tập lệnh Python sau sử dụng thư viện WhiteboxTools để điền dữ liệu màu RGB của các điểm LiDAR trong tệp 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) 

Các công cụ xử lý dành riêng cho LiDAR của WhiteboxTools bao gồm các chức năng sau:

  • BlockMaximum: Tạo raster tối đa khối từ tệp LAS đầu vào.
  • BlockMinimum: Tạo raster tối thiểu khối từ tệp LAS đầu vào.
  • FilterLidarScanAngles: Loại bỏ các điểm trong tệp LAS có góc quét lớn hơn ngưỡng.
  • FindFlightlineEdgePoints: Xác định các điểm dọc theo cạnh của đường bay trong tệp LAS.
  • FlightlineOverlap: Đọc tệp điểm LiDAR (LAS) và xuất ra một raster chứa số lượng đường bay chồng chéo trong mỗi ô lưới.
  • LidarElevationSlice: Xuất ra tất cả các điểm trong tệp điểm LiDAR (LAS) nằm giữa một phạm vi độ cao đã chỉ định.
  • LasToAscii: Chuyển đổi một hoặc nhiều tệp LAS thành tệp văn bản ASCII.
  • LidarColourize: Thêm các trường màu đỏ-lục-lam của tệp LiDAR (LAS) dựa trên hình ảnh đầu vào.
  • LidarGroundPointFilter: Xác định các điểm mặt đất trong bộ dữ liệu LiDAR.
  • LidarIdwInterpolation: Nội suy các tệp LAS bằng cách sử dụng sơ đồ trọng số khoảng cách nghịch đảo (IDW).
  • LidarHillshade: Tính toán giá trị độ dốc cho các điểm trong tệp LAS và lưu trữ những dữ liệu này trong trường RGB.
  • LidarHistogram: Tạo biểu đồ từ dữ liệu LiDAR.
  • LidarInfo: In thông tin về bộ dữ liệu LiDAR (LAS), bao gồm tiêu đề, tần suất trả về điểm và dữ liệu phân loại và thông tin về các bản ghi độ dài thay đổi (VLR) và Geokey.
  • LidarJoin: Tham gia nhiều tệp LiDAR (LAS) vào một tệp LAS duy nhất.
  • LidarKappaIndex: Thực hiện phân tích kappa về thỏa thuận (KIA) về phân loại hai tệp LAS.
  • LidarNearestNeighbourGridding: Tạo các tệp LAS bằng cách sử dụng lược đồ lân cận gần nhất.
  • LidarPointD Mật độ: Tính toán mô hình không gian của mật độ điểm cho tập dữ liệu LiDAR.
  • LidarPointStats: Tạo một số trình quét tóm tắt phân phối dữ liệu điểm LAS.
  • LidarRemoveD repeatates: Loại bỏ các điểm trùng lặp khỏi bộ dữ liệu LiDAR.
  • LidarRemoveOutliers: Loại bỏ các ngoại lệ (điểm cao và điểm thấp) trong đám mây điểm LiDAR.
  • LidarSeg sắc tố: Phân đoạn một đám mây điểm LiDAR dựa trên các vectơ bình thường.
  • LidarSeg sắcBasingFilter: Xác định các điểm mặt đất trong các đám mây điểm LiDAR bằng cách sử dụng phương pháp phân đoạn dựa trên.
  • LidarTile: Xếp một tệp LiDAR LAS thành nhiều tệp LAS.
  • LidarTophatTransform: Thực hiện chuyển đổi mũ trắng trên bộ dữ liệu của Lidar; như một ước tính về chiều cao so với mặt đất, điều này rất hữu ích để mô hình tán cây.
  • NormalVector: Tính toán các vectơ bình thường cho các điểm trong tệp LAS và lưu trữ các dữ liệu này (các thành phần vectơ XYZ) trong trường RGB.

Ngoài ra, có rất nhiều công cụ để xử lý các DEM được nội suy từ dữ liệu nguồn LiDAR (ví dụ: khử nhiễu bảo tồn tính năng, thực thi thủy điện, v.v.). Chi tiết có thể được tìm thấy trong Hướng dẫn sử dụng . Mã nguồn có thể được tìm thấy ở đây , và các nhị phân được biên dịch trên trang web Geomorphometry và Hydrogeomatics, tại đây .


Ồ Nhìn về phía trước để thử nghiệm các công cụ này.
Aaron

Tôi hy vọng rằng nó làm việc cho bạn. Chỉ cần gửi email cho tôi nếu bạn có bất kỳ câu hỏi.
WhiteboxDev

Tôi giả sử LidarPointStats tương tự như FUSION GridMetrics? Có tài liệu nào trong đó các số liệu lưới được tạo khi sử dụng LidarPointStats không?
Aaron

@Aaron Tôi không chắc lắm về công cụ của FUSION vì tôi chưa bao giờ sử dụng phần mềm, nhưng công cụ này cho ra các phần sau: num_point, num_pulses, z_range, cường_range, preom_ class. Chi tiết có thể được tìm thấy ở đây ( github.com/jblindsay/whitebox-geospatial-analysis-tools/blob/ mẹo ) và cả trong hướng dẫn sử dụng.
WhiteboxDev

@Aaron Có lẽ tôi cũng nên làm rõ rằng công cụ công cụ lidar_point_stats đang báo cáo từng chỉ số đó trên cơ sở từng tế bào. Đó là, có một raster được tạo ra cho mỗi chỉ số mà người dùng chỉ định là đầu ra mong muốn. Ví dụ: lidar_point_stats ('input.las', độ phân giải = 1.0, num_point = True, num_pulses = True)
WhiteboxDev

2

Mặc dù không hoàn toàn là thư viện 'Python' mà là một bộ bao bọc cho các công cụ khác, đặc biệt là GRASS, có 'Tập lệnh ARSF DEM' mà tôi đã viết:

https://github.com/pmlrsg/arsf_dem_scripts

Một trong những mục tiêu là cung cấp một tập hợp các hàm Python chung cho các công cụ dòng lệnh khác nhau (được gọi là sử dụng quy trình con) với một methodcờ được sử dụng để chỉ định công cụ.

Ví dụ sử dụng để tạo DSM, cường độ và mật độ hình ảnh là:

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)

Có khá nhiều công cụ xử lý LiDAR có sẵn thông qua trình bao bọc GRASS Python cũng có thể được sử dụng thay vì / ngoài những gì có sẵn thông qua arsf_dem.


2

pylidarlà một bộ mô-đun Python tương đối mới để xử lý LiDAR. Nó được dựa trên SPDLibRIOS và sử dụng NumPy.

Nó có sẵn để tải về từ đây



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.