概要
航空機 LIDAR データ内にある建物の屋上ポイントを分類します。
図
使用法
建物の屋上ポイントを分類するには、LAS データの地表ポイントを分類する必要があります。地表ポイントがまだ分類されていない場合は、[LAS の地表分類 (Classify LAS Ground)] ツールを使用することを検討してください。地表ポイントのクラス コード値は 2 である必要があります。地表ポイントのクラス コード値が 2 以外の場合は、[LAS クラス コードの変更 (Change LAS Class Codes)] ツールを使用してクラス コードを適切に再割り当てします。
クラス コード値が 0、1 と 6 の LAS ポイントは、建物の屋上の特性と適合しているかどうかを判定するために評価されます。この条件を満たしていない建物として分類されたポイントは、既存の建物に分類されたポイントを再利用するオプションが指定されていない限り、クラス コード値 1 に再割り当てされます。
構文
ClassifyLasBuilding(in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing, {reuse_building}, {photogrammetric_data})
パラメーター | 説明 | データ タイプ |
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 |
reuse_building (オプション) | 既存の建物に分類されたポイントを再利用するか再評価するかを指定します。 既存の建物に分類されたポイントを再利用するか再評価するかを指定します。
| Boolean |
photogrammetric_data (オプション) | LAS ファイル内のポイントが写真測量で生成された点群から取得されたかどうかを指定します。 LAS ファイル内のポイントが写真測量で生成された点群から取得されたかどうかを指定します。
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
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())
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst