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