Vérifier les géométries (Gestion des données)

Résumé

Génère un rapport des problèmes de géométrie dans une classe d'entités.

Les formats en entrée valides sont les fichiers de formes et les classes d'entités stockées dans une géodatabase fichier.

Pour des informations supplémentaires sur les problèmes de géométrie, leur impact sur le logiciel et les sources potentielles, reportez-vous à la rubrique Vérification et réparation des géométries.

Utilisation

  • La table en sortie contient un enregistrement pour chaque problème de géométrie découvert. Si aucun problème n'est détecté, la table est vide.

  • La table en sortie contient les champs suivants :

    • CLASS : chemin complet et nom de la classe d’entités dans laquelle le problème a été détecté.
    • FEATURE_ID : identifiant de l’entité (FID) ou Identifiant d’objet (OID) de l’entité avec le problème de géométrie.
    • PROBLEM : courte description du problème.
  • Le champ PROBLEM contient l’un des codes suivants :

    • Short segment : certains segments sont d'une longueur inférieure à celle autorisée par les unités système de la référence spatiale associée à la géométrie.
    • Null geometry : l'entité n'a aucune géométrie ou aucun élément dans le champ SHAPE.
    • Incorrect ring ordering : le polygone est simple d'un point de vue topologique, mais ses boucles peuvent ne pas être orientées correctement (boucles externes dans le sens horaire, boucles internes dans le sens anti-horaire).
    • Incorrect segment orientation : des segments particuliers ne sont pas orientés de manière cohérente. Le point d'arrivée du segment i doit correspondre au point de départ du segment i+1.
    • Self intersections : un polygone ne doit pas être auto-sécant.
    • Unclosed rings : le point d'arrivée du dernier segment dans une boucle doit correspondre au point de départ du premier segment.
    • Empty parts : la géométrie comporte plusieurs parties et l’une d’elles est vide (n’a aucune géométrie).
    • Duplicate vertex : la géométrie comporte deux sommets séquentiels ou plus ayant des coordonnées identiques.
    • Mismatched attributes : la coordonnée Z ou M de l’extrémité d’un segment de ligne ne correspond pas à la coordonnée Z ou M de l’extrémité coïncidente sur le segment suivant.
    • Discontinuous parts : une des parties de la géométrie est composée de parties déconnectées ou discontinues.
    • Empty Z values : la géométrie présente un ou plusieurs sommets incluant une valeur Z vide (NaN, par exemple).
    • Bad envelope : l'enveloppe ne correspond pas à l'étendue des coordonnées de la géométrie.
    • Bad dataset extent : la propriété d'étendue du jeu de données ne contient pas toutes les entités du jeu de données. Pour ce problème, le champ FEATURE_ID aura la valeur -1.
  • Il existe plusieurs façons de résoudre le problème identifié par cet outil :

    • Mettez à jour et réparez manuellement l'entité comportant les problèmes de géométrie. Certains problèmes ne peuvent pas être résolus via une mise à jour.
    • Utilisez l’outil Réparer les géométries.
  • Le contenu Output Table (Table en sortie), y compris les codes du champ PROBLEM, sont écrits en anglais.

  • Pour les entités ponctuelles, seul le problème de géométrie nulle est possible.

  • Pour faciliter la révision des entités identifiées comme ayant des problèmes de géométrie, vous pouvez joindre les valeurs Input Features (Entités en entrée) à la valeur Output Table (Table en sortie) à l’aide de l’outil Ajouter une jointure, ainsi que le champ OBJECTID ou FID de l’entrée et le champ FEATURE_ID de la table en sortie.

  • La méthode de validation d’Esri permet de s’assurer que la géométrie est topologiquement correcte à l’aide de la méthode Simplifier d’Esri.

  • La méthode de validation de l’OGC permet de s’assurer que la géométrie est conforme à la spécification de l’OGC telle qu’elle est définie dans OpenGIS Implementation Standard for Geographic information – simple feature access – Part 1: common architecture.

  • Lorsque la géométrie d'une entité est réparée à l'aide de l'option de l'OGC, les mises à jour ou modifications ultérieures peuvent entraîner la non-conformité de la géométrie avec la spécification de l'OGC. Lorsqu'une entité est modifiée, exécutez l'outil Vérifier les géométries pour rechercher d'éventuels nouveaux problèmes géométriques. Le cas échéant, réexécutez l'outil Réparer les géométries.

  • La simplification de l'OGC ne prend pas en charge les segments non linéaires, tels que les courbes de Bézier, les arcs circulaires et les arcs elliptiques. Ces types de segments devront être densifiés à l'aide de l'outil Densifier dans le jeu de données en entrée avant d'exécuter Vérifier les géométries. Pour ne pas modifier de façon irréversible les segments non linéaires lors de l'exécution de l'outil Densifier, effectuez d'abord une copie des données. Pour savoir si vos données comportent des segments non linéaires, utilisez l'outil Ajouter des attributs géométriques.

Syntaxe

CheckGeometry(in_features, out_table, {validation_method})
ParamètreExplicationType de données
in_features
[in_feature,...]

Une ou plusieurs classes d'entités ou couches d'entités à vérifier afin de rechercher d'éventuels problèmes de géométrie.

Feature Layer
out_table

Le rapport (sous forme de table) des problèmes découverts.

Table
validation_method
(Facultatif)

Indique la méthode de validation utilisée pour identifier les problèmes de géométrie.

  • ESRI La méthode de validation de la géométrie d'Esri va être utilisée. Il s’agit de l’option par défaut.
  • OGC La méthode de validation de la géométrie de l'OGC (Open Geospatial Consortium) va être utilisée.
String

Exemple de code

Exemple 1 d'utilisation de l'outil CheckGeometry (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction CheckGeometry en mode immédiat.

import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management(["contours", "roads", "vegetation"], "CheckGeom_Result")
Exemple 2 d'utilisation de l'outil CheckGeometry (script autonome)

Le script autonome suivant utilise la fonction CheckGeometry en faisant une boucle sur toutes les classes d'entités dans une géodatabase.

# 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))

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes