建物の競合を解決 (Resolve Building Conflicts) ツールの機能

[建物の競合を解決 (Resolve Building Conflicts)] ジオプロセシング ツールは建物を移動または隠して、リニア バリア フィーチャに関して建物同士の間で発生したシンボルの競合を解決します。これにより、リニア バリア フィーチャがグラフィックス上で重なったり、カートグラフィック仕様で定義された間隔要件に違反したりするのを回避します。

データの準備に関する考慮事項

[建物の競合を解決 (Resolve Building Conflicts)] ツールは建物の位置、向き、サイズ、および表示設定を調整して、建物コレクションの表示を向上します。 代表的なパターンと分散が維持されています。 建物間や、建物とバリア フィーチャ (例: 道路) 間のシンボル表現の競合を解決します。 また、小型のポリゴン建物は、仕様に合わせて最小サイズまで拡大されます。

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

入力データに関して、次の要件と推奨事項を念頭に置いてください。

  • 入力タイプ - 入力の建物には、ポイントまたはポリゴンのどちらかを指定する必要があります。 ライン入力建物フィーチャは使用できません。 ツールに複数のレイヤーを入力することによって、ポイント建物とポリゴン建物の両方を評価し、同時に解決することができます。
  • ポイント建物レイヤーを入力として使用する場合は、マーカー シンボル レイヤー[角度] プロパティをフィーチャクラスのフィールドに設定する必要があります。 このフィールドには、ツールが実行した回転調整が格納されます。 建物シンボルに複数のマーカー シンボル レイヤーが含まれる場合や、建物レイヤーに複数のシンボルが存在する場合、そのレイヤーのシンボルに存在するすべてのマーカー シンボル レイヤーを属性テーブルの同じフィールドに設定する必要があります。
  • ポリゴン建物のサイズ - [建物の最小許容サイズ] パラメーターは、出力縮尺またはカートグラフィック仕様に合わせて、ポリゴン建物を感覚的に識別可能な最小サイズまで拡大するために使用されます。 入力ポイント建物は、このパラメーターに関しては無視されます。 処理の過程で競合を解決するために、一部のポリゴン建物のサイズがわずかに小さくなることがあります。 ポリゴン建物は、建物の最小サイズ未満には縮小されません。
  • ポイント建物サイズ - ポイント建物を表示しているシンボルは、縮尺で建物の最小許容サイズより小さい場合でも、拡大されません。 これは、マップの仕様や目的の外観を満たすために、ポイント建物が意図的にシンボル表示されていることを前提としています。 通常、入力ポイント建物フィーチャは、この最小ポリゴン建物サイズに一致するマーカー シンボルでシンボル表示されます。 競合を解決するために、必要に応じてポイント建物が回転または移動します。
  • 建物の集約と単純化 - 最適な結果を得るには、このツールを使用して重点的に集約する必要があります 集約された建物が大きい場合、競合を解決するために移動することが難しくなるため、最終的に建物の高い割合が表示されなくなります。 建物の占有面積を先に単純化し終えてからであれば、競合を解決できます。
  • XY 許容値未満のジオメトリ - マップ内またはツールの環境で指定された XY 許容値に達しないフィーチャがデータ内に存在することがあります。長さが許容値に達しないフィーチャが検出された場合、警告が表示され、それらのフィーチャにはツールの処理が行われません。許容値未満のジオメトリを持つフィーチャのオブジェクト ID は、GeomBelowTolerance#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。

  • 空または Null ジオメトリ - 入力フィーチャは有効なジオメトリで構成する必要があります。形状長さがゼロまたは NULL のフィーチャが検出された場合、警告が発生し、それらのフィーチャはツールに無視されます。空または NULL ジオメトリを持つフィーチャのオブジェクト ID は、EmptyGeom#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。必要に応じて [ジオメトリの修正 (Repair Geometry)] ツールを使用して、これらのフィーチャを修正してください。

  • Windows オペレーティング システムでは、警告またはエラーが C:\Users\<user name>\AppData\Local\ESRI\GeoProcessing に書き込まれると、ログ ファイルが生成されます。

ワークフローに関する考慮事項

