LAS の地表分類 (Classify LAS Ground) (3D Analyst)

概要

航空 LIDAR データ内の地表ポイントを分類します。

LAS の地表分類 (Classify LAS Ground)

使用法

  • このツールでは、入力 LAS データセットが投影座標系である必要があります。地理座標系で格納されたデータは、[LAS の抽出 (Extract LAS)] ツールと、出力座標系の環境設定で指定した投影座標系を使用して再投影できます。

  • クラス コード値が 0、1、または 2 の LAS ポイントだけを地表ポイントとして割り当てることができます。LAS ファイルで別のクラス コード値を使用して未分類ポイントまたは地表計測値を表している場合は、[LAS クラス コードの変更 (Change LAS Class Codes)] ツールを使用してクラス コード値を再割り当てします。また、分類プロセスでは、オーバーラップまたは保留分類フラグが割り当てられたポイントが無視されます。

  • 地表分類ポイントを使用して、特定の解像度で地表ラスター サーフェスを生成する場合は、[DEM 解像度] パラメーターを使用して、結果の生成を高速化することを検討してください。地表クラス コードに割り当てられるポイントの数を減らすことで、指定した解像度に必要なカバレッジを維持しながら、パフォーマンスを向上できます。

  • LAS の分類で異なる傾斜角特性を持つテレイン (比較的平坦な領域に急な傾斜面が続く場所など) が返される場合、標準方法で地表分類を一度実行してから、2 回目に積極的分類と地表の再使用オプションを有効にして地表分類を実行することを検討してください。処理範囲を適用するか、ポリゴンの境界を指定して、この操作を必要な領域のみに制限します。

  • 橋のある場所や高速道路の出入り口につながる道路は、地表として間違って分類されている可能性があるので確認する必要があります。

構文

arcpy.3d.ClassifyLasGround(in_las_dataset, method, {reuse_ground}, {dem_resolution}, {compute_stats}, {extent}, boundary, {process_entire_files})
パラメーター説明データ タイプ
in_las_dataset

処理対象の LAS データセット。クラス コード値 0、1、または 2 を含む LAS ポイントのラスト リターンだけが評価されます。

LAS Dataset Layer
method

地表ポイントの検出に使用される方法を指定します。

  • STANDARDこの方法では、傾斜角の変化の許容値が設定されているため、保守的オプションでは通常取得されない地表地形の緩やかな起伏は取得できますが、積極的オプションで取得される急な起伏は取得できません。これがデフォルトです。
  • CONSERVATIVEこの方法は、それ以外の方法と比べて、地表の傾斜角の変化に対する制約が厳重であり、地表と低地の植生 (芝生や植え込みなど) を区別することができます。この方法は、最小限の曲率を持つ地形に最適です。
  • AGGRESSIVEこの方法では、[STANDARD] 方法では無視される可能性のある急な起伏 (稜線や丘の頂上など) を含む地面を検出できます。この方法は、このツールの 2 回目のパスに、reuse_ground パラメーターを REUSE_GROUND に設定して使用するのが最適です。この方法を都市部や平坦な農村部では使用しないでください。このような使い方をすると、電柱、植生、建物の一部など、高さのある対象物が間違って地表として分類される可能性があります。
String
reuse_ground
(オプション)

既存の地表ポイントを再分類するか再使用するかを指定します。

  • RECLASSIFY_GROUND既存の地表ポイントを再分類します。地表の一部と見なされないポイントには、未分類ポイントを表すクラス コード値 1 の再割り当てが行われます。これがデフォルトです。
  • REUSE_GROUND詳細な調査なしで既存の地表ポイントを受け入れて再使用し、未分類ポイントを特定できるようにします。
Boolean
dem_resolution
(オプション)

ポイントのサブセットだけが地表としての分類の評価対象となり、処理速度が上がる距離。より速く DEM サーフェスを生成する必要がある場合は、このパラメーターの使用を検討してください。最小距離は 0.3 メートルですが、この処理を効果的に実行するには、LIDAR データの平均ポイント間隔の 1.5 倍以上の距離を指定する必要があります。

Linear Unit
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
boundary

このツールで処理される対象地域を定義するポリゴン フィーチャ。

Feature Layer
process_entire_files
(オプション)

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

  • PROCESS_EXTENT対象地域と交差している LAS ポイントだけが処理されます。これがデフォルトです。
  • PROCESS_ENTIRE_FILESLAS ファイルの一部が対象地域と交差している場合、対象地域の外側にあるポイントも含め、その LAS ファイル内のすべてのポイントが処理されます。
Boolean

派生した出力

名前説明データ タイプ
out_las_dataset

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

LAS データセット レイヤー

コードのサンプル

ClassifyLasGround (LAS の地表分類) の例 1 (Python ウィンドウ)

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

arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasGround_3d('metro.lasd', 'CONSERVATIVE', 
                           boundary='study_area.shp', 
                           process_entire_files='PROCESS_ENTIRE_FILES')
ClassifyLasGround (LAS の地表分類) の例 2 (スタンドアロン スクリプト)

次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。

'''****************************************************************************
Name:        Classify Ground & Vegetation in Forest Environment
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

# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)

try:
    arcpy.CheckOutExtension('3D')
    # Execute CreateLasDataset
    arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
    # Make an initial pass of ground classifier
    arcpy.ddd.ClassifyLasGround(lasd, method="Conservative")
    # Make a secondary pass to capture ridges
    arcpy.ddd.ClassifyLasGround(lasd, method="Aggressive", 
                                reuse_ground="REUSE_GROUND")
    # Classify vegetation
    arcpy.ddd.ClassifyLasByHeight(lasd, ground_source='GROUND', 
                                  height_classification=[[3, 5], 
                                                         [4, 17], 
                                                         [5, 120]], 
                                  noise='HIGH_NOISE', compute_stats="COMPUTE_STATS")
    arcpy.CheckInExtension('3D')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

ライセンス情報

  • Basic: 次のものが必要 3D Analyst
  • Standard: 次のものが必要 3D Analyst
  • Advanced: 次のものが必要 3D Analyst

関連トピック