Las转csv格式的通用方法是使用python文件中的laspy库,
然而在转换过程中的痛点在于laspy库的1.x版本与2.x版本的部分语法不兼容;
以下是符合laspy 2.x版本的点云处理代码:
import pandas as pd
import numpy as np
import laspy
# 点云文件路径
filepath = r"XXX" #输入las格式文件路径
# 使用laspy读取点云文件
with laspy.open(filepath) as las_file:
las_data = las_file.read()
# 读取点云数据的x, y, z坐标
x = las_data.x
y = las_data.y
z = las_data.z
# 将x, y, z坐标转换为2D数组
x_M = np.array(x)[:, np.newaxis]
y_M = np.array(y)[:, np.newaxis]
z_M = np.array(z)[:, np.newaxis]
# 将坐标合并为一个数组
concatenate_array = np.concatenate((x_M, y_M, z_M), axis=1)
# 将合并后的数组转换为DataFrame
data_save = pd.DataFrame(concatenate_array, columns=["x", "y", "z"])
# CSV文件路径
output_file = r"xxx" #输入csv格式文件后缀
# 保存到CSV文件,不包含索引
data_save.to_csv(output_file, index=False)
print("Save_OK")
# 注意:不需要手动关闭文件,因为在 'with' 语句中会自动关闭
运行结果如下: