Verificar geometría (Administración de datos)

Resumen

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

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

Uso

  • Los formatos de entrada válidos son shapefiles y clases de entidad almacenadas en una geodatabase de archivos, base de datos, geodatabase corporativa, GeoPackage o base de datos SpatiaLite. Para las clases de entidad almacenadas en una base de datos corporativa o geodatabase corporativa, se admiten los siguientes tipos espaciales:

    • Microsoft SQL Server: Geometría y geografía
    • PostgreSQL: PostGIS, Geometría y Geografía
    • Oracle: SDO_Geometry
    • SAP HANA: ST_Geometry

    Licencia:

    Una licencia de Desktop Basic le permite aplicar esta herramienta solo a shapefiles y clases de entidad almacenadas en una geodatabase de archivos, GeoPackage o base de datos SpatiaLite. Una licencia de Desktop Standard o Desktop Advanced le permite aplicar también esta herramienta a las clases de entidad almacenadas en una base de datos o geodatabase corporativa.

  • Las clases de entidad almacenadas en una geodatabase corporativa y registradas como versionadas no son compatibles.

  • El valor de parámetro Tabla de salida tendrá un registro para cada problema de geometría encontrado. Si no se encuentran problemas, la tabla estará vacía.

  • El contenido del valor del parámetro Tabla de salida, incluidos los códigos de campo PROBLEM, se escribe en inglés.

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

  • Para revisar las entidades en las que se han detectado problemas de geometría, puede unir el valor del parámetro Entidades de entrada al valor del parámetro 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. Si alguno de los valores del parámetro Entidades de entrada está almacenado en una geodatabase corporativa, base de datos corporativa, GeoPackage o base de datos SpatiaLite, la tabla de salida también incluirá un campo TEXT_ID que se utiliza para las columnas OBJECTID de valores no enteros.

  • La opción de validación de Esri garantiza que la geometría sea topológicamente correcta mediante el método Simplificar de Esri. Solo la validación Esri está disponible para los datos almacenados en una geodatabase corporativa.

  • El método de validación del Consorcio Geoespacial abierto (OGC) garantiza que la geometría cumpla con la especificación de OGC tal y como se define en el 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 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 de nuevo la herramienta Verificar geometría para comprobar si hay nuevos problemas relacionados con la geometría. Si es necesario, ejecute la herramienta Reparar geometría.

  • La geometría validada o reparada con la opción OGC será válida para la opción de Esri. Para más información sobre ambos métodos, consulte Qué es un polígono simple.

  • Los problemas identificados por esta herramienta se pueden 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. Es posible que algunos problemas asociados con los datos almacenados en una base de datos corporativa, geodatabase corporativa, GeoPackage y base de datos SpatiaLite no se puedan reparar con las herramientas de ArcGIS.
  • El valor del parámetro 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.
    • TEXT_ID: este campo solo existe si los valores de Entidades de entrada se almacenan en una base de datos corporativa, geodatabase corporativa, GeoPackage o base de datos SpatiaLite.
    • 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 el campo SHAPE está vacío.
    • 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 antihorario).
    • 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, el valor de FEATURE_ID será -1.

    Para los datos almacenados en geodatabases corporativas, el campo PROBLEM contendrá uno de los siguientes códigos:

    • NEEDS_REORDERING: es necesario reordenar la forma o eliminar los puntos duplicados.
    • SE_INVALID_ENTITY_TYPE: el tipo de entidad no es válido.
    • SE_SHAPE_INTEGRITY_ERROR: se ha producido un error de integridad de forma.
    • SE_INVALID_SHAPE_OBJECT: el manipulador del objeto de la forma no es válido.
    • SE_COORD_OUT_OF_BOUNDS: la coordenada especificada supera el rango de coordenada válido.
    • SE_POLY_SHELLS_OVERLAP: se superponen dos donuts o dos shells exteriores.
    • SE_TOO_FEW_POINTS: el número de puntos es menos que el necesario para la entidad.
    • SE_INVALID_PART_SEPARATOR: existe un separador de partes en una posición incorrecta.
    • SE_INVALID_POLYGON_CLOSURE: un polígono no se cierra correctamente.
    • SE_INVALID_OUTER_SHELL: el shell exterior de polígono no encierra por completo todos los donuts de la parte.
    • SE_ZERO_AREA_POLYGON: un shell de polígono no tiene área.
    • SE_POLYGON_HAS_VERTICAL_LINE: un shell de polígono contiene una línea vertical.
    • SE_OUTER_SHELLS_OVERLAP: un área multiparte tiene partes superpuestas.
    • SE_SELF_INTERSECTING: un límite de cadena de líneas o de polígono presenta autointersección.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Clase de entidad o capa que se desea procesar.

