ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Aide
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS Desktop

Un SIG professionnel complet

ArcGIS Enterprise

SIG dans votre entreprise

ArcGIS for Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

ArcMap

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Extensions

Réparer les géométries

  • Résumé
  • Utilisation
  • Syntaxe
  • Exemple de code
  • Environnements
  • Informations de licence

Résumé

Inspecte chaque entité dans une classe d'entités à la recherche de problèmes géométriques. Si un problème de géométrie est découvert, une solution pertinente est appliquée et une description d'une ligne est imprimée, identifiant l'entité ainsi que le problème rencontré.

Les entrées valides sont les fichiers de formes, ainsi que les classes d'entités de géodatabase personnelle et fichier.

Pour en savoir plus sur la vérification et la réparation des géométries

Utilisation

    Attention :

    Cet outil modifie les données en entrée. Reportez-vous à la rubrique Outils qui ne génèrent pas de jeux de données en sortie pour obtenir plus d’informations, ainsi que des stratégies pour éviter les modifications de données indésirables.

  • Cet outil utilise la même logique que l'outil Vérifier les géométries pour évaluer les problèmes de la géométrie de l'entité.

  • Vous trouverez ci-dessous la liste des problèmes géométriques et le correctif correspondant que l'outil appliquera :

    • Null geometry : l'enregistrement sera supprimé de la classe d'entités. Pour conserver les enregistrements avec une géométrie nulle, décochez Supprimer les entités de géométrie nulle (utilisez l'option KEEP_NULL dans le paramètre delete_null dans Python).
    • Short segment : le segment court de la géométrie sera supprimé.
    • Incorrect ring ordering : la géométrie sera mise à jour afin de rectifier l'ordre des boucles.
    • Incorrect segment orientation : la géométrie sera mise à jour afin de rectifier l'orientation des segments.
    • Self intersections : les surfaces superposées dans un polygone seront fusionnées.
    • Unclosed rings : les boucles non fermées seront fermées en connectant les extrémités des boucles.
    • Empty parts : les parties dont la valeur est Null ou qui sont vides seront supprimées.
    • Duplicate vertex : un des sommets sera supprimé.
    • Mismatched attributes : la coordonnée z ou m sera mise à jour pour être appariée.
    • Discontinuous parts : plusieurs parties seront créées à partir de la partie discontinue existante.
    • Empty Z values : la valeur z sera définie sur 0.
    • Bad envelope : l'enveloppe de l'entité sera rectifiée.
  • Après avoir appliqué un des correctifs répertoriés ci-dessus, l'outil réévalue la géométrie qui en résulte et si un autre problème est découvert, la solution pertinente est appliquée. Par exemple, la correction d'une géométrie avec le problème Incorrect ring ordering peut donner lieu à une géométrie avec le problème Null geometry.

  • Il n'existe aucun correctif dans Réparer les géométries pour bad dataset extent. Pour résoudre ce problème, exécutez l'outil Ajouter un index spatial sur le jeu de données.

  • Comme les géodatabases d'entreprise vérifient et réparent automatiquement les géométries des entités lorsque ces dernières sont chargées dans la base de données, il n'est pas nécessaire d'utiliser les outils Vérifier les géométries et Réparer les géométries avec des classes d'entités d'entreprise.

Syntaxe

RepairGeometry(in_features, {delete_null})
ParamètreExplicationType de données
in_features

La classe d'entités ou la couche qui va être réparée. Les entités en entrée valides sont les fichiers de formes, ainsi que les classes d'entités de géodatabase personnelle et fichier.

Feature Layer
delete_null
(Facultatif)

Indique l'action à entreprendre sur les géométries nulles.

  • DELETE_NULL — Les entités qui ont une géométrie NULL seront supprimées de l'entrée. Il s’agit de l’option par défaut.
  • KEEP_NULL — Les entités qui ont une géométrie NULL ne seront pas supprimées de l'entrée.
Boolean

Sortie dérivée

NomExplicationType de données
out_feature_class

Entités en entrée mises à jour.

Couche d'entités

Exemple de code

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

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

import arcpy
arcpy.RepairGeometry_management("c:/data/sketchy.shp")
Exemple 2 d'utilisation de l'outil RepairGeometry (script autonome)

Le script autonome suivant est un exemple d'application de la fonction RepairGeometry dans l'écriture de scripts.

# Description: 
#   Goes through the table generated by the Check Geometry tool and does 
#   the following
#   1) backs-up all features which will be 'fixed' to a "_bad_geom" feature class
#   2) runs repairGeometry on all feature classes listed in the table 

import arcpy
import os
 
# Table that was produced by Check Geometry tool
table = r"c:\temp\data.gdb\cg_sample1"
 
# Create local variables
fcs = []
 
# Loop through the table and get the list of fcs
for row in arcpy.da.SearchCursor(table, ("CLASS")):
    # Get the class (feature class) from the cursor
    if not row[0] in fcs:
        fcs.append(row[0])
 
# Now loop through the fcs list, backup the bad geometries into fc + "_bad_geom"
# then repair the fc
print("> Processing {0} feature classes".format(len(fcs)))
for fc in fcs:
    print("Processing " + fc)
    lyr = 'temporary_layer'
    if arcpy.Exists(lyr):
        arcpy.Delete_management(lyr)
    
    tv = "cg_table_view"
    if arcpy.Exists(tv):
        arcpy.Delete_management(tv)

    arcpy.MakeTableView_management(table, tv, ("\"CLASS\" = '%s'" % fc))
    arcpy.MakeFeatureLayer_management(fc, lyr)
    arcpy.AddJoin_management(lyr, arcpy.Describe(lyr).OIDFieldName, tv, "FEATURE_ID")
    arcpy.CopyFeatures_management(lyr, fc + "_bad_geom")
    arcpy.RemoveJoin_management(lyr, os.path.basename(table))
    arcpy.RepairGeometry_management(lyr)

Environnements

  • Espace de travail courant
  • Etendue

Informations de licence

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

Rubriques connexes

  • Vue d'ensemble du jeu d'outils Entités
  • Vérification et réparation des géométries

ArcGIS Desktop

  • Accueil
  • Documentation
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog d’Esri
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
Donnez-nous votre avis.
Copyright © 2019 Esri. | Confidentialité | Légal