概要
ポリゴン フィーチャで定義されたエリアに重なる 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,...] | 計算されるプロパティ。
| String |
派生した出力
名前 | 説明 | データ タイプ |
output_polygons | 更新された入力ポリゴン フィーチャ。 | フィーチャ クラス |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
env.workspace = 'C:/data'
arcpy.ddd.LasPointStatsByArea('city_lidar.lasd', 'study_area.shp',
['Z_MIN', 'Z_MAX'])
次のサンプルは、スタンドアロン 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