Verificar geometría (Administración de datos)

Resumen

Genera un informe de problemas de geometría en una clase de entidad.

Los formatos de entrada válidos son las clases de entidad y shapefile almacenados en una geodatabase de archivos.

Para obtener información adicional sobre problemas de geometría, su impacto en el software y las posibles causas, consulte Verificar y reparar geometrías.

Uso

  • La Tabla de salida tendrá un registro para cada problema de geometría que se descubra. Si no se encuentran problemas, la tabla estará vacía.

  • La Tabla de salida tiene los siguientes campos:

    • CLASS: ruta completa y nombre de la clase de entidad en la que se encontró el problema.
    • FEATURE_ID: Id. de entidad (FID) o Id. de objeto (OID) de la entidad con el problema de geometría.
    • PROBLEM: breve descripción del problema.
  • El campo PROBLEM contendrá uno de los siguientes códigos:

    • Short segment: algunos segmentos son más cortos de lo permitido por las unidades del sistema de la referencia espacial asociada a la geometría.
    • Null geometry: la entidad no tiene geometría o no hay nada en el campo SHAPE.
    • Incorrect ring ordering: el polígono es topológicamente simple, pero sus anillos pueden no estar orientados de la manera correcta (los anillos exteriores en el sentido de las agujas del reloj; los anillos interiores en sentido contrario a las agujas del reloj).
    • Incorrect segment orientation: los segmentos individuales no están orientados de manera consistente. El punto hasta del segmento i debe ser incidente en el punto desde del segmento i+1.
    • Self intersections: un polígono no debe intersecar con sí mismo.
    • Unclosed rings: el último segmento en un anillo debe tener su incidente del punto "hasta" en el punto "desde" del primer segmento.
    • Empty parts: la geometría tiene varias partes y una de ellas está vacía (no tiene geometría).
    • Duplicate vertex: la geometría tiene dos o más vértices secuenciales con coordenadas idénticas.
    • Mismatched attributes: la coordenada Z o M de un extremo del segmento de línea no coincide con la coordenada Z o M del extremo coincidente en el siguiente segmento.
    • Discontinuous parts: una de las partes de la geometría está compuesta de partes desconectadas o discontinuas.
    • Empty Z values: la geometría tiene uno o más vértices con un valor Z vacío (por ejemplo, NaN).
    • Bad envelope: el sobre no coincide con la extensión de coordenadas de la geometría.
    • Bad dataset extent: la propiedad de extensión del dataset no contiene todas las entidades del dataset. Con este problema, FEATURE_ID será -1.
  • El problema identificado por esta herramienta se puede solucionar de las siguientes formas:

    • Edite y repare manualmente la entidad con problemas de geometría. Algunos de los problemas no se pueden reparar mediante una edición.
    • Use la herramienta Reparar geometría.
  • El contenido de la Tabla de salida, incluidos los códigos de PROBLEM, se escribe en inglés.

  • En las entidades de puntos, solo es posible el problema de geometría nula.

  • Para facilitar la revisión de las entidades en las que se han detectado problemas de geometría, puede unir las entidades de entrada a la tabla de salida utilizando la herramienta Agregar unión, junto con el campo OBJECTID o FID de la entrada y el campo FEATURE_ID de la tabla de salida.

  • El método de validación de Esri garantiza que la geometría sea topológicamente legal utilizando el método de simplificación de Esri.

  • El método de validación de OGC garantiza que la geometría cumpla con la especificación de OGC tal y como se define en Estándar de implementación de OpenGIS para información geográfica – acceso a entidades simples – Parte 1: arquitectura común.

  • Después de reparar la geometría de una entidad utilizando la opción de OGC, las siguientes ediciones o modificaciones podrían provocar que la geometría no cumpla con la especificación de OGC. Tras la modificación de la entidad, ejecute la herramienta Verificar geometría para comprobar si hay nuevos problemas relacionados con la geometría. Si es necesario, vuelva a ejecutar la herramienta Reparar geometría.

  • La simplificación de OGC no admite segmentos no lineales, por ejemplo, curvas de Bézier, arcos circulares y arcos elípticos. Estos tipos de segmentos se deberán densificar utilizando la herramienta Densificar en el dataset de entrada antes de ejecutar la herramienta Verificar geometría. Para evitar cambiar de forma irreversible segmentos no lineales al ejecutar la herramienta Densificar, realice primero una copia de los datos. Para determinar si sus datos tienen segmentos no lineales, utilice la herramienta Agregar atributos de geometría.

Sintaxis

CheckGeometry(in_features, out_table, {validation_method})
ParámetroExplicaciónTipo de datos
in_features
[in_feature,...]

Una o más clases de entidad o capas de entidades para ver si hay en ellas problemas de geometría.

Feature Layer
out_table

El informe (en forma de tabla) de los problemas descubiertos.

Table
validation_method
(Opcional)

Especifica el método de validación de geometría que se usará para identificar problemas de geometría.

  • ESRI Se utilizará el método de validación de geometría de Esri. Esta es la opción predeterminada.
  • OGC Se utilizará el método de validación de geometría de Open Geospatial Consortium (OGC).
String

Muestra de código

Ejemplo 1 de CheckGeometry (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función CheckGeometry en modo inmediato.

import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management(["contours", "roads", "vegetation"], "CheckGeom_Result")
Ejemplo 2 de CheckGeometry (script independiente)

En el siguiente script independiente se utiliza la función CheckGeometry creando un bucle en todas las clases de entidad de una geodatabase.

# BatchCheckGeometry.py
# Description: 
#   Loops through all the feature classes in a geodatabase, and generates 
#   a report of the problems encountered with feature geometry.
# Import modules
import arcpy
import os
# The geodatabase in which the feature classes will be checked
arcpy.env.workspace = "C:\\data\\St_Lucia.gdb"
out_table = "checkGeometryResult"
 
# A variable that will hold the list of all the feature classes 
# inside the geodatabase
fc_list = []
# Identify all feature classes in the geodatabase
for path, dirnames, fcs in arcpy.da.Walk(arcpy.env.workspace, 
                                         datatype='FeatureClass'):
    for fc in fcs:
        fc_list.append(os.path.join(path, fc))
        
print("Running the check geometry tool on {} feature classes".format(
    len(fc_list)))
arcpy.CheckGeometry_management(fc_list, out_table)
print("{} geometry problems found, see {} for details.".format(
    arcpy.GetCount_management(out_table)[0], out_table))

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados