サマリー
地表からの高さに基づいて LIDAR ポイントを再分類します。
使用法
このツールを使用するには、クラス コード値 2 または 8 で地表として分類された LAS ポイントが必要となります。地表を表すポイントにそれ以外のクラス コード値が割り当てられている場合は、[LAS クラス コードの変更 (Change LAS Class Codes)] ツールを使用してクラス コード定義を LAS ファイル形式の仕様に一致させることを検討してください。クラス コード値が 0 または 1 の 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 の特定バージョンでのみサポートされる)
構文
ClassifyLasByHeight_3d (in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, boundary, {process_entire_files})
パラメーター | 説明 | データ タイプ |
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 |
boundary | LAS 地表ポイントの評価の対象とする地域を定義するポリゴン フィーチャ。 | Feature Layer |
process_entire_files (オプション) | 処理範囲の適用方法を指定します。
| Boolean |
コードのサンプル
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())
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS Desktop Advanced: 次のものが必要 3D Analyst