Saya sudah mulai belajar bagaimana memanipulasi data LAS dengan python dan ingin melihat bagaimana orang lain menangani file LAS. Saya ingin membaca poin (saya menggunakan array numpy), dan memfilter kelas 1 dan 2 (tidak terklasifikasi dan di-ground) ke array yang terpisah. Saya memiliki kode berikut tetapi sepertinya tidak bisa mendapatkan poin disaring.
# 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
Saya telah melihat arcpy.da.featureClassToNumpyArray, tetapi saya tidak ingin mengimpor arcpy juga tidak perlu mengkonversi ke shapefile.
Bagaimana lagi saya bisa memfilter / membaca data LAS ke array yang numpy?
Jawaban:
Anda
PointsXYZIC
sekarang array numpy. Yang berarti Anda dapat menggunakan pengindeksan numpy untuk memfilter data yang Anda minati. Misalnya Anda dapat menggunakan indeks boolean untuk menentukan poin mana yang akan diambil.Anda sekarang harus memiliki array numpy dengan semua nilai di mana data tidak terklasifikasi atau di-ground. Untuk mendapatkan nilai yang telah diklasifikasikan Anda dapat menggunakan:
sumber
Gunakan laspy untuk membaca file LAS dan dengan mudah mengembalikan data sebagai array numpy Anda dapat berinteraksi dengan. laspy adalah python murni, hampir secepat libLAS, memiliki lebih banyak fitur daripada libLAS Python bindings, dan jauh lebih mudah untuk digunakan.
sumber
Saya minta maaf jika Anda sudah mengetahui hal ini, tetapi LASTools adalah alat Open Source yang luar biasa yang sekarang terintegrasi dengan ArcGIS dan QGIS 2.0 - Ini memiliki opsi untuk menyaring data dengan cara yang Anda lihat.
sumber