建物の競合を解決 (Resolve Building Conflicts) (カートグラフィ)

概要

建物を移動したり、非表示にしたりすることにより、建物間および線形バリア フィーチャに関するシンボルの競合を解決します。

建物の競合を解決 (Resolve Building Conflicts) ツール
[建物の競合を解決 (Resolve Building Conflicts)] ツールで処理する前後の建物

使用法

  • このツールは、シンボル表示されたフィーチャのグラフィックス競合を評価することによって処理を行います。シンボル範囲と基準縮尺は、互いの関連について考慮されます。このツールは、シンボル表示を完成させてから実行してください。そうすることにより、目標とする最終的な出力縮尺に対応した基準縮尺が確実に得られます。

    このツールの詳細については、「建物の競合を解決 (Resolve Building Conflicts) ツールの機能」をご参照ください。

  • 注意:

    このツールは出力レイヤーを生成しない代わりに、入力レイヤーのソース フィーチャクラスのジオメトリを変更します。このツールを実行する前に、入力フィーチャのコピーを作成しておくことを強くお勧めします。

  • すべての入力フィーチャクラスに [非表示フィールド] が存在し、同じ名前が付けられている必要があります。表示したままにするフィーチャには値 0 を割り当て、非表示にするフィーチャには値 1 を割り当てます。レイヤーのフィルター設定または選択セットを使用して、単純化した結果のコレクションを表示します (invisibility <> 1)。複数の非表示フィールドを使用して、1 つのフィーチャクラス上で、異なる出力スケールに対応する異なる結果を格納することができます。

  • 競合を評価する前に、ポリゴンで表現される建物は、[建物の最小許容サイズ] パラメーターで指定された最小サイズまで拡大されます。最小サイズとは、フィーチャをぴったりと囲む長方形の短辺がとりうる最小の長さです。出力結果における建物の最終サイズを確認するには、RBC_SIZE という名前の小数フィールド (Double または Float) を、任意の入力建物フィーチャクラスに追加します。ツールの処理中に、RBC_SIZE フィールドは、各フィーチャの周りに回転したバウンディング ボックスの最短の辺で更新されます。

  • [階層フィールド] のパラメーターはオプションです。指定がない場合は、建物の周長およびバリアまでの近さに基づいて、相対的な重要度が建物に割り当てられます。建物が大きく、複数のバリアに近いほど、小さくて 1 つのバリアから比較的遠くにある建物よりも重要であると評価されます。重要な建物だけに階層値を割り当てて、その他のフィーチャ (階層値は NULL) には内部計算で求めた相対的な重要度を割り当てるように、部分的に指定した階層フィールドを使用することができます。

  • [階層フィールド] のパラメーターを使用して、建物に階層値 0 (ゼロ) を割り当てることにより、建物を強制的に表示に残すことができます。ツールでは、このような建物をマスクしません。階層値が 0 の建物は、地域で重要と見なされているため、近くにある建物が犠牲になる可能性は、建物の表示が強制されていない場合よりも高くなります。階層値が 0 の建物であっても、競合の解決や、他の必要なパラメーターに一致させるために変更 (移動、回転、サイズ変更) することは可能です。

  • 注意:

    投影座標系に入力フィーチャが存在しない場合、警告が出されます。このツールは線形距離単位に依存するため、非投影座標系では予期しない結果になります。有効な結果を得るには、投影座標系のデータに対してこのツールを実行することを強くお勧めします。座標系が見つからないか不明な場合、エラーが発生し、ツールの処理は実行されません。

  • ジオメトリがバリアと競合している (つまり、建物のシンボル表示だけでなく、実際のジオメトリが道路のようなバリア フィーチャのジオメトリに重なっている) 建物が、バリア フィーチャから除去されることはありません。このような建物には、競合解決の処理中にマスキングのマークが付きますが、移動は行われません。競合はそのままです。

  • ジオメトリでバリア フィーチャのシンボルが対称に配置されていない (つまり、ラインの片側だけシンボルが太い) 場合は、バリアのシンボルが細い側で建物とバリアの間のギャップが大きく表示されます。

  • 大きなデータセットや多くのバリア レイヤーを同時に処理すると、メモリの制限を超えることがあります。このような場合、[分割フィーチャ] 環境設定で、関連するポリゴン フィーチャクラスを特定することによって、パーティション単位で入力建物のデータを処理することを検討します。パーティションの境界によって定義された建物のデータの一部が順次処理されます。作成されたレイヤーは、パーティション エッジにおいてシームレスでかつ一致しています。このツールでパーティション化を実行する方法の詳細については、「建物の競合を解決 (Resolve Building Conflicts) ツールの機能」をご参照ください。

構文