このツールはほとんどの場合、他の [ジェネラライズ] ツールや [シンボル表現の競合解決] ツールと一緒に使用するのが一番効果的です。 これらのツールをワークフロー内の他のレイヤーおよび他のツールと一緒に使用するうえで参考になるヒントを、以下にいくつか紹介します。

  • 入力フィーチャクラスが更新されることを理解しておいてください。このツールでは、新しい道路フィーチャクラスが出力として生成されないかわりに、入力フィーチャクラスのデータが直接更新されます。 処理を実施する前に、入力フィーチャクラスのコピーを作成し、元の状態を保存しておくことを強くお勧めします。
  • まず、余分なフィーチャを削除します。建物の分布密度にもよりますが、最も良い方法は、相当小さい建物や地図作成に意味をなさない建物 (最終的な出力縮尺には不要な建物) をまず削除することです。 これにより、競合を解決するためのスペースが増加し、一般的に結果が改善します。 この削除を行うには、レイヤー フィルター設定を使用する方法、特定のサイズ未満のポリゴン建物を選択する方法、および補足的な基準を満たすポイント建物またはポリゴン建物を選択する方法があります。
  • フィーチャの階層を直接設定します。オプションの [階層フィールド] パラメーターを使用し、建物の相対的な重要度を特定します。 重要度の高い建物は、重要度の低い建物よりも優先されます。 重要度の低い建物は、重要な建物を表示するために移動されるか、表示されなくなる可能性が高くなります。 階層値 1 は最も重要な建物を示し、大きい整数値は重要度の低い建物を示します。 最適な結果を得るには、データセット全体に適用する階層クラス数を 5 つ以下に抑えてください。 分類を詳細にすると、処理時間が増加し、密集した建物に対してツールが合理的な解決策を実行することが困難になります。 あるフィーチャ階層に対してすべての入力レイヤーを一括して評価するには、同じ分類値を使用して各レイヤーに同じ名前のフィールドを格納しておく必要があります。
  • フィーチャの階層を自動的に設定します。[階層フィールド] パラメーターは、[建物の競合を解決 (Resolve Building Conflicts)] のオプションです。 指定がない場合は、建物の周長およびバリアまでの近さに基づいて、内部で相対的な重要度が建物に割り当てられます。 面積ではなく周長が使用される理由は、建物の突出を強調するためです。周長は高層建物の占有面積の詳細とともに特に捕捉されます。 建物の占有面積を単純化したい場合は、周長のことを念頭に置いたうえで建物の競合を解決してください。 建物が大きく、複数のバリアに近いほど、小さくて 1 つのバリアから比較的遠くにある建物よりも重要であると評価されます。 部分的に値が設定された階層フィールドに対しては [階層フィールド] パラメーターを使用すると効果的です。マップ上で重要な建物には階層値を持つ属性を設定できます。他のすべてのフィーチャ (NULL 値を備えた) には、内部的に計算された相対的重要度が設定されます。
  • 特定のフィーチャを強制的に表示しておきます。階層値に 0 を指定すると、フィーチャを強制的に表示しておくことができ、非表示フィールドのマスク設定に対するフラグ設定が不要になります。 これらの建物は、地域で重要と見なされているため、近くにある建物の可視性と配置が犠牲になる可能性は、建物の表示が強制されていない場合よりも高くなります。 階層値が 0 の建物に対しては、引き続き変換 (回転、移動、サイズ変更) を行って競合を解決し、他の必須パラメーターと照合することもできます。
  • バリア フィーチャを定義します。[入力バリア レイヤー] パラメーターには、建物を移動できる場所を制限するライン レイヤーまたはポリゴン レイヤーをリストします。 通常、道路レイヤーは道路を横切って建物が移動するのを防止するために使用されます。 1 つ以上のバリア レイヤーを指定する必要がありますが、複数レイヤーを指定することもできます。 ここで注意すべき重要な点は、所定の場所にバリア制約が多くあるほど、条件にあった競合解決ソリューションをツールが見つけづらくなるということです。
  • 建物をバリア レイヤーに方向付けします。必要に応じて、建物の大部分を占める面をバリア フィーチャに位置揃えすることができます。 たとえば、建物を方向付けし、付近の道路に位置揃えすることができます。 [バリア レイヤーの方向] パラメーターが TRUE の場合、サイズと隣接度の要件を満たす建物がすべて、そのバリア レイヤーに位置揃えされるように方向付けられます。 このパラメーターが FALSE の場合、特に方向付けが行われませんが、競合解決中は偶発的に近くのフィーチャがやや回転することがあります。
    • サイズ要件 - ポイント建物はすべて方向付けの対象です。ポリゴン建物に関しては、[建物の最小許容サイズ] パラメーター値 (バウンディング ボックスの両辺が最小許容サイズ値以下であるという要件) に適合するものだけが、方向付けの対象となります。 これには、最小建物サイズ値まで拡大した建物も含まれます。 大きい建物は方向付けされません。 強制的に表示されている建物 (階層 = 0) はサイズ要件を満たす場合に限り、方向付けの対象になります。
    • 近接要件 - バリア フィーチャからの距離が [建物の最小許容サイズ] パラメーターの 2 倍以内に収まっている建物だけが、方向付けの対象とみなされます。 この距離の測定範囲は、建物シンボルのグラフィックス エッジからバリア フィーチャ シンボルのグラフィックス エッジまでです。
  • バリア フィーチャからの相対的な距離に建物を移動します。建物とバリア間のスペースは、必要に応じて [バリア レイヤーのギャップ] パラメーターで制御することができます。 この値は、すべての建物に対してバリア レイヤーから離す距離を指定します。 バリアのギャップ値よりもバリア フィーチャに近い建物は、ギャップ距離を適用するために外側に移動されます。 このギャップと整合させるために、(競合解決に付随してそのような移動が必要とされる場合を除き、) バリアに近い方向に建物を移動しません。 間隔を制御するには、バリア レイヤーのギャップ値を次のように設定してください。
    • ギャップがゼロに等しい場合 - バリア フィーチャのグラフィックス エッジに、建物を直接スナップします。 バリア フィーチャのグラフィックス範囲からの距離が [建物の最小許容サイズ] 値未満の部分を含む建物は、バリアのエッジにスナップされます。 バリア フィーチャに接触または重なる建物は、バリアのエッジにスナップされます。
    • ギャップがゼロより大きい場合 - この間隔を確保するために、必要に応じて建物をバリアから移動します。
    • ギャップが NULL の場合 - 競合解決処理の場合を除き、建物をバリア方向に移動しません。 これがデフォルトです。
  • マスク付きフィーチャを表示対象外にします。マスク付き建物は [非表示フィールド] パラメーターで制御します。 ツールが競合を解決するために表示内容から削除する必要があると判断した建物には、非表示値 1 が付与されます。 表示しておく必要のある建物には、値として 0 が割り当てられています。 建物の表示を変更するには、非表示フィールドの値を変更します。 マップ上で結果を表示する場合、対象のレイヤーにフィルター設定を追加して、表示対象(非表示フィールド = 0)の建物だけが表示されるようにします。
  • 結果を見直します。このツールでは解決できなかった領域を突き止めるには、[シンボル表現の競合を検出 (Detect Graphic Conflict)] ツールを実行します。 建物ギャップ パラメーターよりわずかに低い競合距離でこのツールを実行し、ツールが建物ギャップを適用できなかったエリアを特定します。
  • 建物の最終サイズを確認するには、RBC_SIZE という名前の小数フィールド (Double または Float) を、任意の入力建物フィーチャクラスに追加します。 ツールの処理中に、RBC_SIZE フィールドは、各フィーチャの周りに回転したバウンディング ボックスの最短の辺で更新されます。 RBC_SIZE フィールドを見れば、[建物の最小許容サイズ] パラメーター値に適合するように拡大されたフィーチャを、簡単に特定できます。 出力がシェープ オーバーライドとして格納されている場合、値にはシェープ オーバーライドのサイズが反映されます。 ポイント ジオメトリを入力として使用した場合、RBC_SIZE フィールドの値には、基準縮尺でのポイント シンボルのサイズが反映されます。

