高さによる LAS の分類 (Classify LAS By Height) (3D Analyst)

概要

地表からの高さに基づいて 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 の特定バージョンでのみサポートされる)

    メモ:

    LAS 1.4 で導入された新しいクラス コード割り当ての大部分はすでに予約として指定されていますが、クラス コード 8 および 12 は、モデル キーおよびオーバーラップから予約に変更されました。

構文

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

地表からの高さの決定に使用される、地表計測値のソース。

  • GROUND2 の地表分類コード値と 8 のモデル キー コード値で指定された LAS ポイントが使用されます。
  • MODEL_KEY8 のモデル キー分類コード値で指定された LAS ポイントのみが使用されます。
String
height_classification
[[class_code, height_from_ground],...]

LAS ポイントに割り当てられるクラス コード値。LAS ポイントは、指定した地表からの高さから得られる値の範囲内に収まります。エントリの順序は、LAS ポイントの再分類の定義に使用される高度の範囲に影響を与えます。最初のエントリの Z 範囲は、地表から指定の height_from_ground 値までになります。それ以降のエントリの Z 範囲は、前のエントリの上限から、そのエントリに固有の height_from_ground 値までになります。

Value Table
noise
(オプション)

ポイントを地表からの近さに基づいてノイズとして再分類するかどうかを指定します。センサーの誤差や、故意ではない空中の障害物 (LIDAR パルスのパス内を通る鳥など) によって、LIDAR データ内にノイズが発生する場合があります。

  • ALL_NOISE低ノイズと高ノイズの両方が分類されます。
  • HIGH_NOISELAS 分類テーブル内の最大高度を超えるポイントのみが、高ノイズとして再分類されます。
  • LOW_NOISE地表よりも下にあるポイントのみがノイズとして再分類されます。これは、すべての地表ポイントが地表の定義に使用されている場合にのみ使用できます。
  • NONEポイントはノイズとして再分類されません。
String
compute_stats
(オプション)

LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報を計算することで、LAS ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。また統計によって、分類コードやリターン情報などの LAS 属性の表示が LAS ファイルに存在する値に制限されるので、フィルタリングとシンボルのエクスペリエンスも強化されます。

  • COMPUTE_STATS統計情報を計算します。
  • NO_COMPUTE_STATS統計情報を計算しません。これがデフォルトです。
Boolean
extent
(オプション)

このツールが評価するデータの範囲を指定します。

Extent
process_entire_files
(オプション)

処理範囲の適用方法を指定します。

  • PROCESS_ENTIRE_FILES処理範囲内にある LAS ポイントのみが評価されます。これがデフォルトです。
  • PROCESS_EXTENT処理範囲と重なる LAS ファイル内のすべてのポイントが評価されます。
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

関連トピック