Tôi đã bắt đầu học cách thao tác dữ liệu LAS trong python và muốn xem cách người khác xử lý các tệp LAS. Tôi muốn đọc các điểm (tôi đang sử dụng một mảng numpy) và lọc ra các lớp 1 và 2 (không được phân loại và tiếp đất) thành một mảng riêng biệt. Tôi có đoạn mã sau nhưng dường như không thể lọc được các điểm.
# Import modules
from liblas import file
import numpy as np
if __name__=="__main__":
'''Read LAS file and create an array to hold X, Y, Z values'''
# Get file
las_file = r"E:\Testing\ground_filtered.las"
# Read file
f = file.File(las_file, mode='r')
# Get number of points from header
num_points = int(f.__len__())
# Create empty numpy array
PointsXYZIC = np.empty(shape=(num_points, 5))
# Load all LAS points into numpy array
counter = 0
for p in f:
newrow = [p.x, p.y, p.z, p.intensity, p.classification]
PointsXYZIC[counter] = newrow
counter += 1
Tôi đã thấy arcpy.da.featureClassToNumpyArray, nhưng tôi không muốn nhập arcpy cũng như không phải chuyển đổi sang shapefile.
Làm thế nào khác tôi có thể lọc / đọc dữ liệu LAS thành một mảng numpy?