サマリー
ジオメトリ内にある不自然な結果を除去して、建物ポリゴンのフットプリントを正規化します。
図
使用法
このツールは、ポリライン圧縮アルゴリズムを使用して、不自然な結果が生成される可能性のあるフィーチャ抽出ワークフローによって作成された建物フットプリント ポリゴンの歪みを矯正します。
正規化されたポリゴンが適合すべきポリゴン境界の周辺領域を定義するために、許容値が使用されます。この領域を最もよく視覚化するには、ポリゴンの境界をライン フィーチャに変換します。次に適切な許容値でバッファー処理すると、ツールから得られる結果について理解することができます。
指定したパラメーターを使用して、所定の入力の正規化されたソリューションが生成されない場合、元のフィーチャが出力にコピーされます。
出力には STATUS というフィールドが含まれます。その値の意味は次のとおりです。
- 0 = 元のフィーチャ
- 1 = 正規化されたフィーチャ
構文
RegularizeBuildingFootprint_3d (in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
パラメーター | 説明 | データ タイプ |
in_features | 正規化される建物フットプリントを表すポリゴン。 | Feature Layer |
out_feature_class | このツールで生成されるフィーチャクラス。 | Feature Class |
method | 入力フィーチャの処理に使用される正規化手法。
| String |
tolerance | 正規化されたフットプリントが、元のフィーチャの境界から外れることができる最大距離。指定した値は、入力フィーチャの座標系の距離単位で表されます。 | Double |
densification | 正規化されたフィーチャが直線か曲線かを評価するのに使用されるサンプリング間隔。密度は許容値以下である必要があります。 このパラメーターは、直角の識別情報をサポートする手法とのみ使用されます。 | Double |
precision | 正規化プロセスにおける空間グリッドで使用される精度。有効な値の範囲は 0.05 〜 0.25 です。 | Double |
diagonal_penalty | 直角の接続を作成するための距離のバイアス値を制御します。直角を作成するために、対角線のペナルティより小さい距離が使用されます。 このパラメーターは、直角および対角線手法とのみ使用されます。 | Double |
min_radius | 正規化された円の最小半径。値が 0 の場合、最小サイズの制限がないことを意味します。このオプションは、円の手法でのみ利用可能です。 | Double |
max_radius | 正規化された円の最大半径。このオプションは、円の手法でのみ利用可能です。 | Double |
コードのサンプル
RegularizeBuildingFootprint (建物フットプリントの正規化) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.env.workspace = 'c:/data'
arcpy.ddd.RegularizeBuildingFootprint('rough_footprints.shp',
'regularized_footprints.shp',
method='Circle', tolerance=1.5, min_radius=10,
max_radius=20)
RegularizeBuildingFootprint (建物フットプリントの正規化) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Regularize Building Footprints
Description: Extract footprint from lidar points classified as buildings and
regularize its geometry.
****************************************************************************'''
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')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS Desktop Advanced: 次のものが必要 3D Analyst