Mit der Standard- oder Advanced-Lizenz verfügbar.
Die primäre Methode für die Erstellung einer neuen Topologie in ArcGIS Pro ist der Assistent "Topologie erstellen". Nachdem Sie sich mit der Erstellung einer Topologie vertraut gemacht haben, können Sie diesen Vorgang mithilfe einer Reihe von Geoverarbeitungswerkzeugen automatisieren.
Erstellen einer Topologie mit dem Assistenten "Topologie erstellen"
Zum Erstellen einer Topologie mit dem Assistenten Topologie erstellen führen Sie die folgenden Schritte aus.
- Klicken Sie im Bereich Katalog mit der rechten Maustaste auf das Feature-Dataset, dem Sie eine Topologie zuweisen möchten, und klicken Sie auf Neu > Topologie erstellen.
- Geben Sie der neuen Topologie einen Namen, und legen Sie die Cluster-Toleranz fest. Der Standardwert ist auf die XY-Toleranz des Feature-Datasets festgelegt. Ein guter Standardwert ist 0,001 Meter oder dessen Äquivalent in den Einheiten des Raumbezugs (z. B. 0,003281 Fuß, wenn die Einheiten in Fuß oder 0,0000000556 Grad, wenn sie in Breiten- und Längengrad als Grad vorliegen).
- Aktivieren Sie die Kontrollkästchen der Feature-Classes, die an der Topologie beteiligt sind. Es wird eine Liste aller Feature-Classes in Ihrem Feature-Dataset angezeigt.
- Legen Sie die Rangstufen für die Koordinatengenauigkeit für jede Features-Class in der Topologie fest.
Wenn ein oder mehrere Feature-Classes Koordinaten-Z-Werte enthalten, klicken Sie auf Z-Eigenschaften, um die Z-Rangstufen festzulegen. Die Z-Toleranz dient zur Unterscheidung der Z-Höhe bzw. der Höhe von Stützpunkten, die in denselben Toleranzbereich fallen. Zwischen zwei benachbarten Features mit verschiedenen Höhen kann sich beispielsweise eine gemeinsame Kante befinden. Es werden jedoch nur deren XY-Stützpunkte als lagegleich festgelegt, nicht deren Z-Wert bzw. Höhe. Mithilfe der Z-Toleranz werden diese Informationen bei Überprüfungs- und Cluster-Vorgängen richtig verarbeitet. Der Standardwert der Z-Toleranz ist mit dem Standardwert der XY-Toleranz identisch (0,001 Meter in realen Einheiten).
- Klicken Sie auf Weiter.
- Sie erstellen nun Topologieregeln zwischen den beteiligten Feature-Classes und ihren Subtypes. Wählen Sie im Dropdown-Menü Feature-Class 1 eine Feature-Class aus. Wenn Sie eine mit Subtypes verknüpfte Regel erstellen, verwenden Sie das Dropdown-Menü Subtype 1, um einen Subtype auszuwählen.
- Wählen Sie in der nächsten Spalte die entsprechende Regel aus. Mithilfe von Regeln können Sie räumliche Beziehungen zwischen Features strukturieren und die gemeinsame Geometrie von Features steuern und überprüfen.
- Schließen Sie, sofern auf die ausgewählte Regel anwendbar, die Regel ab, indem Sie eine zweite Feature-Class und einen zweiten Subtype aus den Dropdown-Menüs Feature-Class 2 und Subtype 2 auswählen.
- Wiederholen Sie die Schritte 6, 7 und 8, um die erforderliche Anzahl Regeln zu erstellen. Klicken Sie abschließend auf Weiter.
Überprüfen Sie die Zusammenfassung und klicken Sie auf Fertig stellen. Sie haben Ihrer Feature-Class nun die neue Topologie hinzugefügt.
Erstellen einer Topologie mithilfe von Geoverarbeitungswerkzeugen
ArcToolbox enthält eine Reihe von Geoverarbeitungswerkzeugen für Topologie. Das Toolset "Topologie" befindet sich in der Toolbox "Data Management".
Diese Werkzeuge können für die Skripterstellung zum Erstellen und Ändern von Geodatabase-Topologien eingesetzt werden. Skripte können verwendet werden, um eine Reihe von Tasks zu automatisieren und wiederholbare Workflows zu erstellen.
Um eine Topologie mit dem Werkzeug Topologie erstellen zu erstellen, führen Sie die folgenden Schritte aus:
- Wählen Sie die Feature-Classes aus, die an der Topologie beteiligt sind. Fügen Sie der Topologie diese Feature-Classes hinzu, indem Sie das Geoverarbeitungswerkzeug Feature-Class zu Topologie hinzufügen verwenden.
Führen Sie dieses Werkzeug mehrmals aus, bis alle Feature-Classes hinzugefügt wurden, die an der Topologie beteiligt sein sollen.
- Nachdem Sie die Topologie erstellt und ihr einige Feature-Classes hinzugefügt haben, können Sie verschiedene Regeln mit dem Geoverarbeitungswerkzeug Regel zu Topologie hinzufügen hinzufügen. Mithilfe von Topologieregeln können Sie räumliche Beziehungen zwischen Features strukturieren und die gemeinsame Geometrie von Features steuern und überprüfen.
Sie müssen dieses Werkzeug unter Umständen auch mehrmals ausführen, bis der Topologie alle gewünschten Topologieregeln hinzugefügt wurden.
- Sie verfügen nun über eine neue Topologie in Ihrem Feature-Dataset mit beteiligten Feature-Classes und Topologieregeln. Wenn Ihre Feature-Classes Daten enthalten, verwenden Sie das Geoverarbeitungswerkzeug Topologie überprüfen, um Ihre Topologie zu überprüfen.
Nachfolgend finden Sie ein Beispiel für ein eigenständiges Python-Skript, mit dem Sie eine Topologie erstellen und dieser mehrere Feature-Classes und Regeln hinzufügen können.
Dieses eigenständige Python-Skript erstellt eine Topologie, fügt mehrere Feature-Classes und Regeln hinzu und überprüft die Topologie.
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.CreateTopology_management(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.AddFeatureClassToTopology_management(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.AddRuleToTopology_management(out_topo, rule_type, in_fc1, subtype1, in_fc2, subtype2)
print(arcpy.GetMessages())
# Validate the topology
if validate == "true":
try:
arcpy.ValidateTopology_management(out_topo)
except:
print(arcpy.GetMessages())
print("Finished.")