我正在使用多脉冲激光雷达数据,这些数据沿飞行路径内的多条线收集点。我正在尝试确定 las 文件中各行的名称和数量。我在 python 中使用 liblas 模块。
我找到了解释存储在 las 文件中的不同字段的文档。它在页面的最底部提到了一个数据字段(get_data 和 set_data)。
标头中的“点数据格式”和“点数据记录长度”为该“数据”字段留出空间。我的标题说我为数据字段预留了 28 个字节,并且数据字段中存储了 28 个值。第 19 个值(至少在来自两个不同传感器的两个数据集中)指的是行号。我在单脉冲数据中有一个值,在多脉冲数据中有 4 个值。
我想知道这个字段中存储的内容是否有标准,或者它是否是专有的。
另外,作为获取每条扫描线名称的一种方式,我编写了以下代码:
import liblas
from liblas import file as lasfile
# Get parameters
las_file = r"E:\Testing\00101.las"
f = lasfile.File(las_file, mode='r')
line_list = []
counter = 0
for p in f:
line_num = p.data[18]
if line_num not in line_list:
line_list.append(line_num)
counter += 1
print line_list
结果出现以下错误:
Traceback (most recent call last):
File "D:\Tools\Python_Scripts\point_info.py", line 46, in <module>
line_num = p.data[18]
File "C:\Python27\ArcGIS10.1\lib\site-packages\liblas\point.py", line 560, in get_data
length = self.header.data_record_length
File "C:\Python27\ArcGIS10.1\lib\site-packages\liblas\point.py", line 546, in get_header
return header.Header(handle=core.las.LASPoint_GetHeader(self.handle))
WindowsError: [Error -529697949] Windows Error 0xE06D7363
有谁知道更多关于存储在 las 点/标题中的行号?谁能解释这个错误?在我收到错误之前,它似乎分配了近 2gb 的内存。我在win xp上,所以我猜它是一个内存错误,但我不明白为什么访问这个“数据”字段会占用内存。任何帮助是极大的赞赏。