建物ポリゴンの単純化 (Simplify Building) (カートグラフィ)

概要

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

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

使用法

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

  • [入力バリア レイヤー] パラメーターは、単純化された建物が横切ることを許可されないフィーチャを識別するために使用します。バリア フィーチャには、ポイント、ライン、ポリゴンのいずれかを指定できます。

  • [長さゼロのラインをポイントとして保持] パラメーター (Python の collapsed_point_option) を使用すると、最小エリアより小さいという理由で削除されるすべての建物を表すポイントを格納するための出力ポイント フィーチャクラスを作成できます。[出力フィーチャクラス] パラメーター (Python の out_feature_class) と同じ名前と場所を接尾辞 _Pnt とともに使用して、出力ポイントが生成されます。出力ポリゴン フィーチャクラスには、入力フィーチャクラスにあるすべてのフィールドが含まれています。出力ポイント フィーチャクラスには、これらのフィールドは含まれません。

  • 出力フィーチャクラスは、単純化ステータスを示す 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 で conflict_option = "NO_CHECK") になっている場合でも、既存の値は上書きされます。空間競合が確認されていない場合、この既存のフィールドは NULL 値で上書きされます。既存の値を保存するには、入力フィーチャクラスにフィールドを作成し、SimBldFlag フィールドから既存の値をこの新しいフィールドにコピーします。

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

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

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

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

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

構文

arcpy.cartography.SimplifyBuilding(in_features, out_feature_class, simplification_tolerance, {minimum_area}, {conflict_option}, {in_barriers}, {collapsed_point_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
in_barriers
[in_barriers,...]
(オプション)

単純化の際にバリアとしての役割を果たすフィーチャを含む入力レイヤー。単純化された結果の建物はバリア フィーチャに接したり、バリア フィーチャを横切ったりしません。たとえば、建物を単純化する場合、単純化された結果の建物エリアは、バリアとして定義された道路フィーチャを横切りません。

Feature Layer
collapsed_point_option
(オプション)

minimum_area パラメーター値よりも小さいという理由で削除される建物の中心を格納するための出力ポイント フィーチャクラスを作成するかどうかを指定します。out_feature_class パラメーターで指定する出力フィーチャクラスと同じ名前を接尾辞 _Pnt とともに使用して、出力ポイントが生成され、同じフォルダー内に配置されます。

  • KEEP_COLLAPSED_POINTS 削除される建物の中心を格納するために、派生した出力ポイント フィーチャクラスが作成されます。
  • NO_KEEP 出力フィーチャクラスは作成されません。これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
out_point_feature_class

[最小エリア] パラメーター値 (Python では minimum_area) より小さいという理由で削除される建物を表すポイントを格納するための出力ポイント フィーチャクラス。このパラメーターは、[長さゼロのラインをポイントとして保持] パラメーターがオンである (Python では collapsed_point_option = "KEEP_COLLAPSED_POINTS") 場合にのみ使用されます。

フィーチャクラス

コードのサンプル

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"
inBarrierFeatures = "roads"
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", inBarrierFeatures, "KEEP_COLLAPSED_POINTS")

ライセンス情報

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

関連トピック