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

サマリー

地表からの高さに基づいて LIDAR ポイントを再分類します。

使用法

  • このツールは、地表からの高さに基づいて、クラス コード値 0 または 1 の LAS ポイントを再分類します。 LAS ポイントまたは別個のラスター レイヤーを地表のソースとして使用できます。 LAS ポイントを地表のソースとして使用する場合、地表分類 LAS データセットが必要です。 値 2、8、または 2 と 8 の両方で地表分類されたポイントを使用できます。 ASPRS (American Society for Photogrammetry and Remote Sensing) は、1.4 より前の LAS バージョンで、2 を地表に割り当て、8 をモデル キーに割り当てるクラス コードの定義を含む LAS 形式の仕様を定義しています。 モデル キーの分類は、従来、地表ポイントのサブセットを識別するために使用されていました。 LAS バージョン 1.4 で、モデル キーの指定が、任意のクラス コードに適用できる分類フラグになり、8 のクラス コード値の定義が以降の使用のために保持されました。

  • LAS データに地表分類ポイントが含まれていないが、地表ポイントが使用可能な場合、[LAS の地表分類 (Classify LAS Ground)] ツールを使用します。 地表ポイントが 2 または 8 以外の値を使用する場合は、[LAS クラス コードの変更 (Change LAS Class Codes)] ツールを使用して地表ポイントを適切に再分類します。

  • 地表からの高さの勾配を使用してポイントを分類することは、点群を視覚化してフィルター処理するのに役立ち、より正確な対話的分類を実施するプロセスにも役立ちます。 このツールは、デフォルトで、ASPRS の LAS 形式の仕様での低植生、中植生、高植生を表すクラス コード 3、4、5 を分類します。

  • LAS ポイントのサブセットに対して指定した Z 範囲値の妥当性を確認するために、処理範囲を適用することを検討してください。 再分類された領域に問題がない場合、さらに広い範囲に適用することができます。

  • 地表分類ポイントは使用できないが高さに基づいた分類が必要な場合 (建物内部や洞窟の点群など)、カスタム ラスター サーフェスが役立ちます。

パラメーター

ラベル説明データ タイプ
入力 LAS データセット

処理される LAS データセット。 クラス コード値が 0 および 1 の LAS ポイントだけが評価されます。

LAS Dataset Layer
地表ソース

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

  • すべての地表ポイント2 の地表分類コード値と 8 のモデル キー コード値で指定された LAS ポイントが使用されます。
  • モデル キー ポイント8 のモデル キー分類コード値で指定された LAS ポイントのみが使用されます。
  • ラスター サーフェス地表の高さはラスター サーフェスに基づきます。
String
高さの分類

LAS ポイントの再分類に使用される、クラス コードおよび地表からの最大高度。 テーブル内のクラスの順序は、再分類の処理に使用される Z 値の範囲を定義します。 最初のエントリの Z 範囲は、地表から、指定した [地表からの高さ] の値までになります。 それ以降のエントリの Z 範囲は、前のエントリの上限から、そのエントリの [地表からの高さ] の値までになります。

Value Table
ノイズ分類
(オプション)

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

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

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

  • オン - 統計情報を計算します。 これがデフォルトです。
  • オフ - 統計情報を計算しません。
Boolean
処理範囲
(オプション)

評価されるデータの範囲。

  • [現在の表示範囲] Current Display Extent - 範囲は、アクティブなマップまたはシーンに基づきます。 このオプションは、アクティブなマップが存在する場合にのみ使用できます。
  • [範囲の描画] Draw Extent - 範囲は、マップまたはシーンに描画された四角形に基づきます。 このオプションは、プロジェクト ジオデータベースにフィーチャクラスを作成し、レイヤーをマップに追加します。 フィーチャクラスの座標系はマップと同じです。
    注意:

    このオプションは、[環境] ダイアログ ボックスでは使用できません。 範囲データ タイプを使用するツール パラメーターまたはツール ダイアログ ボックスの [環境] タブからのみ使用できます。

    注意:

    編集タブで編集を有効/無効にする編集オプションがオンの場合、範囲を描画するには [編集] リボン タブで編集を有効化する必要があります。

  • [レイヤーの範囲] Layer - 範囲は、アクティブなマップ レイヤーに基づきます。 ドロップダウン リストを使用して使用可能なレイヤーを選択するか、[すべてのレイヤーのデータの範囲] オプションを使用して、ベースマップを除くすべてのアクティブなマップ レイヤーを組み合わせた範囲を取得します。 このオプションは、レイヤーを含むアクティブなマップが存在する場合にのみ使用できます。

    各マップ レイヤーには、次のオプションがあります。

    • [すべてのフィーチャ] Select All - レイヤーのすべてのフィーチャの範囲。
    • [選択フィーチャ]Area from Selected Features - レイヤーの選択フィーチャの範囲。
    • [表示フィーチャ] Extent Indicator - レイヤーの表示フィーチャの範囲。
      注意:

      [選択フィーチャ] Area from Selected Features[表示フィーチャ] Extent Indicator オプションの範囲は、フィーチャ レイヤーでのみ使用できます。

  • [参照] Browse - 範囲は、既存のデータに基づきます。
  • [入力データの共通領域] Intersect - 範囲は、すべての入力データの最小範囲または共通範囲に基づきます。 重なり合う入力データがない場合は、すべてゼロの null 範囲が生成されます。
  • [入力データのすべての領域] Union - この範囲は、すべての入力データの最大範囲または結合された範囲に基づきます。
  • [クリップボード] Paste - 範囲をクリップボードにコピーしたり、クリップボードから貼り付けたりできます。
    • [範囲をコピー] Copy - 範囲の座標と座標系をクリップボードにコピーします。
    • [範囲を貼り付け] Paste - 範囲の座標と、必要に応じて座標系をクリップボードから貼り付けます。 クリップボードの値に座標系が含まれていない場合、マップの座標系が範囲に使用されます。
    注意:

    範囲の座標は、ArcPy Extent オブジェクトと同じ書式と順序 (x-min、y-min、x-max、y-max、空間参照) を使用して、クリップボードからコピーおよびクリップボードから貼り付けられます。

  • [範囲をリセット] Reset - 範囲はデフォルト値にリセットされます。
  • 手動入力した座標値 - 座標値は数値であり、アクティブなマップの座標系で表示する必要があります。
    注意:

    マップで、入力された座標と異なる表示単位が使用されることがあります。 基本方向 (N、S、E、W) を使用することはできません。 南と西の座標にはマイナス値の記号を使用します。

