1

飛行経路内の多数の線に沿ってポイントを収集するマルチパルス LIDAR データを使用しています。las ファイル内の個々の行の名前と数を特定しようとしています。Pythonでliblasモジュールを使用しています。

las ファイルに格納されているさまざまなフィールドについて説明しているこのドキュメントを見つけました。ページの一番下にデータ フィールド (get_data および set_data) が記載されています。

ヘッダーの「ポイント データ フォーマット」と「ポイント データ レコード長」によって、この「データ」フィールド用のスペースが確保されます。ヘッダーには、データ フィールド用に 28 バイトが確保されており、データ フィールドには 28 の値が格納されていることが示されています。19 番目の値 (少なくとも 2 つの異なるセンサーからの 2 つのデータセット) は、行番号を表します。シングル パルス データには 1 つの値があり、マルチ パルス データには 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

最後のポイント/ヘッダーに保存されている行番号について誰かが詳しく知っていますか? 誰でもエラーを説明できますか? エラーが発生する前に、2 GB 近くの RAM を割り当てているようです。私はwin XPを使用しているので、メモリエラーだと推測していますが、この「データ」フィールドにアクセスするとメモリが占​​有される理由がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1