トポロジーの作成
Standard または Advanced ライセンスで利用可能。
ArcGIS Pro でトポロジーを新規作成する主な方法は、トポロジー作成ウィザードです。 トポロジーの作成方法を理解したら、ジオプロセシング ツールを使用して、この作業を自動化することができます。
トポロジ作成ウィザードを使用したトポロジーの作成
トポロジ作成ウィザードを使用してトポロジーを作成するには、次の手順に従います。
カタログ ウィンドウで、トポロジーの追加先のフィーチャ データセットを右クリックして、新規 > トポロジーの作成 の順にクリックします。
新しいトポロジーの名前とクラスター許容値を指定します。 デフォルト値は、フィーチャ データセットの X,Y 許容値に設定されます。 デフォルト値は 0.001 メートル、または空間参照の単位でそれに相当する値です (たとえば、単位がフィートの場合は 0.003281 フィート、単位が緯度経度の 10 進度の場合は 0.0000000556 度)。
トポロジーに追加するフィーチャクラスのボックスをオンにします。 フィーチャ データセットのすべてのフィーチャクラスのリストが表示されます。
トポロジ内のフィーチャクラスごとに、座標の精度ランクを設定します。
1 つ以上のフィーチャクラスに Z 座標値が含まれている場合、**Z プロパティ ** をクリックし、z ランクを設定します。 Z 許容値は、互いに許容範囲内にある頂点の高さ (高度) を区別するために使用されます。 たとえば、高さの異なる 2 つの隣接フィーチャが同じエッジを共有していることがあります。 ただし、X,Y 頂点が同じ位置にあるだけで、それらの Z 値 (高さ) は異なります。 Z 許容値は、検証やクラスタリングの過程で、この情報を正しく処理するのに役立ちます。 デフォルトの Z 許容値は X,Y 許容値のデフォルト値 (現実の世界の単位で 0.001 メートル) と同じです。
次へ をクリックします。
次に、追加するフィーチャクラスとそのサブタイプの間にトポロジ ルールを作成します。 フィーチャクラス 1 ドロップダウン メニューから、フィーチャクラスを選択します。 サブタイプに関連付けられたルールを作成する場合には、サブタイプ 1 ドロップダウン メニューを使用してサブタイプを選択します。
次の列で、対応する ルール を選択します。 ルールは、フィーチャ間の空間リレーションシップを確立し、フィーチャによるジオメトリーの共有方法を制御および検証するのに役立ちます。
選択したルールに適用可能な場合は、フィーチャクラス 2 および サブタイプ 2 ドロップダウン メニューから 2 つ目のフィーチャクラスとサブタイプを選択することで、ルールを完成させます。
ステップ 6、7、8 を繰り返して、必要な数のルールを作成します。 完了したら、次へ をクリックします。
サマリーの内容を確認し、完了 をクリックします。 これで、新しいトポロジーがフィーチャ データセットに追加されました。
ジオプロセシング ツールを使用したトポロジーの作成
ArcToolbox には、トポロジーを対象としたジオプロセシング ツールが含まれています。 トポロジー ツールセットは データ管理ツール ツールボックスにあります。
これらのツールを使用して、ジオデータベース トポロジーを作成および変更するためのスクリプトを構築することができます。 これらのスクリプトを使用して、一連のタスクを自動化し、繰り返し実行するワークフローを構築できます。
トポロジーの作成 ツールを使用してトポロジーを作成するには、次の手順に従います。
トポロジーに含めるフィーチャクラスを選択します。 トポロジーにフィーチャクラスを追加 (Add Feature Class To Topology) ジオプロセシング ツールを使用して、トポロジーにフィーチャクラスを追加します。
トポロジーに含めるすべてのフィーチャクラスが追加されるまで、このツールを複数回実行します。
トポロジーを作成して、フィーチャクラスをいくつか追加できたため、トポロジーにルールを追加 (Add Rule To Topology) ジオプロセシング ツールを使用して、一連のルールを追加することができます。 トポロジー ルールは、フィーチャ間の空間的な関連性を確立し、フィーチャによるジオメトリーの共有方法を制御および検証するのに役立ちます。
必要なトポロジ ルールすべてをトポロジーに追加するには、このツールを複数回実行する必要がある場合もあります。
フィーチャ データセットにフィーチャクラスとトポロジ ルールを含んだ新しいトポロジーが作成されました。 フィーチャクラスにデータが含まれている場合は、トポロジーの検証 ジオプロセシング ツールを使用して、トポロジーを検証できます。
以下のスクリプトは、トポロジーを作成して、トポロジーに複数のフィーチャクラスとルールを追加できる、スタンドアロンの Python スクリプトのサンプルです。
このスタンドアロンの Python スクリプトを使用すると、トポロジーを作成し、複数のフィーチャクラスとルールを追加し、トポロジーを検証することができます。
import arcpy
import os
# Input variables
input_dataset = r"C:\MyProjects\MyProject.gdb\fds"
topo_name = "Topology"
cluster_tol = 0.001
input_fc = r"C:\MyProjects\MyProject.gdb\fds\fc1 1 1;C:\MyProjects\MyProject.gdb\fds\fc2 1 1"
rules = r"'Must Not Overlap (Area)' C:\MyProjects\MyProject.gdb\fds\fc1 # C:\MyProjects\MyProject.gdb\fds\fc1 #;'Must Be Covered By Feature Class Of (Area-Area)' C:\MyProjects\MyProject.gdb\fds\fc1 # C:\MyProjects\MyProject.gdb\fds\fc2 #"
validate = "true"
# Create the topology
out_topo = arcpy.management.CreateTopology(input_dataset, topo_name, cluster_tol)
print("Created topology.")
# Loop through the list of feature classes and add them to the topology
input_fcL = input_fc.split(";")
for fc in input_fcL:
param = fc.rsplit(" ", 2)
in_fc = param[0]
xy_rank = param[1]
z_rank = param[2]
arcpy.management.AddFeatureClassToTopology(out_topo, in_fc, xy_rank, z_rank)
print(arcpy.GetMessages())
# Loop through the list of rules and add rules to the topology
rulesL = rules.split(";")
for rule in rulesL:
r = rule.rsplit(" ", 4)
rule_type = r[0].replace("'","")
in_fc1 = r[1]
subtype1 = r[2]
in_fc2 = r[3]
subtype2 = r[4]
arcpy.management.AddRuleToTopology(out_topo, rule_type, in_fc1, subtype1, in_fc2, subtype2)
print(arcpy.GetMessages())
# Validate the topology
if validate == "true":
try:
arcpy.management.ValidateTopology(out_topo)
except:
print(arcpy.GetMessages())
print("Finished.")