サマリー
航空機 LIDAR データ内にある建物の屋上ポイントを分類します。
図
使用法
建物の屋上ポイントを分類するには、LAS データの地表ポイントを分類する必要があります。地表ポイントがまだ分類されていない場合は、[LAS の地表分類 (Classify LAS Ground)] ツールを使用することを検討してください。地表ポイントのクラス コード値は 2 である必要があります。したがって、地表ポイントのクラス コード値がこれと異なる場合は、[LAS クラス コードの変換 (Change LAS Class Codes)] ツールを使用して、クラス コードを適切に割り当てなおしてください。
クラス コード値が 0 と 1 の LAS ポイントは、建物の屋上を特定するために指定された最小面積と高さに適合しているかどうかを判定するために評価されます。クラス コード値が 6 の既存の建物分類ポイントも、隣接ポイントが同じ建物につながる平面にあるどうかを判定するために使用されます。このプロセスでは、ランダムに選択されたシード ポイントで始まる最適化された RANSAC アルゴリズムが使用されます。これにより、分類結果が処理によって多少ばらつく場合もあります。
建物に属していないポイントの小クラスターが誤って分類される場合は、[最小エリア] パラメーターを大きくすることで、そういったポイントが含まれないようにすることを検討してください。逆に、ツールによって建物が見つからないように思われる場合は、見つからない領域を取得するために、より小さいエリアの使用を検討してください。処理範囲または境界のポリゴンを指定して、処理される領域をさらに制限できます。これは、実験値の結果をテストする際に役立ちます。
このツールは、航空機 LIDAR 測量の処理に適しています。写真測量ポイント クラウドなどのソースから作成された LAS ファイルの結果は、ノイズ ポイント発生の可能性が高いため、信頼性が低下する可能性があります。
このツールは、LAS ポイントのポイント密度が一定である場合に最適に機能します。通常、航空機 LIDAR 測量では、カバレッジに多少のオーバーラップがあるため、ポイント群の密度がより高いエリアが発生します。このようなポイントを含めると、ポイントの名目間隔が歪み、オーバーラップ領域で過剰エラーが発生し、オーバーラップしない領域で漏れエラーが発生します。最善の結果を得るために、[LAS オーバーラップの分類 (Classify LAS Overlap)] ツールを使用して、オーバーラップ ポイントを分類し、[平均ポイント間隔] 値を変更して、オーバーラップの領域以外の名目ポイント間隔の推定値を指定します。
構文
ClassifyLasBuilding_3d (in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing)
パラメーター | 説明 | データ タイプ |
in_las_dataset | 分類対象の LAS データセット。 | LAS Dataset Layer |
min_height (オプション) | 屋上ポイントに識別される最低ポイントを定義する、地表からの高さ。 | Linear Unit |
min_area | 建物の屋上の存在を確立するために使用する同一平面上のポイントの最小エリア。 | Areal Unit |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報が存在することにより、LAS データセット レイヤーのフィルターおよびシンボル オプションで、LAS ファイル内に存在する LAS 属性値のみを表示できます。
| Boolean |
extent (オプション) | このツールが評価するデータの範囲を指定します。 | Extent |
boundary | このツールで処理される対象地域を定義するポリゴン フィーチャ。 | Feature Layer |
process_entire_files (オプション) | 処理範囲の適用方法を指定します。
| Boolean |
point_spacing | 建物の屋上の存在を確立するために使用する LAS ポイントの平均間隔。この値のデフォルトは、LAS データセット用に計算された平均間隔に設定されます。 | Linear Unit |
派生した出力
名前 | 説明 | データ タイプ |
derived_las_dataset | 建物の屋上に分類される LAS データセット。 | LAS データセット レイヤー |
コードのサンプル
ClassifyLasBuilding (LAS の建物分類) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet',
minArea='30 Square Feet', compute_stats=True)
ClassifyLasBuilding (LAS の建物分類) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン 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())
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS Desktop Advanced: 次のものが必要 3D Analyst