Skip To Content

建物ポリゴンの単純化 (Simplify Building)

概要

建物ポリゴンの本質的な形状とサイズを維持しながら、その建物ポリゴンの境界またはフットプリントを単純化します。

[建物ポリゴンの単純化 (Simplify Building)] の図

使用法

  • [最小エリア] パラメーターは、単純化された建物に対してのみ適用されます。単純化プロセスの完了後に最小領域より小さいサイズに縮小された建物はすべて、出力フィーチャクラスから除去されます。

  • 出力フィーチャクラスは、単純化ステータスを示す BLD_STATUS と呼ばれるフィールドを格納しています。BLD_STATUS の値は、次のとおりです。

    • 1 = 1 つの建物が単純化されました。
    • 2 = 1 つの建物がその最小境界範囲に単純化されました。
    • 3 = 許容値の二乗より小さい 1 つの建物がその最小境界範囲に単純化されました。
    • 5 = 建物は 1 つも単純化されませんでした。
    レガシー:

    ArcGIS バージョン 10 より前は、BLD_STATUS = 4 は直線で結合され、完全または部分的に単純化された建物を示していました。 BLD_STATUS = 4 は使用されなくなりました。

    注意:

    BLD_STATUS フィールドが入力フィーチャクラスに存在する場合、このフィールドは出力フィーチャクラスにも存在し、フィールドには新しい値が設定されます。既存の値は上書きされます。既存の値を保存したい場合は、新しいフィールドを入力フィーチャクラスに作成し、BLD_STATUS フィールドの既存の値を新しいフィールドにコピーします。

  • [空間的な競合を確認] パラメーターを使用した場合、このツールは空間競合を検出し、SimBldFlag と呼ばれる新しいフィールドを出力に追加して、競合フラグを格納します。値 0 は「競合なし」を意味し、値 1 は「競合」を意味します。

    注意:

    SimBldFlag フィールドが入力フィーチャクラスに存在する場合、このフィールドは出力フィーチャクラスにも存在し、フィールドには新しい値が設定されます。このパラメーターがオフ (Python で NO_CHECK) になっている場合でも、既存の値は上書きされます。空間競合が確認されていない場合、この既存のフィールドは NULL 値で上書きされます。既存の値を保存したい場合は、新しいフィールドを入力フィーチャクラスに作成し、SimBldFlag フィールドの既存の値を新しいフィールドにコピーします。

  • 編集セッション中は、このツールを実行できません。

  • 入力 z 値は、環境設定で指定されている場合、保持可能です。出力頂点が入力フィーチャ頂点に一致する場合、z 値は出力頂点に転送されます。それ以外の場合、z 値は既存の z 値から、または内挿を介して導き出されます。

  • 無効な (自己交差) ジオメトリが単純化プロセス中に作成されることがあります。このようなジオメトリは修復可能ですが、改良を加えることはできません。たとえば、自己交差するポリゴンは、複数パート ポリゴンになっても、自己交差の外観を維持します。

  • フィールド ドメイン、サブタイプ、属性ルールの転送環境がオフの場合でも、ドメインとサブタイプは出力にコピーされます。

  • 大きなデータセットを処理する場合は、メモリの制限を超えることがあります。このような場合、[カートグラフィック パーティション] 環境設定で関連するポリゴン フィーチャクラスを特定することにより、パーティション単位で入力データを処理することを検討します。パーティションの境界によって定義されたデータの一部が順次処理されます。結果のフィーチャクラスは、パーティション エッジにおいてシームレスで一致した形状になります。詳細については、「パーティションを使用した大きなデータセットのジェネラライズ」をご参照ください。

構文

SimplifyBuilding(in_features, out_feature_class, simplification_tolerance, {minimum_area}, {conflict_option})
パラメーター説明データ タイプ
in_features

単純化の対象となる建物ポリゴン。

Feature Layer
out_feature_class

作成される出力フィーチャクラス。

Feature Class
simplification_tolerance

建物の単純化の許容値を設定します。許容値には、0 (ゼロ) より大きい値を指定する必要があります。優先的に適用される単位を選択することができます。デフォルトはフィーチャ単位です。

Linear Unit
minimum_area
(オプション)

単純化された建物に対して、フィーチャ単位で保持される最小領域を設定します。デフォルト値は 0 であり、すべての建物が保持されます。単位は自由に指定できます。デフォルトはフィーチャの単位です。

Areal Unit
conflict_option
(オプション)

建物間に発生する可能性のある競合 (建物同士の重なり合いや接触) をチェックするかどうかを指定します。SimBldFlag と呼ばれるフィールドが出力に追加され、競合フラグが格納されます。値 0 は「競合なし」を意味し、値 1 は「競合」を意味します。

  • NO_CHECK発生する可能性のある競合をチェックしないように指定します。結果として、生成された建物同士が重なり合う場合があります。これがデフォルト設定です。
  • CHECK_CONFLICTS発生する可能性のある競合をチェックするように指定します。競合する建物にはフラグが設定されます。
Boolean

コードのサンプル

SimplifyBuilding (建物ポリゴンの単純化) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで SimplifyBuilding 関数を使用する方法を示しています。

import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SimplifyBuilding("buildings.shp", "C:/output/output.gdb/simplified_buildings", 10)
SimplifyBuilding (建物ポリゴンの単純化) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、SimplifyBuilding 関数を使用する方法を示します。

# Name: SimplifyBuilding_Example2.py
# Description: Aggregate building features and then simplify them
 
# Import system modules
import arcpy
import arcpy.cartography as CA
  
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Buildings"
 
# Set local variables
inBuildingFeatures = "houses"
aggregatedFeatures = "C:/data/PortlandOutput.gdb/residential_areas"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/residential_simplified"
# Aggregate house polygons.
CA.AggregatePolygons(inBuildingFeatures, aggregatedFeatures, 10, 100, 100, "ORTHOGONAL")
 
# Simplify residential building polygons.
CA.SimplifyBuilding(aggregatedFeatures, simplifiedFeatures, 10, 100, "CHECK_CONFLICTS")

ライセンス情報

  • Basic: いいえ
  • Standard: いいえ
  • Advanced: はい

関連トピック