サマリ
建物を移動したり、非表示にしたりすることにより、建物間および線形バリア フィーチャに関するシンボルの競合を解決します。
図
使用法
このツールは、シンボル表示されたフィーチャのグラフィックス競合を評価することによって処理を行います。シンボル範囲と基準縮尺は、互いの関連について考慮されます。このツールは、シンボル表示を完成させてから実行してください。そうすることにより、目標とする最終的な出力縮尺に対応した基準縮尺が確実に得られます。
すべての入力フィーチャクラスに [非表示フィールド] が存在し、同じ名前が付けられている必要があります。表示に残す必要があるフィーチャには 0 の値を割り当て、表示から削除する必要があるフィーチャには 1 の値を割り当てます。単純化の結果を確認するには、レイヤーのフィルター設定または属性検索を使用して、単純化したコレクションを表示します。たとえば非表示フィールドの名前が「invisibility」である場合は invisibility <> 1 と指定します。複数の非表示フィールドを使用して、1 つのフィーチャクラス上で、異なる出力スケールに対応する異なる結果を格納することができます。
競合を評価する前に、ポリゴンで表現される建物は、[建物の最小許容サイズ] パラメーターで指定された最小サイズまで拡大されます。最小サイズとは、フィーチャをぴったりと囲む長方形の短辺がとりうる最小の長さです。出力結果における建物の最終サイズを確認するには、RBC_SIZE という名前の小数フィールド (Double または Float) を、任意の入力建物フィーチャクラスに追加します。ツールの処理中に、RBC_SIZE フィールドは、各フィーチャの周りに回転したバウンディング ボックスの最短の辺で更新されます。
[階層フィールド] のパラメーターはオプションです。指定がない場合は、建物の周長およびバリアまでの近さに基づいて、相対的な重要度が建物に割り当てられます。建物が大きく、複数のバリアに近いほど、小さくて 1 つのバリアから比較的遠くにある建物よりも重要であると評価されます。重要な建物だけに階層値を割り当てて、その他のフィーチャ (階層値は NULL) には内部計算で求めた相対的な重要度を割り当てるように、部分的に指定した階層フィールドを使用することができます。
[階層フィールド] のパラメーターを使用して、建物に階層値 0 (ゼロ) を割り当てることにより、建物を強制的に表示に残すことができます。ツールでは、このような建物をマスクしません。階層値が 0 の建物は、地域で重要であるとみなされるため、近くにある建物が犠牲になる可能性は、建物の表示が強制されていない場合よりも高くなります。階層値が 0 の建物であっても、競合の解決や、他の必要なパラメーターに一致させるために変更 (移動、回転、サイズ変更) することは可能です。
ジオメトリがバリアと競合している (つまり、建物のシンボル表示だけでなく、実際のジオメトリが道路のようなバリア フィーチャのジオメトリに重なっている) 建物が、バリア フィーチャから除去されることはありません。このような建物には、競合解決の処理中にマスキングのマークが付きますが、移動は行われません。競合はそのままです。
ジオメトリでバリア フィーチャのシンボルが対称に配置されていない (つまり、ラインの片側だけシンボルが太い) 場合は、バリアのシンボルが細い側で建物とバリアの間のギャップが大きく表示されます。
大きなデータセットや多くのバリア レイヤーを同時に処理すると、メモリの制限を超えることがあります。このような場合、[分割フィーチャ] 環境設定で、関連するポリゴン フィーチャクラスを特定することによって、パーティション単位で入力建物のデータを処理することを検討します。パーティションの境界によって定義された建物のデータの一部が順次処理されます。作成されたレイヤーは、パーティション エッジにおいてシームレスでかつ一致しています。分割を使用してこのツールを実行する際の詳細については、「建物の競合を解決 (Resolve Building Conflicts) ツールの機能」をご参照ください。
構文
ResolveBuildingConflicts_cartography (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],...] | 入力建物フィーチャの競合バリアとなるライン フィーチャまたはポリゴン フィーチャが含まれるレイヤー。建物は、建物間およびバリア間の競合を解決するために変更されます。方向の値はブール値で、建物をバリア レイヤーの方向に合わせる必要があるかどうかを指定します。 ギャップは、建物をバリア レイヤーに近づける、またはバリア レイヤーから離す距離を指定します。単位を値とともに入力する必要があります。
| Value Table |
building_gap | シンボル表示された建物間の縮尺での許容最小距離。近接する建物は、この距離を強制的に確保するために移動されるか、非表示になります。最小許容距離は、基準縮尺に相対的に設定されます (1:50,000 縮尺であれば 15 メートルなど)。基準縮尺が設定されていない場合の値は 0 です。 | Linear unit |
minimum_size | 基準縮尺で描画され、シンボル表示された建物フィーチャをぴったりと囲む長方形の短辺がとりうる最小の長さの最小許容サイズ。長方形の 1 辺がこの値よりも小さい建物は、要件を満たすために拡大されます。サイズ変更は比率を維持しないで行われる場合があり、その結果、建物の形状が変わることがあります。 | Linear unit |
hierarchy_field (オプション) | フィーチャの重要度の階層ランクが格納されるフィールド。1 は非常に重要であり、整数が大きくなるほど重要度は低くなります。0 (ゼロ) の値は、建物を強制的に表示に残しますが、競合を解決するために建物を移動することは可能です。このパラメーターを使用しない場合は、周長とバリア フィーチャまでの近さに基づいて、フィーチャの重要度が評価されます。 | String |
コードのサンプル
ResolveBuildingConflicts (建物の競合を解決) ツールの例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで ResolveBuildingConflicts (建物の競合を解決) ツールを使用する方法を示しています。
import arcpy
from arcpy import env
env.workspace = "C:/data"
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 (スタンドアロン Python スクリプト)
このスタンドアロン スクリプトは、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)
環境
ライセンス情報
- ArcGIS for Desktop Basic: ×
- ArcGIS for Desktop Standard: ×
- ArcGIS for Desktop Advanced: ○
関連トピック
- シンボル表現の競合ツールセットの概要
- 競合解決とジェネラライズの概要
- ジオプロセシングによる競合解決/ジェネラライズ ワークフローの自動化
- 建物の競合を解決 (Resolve Building Conflicts) ツールの機能
- 建物ポリゴンの単純化 (Simplify Building)
- ポリゴンの集約 (Aggregate Polygons)
- パーティションを使用した大きなデータセットのジェネラライズ
- カートグラフィック パーティションの作成 (Create Cartographic Partitions)
- カートグラフィック パーティション (環境設定)
- 建物ポリゴンの集約 (Delineate Built-Up Areas)