概要
LAS データで捕捉した植生ポイントの標高計測値の分布に関する統計情報を計算します。
使用法
このツールは、森林樹冠の理解を深めることができる、地表より上のポイントの統計的派生物を生成します。未分類ポイントを表すクラス コード値 0 または 1 と、植生ポイントを表すクラス コード値 3、4、5 が割り当てられた LAS ポイントが解析されます。
このツールを実行する前に、処理される LAS データの地表ポイントを分類する必要があります。この要件を満たすために、[LAS の地表分類 (Classify LAS Ground)] ツールを使用できます。
このツールは、指定された統計情報オプションと高さのパーセンタイルごとに 1 つのラスターを出力します。各ラスターの名前は、指定されたベース名で始まり、高さメトリクスまたは空間統計が付きます。平均値ラスターの場合、ファイル名に「mean」という単語が追加されます。標準偏差の場合、ファイル名に「stdev」が追加されます。平均絶対偏差の場合、ファイル名に「mad」が追加されます。
[最小高さ] パラメーターを使用すると、特に地表ポイントが十分に分類されていない場合に、このツールの結果に歪みを生じさせる可能性がある非常に低いポイントを除外できます。
[最小ポイント数] パラメーターを使用すると、地表より上のポイントが少なすぎるエリアを除外して、意味のある結果を得ることができます。
構文
arcpy.3d.LasHeightMetrics(in_las_dataset, out_location, {base_name}, {statistics}, {height_percentiles}, min_height, min_points, cell_size, {raster_format})
パラメーター | 説明 | データ タイプ |
in_las_dataset | 処理対象の LAS データセット。 | LAS Dataset Layer |
out_location | 出力ラスター データセットが保存されるフォルダーまたはジオデータベース 出力場所がフォルダーの場合、生成されるラスター データセットは TIFF 形式になります。 | Workspace |
base_name (オプション) | 出力ラスター データセットのベース名 | String |
statistics [statistics,...] (オプション) | 出力ラスターの各セルのエリア内にある、地上の未分類の植生ポイントに対して計算された統計情報を指定します。
| String |
height_percentiles [height_percentiles,...] (オプション) | セル内で指定したパーセンテージのポイントが下にある高さ。たとえば、値が 95 の場合、生成されるセル値は、地上のポイントの 95 パーセントが存在する高さを示します。 | Long |
min_height | 評価対象のポイントの地表面からの最小高さ。 | Linear Unit |
min_points | 高さメトリクスを計算するために、指定のセルに存在する必要がある最小ポイント数。指定された最小数よりもポイント数が少ないセルには、出力にデータが含まれません。 | Long |
cell_size | 出力ラスター データセットのセル サイズ。 | Linear Unit |
raster_format (オプション) | 出力場所がフォルダーの場合に作成されるラスター形式を指定します。
| String |
派生した出力
名前 | 説明 | データ タイプ |
derived_out_location | 出力ラスター データセットの場所。 | ワークスペース |
output_rasters | 出力ラスター データセット | ラスター データセット |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet',
minArea='30 Square Feet', compute_stats=True)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset
try:
# Create temp LAS dataset to reference LAS files that will be tiled
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las, temp_lasd)
arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4,
point_format=7, file_size=300)
arcpy.management.Delete(temp_lasd)
arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
noise='All Noise', compute_stats='COMPUTE_STATS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst