[建物の競合を解決 (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 に書き込まれると、ログ ファイルが生成されます。
ワークフローに関する考慮事項
このツールはほとんどの場合、他の [ジェネラライズ] ツールや [シンボル表現の競合解決] ツールと一緒に使用するのが一番効果的です。これらのツールをワークフロー内の他のレイヤーおよび他のツールと一緒に使用するうえで参考になるヒントを、以下にいくつか紹介します。
- 入力フィーチャクラスが更新されることを理解しておいてください。このツールでは、新しい道路フィーチャクラスが出力として生成されないかわりに、入力フィーチャクラスのデータが直接更新されます。ジオメトリのオーバーライドを格納するようにリプレゼンテーション (編集時のプロパティ) を設定して、入力レイヤーをシンボル表示することを考えてみましょう。この例では、このツールで行われたすべての変更内容がジオメトリのオーバーライドとして格納されます。結果が受け入れられない場合、別のパラメーターを指定してツールを再実行する場合は、[オーバーライドの解除 (Remove Override)] ツールを使用してオーバーライドを解除するか、または ArcMap で編集セッション中に、2 ~ 3 の特定のフィーチャのオーバーライドを手動で解除してください。入力レイヤーがリプレゼンテーションで描画されない場合は、先にフィーチャクラスのコピーを作成してから、元の状態を保持するための処理を行ってください。
- まず、余分なフィーチャを削除します。建物の分布密度にもよりますが、最も良い方法は、相当小さい建物や地図作成に意味をなさない建物 (最終的な出力縮尺には不要な建物) をまず削除することです。削除した分だけ多く空き領域が確保された状態で競合を解決できるので、ほとんどの場合、良好な結果が得られます。この削除を行うには、レイヤー フィルター設定を使用する方法、特定のサイズ未満のポリゴン建物を選択する方法、および補足的な基準を満たすポイント建物またはポリゴン建物を選択する方法があります。
- フィーチャの階層を直接設定します。オプションの [階層フィールド] パラメーターを使用し、建物の相対的な重要度を特定します。建物の中で、重要性が相対的に低いものより高いもののほうを優先してください。重要な建物が収まりきるよう、重要性の低い建物は移動または隠ぺいされるのが一般的です。階層値 1 は最も重要な建物を示し、大きい整数値は重要度の低い建物を示します。最適な結果を得るには、データセット全体に適用する階層クラス数を 5 つ以下に抑えてください。分類が細かいほど処理時間が増大するため、分布密度の高い建物に妥当なソリューションをツールで遂行するのが困難になります。あるフィーチャ階層に対してすべての入力レイヤーを一括して評価するには、同じ分類値を使用して各レイヤーに同じ名前のフィールドを格納しておく必要があります。
- フィーチャの階層を自動的に設定します。[階層フィールド] パラメーターは、[建物の競合を解決 (Resolve Building Conflicts)] のオプションです。このオプションを指定しない場合、建物の周長およびバリアへの隣接度に基づいて、建物の相対的な重要度が内部的に割り当てられます。面積ではなく周長が使用される理由は、建物の突出を強調するためです。周長は高層建物の占有面積の詳細とともに特に捕捉されます。建物の占有面積を単純化したい場合は、周長のことを念頭に置いたうえで建物の競合を解決してください。大きい建物は複数のバリアに近接しているため、バリアから相対的に遠く離れた小さい建物よりも重要度の高い建物として評価されます。部分的に値が設定された階層フィールドに対しては [階層フィールド] パラメーターを使用すると効果的です。マップ上で重要な建物には階層値を持つ属性を設定できます。他のすべてのフィーチャ (NULL 値を備えた) には、内部的に計算された相対的重要度が設定されます。
- 特定のフィーチャを強制的に表示しておきます。階層値に 0 を指定すると、フィーチャを強制的に表示しておくことができ、非表示フィールドのマスク設定に対するフラグ設定が不要になります。これらの建物は局所的に重要とみなされるので、建物を強制的に表示しておかないと、近くの建物の表示設定と位置設定がうまくいかないことがあります。階層値が 0 の建物に対しては、引き続き変換 (回転、移動、サイズ変更) を行って競合を解決し、他の必須パラメーターと照合することもできます。
- バリア フィーチャを定義します。[入力バリア レイヤー] パラメーターには、建物を移動できる場所を制限するライン レイヤーまたはポリゴン レイヤーをリストします。道路レイヤーは一般に、建物が道路を横断して移動するのを防ぐために使用されます。バリア レイヤーは少なくとも 1 つは指定する必要がありますが、複数のレイヤーを指定することも可能です。ここで注意すべき重要な点は、所定の場所にバリア制約が多くあるほど、条件にあった競合解決ソリューションをツールが見つけづらくなるということです。
- 建物をバリア レイヤーに方向付けします。必要に応じて、建物の大部分を占める面をバリア フィーチャに位置揃えすることができます。たとえば、近くの道路に位置揃えされるように、建物を方向付けることもできます。[バリア レイヤーの方向] パラメーターが TRUE の場合、サイズと隣接度の要件を満たす建物がすべて、そのバリア レイヤーに位置揃えされるように方向付けられます。このパラメーターが FALSE の場合、特に方向付けが行われませんが、競合解決中は偶発的に近くのフィーチャがやや回転することがあります。
- サイズ要件 - ポイント建物はすべて方向付けの対象です。ポリゴン建物に関しては、[建物の最小許容サイズ] パラメーター値 (バウンディング ボックスの両辺が最小許容サイズ値以下であるという要件) に適合するものだけが、方向付けの対象となります。たとえば、建物の最小サイズ値まで拡大された建物も、方向付けの対象になります。大きな建物は方向付けの対象から外されます。強制的に表示されている建物 (階層 = 0) はサイズ要件を満たす場合に限り、方向付けの対象になります。
- 近接要件 - バリア フィーチャからの距離が [建物の最小許容サイズ] パラメーターの 2 倍以内に収まっている建物だけが、方向付けの対象とみなされます。この距離の測定範囲は、建物シンボルのグラフィックス エッジからバリア フィーチャ シンボルのグラフィックス エッジまでです。
- バリア フィーチャからの相対的な距離に建物を移動します。建物とバリア間のスペースは、必要に応じて [バリア レイヤーのギャップ] パラメーターで制御することができます。この値には、バリア フィーチャを基点としてすべての建物を含む距離を指定します。グラフィックス上でバリア フィーチャに近接している建物のうち、その近接度がバリア ギャップ値を超過したものは、ギャップ距離だけ外側に移動されます。このギャップと整合させるために、(競合解決に付随してそのような移動が必要とされる場合を除き、) バリアに近い方向に建物を移動しません。間隔を制御するには、バリア レイヤーのギャップ値を次のように設定してください。
- ギャップがゼロに等しい場合 - バリア フィーチャのグラフィックス エッジに、建物を直接スナップします。バリア フィーチャのグラフィックス範囲からの距離が [建物の最小許容サイズ] 値未満の部分を含む建物は、バリアのエッジにスナップされます。バリア フィーチャに接触または重なる建物は、バリアのエッジにスナップされます。
- ギャップがゼロより大きい場合 - この間隔を確保するために、必要に応じて建物をバリアから移動します。
- ギャップが NULL の場合 - 競合解決処理の場合を除き、建物をバリア方向に移動しません。これがデフォルト設定です。
- マスク付きフィーチャを表示対象外にします。マスク付き建物は [非表示フィールド] パラメーターで制御します。競合解決のためには非表示にする必要があることがツールに認識された建物は、非表示値として 1 が割り当てられます。表示しておく必要のある建物には、値として 0 が割り当てられています。建物の表示設定を変更するには、非表示フィールドの値のみを変更します。マップ上で結果を表示する場合、対象のレイヤーにフィルター設定を追加して、表示対象(非表示フィールド = 0)の建物だけが表示されるようにします。
- 結果を見直します。このツールでは解決できなかった領域を突き止めるには、[シンボル表現の競合を検出 (Detect Graphic Conflict)] ツールを実行します。[シンボル表現の競合を検出 (Detect Graphic Conflict)]ツールを、競合距離を建物のギャップ パラメーター未満に設定して実行することにより、建物のギャップが適用されなかった領域を突き止めることができます。
- 建物の最終的なサイズを確認するには、入力の建物フィーチャクラスのそれぞれに対して、RBC_SIZE という倍精度フィールドまたは浮動小数点フィールドを追加します。ツールの処理中に、RBC_SIZE フィールドは、各フィーチャの周りに回転したバウンディング ボックスの最短の辺で更新されます。RBC_SIZE フィールドを見れば、[建物の最小許容サイズ] パラメーター値に適合するように拡大されたフィーチャを、簡単に特定できます。出力がシェープ オーバーライドとして格納されている場合、RBC_SIZE 値にシェープ オーバーライドのサイズが反映されます。ポイント ジオメトリを入力として使用した場合、RBC_SIZE フィールドの値には、基準縮尺でのポイント シンボルのサイズが反映されます。
大きなデータセットの分割
このツールは、個々のフィーチャの最終的な状態を決定する際に、隣接および接続したフィーチャが考慮されるよう状況に応じて機能します。複数のデータセットを一度に入力することができるため、これらはすべて同時に考慮されます。大量の入力データを (または個別の入力レイヤーを多く) を使用すると、メモリの制限を超えることがあります。これを防ぐには、このツールの実行中にパーティション化を有効にすることを検討します。それは、[カートグラフィック パーティション] ジオプロセシング環境変数にフィーチャクラスの分割を指定することによって行います。分割すると、ツールは、論理的で処理しやすいサイズで順次データを処理できます。各パーティションのポリゴンに特定された入力フィーチャは、パーティションを囲むバッファー ゾーンからの別データとともにツールに読み込まれます。この別データは、処理の進行と同時に反映されます。これにより、作成されたフィーチャクラスがシームレスになり、パーティションの境界を越えて重なり合うフィーチャの状態の整合性がとれるようになります。
建物の競合が分割で解決される場合、各パーティションの境界線内または境界線上にある建物だけが変更されます。ツールが実行する変更には、サイズ変更、回転、移動、または非表示などがあります。建物は、パーティションの外へ移動させることもできます。パーティションを囲むバッファー ゾーンのバリアおよび建物は、パーティションの建物が処理される場合に考慮されます。ただし、変更はされません。