ArcGIS for Desktop

  • Documentation
  • Pricing
  • Support

  • My Profile
  • Help
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS for Desktop

A complete professional GIS

ArcGIS for Server

GIS in your enterprise

ArcGIS for Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Pricing
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

Help

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • More...

Repair Geometry

  • Summary
  • Usage
  • Syntax
  • Code sample
  • Environments
  • Licensing information

Summary

Inspects each feature in a feature class for geometry problems. Upon discovery of a geometry problem, a relevant fix will be applied, and a one-line description will be printed identifying the feature as well as the problem encountered.

Valid inputs are shapefiles, personal, and file geodatabase feature classes.

Learn more about checking and repairing geometries

Usage

    Caution:

    This tool modifies the input data. See Tools with no outputs for more information and strategies to avoid undesired data changes.

  • This tool uses the same logic as the Check Geometry tool to evaluate problems with feature geometry.

  • Below is the list of geometry problems and the corresponding fix that will be performed by the tool:

    • Null geometry: The record will be deleted from the feature class. To keep records with null geometry, uncheck Delete Features with Null Geometry (use the KEEP_NULL option on thedelete_null parameter in Python).
    • Short segment: The geometry's short segment will be deleted.
    • Incorrect ring ordering: The geometry will be updated to have the correct ring ordering.
    • Incorrect segment orientation: The geometry will be updated to have the correct segment orientation.
    • Self intersections: The areas of overlap in a polygon will be dissolved.
    • Unclosed rings: The unclosed rings will be closed by connecting the ring's end points.
    • Empty parts: The parts that are null or empty will be deleted.
    • Duplicate vertex: One of the vertices will be deleted.
    • Mismatched attributes: The Z or M coordinate will be updated to match.
    • Discontinuous parts: Multiple parts will be created from the existing discontinuous part.
    • Empty Z values: The Z value will be set to 0.
    • Bad envelope: The feature's envelope will be updated to be correct.
  • After applying a fix listed above, the tool will reevaluate the resulting geometry, and if another problem is discovered, the relevant fix will be performed. For example, the result of fixing a geometry with the Incorrect ring ordering problem may yield a geometry with the Null geometry problem.

  • There is no fix in Repair Geometry for the bad dataset extent problem. To resolve this problem, run the Add Spatial Index tool on the dataset.

  • SDE geodatabases automatically check and repair feature geometries when the features are uploaded to the database, so using the Check Geometry and Repair Geometry tools with SDE feature classes is unnecessary.

Syntax

RepairGeometry_management (in_features, {delete_null})
ParameterExplanationData Type
in_features

The feature class or layer that will be repaired. Valid input features are shapefiles and personal and file geodatabase feature classes.

Feature Layer
delete_null
(Optional)

Specifies what action to take on null geometries.

  • DELETE_NULL — Features that have NULL geometry will be deleted from the input. This is the default.
  • KEEP_NULL — Features that have NULL geometry will not be deleted from the input.
Boolean

Code sample

RepairGeometry example 1 (Python window)

The following Python window script demonstrates how to use the RepairGeometry function in immediate mode.

import arcpy
arcpy.RepairGeometry_management ("c:/data/sketchy.shp")
RepairGeometry example 2 (stand-alone script)

The following stand-alone script is an example of how to apply the RepairGeometry function in scripting.

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

Environments

  • Current Workspace
  • Extent

Licensing information

  • ArcGIS for Desktop Basic: Yes
  • ArcGIS for Desktop Standard: Yes
  • ArcGIS for Desktop Advanced: Yes

Related topics

  • An overview of the Features toolset
  • Checking and repairing geometries

ArcGIS for Desktop

  • Home
  • Documentation
  • Pricing
  • Support

ArcGIS Platform

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

About Esri

  • About Us
  • Careers
  • Insiders Blog
  • User Conference
  • Developer Summit
Esri
Tell us what you think.
© Copyright 2016 Environmental Systems Research Institute, Inc. | Privacy | Legal