Extent
範囲と重なる LAS ファイル全体を処理
(オプション)

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

  • オフ - 処理範囲内にある LAS ポイントのみが評価されます。 これがデフォルトです。
  • オン - 処理範囲と重なる .las ファイル内のすべてのポイントが評価されます。
Boolean
処理境界

LAS 地表ポイントが評価される地域を定義するポリゴン フィーチャ。

Feature Layer
ピラミッドの更新
(オプション)

クラス コードが変更された後に、LAS データセットのピラミッドを更新するかどうかを指定します。

  • オン - LAS データセットのピラミッドを更新します。 これがデフォルトです。
  • オフ - LAS データセットのピラミッドを更新しません。
Boolean
入力ラスター サーフェス
(オプション)

地表の高さの値のソースを提供するラスター レイヤー。 このパラメーターは、[地表ソース] パラメーターが [ラスター サーフェス] に設定されている場合にのみ使用されます。

Raster Layer

派生した出力

ラベル説明データ タイプ
更新された入力 LAS データセット

変更された LAS データセット。

LAS Dataset Layer

arcpy.ddd.ClassifyLasByHeight(in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, {process_entire_files}, boundary, {update_pyramid}, {in_surface})
名前説明データ タイプ
in_las_dataset

処理される LAS データセット。 クラス コード値が 0 および 1 の LAS ポイントだけが評価されます。

LAS Dataset Layer
ground_source

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

  • GROUND2 の地表分類コード値と 8 のモデル キー コード値で指定された LAS ポイントが使用されます。
  • MODEL_KEY8 のモデル キー分類コード値で指定された LAS ポイントのみが使用されます。
  • SURFACE地表の高さはラスター サーフェスに基づきます。
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
(オプション)

評価されるデータの範囲。

  • MAXOF - すべての入力データの最大範囲が使用されます。
  • MINOF - すべての入力データに共通する最小領域が使用されます。
  • DISPLAY - 範囲は、表示範囲と同じになります。
  • レイヤー名 - 指定したレイヤーの範囲が使用されます。
  • Extent オブジェクト - 指定したオブジェクトの範囲が使用されます。
  • 座標のスペース区切りの文字列 - 指定した文字列の範囲が使用されます。 座標は、x-min、y-min、x-max、y-max の順序で表されます。
Extent
process_entire_files
(オプション)

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

  • PROCESS_EXTENT処理範囲内にある LAS ポイントのみが評価されます。 これがデフォルトです。
  • PROCESS_ENTIRE_FILES処理範囲と重なる .las ファイル内のすべてのポイントが評価されます。
Boolean
boundary

LAS 地表ポイントが評価される地域を定義するポリゴン フィーチャ。

Feature Layer
update_pyramid
(オプション)

クラス コードが変更された後に、LAS データセットのピラミッドを更新するかどうかを指定します。

  • UPDATE_PYRAMIDLAS データセットのピラミッドを更新します。 これがデフォルトです。
  • NO_UPDATE_PYRAMIDLAS データセットのピラミッドを更新しません。
Boolean
in_surface
(オプション)

地表の高さの値のソースを提供するラスター レイヤー。 このパラメーターは、ground_source パラメーターが SURFACE に設定されている場合にのみ使用されます。

Raster Layer

派生した出力

名前説明データ タイプ
out_las_dataset

変更された LAS データセット。

LAS Dataset Layer

コードのサンプル

ClassifyLasByHeight の例 1 (Python ウィンドウ)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ClassifyLasByHeight('lidar.lasd', 'Ground', 
                             [[3, 5], [4, 17], [5, 120]], 'HIGH_NOISE')
ClassifyLasByHeight の例 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())

関連トピック