Licencia:

Una licencia Desktop Basic solo admite shapefiles y clases de entidad almacenadas en una geodatabase de archivos, GeoPackage o base de datos SpatiaLite como formatos de entidad de entrada válidos. Las licencias de Desktop Standard o Desktop Advanced permiten también utilizar clases de entidad almacenadas en una base de datos o geodatabase corporativa como formatos de entidad de entrada válidos.

Feature Layer
Tabla de Salida
(Opcional)

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

Table
Método de validación
(Opcional)

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

  • EsriSe utilizará el método de validación de geometría de Esri. Esta es la opción predeterminada.
  • OGCSe utilizará el método de validación de geometría de OGC.
String

Salida derivada

EtiquetaExplicaciónTipo de datos
Contiene errores de geometría

Indica si la herramienta ha identificado algún problema de geometría.

Boolean

arcpy.management.CheckGeometry(in_features, {out_table}, {validation_method})
NombreExplicaciónTipo de datos
in_features
[in_features,...]

Clase de entidad o capa que se desea procesar.

Licencia:

Una licencia Desktop Basic solo admite shapefiles y clases de entidad almacenadas en una geodatabase de archivos, GeoPackage o base de datos SpatiaLite como formatos de entidad de entrada válidos. Las licencias de Desktop Standard o Desktop Advanced permiten también utilizar clases de entidad almacenadas en una base de datos o geodatabase corporativa como formatos de entidad de entrada válidos.

Feature Layer
out_table
(Opcional)

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.

  • ESRISe utilizará el método de validación de geometría de Esri. Esta es la opción predeterminada.
  • OGCSe utilizará el método de validación de geometría de OGC.
String

Salida derivada

NombreExplicaciónTipo de datos
problems_found

Indica si la herramienta ha identificado algún problema de geometría.

Boolean

Muestra de código

Ejemplo 1 de CheckGeometry (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la función CheckGeometry en el modo inmediato en una geodatabase de archivos.


import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.management.CheckGeometry(["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 de archivos.

# BatchCheckGeometry.py
# Description: Loop through all the feature classes in a geodatabase, and 
#              generate 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 
# in 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.management.CheckGeometry(fc_list, out_table)

print("{} geometry problems found, see {} for details.".format(
    arcpy.management.GetCount(out_table)[0], out_table))
Ejemplo 3 de CheckGeometry (script independiente)

El siguiente script utiliza la función CheckGeometry y verifica la salida derivada para determinar si se han encontrado problemas


import arcpy

result = arcpy.management.CheckGeometry('c:/data/data.gdb/badgeometryfc')
if result[1] == 'true':
    # Geometry problems found, print the tool messages.
    print(result.getMessages())

else:
    # No problems found
    print("No problems Found")

Entornos

Casos especiales

Factor de procesamiento en paralelo

Si no se establece el entorno (valor predeterminado) o si se establece en 0, se desactivará el procesamiento en paralelo. Si se establece en 100, la herramienta intentará distribuir el trabajo entre todos los núcleos lógicos del equipo. Especificar un factor entre 1 y 99 hará que la herramienta identifique el porcentaje de núcleos lógicos que debe usar aplicando la fórmula (Factor de procesamiento en paralelo / 100 * Núcleos lógicos) redondeada al entero más próximo. Si el resultado de la fórmula es 0 o 1, no se habilitará el procesamiento en paralelo.