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

サマリー

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

建物の競合を解決ツールの図
建物は、競合回避のために移動したり、近くの道路フィーチャに合わせて回転したりします。 建物によっては、サイズを変更されたり非表示になったりします。

使用法

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

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

  • 注意:

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

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

  • ポイント建物レイヤーを入力レイヤーとして使用する場合は、「マーカー シンボル レイヤー」の [角度] プロパティを「フィーチャクラスのフィールドに設定する」必要があります。 このフィールドには、回転調整が格納されます。 建物シンボルに複数のマーカー シンボル レイヤーが含まれる場合や、建物レイヤーに複数のシンボルが存在する場合、そのレイヤーのシンボル内にあるすべてのマーカー シンボル レイヤーを属性テーブルの同じフィールドに設定する必要があります。 [角度] プロパティの [時計回りに回転] 設定は、マーカー シンボル レイヤーごとに一致する必要があります。

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

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

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

  • 注意:

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

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

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

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

パラメーター

ラベル説明データ タイプ
入力建物レイヤー

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

ポイント建物レイヤーを入力として使用する場合は、マーカー シンボル レイヤーの [角度] プロパティをフィーチャクラスのフィールドに設定する必要があります。 このフィールドには、回転調整が格納されます。 同じポイント シンボル内の複数のマーカー シンボル レイヤーで、[角度] プロパティが同じフィールドに接続されている場合、[時計回りに回転] 設定は、それぞれのマーカー シンボル レイヤーで一致する必要があります。

Layer
非表示フィールド

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

String
入力バリア レイヤー

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

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

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

注意:

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

Value Table
建物のギャップ

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

Linear Unit
建物の最小許容サイズ

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

Linear Unit
階層フィールド
(オプション)

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

String

派生した出力

ラベル説明データ タイプ
出力レイヤー

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

Layer

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

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

ポイント建物レイヤーを入力として使用する場合は、マーカー シンボル レイヤーの [角度] プロパティをフィーチャクラスのフィールドに設定する必要があります。 このフィールドには、回転調整が格納されます。 同じポイント シンボル内の複数のマーカー シンボル レイヤーで、[角度] プロパティが同じフィールドに接続されている場合、[時計回りに回転] 設定は、それぞれのマーカー シンボル レイヤーで一致する必要があります。

Layer
invisibility_field

シンボルの競合を解決する目的で、一部の建物を表示から削除するために使用できる非表示の値を格納する Short または Long Integer フィールド。 値 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
(オプション)

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

String

派生した出力

名前説明データ タイプ
out_layers

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

Layer

コードのサンプル

ResolveBuildingConflicts の例 1 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.env.referenceScale = "50000"

arcpy.cartography.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: No
  • Standard: No
  • Advanced: Yes

関連トピック