Réparer les géométries (Gestion des données)

Niveau de licence :BasicStandardAdvanced

Récapitulatif

Examine chaque entités d'une classe d'entités à la recherche de problèmes de géométrie. 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 des fichiers de formes et des classes d'entités de géodatabase fichier et personnelle.

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

Utilisation

Syntaxe

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

Classe ou couche d'entités à réparer. Les entités en entrée valides sont des fichiers de formes et des classes d'entités de géodatabase fichier et personnelle.

Feature Layer
delete_null
(Facultatif)

Spécifie quelle action entreprendre sur des 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

Exemple de code

Exemple d'utilisation de l'outil Réparer les géométries (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 ci-dessous est un exemple d'application de la fonction RepairGeometry pour 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 
# Author: ESRI

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

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Oui
ArcGIS for Desktop Standard: Oui
ArcGIS for Desktop Advanced: Oui
6/5/2014