概要
地表からの高さに基づいて LIDAR ポイントを再分類します。
使用法
このツールは、クラス コード値 2 または 8 が割り当てられた LIDAR リターンを使用して作成された地表サーフェスの高さに基づいて、クラス コード 0 または 1 の LAS ポイントを再分類します。LIDAR 地表リターンが 2 または 8 以外の値を使用している場合は、[LAS クラス コードの変更 (Change LAS Class Codes)] ツールを使用して、クラス コード定義を LAS ファイル形式の仕様に一致させます。
このツールを使用して、建物の数がきわめて少ない遠隔地において収集された LIDAR データで植生を分類する際にこのツールを使うことを検討してください。
LAS ポイントのサブセットに対して指定した Z 範囲値の妥当性を確認するために、処理範囲を適用することを検討してください。再分類された領域に問題ないことが確認できれば、次に、さらに広い範囲に適用することができます。
-
LAS 形式は、ASPRS (American Society for Photogrammetry and Remote Sensing) によって定義された仕様に基づいて各ポイントの分類をサポートします。ArcGIS プラットフォームは、LAS ファイル バージョン 1.4 で規定されている以下の分類方式を適用します。
分類値 分類タイプ 0
分類不可
1
未分類
2
地表
3
低植生
4
中植生
5
高植生
6
建物
7
低ノイズ
8
モデル キー/予約
9
水
10
レール
11
路面
12
オーバーラップ/予約
13
保護線
14
電線
15
送電塔
16
ワイヤー コネクタ
17
橋床版
18
高ノイズ
19 ~ 63
ASPRS 定義用の予約 (LAS 1.1 〜 1.3 はクラス コード 31 までをサポート)
32 ~ 255
ユーザー定義可能 (LAS 1.0 および 1.4 の特定バージョンでのみサポートされる)
構文
arcpy.ddd.ClassifyLasByHeight(in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, {process_entire_files}, boundary)
パラメーター | 説明 | データ タイプ |
in_las_dataset | 処理される LAS データセット。クラス コード値が 0 および 1 の LAS ポイントだけが評価されます。 | LAS Dataset Layer |
ground_source | 地表からの高さの決定に使用される、地表計測値のソース。
| String |
height_classification [[class_code, height_from_ground],...] | LAS ポイントに割り当てられるクラス コード値。LAS ポイントは、指定した地表からの高さから得られる値の範囲内に収まります。エントリの順序は、LAS ポイントの再分類の定義に使用される高度の範囲に影響を与えます。最初のエントリの Z 範囲は、地表から指定の height_from_ground 値までになります。それ以降のエントリの Z 範囲は、前のエントリの上限から、そのエントリに固有の height_from_ground 値までになります。 | Value Table |
noise (オプション) | ポイントを地表からの近さに基づいてノイズとして再分類するかどうかを指定します。センサーの誤差や、故意ではない空中の障害物 (LIDAR パルスのパス内を通る鳥など) によって、LIDAR データ内にノイズが発生する場合があります。
| String |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報を計算することで、LAS ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。また統計によって、分類コードやリターン情報などの LAS 属性の表示が LAS ファイルに存在する値に制限されるので、フィルタリングとシンボルのエクスペリエンスも強化されます。
| Boolean |
extent (オプション) | このツールが評価するデータの範囲を指定します。 | Extent |
process_entire_files (オプション) | 処理範囲の適用方法を指定します。
| Boolean |
boundary | LAS 地表ポイントの評価の対象とする地域を定義するポリゴン フィーチャ。 | Feature Layer |
派生した出力
名前 | 説明 | データ タイプ |
out_las_dataset | 変更された LAS データセット。 | LAS データセット レイヤー |
コードのサンプル
ClassifyLasByHeight (高さによる LAS の分類) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasByHeight_3d('lidar.lasd', 'Ground',
[[3, 5], [4, 17], [5, 120]], 'HIGH_NOISE')
ClassifyLasByHeight (高さによる LAS の分類) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Classify Vegetation Points
Description: Classify points representing vegetation with LAS class code values
of 3, 4, and 5. The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
extent = arcpy.GetParameter(3)
calcStats = arcpy.GetParameter(4)
try:
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ClassifyLasByHeight(lasd, ground_source='GROUND',
height_classification=[[3, 5],
[4, 17],
[5, 120]],
noise='ALL_NOISE', compute_stats=calcStats,
extent=extent)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst