Crear una topología

Disponible con una licencia Standard o Advanced.

El método principal para crear una nueva topología en ArcGIS Pro es el asistente Crear topología. Cuando sepa cómo crear una topología, podrá automatizar este trabajo mediante un conjunto de herramientas de geoprocesamiento.

Crear una topología usando el asistente Crear topología

Para crear una topología usando el asistente Crear topología, complete los siguientes pasos:

  1. En el panel Catálogo, haga clic con el botón derecho en el dataset de entidades al que desea agregar una topología y haga clic en Nueva > Crear topología.
  2. Asigne un nombre a la nueva topología y especifique la tolerancia clúster. El valor predeterminado se define en la tolerancia x,y del dataset de entidades. Un buen valor predeterminado es 0,001 metros o su equivalente en las unidades de su referencia espacial (por ejemplo, 0,003281 pies si las unidades se expresan en pies o 0,0000000556 grados si se trata de unidades de latitud y longitud que se expresan en grados decimales).
  3. Active las casillas de las clases de entidades que participarán en la topología. Se mostrará una lista de todas las clases de entidad del dataset de entidades.
  4. Defina las clasificaciones de precisión de las coordenadas para cada clase de entidad de la topología.

    Si una o más de las clases de entidad contienen valores z de coordenadas, haga clic en Propiedades Z para configurar las clasificaciones de z. La tolerancia z se usa para distinguir la altura z, o elevación, de los vértices dentro de la tolerancia de unos con otros. Por ejemplo, dos entidades adyacentes de alturas diferentes podrían compartir un borde común entre ellas. Sin embargo, solo comparten ubicación sus vértices x,y, no su valor z o altura. La tolerancia z ayuda a procesar correctamente esta información durante las operaciones de validación y clustering. El valor predeterminado de la tolerancia z es el mismo que el de la tolerancia x,y (0,001 metros en unidades del mundo real).

  5. Haga clic en Siguiente.
  6. Ahora creará reglas de topología entre las clases de entidades participantes y sus subtipos. En el menú desplegable Clase de entidad 1 seleccione una clase de entidad. Si va a crear una regla asociada con subtipos, use el menú desplegable Subtipo 1 para elegir un subtipo.
  7. En la siguiente columna, elija la Regla correspondiente. Las reglas ayudan a estructurar las relaciones espaciales entre las entidades y a controlar y validar la forma en que las entidades comparten la geometría.
  8. Si fuera aplicable a la regla elegida, complete la regla eligiendo una segunda clase de entidad y un segundo subtipo en los menús desplegables Clase de entidad 2 y Subtipo 2.
  9. Repita los pasos 6, 7 y 8 para crear tantas reglas como sean necesarias. Cuando termine, haga clic en Siguiente.
  10. Revise el resumen y haga clic en Finalizar. Habrá agregado la nueva topología al dataset de entidades.

Crear una topología utilizando herramientas de geoprocesamiento

ArcToolbox contiene una serie de herramientas de geoprocesamiento para la topología. El conjunto de herramientas Topología se encuentra en el toolbox Administración de datos.

Estas herramientas se pueden utilizar para generar scripts a fin de crear y modificar las topologías de la geodatabase. Los scripts se pueden utilizar para automatizar una serie de tareas y generar flujos de trabajo repetibles.

Para crear una topología usando la herramienta Crear topología, complete los siguientes pasos:

  1. Elija las clases de entidad que van a formar parte de la topología. Agregue estas clases de entidad a la topología usando la herramienta de geoprocesamiento Agregar clase de entidad a la topología.

    Ejecute esta herramienta varias veces hasta que haya agregado todas las clases de entidad que deban participar en la topología.

  2. Ahora que ha creado la topología y ha agregado algunas clases de entidad en ella, puede agregar una serie de reglas usando la herramienta de geoprocesamiento Agregar regla a la topología. Las reglas de topología ayudan a estructurar las relaciones espaciales entre las entidades y a controlar y validar la forma en que las entidades comparten la geometría.

    Es posible que tenga que ejecutar esta herramienta varias veces hasta que haya agregado todas las reglas topológicas deseadas a la topología.

  3. Ahora tiene una nueva topología en el dataset de entidades con las clases de entidad participantes y las reglas topológicas. Si dispone de datos en las clases de entidad, use la herramienta de geoprocesamiento Validar topología para validar la topología.

A continuación se muestra un ejemplo de script de Python independiente que puede usar para crear una topología y agregar varias reglas y clases de entidad a la topología:

Este script de Python independiente crea una topología, agrega varias reglas y clases de entidad y valida la topología.

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.")