Last modified January 19, 2010
Print all topics in : "Properties and Methods"
This topic was updated for 9.3.1.
Takes a string (field name) and a workspace path and returns a valid field name based on name restrictions in the output geodatabase. All invalid characters in the input string will be replaced with an underscore (_). The field name restrictions depend on the specific database used (Structured Query Language [SQL] or Oracle).
|object||The instantiated geoprocessing object|
|inputFieldName||The field name to be validated|
|Workspace||Optional. The workspace in which the field can be found|
# Create a new numeric field containing the ratio of polygon area to # polygon perimeter. Two arguments, a feature class and field name, # are expected. import arcgisscripting import os gp = arcgisscripting.create(9.3) # Check the number of arguments. # if len(sys.argv) < 2: print "Script requires two arguments, feature class and field name" else: try: # Get the input feature class and make sure it contains polygons. # input = sys.argv dsc = gp.Describe(input) if dsc.ShapeType != "polygon": raise "ShapeError" # Get the new field name and validate it. # fieldname = sys.argv fieldname = gp.ValidateFieldName(fieldname, os.path.dirname(input)) # Make sure shape_length and shape_area fields exist # if len(gp.ListFields(input,"Shape_area")) > 0 and len(gp.ListFields(input,"Shape_length")) > 0: # Add the new field and calculate the value. # gp.AddField(input, fieldname, "double") gp.CalculateField(input,fieldname, "[Shape_Area] / [Shape_Length]") else: raise "FieldError" except "ShapeError": print "Input does not contain polygons" except "FieldError": print "Input does not shape area and length fields" except: print gp.GetMessages(2)