Standard または Advancedのライセンスで利用可能。
トポロジは、ポイント、ライン、ポリゴン フィーチャによるジオメトリの共有方法を定義するための取り決めです。たとえば、道路の中心線と国勢調査区はジオメトリを共有し、隣接する土壌ポリゴンは境界線を共有します。
トポロジへの対応は、単なるデータ格納メカニズムの提供にとどまりません。ArcGIS のトポロジには、次の側面がすべて含まれています。
- ジオデータベースには、シンプル フィーチャのオープン格納形式に基づくトポロジ データ モデル (ポイント、ライン、およびポリゴンのフィーチャクラス)、トポロジ ルール、およびジオメトリを共有するフィーチャ間のトポロジ的に統合された座標が含まれています。データ モデルには、トポロジに属するフィーチャクラスの整合性ルールとトポロジ ロジックを定義する機能が含まれています。
- ArcMap には、トポロジ リレーションシップ、エラー、例外を表示するためのトポロジ レイヤーが含まれています。また、トポロジの検索、編集、整合チェック、およびエラー修正用のツール一式も含まれています。
- ArcGIS には、トポロジの構築、解析、管理、および整合チェック用のジオプロセシング ツールが含まれています。
- ArcGIS には、ポイント、ライン、ポリゴンのフィーチャクラスでトポロジ エレメントを解析および検出するための、高度なソフトウェア ロジックが含まれています。
- ArcMap には、トポロジ的な整合性を作成、管理、整合チェックし、共有フィーチャの編集を実行するための、編集/データ オートメーション フレームワークが含まれています。
- ArcGIS のソフトウェア ロジックは、ArcGIS for Desktop および ArcGIS for Server 製品で提供され、トポロジ リレーションシップの移動、近接性と接続性の操作、これらのエレメントからのフィーチャの構築を可能にします。たとえば、特定のエッジを共有するポリゴンの特定、特定のノードで接続するエッジの列挙、現在の場所からの接続エッジ沿いの移動、新しいラインの追加とトポロジ グラフへの組み込み、交点でのラインの分割、およびエッジ、フェイス、ノードを結果として作成可能です。
ジオデータベース トポロジのエレメント
ジオデータベースでは、各トポロジに次のプロパティが定義されます。
- 作成するトポロジの名前。
- トポロジ処理に使用されるクラスター許容値。クラスター許容値は、多くの場合、XY 許容値と Z 許容値の 2 つを指す用語として使用されます。クラスター許容値のデフォルト値は、座標解像度の 10 倍です。
- フィーチャクラスのリスト。まず、トポロジに追加するフィーチャクラスのリストが必要です。すべてのフィーチャクラスが同じ座標系内に含まれていて、同じフィーチャ データセット内にまとめられている必要があります。
- 各フィーチャクラスにおける座標の相対精度ランク。他のフィーチャクラスよりも精度の高いフィーチャクラスには、高いランクを割り当てます。これはトポロジの整合チェックと統合に使用されます。ランクの低い座標がよりランクの高い座標のクラスター許容値の範囲内に収まる場合は、よりランクの高い座標の位置へ移動します。最も精度の高いフィーチャには 1 の値を割り当て、次に精度の高いフィーチャには 2 の値、その次に精度の高いフィーチャには 3 の値を割り当てます。
- フィーチャによるジオメトリの共有方法に関するトポロジ ルールのリスト。
クラスター処理
トポロジ リレーションシップの作成には、同じフィーチャクラスのフィーチャ間とトポロジに属しているフィーチャクラス間における、フィーチャの頂点の座標位置の解析が含まれます。指定された距離内にある頂点は、同じ場所を表していると想定され、共通の座標値が割り当てられます (つまり、同じ場所に位置決めされます)。
頂点の統合にはクラスター許容値が使用されます。クラスター許容値の範囲内にある頂点はすべて、整合チェックの過程で少し移動することがあります。デフォルトのクラスター許容値は、データセットに定義されている精度に基づいています。デフォルトのクラスター許容値は、現実の世界の単位で 0.001 メートルです。これは XY 座標精度の距離の 10 倍です (XY 座標精度は、座標を格納するために使用される数値の精度を定義します)。
2 つのクラスター許容値: XY 許容値と Z 許容値
ArcGIS では、頂点の統合に 1 組みのクラスター許容値が使用されます。
- XY 許容値は、互いに水平距離の範囲内にある頂点を検索します。
- Z 許容値は、頂点の Z の高さ (標高) が互いの許容値の範囲内にあり、クラスター処理の対象となるかどうかを判別します。
座標のクラスタリングが発生するしくみ
XY 許容値は小さく設定する必要があるため、非常に接近している (互いに XY 許容値の範囲内にある) 頂点だけに同じ座標位置が割り当てられます。座標が許容値の範囲内にある場合、それらは一致すると見なされ、同じ場所を共有するように調整されます。
XY 許容値は、クラスタリングの過程で座標を移動する X または Y 方向 (または両方) の距離も定義します。このため、座標をクラスタリングできるのは、それらが X または Y 次元のどちらか一方でも、XY 許容値の範囲内にある場合です。次の図を参照してください。座標は、グラフ内の三角形を形成する対角線で表される範囲で移動できます。ジオメトリとピタゴラスの定理を覚えていれば、座標がクラスタリングされる最大距離は、XY 許容値の 2 倍の平方に等しくなります。
デフォルトの XY 許容値
デフォルトの XY 許容値は 0.001 メートル、またはデータセットの座標系の単位でそれに相当する値に設定されます。たとえば、座標系がフィートで記録される場合、デフォルトの XY 許容値は 0.003281 フィート (0.03937 インチ) になります。XY 許容値のデフォルト値は、デフォルトの XY 座標精度の 10 倍であり、ほとんどの場合はこれが推奨されます。座標が緯度経度で記録される場合、デフォルトの XY 許容値は 0.0000000556 度となります。
整合チェックとクラスタリングに使用されるアルゴリズム
トポロジ内のあるフィーチャの頂点が、トポロジ内の他のフィーチャのエッジの XY 許容値の範囲内にある場合、トポロジ エンジンはこのエッジ上に新しい頂点を作成し、クラスタリングの過程でフィーチャを幾何学的に統合できるようにします。
トポロジの整合チェック時にフィーチャをクラスタリングする場合には、フィーチャのジオメトリがどのように調整されるかを理解することが重要です。トポロジに属しているフィーチャクラスの 2 つの頂点が互いに XY 許容値の範囲内にある場合には、すべての頂点が移動する可能性があります。高い座標ランクのフィーチャの頂点はあまり移動せずに、低いランクの座標を引き寄せます。ランクの等しいフィーチャの頂点は互いに同じ距離だけ移動します。
XY 許容値は、ジオメトリ形状をジェネラライズするためのものではないことに注意してください。これは、トポロジ処理の過程でラインや境界線を統合するためのものです。つまり、座標が一致し、頂点が同じ場所にあるフィーチャの検出に役立ちます。これにより、互いに XY 許容値の範囲内にある座標が統合 (同じ場所に位置決め) されます。座標はクラスター許容値の範囲内で X、Y 方向に移動できるため、クラスター許容値を使用するコマンドでデータセットを処理すれば、多くの問題を未然に防ぐことができます。これには、微小なオーバーシュートやアンダーシュートの処理、重複する線分の不要部分の自動的な削除、境界線に沿った座標の削減が含まれます。
頂点の最大移動距離
クラスタリングのプロセスは、互いに XY 許容値の範囲内にある座標のクラスターを識別して、マップ全体にわたって移動するという仕組みになっています。ArcGIS は、フィーチャ間の共有ジオメトリの検出、クリーンナップ、および管理に、このアルゴリズムを使用します。これは、一致するジオメトリ エレメントの座標が同一の場所に位置決め (同じ位置にスナップ) されることを意味します。これは GIS の多くの処理および概念の基礎です。
クラスタリングの結果として、フィーチャの頂点がクラスター許容値を超えて移動することがあります。
- 許容値は、許容範囲内の座標を検出するための水平距離と垂直距離の計算に使用されます。座標を新しい場所へ移動するための最大距離は、「2 の平方根× XY 許容値」で求められます。
- クラスタリング アルゴリズムは反復型です。つまり、移動した頂点が他の頂点のクラスター許容値の範囲内に含まれれば、「2 の平方根× XY 許容値」を超えて移動する可能性があります。これは非常にまれで、頂点同士が密集しているものの、互いのクラスター許容値の範囲内 (互いに 0.001 メートルの距離にある) に含まれていない場合に限られます。頂点は反復のたびに少しずつ移動し、他の座標とクラスタリングされ、許容値を超えてマップ上を移動することがあります。
ヒント
クラスター許容値に役立つヒントがいくつかあります。
- 通常は、XY 座標精度の 10 倍の XY 許容値を使用すると適切な結果を得ることができます。
- 通常、XY 許容値はデータが記録された実際の精度よりも数桁小さく設定します。たとえば、フィーチャ座標の精度が 2 メートルであるのに対し、デフォルトの XY 許容値は 0.001 メートルです。
- 移動を小さく抑え、XY 許容値を小さく保ちます。ただし、XY 許容値が小さすぎると (XY 座標精度の 2 倍未満など)、同一と見なされる境界線が正しく統合されない場合があります。
- 逆に、XY 許容値が大きすぎると、フィーチャの座標が互いに消失するおそれがあります。これにより、フィーチャの境界線が正確に表現されなくなる可能性があります。
- XY 許容値は、データが記録された精度 (マップ精度標準とも呼ばれます) に近い値に設定しないでください。たとえば、マップ縮尺が 1:12,000 の場合、1 インチは 1,000 フィート、1/50 インチは地表面の 20 フィートに相当します。このデータ捕捉精度をデジタイズやスキャン変換の過程で満たすのは困難です。XY 許容値に基づく座標の移動は、これらの値以下に抑える必要があります。この場合、デフォルトの XY 許容値は 0.003281 フィートであり、ほとんどの場合に適しています。
- トポロジでは、各フィーチャクラスの座標精度ランクを設定することができます。最も精度の高いフィーチャ (測量されたフィーチャなど) の座標ランクを 1 に設定し、次に精度の高いものから順に 2、3、... のように設定していきます。これにより、ランク数の高い (したがって、座標の精度が低い) フィーチャの座標が、ランク数の低いフィーチャに合わせて調整されるようになります。
- 多くの場合、クラスタリング プロセスで移動の対象となるフィーチャクラスを制御できるようにする必要があります。たとえば、あるフィーチャクラス内のフィーチャの座標が別のフィーチャクラスのフィーチャよりも信頼できることがわかっていて、信頼性の低いフィーチャを信頼性の高いフィーチャにスナップしたい場合があります。トポロジ内のフィーチャクラスには、この状況に対処するためにランクが割り当てられます。クラスター許容値の範囲内でランクの低いフィーチャの頂点は、近くにあるランクの高いフィーチャの頂点にスナップされます。クラスター許容値の範囲内でランクの等しいフィーチャの頂点の場所は、同じ距離だけ移動してスナップされます。
トポロジとフィーチャ データセット
トポロジは、共通のフィーチャ データセットで保持されるフィーチャクラスに基づきます。新しいトポロジはそれぞれ、フィーチャクラスとその他のエレメントが保持されているフィーチャ データセットに追加されます。
トポロジを作成する際には、次の規則に基づいて、フィーチャ データセットからトポロジに追加するフィーチャクラスのサブセットを指定することができます。
- トポロジは同じフィーチャ データセットの 1 つ以上のフィーチャクラスを参照することができます。
- フィーチャ データセットには複数のトポロジを追加することができます。
- ただし、フィーチャクラスが属することのできるトポロジは 1 つだけです。
- フィーチャクラスをトポロジとジオメトリック ネットワークに追加することはできません。
- ただし、フィーチャクラスはトポロジに属すことができ、ネットワーク データセットまたはテレイン データセットのどちらかに属すことはできます。
座標ランク
ジオデータベース トポロジ内のフィーチャクラスに指定する座標精度ランクは、整合チェックの過程でフィーチャの頂点の移動を制御します。座標ランクは、互いにクラスター許容値の範囲内にある頂点同士の移動方法を制御するのに役立ちます。クラスター許容値の範囲内にある頂点は、同じ場所にあって同一の場所に位置決めされていると見なされ、スナップされます (クラスター許容値の範囲内にある座標に同じ座標値が割り当てられます)。
測量や DGPS (Differential Global Positioning System) で収集されたフィーチャクラスと精度の低いソースからデジタイズされたフィーチャクラスなど、フィーチャクラスによって座標の精度が異なる場合は、座標ランクを使用して、高い信頼性で配置された頂点に信頼性の低い頂点を移動することができます。
通常は、一方の座標がより正確な座標の位置へ移動するか、新しい位置がクラスター内の座標間で加重平均距離として計算されます。このような場合、加重平均距離は、クラスタリングされる座標の精度ランクに基づきます。
ランクの等しい 2 つの頂点がクラスター許容値の範囲内にある場合、それらは中間の位置にスナップされます。
ランクを正しい順番で割り当てるよう注意してください。最も精度の高いフィーチャにランク 1 を割り当て、次に精度の高いフィーチャに 2、3、... のように割り当てていきます。
Z クラスター許容値とランク
テレインや 3 次元の建物をモデリングするフィーチャクラスは、各頂点の高さを表す Z 値を持ちます。XY 許容値とランクを使用してフィーチャを水平方向にスナップする方法を制御するのと同様に、トポロジに高さをモデリングするフィーチャクラスが含まれている場合は、Z クラスター許容値とランクを使用して頂点を垂直方向にスナップする方法を制御できます。
Z クラスター許容値は、一致すると見なされる頂点間の高さ (Z 値) の最小差を定義します。Z クラスター許容値内の Z 値を持つ頂点は、トポロジの整合チェック プロセスでスナップされます。
都市の建物をモデリングする場合は、2 つの建物を互いに隣接させ、XY ドメインでエッジを共有させることができます。建物のコーナーの高度値を空中写真測量で収集した場合は、トポロジの整合チェックを行う際、各建造物の相対的な高さを考慮する必要があります。Z クラスター許容値を 0 に設定すると、トポロジの整合チェック時に Z 値のクラスタリングを阻止できます。
地形をモデリングする場合、収集したデータセットの XYZ 精度がそれぞれ異なることがあります。この場合は、Z クラスター許容値を 0 よりも大きな値に設定して、スナップを有効にすることができます。高い精度で収集された Z 値が低い精度の Z 値にスナップしないよう、各フィーチャクラスにランクを割り当てることができます。クラスター許容値内にあるランクの低いフィーチャの Z 値は、ランクの高い頂点の標高にスナップされます。同じランクのフィーチャクラスに属する頂点の Z 値がクラスター許容値内にある場合、それらは同じ距離だけ移動してスナップされます。
トポロジの整合チェック プロセスでの Z 値の移動とスナッピングは、調整の合計量が Z クラスター許容値を超えないような方法で行われます。これにより、X と Y の値が等しい頂点の Z 値は、グループとしてスナップされます。
たとえば、Z クラスター許容値が 5 の場合、次の 6 つの頂点の Z 値は、平均化され 11.25 と 3.5 の 2 つのグループに分けられます。
頂点 | 整合チェック前 | 整合チェック後 |
z0 (ランク = 1) | 12.5 | 11.25 |
z1 (ランク = 1) | 10 | 11.25 |
z2 (ランク = 1) | 7.5 | 3.5 |
z3 (ランク = 1) | 5 | 3.5 |
z4 (ランク = 1) | 2.5 | 3.5 |
z5 (ランク = 1) | 0 | 3.5 |
次の例では、頂点のランクが異なり、クラスター許容値は 5 です。Z 値は 平均化され 22.5、7.5、1.25 の 3 つのグループに分けられます。
頂点 | 整合チェック前 | 整合チェック後 |
z0 (ランク = 1) | 25 | 22.5 |
z1 (ランク = 1) | 20 | 22.5 |
z2 (ランク = 1) | 7.5 | 7.5 |
z3 (ランク = 2) | 5 | 7.5 |
z4 (ランク = 2) | 2.5 | 1.25 |
z5 (ランク = 2) | 0 | 1.25 |
Z クラスター許容値の範囲は、0 ~ Z ドメインの範囲 (Z 値の最大値 - 最小値) です。
ランクは精度の相対的な目安です。2 つのフィーチャクラスのランクの違いに関連性はなく、フィーチャクラスを 1 と 2 にランク付けすることは、1 と 3、あるいは 1 と 10 にランク付けすることと同じです。
トポロジ ルール
トポロジ ルールは、フィーチャ間で許容される空間的な関連性を定義します。トポロジに定義するルールにより、1 つのフィーチャクラス内のフィーチャ間、異なるフィーチャクラス内のフィーチャ間、またはフィーチャのサブタイプ間の関連性を制御します。利用可能なトポロジ ルールのリストについては、「ジオデータベースのトポロジ ルールおよびトポロジ エラーの修正」をご参照ください。
たとえば、同じフィーチャクラスのフィーチャの整合性を管理するには、「重複しない」ルールを使用します。2 つのフィーチャが重複する場合、重複しているジオメトリは赤で表示されます (次に示すように、隣接ポリゴンの重複エリアや 2 つのラインのラインセグメントを赤で表示するなど)。
トポロジ ルールは、フィーチャクラスのサブタイプ間でも定義することができます。たとえば、道路フィーチャのサブタイプとして、通常の道路 (両方のノードで他の道路を接続する道路) とクルドサック (一方のノードで行き止まりになっている道路) の 2 つがあるとします。この場合は、トポロジ ルールを使用して、クルドサック サブタイプに属する道路を除き、道路フィーチャが両端で他の道路フィーチャと接続するという制限を設けることができます。
フィーチャの空間的な関連性とロジックを使用したトポロジ ルールの定義
空間的な関連性は、フィーチャがそれらの空間的な表現のルールに従って、ジオメトリを共有する方法を具体的に表現します。たとえば、主な空間的な関連性およびルールとして、次のものが挙げられます。
- 土地区画を重複させることはできません。隣接する土地区画は境界線を共有しています。
- 河川は重複せず、端点で他の河川と接続しなければなりません。
- 隣接する郡はエッジを共有しています。郡は州に完全に含まれていなければなりません。
- 隣接する国勢調査区はエッジを共有しています。国勢調査区は重複せず、国勢調査区はブロック グループに完全に含まれていなければなりません。
- 道路の中心線は端点に接続していなければなりません。
- 道路の中心線と国勢調査区はジオメトリ (エッジとノード) を共有します。
これらの状況はそれぞれ、トポロジ ルールを使用してデータ整合性を維持するケースを示しています。
トポロジの整合チェック、エラー、例外
新しいトポロジの作成、またはトポロジに属するフィーチャへの編集が完了したら、次の作業はトポロジを整合チェックすることです。トポロジの整合チェックでは、以下の処理が実行されます。
- フィーチャの頂点をクラッキングおよびクラスタリングすることにより、位置を共有する (座標が共通する) フィーチャを特定します。
- ジオメトリを共有するフィーチャに共通の座標頂点を挿入します。
- 一連の整合チェックを実施して、トポロジに定義されているルールへの違反を特定します。
- フィーチャ データセットのトポロジ エラーを記録するエラー ログを作成します。
データを編集または変更すると、ArcGIS が変更されたエリアを追跡し、それらをダーティ エリアとして記録します。整合チェックは、トポロジ内のダーティ エリアでのみ実行されます。最後の整合チェック以降に編集または更新が行われていなければ、チェックが必要なものはありません。
エラーと例外
トポロジ ルールへの違反は、まずトポロジのエラーとして格納されます。エラー フィーチャには、整合チェック時にトポロジ エラーが検出された場所が記録されます。特定のエラーは許容できる場合があります。その場合は、エラー フィーチャを例外としてマークすることができます。エラーと例外はトポロジ レイヤーのフィーチャとして格納されるため、フィーチャがトポロジ ルールに従う必要のないケースを定義して管理することができます。
トポロジ内のフィーチャクラスのエラーと例外の合計数を示すレポートを作成することができます。エラー フィーチャ数のレポートは、トポロジ データセットのデータ品質の尺度として使用することができます。また、ArcMap のエラー インスペクターを使用して、さまざまなタイプのエラーを選択し、個々のエラーにズームすることができます。トポロジ エラーを修正するには、トポロジ ルールに違反しているフィーチャを編集します。編集内容を整合チェックすると、エラーはトポロジから削除されます。
編集ツールを使用して、トポロジ エラーを選択し、そのエラーの種類に応じて事前に定義された修正内容のいずれかを選択できます。また、このツールを使用して、違反したルールについての情報を取得したり、エラーを例外としてマークすることもできます。
ジオデータベース トポロジは、トポロジ ルールへの例外を処理できるほど柔軟で、エラーを例外としてマークすることもできます。それ以降、例外は無視されますが、これらの例外が実際にエラーであり、トポロジ ルールに従うようにフィーチャを修正しなければならないと判断した場合には、エラー状態に戻すことができます。
データ作成と更新のプロセスにおいて、例外は正常な現象です。たとえば、都市の道路のデータベースに、センターラインは、他のセンターラインの両端に接続していなければならないというルールが存在するとします。通常は、このルールによって、道路の線分を編集するときに、他の道路の線分に正しくスナップするようになります。ただし、都市の境界線上には、道路データがない場合があります。この場合、道路の両端が他のセンターラインにスナップする必要がない場合もあります。このケースを例外としてマークし、引き続きこのトポロジ ルールを使用して、道路が誤ってデジタイズまたは編集されていないか確認することができます。
ダーティ エリアと整合チェック
ジオデータベース トポロジの主な目標は、トポロジに属するフィーチャ データの処理と整合チェックに費やされる時間を最適化することです。原則は次のとおりです。
- トポロジに属するフィーチャクラスは、トポロジの状態に関係なく、常に利用可能です。
- トポロジの整合チェックはユーザー主導です。トポロジの整合チェック (再構築) を実行する状況と頻度はユーザーが決定します (たとえば、編集処理が終了するたびに、あるいは各編集セッションの最後に実行するなど)。
- 各フィーチャクラスに対する編集はすべて追跡されるため、再び整合チェックが必要となるのは、変更が加えられたエリアだけとなります。
ダーティ エリアは、編集/変更されたエリア、またはフィーチャの追加や削除によって影響を受けたエリアです。ダーティ エリアにより、トポロジの整合チェック時にトポロジ エラーをチェックする必要があるエリアを制限することができます。ダーティ エリアは、新しいフィーチャが追加された場所、または既存のフィーチャが変更された場所を追跡します。これにより、トポロジの範囲全体ではなく、選択された部分を整合チェックできます。
ArcGIS によって自動的に管理されるダーティ エリア
ダーティ エリアは、トポロジに属するフィーチャが作成または削除された、フィーチャのジオメトリが変更された、フィーチャのサブタイプが変更された、バージョンがリコンサイルされた、トポロジのプロパティが変更された、またはジオデータベースのトポロジ ルールが変更されたときに、ArcGIS によって作成されます。
バージョンのリコンサイルでは、フィーチャクラスに対する他の編集や更新と同様に、変更されたエリアはダーティとなります。
新しいトポロジ ルールの追加といったスキーマの変更は、トポロジ全体の整合チェックを意味します (つまり、データセット全体がダーティとなります)。
ジオデータベース トポロジに格納される情報
ジオデータベース トポロジの一部として、次の情報が格納されます。
- トポロジの定義。これには、トポロジの作成時に指定されたすべてのプロパティのスキーマ レコードが含まれます。
- ジオメトリを共有するすべてのフィーチャの座標頂点。整合チェックでは、クラスタリングを使用して座標を統合し、フィーチャおよびフィーチャクラス間の共通の座標を特定します。同じ位置にあると識別された頂点は、同じフィーチャクラスにおいてそれらが属するすべてのフィーチャの座標として書き出されます。これらはジオメトリを共有するフィーチャであり、共通の座標を通じてジオメトリを共有します。
- ダーティ エリア テーブル。このテーブルには、追加または編集されたフィーチャが含まれているエリアと、バージョンからの更新をリコンサイルするエリアが含まれています。
- 整合チェックにより、トポロジ エラー フィーチャの 3 つのテーブルがトポロジに保存されます。
- ポイント エラー
- ライン エラー
- エリア エラー
例外としてマークされたエラーも、エラー フィーチャ テーブルに記録されます。[例外] 列には、例外として特定されるエラーに対してフラグが設定されます。つまり、例外とは [例外] 列のチェックボックスがオンに設定されたエラーです。エラーと例外は、フィーチャ データセットとトポロジの更新および管理を通じて追跡されます。