エリアによる LAS ポイントの統計 (LAS Point Statistics By Area) (3D Analyst)

概要

ポリゴン フィーチャで定義されたエリアに重なる LAS ポイントの統計情報を評価します。

使用法

  • LAS データセット レイヤーにより、レイヤーのフィルター設定内の分類コード、分類フラグ、リターンの組み合わせを選択することで表示および処理される LAS ポイントを制限できます。フィルターは、[レイヤー プロパティ] ダイアログ ボックスまたは [LAS データセット レイヤーの作成 (Make LAS Dataset Layer)] ツールを使用して定義できます。

  • ポリゴン境界で定義された対象地域の上にある LIDAR ポイントの特徴を決定する場合、このツールを使用することを検討してください。LAS ポイントから取得した標高のみが評価されます。LAS データセットが参照するサーフェス制御フィーチャから得られる Z 値は、すべて無視されます。

  • このツールは、複数のフィールドを入力フィーチャの属性テーブルに追加します。それらのフィールドがすでに存在する場合、各フィールドの値は上書きされます。更新されるフィールドの値には、入力フィーチャに重なる LAS ポイントに関して指定した以下の統計情報が反映されます。

    • Z_MIN - 最小 Z 値。
    • Z_MAX - 最大 Z 値。
    • Z_MEAN - 平均 Z 値。
    • POINT_COUNT - 評価された LAS ポイントの数。
    • STD_DEV - Z 値の標準偏差。

構文

arcpy.3d.LasPointStatsByArea(in_las_dataset, in_features, out_property)
パラメーター説明データ タイプ
in_las_dataset

処理対象の LAS データセット。

LAS Dataset Layer
in_features

統計情報がレポートされるエリアを定義するポリゴン。

Feature Layer
out_property
[out_property,...]

計算されるプロパティ。

  • Z_MINフィーチャと重なっている LAS ポイントのうちの最小 Z 値。
  • Z_MAXフィーチャと重なっている LAS ポイントのうちの最大 Z 値。
  • Z_MEANフィーチャと重なっている LAS ポイントの平均 Z 値。
  • POINT_COUNT評価された LAS ポイントの数。
  • STANDARD_DEVIATIONZ 値の標準偏差。
String

派生した出力

名前説明データ タイプ
output_polygons

更新された入力ポリゴン フィーチャ。

フィーチャ クラス

コードのサンプル

LasPointStatsByArea (エリアによる LAS ポイントの統計) の例 1 (Python ウィンドウ)

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

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.LasPointStatsByArea('city_lidar.lasd', 'study_area.shp', 
                              ['Z_MIN', 'Z_MAX'])
LasPointStatsByArea (エリアによる LAS ポイントの統計) の例 2 (スタンドアロン スクリプト)

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

'''****************************************************************************
       Name: Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings, 
             regularize its geometry, and calculate the building height.

****************************************************************************'''
import arcpy

lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)

try:
    lasd_layer = 'building points'
    arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
    temp_raster = 'in_memory/bldg_raster'
    arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
                                           'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
    temp_footprint = 'in_memory/footprint'
    arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
    arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint, 
                                          method='RIGHT_ANGLES')
    arcpy.ddd.LasPointStatsByArea(lasd_layer, footprint, ['MIN_Z', 'MAX_Z'])
    arcpy.management.AddField(footprint, 'Height', 'Double')
    arcpy.management.CalculateField(footprint, 'Height', 
                                    "round('!Z_Max! - !Z_Min!', 2)", 
                                    'PYTHON_9.3')


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

ライセンス情報

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

関連トピック