大きなデータセットの分割

このツールは、個々のフィーチャの最終的な状態を決定する際に、隣接および接続したフィーチャが考慮されるよう状況に応じて機能します。複数のデータセットを一度に入力することができるため、これらはすべて同時に考慮されます。大量の入力データを (または個別の入力レイヤーを多く) を使用すると、メモリの制限を超えることがあります。これを防ぐには、このツールの実行中にパーティション化を有効にすることを検討します。それは、[カートグラフィック パーティション] ジオプロセシング環境変数にフィーチャクラスの分割を指定することによって行います。分割すると、ツールは、論理的で処理しやすいサイズで順次データを処理できます。各パーティションのポリゴンに特定された入力フィーチャは、パーティションを囲むバッファー ゾーンからの別データとともにツールに読み込まれます。この別データは、処理の進行と同時に反映されます。これにより、作成されたフィーチャクラスがシームレスになり、パーティションの境界を越えて重なり合うフィーチャの状態の整合性がとれるようになります。

建物の競合が分割によって解決される場合、各パーティション内または各パーティションの枠線上に生成された建物のみが修正されます。 ツールが実行する変更には、サイズ変更、回転、移動、または非表示などがあります。 建物はパーティションの外側に移動されることもあります。 パーティションを囲むバッファー ゾーンのバリアおよび建物は、パーティションの建物が処理される場合に考慮されます。ただし、変更はされません。

関連トピック