##rows.updateRow(row) if a == row.LUC_ID: print "LUC ID = " + str(a) else: print "Previous LUC ID = " + str(a) if b == row.LUC_NAME: print "LUC Name = " + b else: print "Previous LUC N = " + b
def renamefld(a, b): if a == 71: b = "Natural Forest" elif a == 72: b = "Planted Forest - Pre-1990" else: print "Error with converting subtype to text" for row in rows: renamefld (row.LUC_ID, row.LUC_NAME) renamefld (row.PREV_LUC_ID, row.PREV_LUC_N) rows.updateRow(row)
import arcgisscripting
gp =arcgisscripting.create(9.3)
gp.workspace= r"C:\temp"
def renamefld(a):
if a == 1:
return "Natural Forest"
elif a == 2:
return "Planted Forest - Pre-1990"
else:
# Return an ! so we know not to attempt to update row
print "Error with converting subtype to text"
return "!"
# Create update cursor
rows = gp.UpdateCursor("test.dbf")
row = rows.Next()
while row:
# Get row information
id = row.id
type = row.type
# Call function to change type
type = renamefld (id)
# update row object
if type != "!":
row.type = type
rows.updateRow(row)
row = rows.Next()
# release cursor
del row
del rows
def renamefld(a): try: if a == 71: return "Natural Forest" elif a == 72: return"Planted Forest - Pre-1990" elif a == 73: return "Post 1989 Forest" elif a == 74: return "Grassland - With woody biomass" elif a == 75: return "Grassland - High producing" elif a == 76: return "Grassland - Low producing" elif a == 77: return "Cropland - Perennial" elif a == 78: return "Cropland - Annual" elif a == 79: return "Wetland - Open water" elif a == 80: return "Wetland - Vegetated non forest" elif a == 81: return "Settlements" elif a == 82: return "Other" else: print "Error with converting subtype to text" return "!" except: print arcpy.GetMessages() def region(a): try: if a == 1: return "Northland" elif a == 2: return "Auckland" elif a == 3: return "Waikato" elif a == 4: return "Bay of Plenty" elif a == 5: return "Gisborne" elif a == 6: return "Hawkes Bay" elif a == 7: return "Taranaki" elif a == 8: return "Manawatu-Wanganui" elif a == 9: return "Wellington" elif a == 12: return "West Coast" elif a == 13: return "Canterbury" elif a == 14: return "Otago" elif a == 15: return "Southland" elif a == 16: return "Tasman" elif a == 17: return "Nelson" elif a == 18: return "Marlborough" else: print "Error with converting region to text" return "!" except: print arcpy.GetMessages() global row, cur cur = arcpy.UpdateCursor(inMemFc) for row in cur: LUM_Region = row.LUM_REG_ID regvalue = region(LUM_Region) if regvalue != "!": row.LUM_REGION = regvalue cur.updateRow(row) LUC_ID = row.LUC_ID fldvalue = renamefld(LUC_ID) if fldvalue != "!": row.LUC_NAME = fldvalue cur.updateRow(row) PREV_LUC_ID = row.PREV_LUC_ID fldvalue = renamefld(PREV_LUC_ID) if fldvalue != "!": row.PREV_LUC_N = fldvalue cur.updateRow(row) IMPR_LUC_I = row.IMPR_LUC_I fldvalue = renamefld(IMPR_LUC_I) if fldvalue != "!": row.IMPR_LUC_N = fldvalue cur.updateRow(row)
field_map = {
71 : "Natural Forest",
72 : "Planted Forest - Pre-1990",
73 : "Post 1989 Forest",
# et cetera
}
class SubtypeConversionError(Exception):
pass
def renamefld(a):
try:
return field_map
except KeyError:
raise SubtypeConversionError("Error with converting subtype %d to text...