arcpy.cartography.ResolveBuildingConflicts(in_buildings, invisibility_field, in_barriers, building_gap, minimum_size, {hierarchy_field})
パラメーター説明データ タイプ
in_buildings
[in_buildings,...]

競合しているか、許容サイズよりも小さい可能性がある建物フィーチャが含まれる入力レイヤー。建物はポイントまたはポリゴンになります。建物は、他の建物およびバリア フィーチャとの競合を解決するために変更されます。

Layer
invisibility_field

シンボルの競合を解決する目的で、一部の建物を表示から削除するために使用できる非表示の値を格納するフィールド。値 1 の建物は表示から削除する必要があるもの、値 0 の建物は残す必要があるものです。目に見える建物だけを表示するには、レイヤー上でフィルター設定を使用します。フィーチャは削除されません。

String
in_barriers
[[Layer, Boolean, Linear Unit],...]

入力建物フィーチャの競合バリアとなるライン フィーチャまたはポリゴン フィーチャが含まれるレイヤー。建物は、建物間およびバリア間の競合を解決するために変更されます。方向の値はブール値で、建物をバリア レイヤーの方向に合わせる必要があるかどうかを指定します。

ギャップは、建物をバリア レイヤーに近づける、またはバリア レイヤーから離す距離を指定します。単位を値とともに入力する必要があります。

  • ギャップの値を 0 (ゼロ) にすると、建物はバリア ラインまたはシンボル表示のアウトラインのエッジに直接スナップされます。
  • ギャップの値を NULL (指定なし) にした場合は、競合の解決で移動が必要とされない限り、建物をバリア ラインやアウトラインに近づけたり離したりする移動は行われません。

メモ:

ギャップの値に単位を付けて入力しなかった場合 (たとえば 10 Meters ではなく 10 と入力した場合) は、入力フィーチャの座標系の距離単位が使用されます。

Value Table
building_gap

シンボル表示された建物間の縮尺での許容最小距離。近接する建物は、この距離を強制的に確保するために移動されるか、非表示になります。最小許容距離は、基準縮尺に相対的に設定されます (1:50,000 縮尺であれば 15 メートルなど)。基準縮尺が設定されていない場合の値は 0 です。

Linear Unit
minimum_size

基準縮尺で描画され、シンボル表示された建物フィーチャをぴったりと囲む長方形の短辺がとりうる最小の長さの最小許容サイズ。長方形の 1 辺がこの値よりも小さい建物は、要件を満たすために拡大されます。サイズ変更は比率を維持しないで行われる場合があり、その結果、建物の形状が変わることがあります。

Linear Unit
hierarchy_field
(オプション)

フィーチャの重要度の階層ランクが格納されるフィールド。1 は非常に重要であり、整数が大きくなるほど重要度は低くなります。0 (ゼロ) の値は、建物を強制的に表示に残しますが、競合を解決するために建物を移動することは可能です。このパラメーターを使用しない場合は、周長とバリア フィーチャまでの近さに基づいて、フィーチャの重要度が評価されます。

String

派生した出力

名前説明データ タイプ
out_layers

更新された入力フィーチャ。

レイヤー

コードのサンプル

ResolveBuildingConflicts (建物の競合を解決) の例 1 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.env.referenceScale = "50000"
arcpy.ResolveBuildingConflicts(["C:/data/footprints.lyr", "C:/data/bldg_points.lyr"],                                
                               "invisible",
                               [["C:/data/roads.lyr", "true", "5 Meters"],
                                ["C:/data/trails.lyr", "false", "10 Meters"],
                                ["C:/data/streams.lyr", "false", "5 Meters"]],
                               "10 meters", 
                               "15 meters", 
                               "bldg_hierarchy")
ResolveBuildingConflicts (建物の競合を解決) の例 2 (スタンドアロン スクリプト)

このスタンドアロン スクリプトは、ResolveBuildingConflicts (ベクター タイル パッケージの作成) ツールの使用例を示しています。

# Name: ResolveBuildingConflicts_standalone_script.py
# Description: Resolves the symbology conflicts between
#              buildings and nearby barriers,
#              in this case - roads
 
# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"
env.referenceScale = "50000"

# Set local variables
in_buildings = "C:/data/footprints.lyr;C:/data/bldg_pts.lyr"
invisibility_field = "invisible"
in_barriers = "'C:/data/roads.lyr' 'true' '5 Meters';\
              'C:/data/trails.lyr' 'false' '10 Meters';\
              'C:/data/streams.lyr' 'false' '5 Meters'"
building_gap = "10 meters"
minimum_size = "15 meters"
hierarchy_field = "bldg_hierarchy"

# Execute Resolve Building Conflicts
arcpy.ResolveBuildingConflicts(in_buildings,
                               invisibility_field,
                               in_barriers,
                               building_gap,
                               minimum_size,
                               hierarchy_field)

ライセンス情報

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

関連トピック