Vérifier les géométries (Gestion des données)
Récapitulatif
Génère un rapport des problèmes de géométrie dans une classe d'entités.
Les formats valides en entrée sont les shapefiles et les classes d'entités stockées dans une géodatabase personnelle ou une géodatabase fichier. Les géodatabases ArcSDE vérifient automatiquement la validité de chaque géométrie lors de son téléchargement, c'est pourquoi les fonctions Vérifier les géométries et Réparer les géométries ne sont pas destinées à être utilisées avec SDE.
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 trouvé, la table est vide.
-
La Table en sortie a les champs suivants :
- CLASS - Chemin complet et nom de la classe d'entités dans laquelle le problème a été trouvé.
- 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 éléments suivants :
- Segments courts - Certains segments sont plus courts qu'il n'est autorisé par les unités système de la référence spatiale associée à la géométrie.
- Géométrie nulle - L'entité n'a aucune géométrie ou rien dans le champ SHAPE.
- Organisation des boucles incorrecte - Le polygone est simple topologiquement, mais ses boucles peuvent ne pas être orientés correctement (boucles externes - sens horaire, boucles internes - sens anti-horaire).
- Orientation des segments incorrecte - 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.
- Auto-intersections - Un polygone ne doit pas comporter d'intersections avec lui-même.
- Boucles non fermées - Le point d'arrivée du dernier segment dans une boucle doit correspondre au point de départ du premier segment.
- Parties vides - La géométrie comporte plusieurs parties et l'une d'elles est vide (n'a aucune géométrie).
- Sommet dupliqué - La géométrie a deux sommets ou plus qui ont des coordonnées identiques.
- Disparité entre les attributs - La coordonnée Z ou M du point de fin d'un segment de ligne ne correspond pas à la coordonnée Z ou M du point de fin coïncident sur le segment suivant.
- Composantes discontinues - Une partie de la géométrie est composée de parties déconnectées ou discontinues.
- Valeurs Z vides - La géométrie a un ou plusieurs sommets avec une valeur Z vide (NaN, par exemple).
-
Il existe plusieurs façons de résoudre le problème identifié par cet outil :
- En modifiant et en réparant manuellement l'entité comportant les problèmes de géométrie. Certains problèmes, tels que la géométrie non simple, ne peuvent pas être résolus dans l'Editeur.
- En exécutant l'outil Réparer les géométries sur les classes d'entités identifiées comme ayant des problèmes de géométrie.
-
Pour les entités ponctuelles, seul le problème de géométrie nulle s'applique.
-
Pour faciliter la révision des entités identifiées comme ayant des problèmes de géométrie dans ArcMap, vous pouvez joindre les Entités en entrée à la Table en sortie à l'aide de l'outil Joindre. Effectuez simplement la jointure à l'aide du champ ObjectID de l'entrée et du champ FEATURE_ID de la table en sortie. Vous pouvez également désactiver l'option Tout conserver pour afficher uniquement les entités qui ont des problèmes de géométrie.
A partir de la version 10.0, une géométrie de ligne n'est plus considérée comme en "auto-intersection" si elle se croise elle-même. Ces types de géométrie ne présentaient pas d'effet négatif, par conséquent l'outil Vérifier les géométries n'indiquera plus l'entité en tant que problème et l'outil Réparer les géométries n'effectuera plus de "réparation" sur la géométrie de l'entité. Avant la version 10.0, l'outil Réparer les géométries ajoutait des sommets au point d'intersection des lignes en "auto-intersection". Si vous souhaitez ajouter des sommets lorsque les entités linéaires se croisent elles-mêmes, utilisez l'outil Intégrer.
Syntaxe
Paramètre | Explication | Type de données |
in_features [in_features,...] |
Une ou plusieurs classes d'entités ou couches d'entités devant être vérifiées afin de rechercher d'éventuels problèmes de géométrie. Les formats valides en entrée sont les shapefiles et les classes d'entités stockées dans une géodatabase personnelle ou une géodatabase fichier. | Feature Layer |
out_table |
Table contenant la liste des problèmes découverts dans les entités en entrée. | Table |
Exemple de code
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"], "CG_Result")
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.
# Requirements: Python
# Import modules
import arcpy
# The workspace in which the feature classes will be checked
outTable = "C:/data/St_Lucia.gdb/checkGeometryResult"
arcpy.env.workspace = "C:/data/St_Lucia.gdb"
# A variable that will hold the list of all the feature classes
# inside the geodatabase
fcs = []
# List all feature classes in feature datasets
for fds in arcpy.ListDatasets("","featuredataset"):
fcs += arcpy.ListFeatureClasses("*","",fds)
# List all standalone feature classes
fcs = arcpy.ListFeatureClasses()
print "Running the check geometry tool on %i feature classes" % len(fcs)
arcpy.CheckGeometry_management(fcs, outTable)
print (str(arcpy.GetCount_management(outTable)) + " geometry problems were found.")
print ("See " + outTable + " for full details")