python3.12
pip install laspy
读取 LAS 文件中的点坐标,可以使用 laspy
库。这个库允许你轻松地读取和操作 LAS 文件中的数据。下面是一个示例代码,演示了如何使用 laspy
读取 LAS 文件中的坐标:
1、方法一
#version laspy:2.5.3
import laspy
import numpy as np
if __name__ == '__main__':
las_file_path = laspy.read('./cloud.las')
print(las_file_path.header.point_count)
totalePoint = las_file_path.header.point_count
#方法1
# 获取第100点的采集坐标
x_dimension = las_file_path.X[99]
y_dimension = las_file_path.Y[99]
z_dimension = las_file_path.Z[99]
scale = las_file_path.header.scales
offset = las_file_path.header.offsets
# 计算真实xyz坐标
scaled_xyz = [0, 0, 0]
scaled_xyz[0] = (x_dimension * scale[0]) + offset[0]
scaled_xyz[1] = (y_dimension * scale[1]) + offset[1]
scaled_xyz[2] = (z_dimension * scale[2]) + offset[2]
# 方法2
coords = np.vstack((las_file_path.x, las_file_path.y, las_file_path.z)).transpose()
one_hundred_point = coords[99, :]
# 打印两种方法的点
#print(one_hundred_point.tolist())
print(scaled_xyz)
这个代码示例中,我们打开了一个 LAS 文件,然后通过 inFile.points
获取了 LAS 文件中的点坐标。点的 x、y、z 坐标存储在 points
对象的相应列中。最后,我们读取并打印了前十个点的坐标。
如果你的 LAS 文件包含了其他属性,你可以通过访问 points
对象的其他列来读取它们。
2、方法二
#version laspy:2.5.3
# -*- coding: utf-8 -*-
import laspy
import numpy as np
if __name__ == "__main__":
# 指定 LAS 文件路径
las_file_path = "./cloud.las"
# 调用函数读取点坐标
las_file = laspy.read(las_file_path)
header = las_file.header.point_records_count
# 获取点的坐标
x = las_file.x
y = las_file.y
z = las_file.z
print(header)
# 打印前几个点的坐标
for i in range(header):
print(f"Point {i+1}: ({x[i]}, { y[i]}, {z[i]})")