フィーチャから LAS クラス コードを設定(Set LAS Class Codes Using Features) (3D Analyst)
サマリ
ポイント、ライン、およびポリゴン フィーチャを使用して、LAS データセットが参照する LAS ファイル内のデータ ポイントを分類します。
使用法
LAS ポイントは、地表、建物、水域などの LIDAR リターンが検出する多数の物質に対応するカテゴリに分類できます。American Society for Photogrammetry and Remote Sensing(ASPRS)によって定義されている LAS ファイル バージョン 1.1、1.2、および 1.3 の分類コードは、以下のとおりです。
分類値
分類タイプ
0
分類不可
1
未分類
2
地面
3
低植生
4
中植生
5
高植生
6
建物
7
ノイズ
8
モデル キー
9
水域
10
ASPRS 定義用に予約
11
ASPRS 定義用に予約
12
オーバーラップ
13–31
ASPRS 定義用に予約
注意:LAS 1.0 仕様には、0 ~ 255 の範囲の分類コードはありますが、標準化された分類スキーマはありません。通常、1.0 のファイルで使用されている分類コードは、データ ベンダによって定義され、補助情報を通じて提供されます。
LAS データセット レイヤを使用すると、LAS ポイントをクラス コードやリターンでフィルタ処理できます。レイヤを作成するには、[LAS データセット レイヤの作成(Make LAS Dataset Layer)] ツールを使用するか、ArcMap または ArcScene に LAS データセットを読み込んで、レイヤ プロパティ ダイアログ ボックスからクラス コードまたはリターンを指定します。
入力フィーチャに対して指定されているバッファの 2 次元エリア内にある LAS データ ポイントが分類されます。
-
[範囲外ポイントの位置の特定(Locate Outliers)] から取得したポイントを使用して、LAS ポイントをノイズとして分類します。
構文
パラメータ | 説明 | データ タイプ |
in_las_dataset |
入力 LAS データセット。 | LAS Dataset Layer |
feature_class [[features, buffer_distance, new_class, synthetic, key_point, withheld],...] |
LAS データセットが参照する LIDAR ファイルに対するクラス コード値を定義するのに使用する 1 つ以上のフィーチャクラスを指定します。各フィーチャには、次のオプションがあり、これらを指定することができます。
| Value Table |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報が存在することにより、LAS データセット レイヤのフィルタおよびシンボル オプションで、LAS ファイル内に存在する LAS 属性値のみを表示できます。
| Boolean |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.SetLasClassCodesUsingFeatures_3d("test.lasd", [["lake.shp 0 9"],
["outliers.shp", 5, "NO_CHANGE",
"NO_CHANGE", "NO_CHANGE", "SET"]],
"COMPUTE_STATS")
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''**********************************************************************
Name: Assign Withheld Classification Flag to Outlier Points in LAS Files
Description: Uses Locate Outliers to identify points in LAS files that
should be assigned the 'withheld' classification flag.
Designed for use as a script tool.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
lasD = arcpy.GetParameterAsText(0)
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(lasD, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute SetLasClassCodeUsingFeatures
arcpy.ddd.SetLasClassCodesUsingFeatures(lasd, [["outliers.shp", 5,
"NO_CHANGE", "NO_CHANGE",
"NO_CHANGE", "SET"]])
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)