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():
fc = gdb + 'CONUS_pbg00_proj_1940_2050_wgs84'
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

# add houisng units fields  after 2010 for masking
for d in range(2010,2060,10):
	fields.append('HU' + str(d) + 'ADJ')


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
			
		# mask out housing units > 0 but < 1 (make them black)
		if row[25] > 0 and row[25] < 1: row[20] = 0
		if row[26] > 0 and row[26] < 1: row[21] = 0
		if row[27] > 0 and row[27] < 1: row[22] = 0
		if row[28] > 0 and row[28] < 1: row[23] = 0
		if row[29] > 0 and row[29] < 1: row[24] = 0
		
		cursor.updateRow(row)
		
print
print "... Fin"
