import arcpy
from arcpy import env

gdb = 'z:/Housing_data/PBG_change/data/pbg00_projections_2050.gdb/'
env.workspace = gdb
for fc in arcpy.ListFeatureClasses():

	print fc

	# flagFields = ['HUDEN90', 'HUDEN00','HUDEN10','WATER10']
	# newFields = ['DENSCODE90','DENSCODE00','DENSCODE10']
	
	flagFields = []
	newFields = []
	for d in range(1940,2060,10):
		flagFields.append('HDEN' + str(d))
		newFields.append('DENSCODE' + str(d))

	flagFields.append('WATER00')
	
	fields =  flagFields + newFields
	# print fields
	
	
	for F in newFields:
		if not arcpy.ListFields(fc, F):
			print 'arc ADD FIELD ->', F
			arcpy.AddField_management(fc,F,"LONG")

	# Create update cursor for feature class 
	print "... Updating HDEN raster codes (could take a while)"
	with arcpy.da.UpdateCursor(fc, fields) as cursor:
		for row in cursor:
		
			# print row
		
			if row[0] == 0: row[13] = 0 #1940
			if row[1] == 0: row[14] = 0
			if row[2] == 0: row[15] = 0
			if row[3] == 0: row[16] = 0
			if row[4] == 0: row[17] = 0
			if row[5] == 0: row[18] = 0
			if row[6] == 0: row[19] = 0
			if row[7] == 0: row[20] = 0
			if row[8] == 0: row[21] = 0
			if row[9] == 0: row[22] = 0
			if row[10] == 0: row[23] = 0
			if row[11] == 0: row[24] = 0 #2050
		
			if not row[0]: row[13] = 0 #1940
			if not row[1]: row[14] = 0
			if not row[2]: row[15] = 0
			if not row[3]: row[16] = 0
			if not row[4]: row[17] = 0
			if not row[5]: row[18] = 0
			if not row[6]: row[19] = 0
			if not row[7]: row[20] = 0
			if not row[8]: row[21] = 0
			if not row[9]: row[22] = 0
			if not row[10]: row[23] = 0
			if not row[11]: row[24] = 0 #2050
		
			if row[0] > 0 and row[0] < 3: row[13] = 1
			if row[1] > 0 and row[1] < 3: row[14] = 1
			if row[2] > 0 and row[2] < 3: row[15] = 1
			if row[3] > 0 and row[3] < 3: row[16] = 1
			if row[4] > 0 and row[4] < 3: row[17] = 1
			if row[5] > 0 and row[5] < 3: row[18] = 1
			if row[6] > 0 and row[6] < 3: row[19] = 1
			if row[7] > 0 and row[7] < 3: row[20] = 1
			if row[8] > 0 and row[8] < 3: row[21] = 1
			if row[9] > 0 and row[9] < 3: row[22] = 1
			if row[10] > 0 and row[10] < 3: row[23] = 1
			if row[11] > 0 and row[11] < 3: row[24] = 1
		
			if row[0] >= 3 and row[0] < 6: row[13] = 2
			if row[1] >= 3 and row[1] < 6: row[14] = 2
			if row[2] >= 3 and row[2] < 6: row[15] = 2
			if row[3] >= 3 and row[3] < 6: row[16] = 2
			if row[4] >= 3 and row[4] < 6: row[17] = 2
			if row[5] >= 3 and row[5] < 6: row[18] = 2
			if row[6] >= 3 and row[6] < 6: row[19] = 2
			if row[7] >= 3 and row[7] < 6: row[20] = 2
			if row[8] >= 3 and row[8] < 6: row[21] = 2
			if row[9] >= 3 and row[9] < 6: row[22] = 2
			if row[10] >= 3 and row[10] < 6: row[23] = 2
			if row[11] >= 3 and row[11] < 6: row[24] = 2
			
			if row[0] >= 6 and row[0] < 12: row[13] = 3
			if row[1] >= 6 and row[1] < 12: row[14] = 3
			if row[2] >= 6 and row[2] < 12: row[15] = 3
			if row[3] >= 6 and row[3] < 12: row[16] = 3
			if row[4] >= 6 and row[4] < 12: row[17] = 3
			if row[5] >= 6 and row[5] < 12: row[18] = 3
			if row[6] >= 6 and row[6] < 12: row[19] = 3
			if row[7] >= 6 and row[7] < 12: row[20] = 3
			if row[8] >= 6 and row[8] < 12: row[21] = 3
			if row[9] >= 6 and row[9] < 12: row[22] = 3
			if row[10] >= 6 and row[10] < 12: row[23] = 3
			if row[11] >= 6 and row[11] < 12: row[24] = 3
			
			if row[0] >= 12 and row[0] < 50: row[13] = 4
			if row[1] >= 12 and row[1] < 50: row[14] = 4
			if row[2] >= 12 and row[2] < 50: row[15] = 4
			if row[3] >= 12 and row[3] < 50: row[16] = 4
			if row[4] >= 12 and row[4] < 50: row[17] = 4
			if row[5] >= 12 and row[5] < 50: row[18] = 4
			if row[6] >= 12 and row[6] < 50: row[19] = 4
			if row[7] >= 12 and row[7] < 50: row[20] = 4
			if row[8] >= 12 and row[8] < 50: row[21] = 4
			if row[9] >= 12 and row[9] < 50: row[22] = 4
			if row[10] >= 12 and row[10] < 50: row[23] = 4
			if row[11] >= 12 and row[11] < 50: row[24] = 4
		
			if row[0] >= 50 and row[0] < 100: row[13] = 5
			if row[1] >= 50 and row[1] < 100: row[14] = 5
			if row[2] >= 50 and row[2] < 100: row[15] = 5
			if row[3] >= 50 and row[3] < 100: row[16] = 5
			if row[4] >= 50 and row[4] < 100: row[17] = 5
			if row[5] >= 50 and row[5] < 100: row[18] = 5
			if row[6] >= 50 and row[6] < 100: row[19] = 5
			if row[7] >= 50 and row[7] < 100: row[20] = 5
			if row[8] >= 50 and row[8] < 100: row[21] = 5
			if row[9] >= 50 and row[9] < 100: row[22] = 5
			if row[10] >= 50 and row[10] < 100: row[23] = 5
			if row[11] >= 50 and row[11] < 100: row[24] = 5
			
			if row[0] >= 100: row[13] = 6
			if row[1] >= 100: row[14] = 6
			if row[2] >= 100: row[15] = 6
			if row[3] >= 100: row[16] = 6
			if row[4] >= 100: row[17] = 6
			if row[5] >= 100: row[18] = 6
			if row[6] >= 100: row[19] = 6
			if row[7] >= 100: row[20] = 6
			if row[8] >= 100: row[21] = 6
			if row[9] >= 100: row[22] = 6
			if row[10] >= 100: row[23] = 6
			if row[11] >= 100: row[24] = 6
			
			# water
			if row[12] == 1:
				row[13] = 7
				row[14] = 7
				row[15] = 7
				row[16] = 7
				row[17] = 7
				row[18] = 7
				row[19] = 7
				row[20] = 7
				row[21] = 7
				row[22] = 7
				row[23] = 7
				row[24] = 7
			
			cursor.updateRow(row)
			
	print
print "... Fin"
