import arcpy, os, sys
#set map doc and the layer to be used
mxd = arcpy.mapping.MapDocument("Current")
mapLyr = arcpy.mapping.ListLayers(mxd, "CUR_Master_Network_2045")[0]
rows = arcpy.UpdateCursor(mapLyr)
for row in rows:
row.F2010_AB_C = 0 #clear all capacities to 0
row.F2010_BA_C = 0
row.F2019_AB_C = 0
row.F2019_BA_C = 0
row.F2025_AB_C = 0
row.F2025_BA_C = 0
row.F2045_AB_C = 0
row.F2045_BA_C = 0
rows.updateRow(row)
#find capacity variables
rnam = row.getValue("ROAD_NAM")
ffc = row.getValue("LRTP_FFC")
at = row.getValue("TYPE_AREA")
lan = row.getValue("F2010_NUML")
dic = {"ROAD_NAM": rnam, "LRTP_FFC": ffc, "TYPE_AREA": at}
#begin capacity calculation
if row.BUILD_STAT == 10 and row.F2010_DIR == 1:
row.F2010_AB_C = capacity(**dic) * lan
rows.updateRow(row)
elif row.BUILD_STAT == 10 and row.F2010_DIR == -1:
row.F2010_AB_C = capacity(**dic) * lan
rows.updateRow(row)
elif row.BUILD_STAT == 10 and row.F2010_DIR == 0:
row.F2010_AB_C = capacity(**dic) * lan
row.F2010_BA_C = capacity(**dic) * lan
rows.updateRow(row)
else:
pass
del row, rowsimport arcpy, os, sys
#set map doc and the layer to be used
mxd = arcpy.mapping.MapDocument("Current")
mapLyr = arcpy.mapping.ListLayers(mxd, "CUR_Master_Network_2045")[0]
rows = arcpy.UpdateCursor(mapLyr)
for row in rows:
row.F2010_AB_C = 0 #clear all capacities to 0
row.F2010_BA_C = 0
row.F2019_AB_C = 0
row.F2019_BA_C = 0
row.F2025_AB_C = 0
row.F2025_BA_C = 0
row.F2045_AB_C = 0
row.F2045_BA_C = 0
rows.updateRow(row)
#find capacity variables
rnam = row.getValue("ROAD_NAM")
ffc = row.getValue("LRTP_FFC")
at = row.getValue("TYPE_AREA")
lan = row.getValue("F2010_NUML")
dic = {"ROAD_NAM": rnam, "LRTP_FFC": ffc, "TYPE_AREA": at}
#begin capacity calculation
if row.BUILD_STAT == 10 and row.F2010_DIR == 1:
row.F2010_AB_C = capacity(**dic) * lan
rows.updateRow(row)
if row.F2019_DIR == 1:
row.F2019_AB_C = capacity(**dic) * lan
rows.updateRow(row)
elif row.F2019_DIR == -1:
row.F2019_BA_C = capacity(**dic) * lan
rows.updateRow(row)
else:
row.F2019_AB_C = capacity(**dic) * lan
row.F2019_BA_C = capacity(**dic) * lan
elif row.BUILD_STAT == 10 and row.F2010_DIR == -1:
row.F2010_AB_C = capacity(**dic) * lan
rows.updateRow(row)
if row.F2019_DIR == 1:
row.F2019_AB_C = capacity(**dic) * lan
rows.updateRow(row)
elif row.F2019_DIR == -1:
row.F2019_BA_C = capacity(**dic) * lan
rows.updateRow(row)
else:
row.F2019_AB_C = capacity(**dic) * lan
row.F2019_BA_C = capacity(**dic) * lan
elif row.BUILD_STAT == 10 and row.F2010_DIR == 0:
row.F2010_AB_C = capacity(**dic) * lan
row.F2010_BA_C = capacity(**dic) * lan
rows.updateRow(row)
if row.F2019_DIR == 1:
row.F2019_AB_C = capacity(**dic) * lan
rows.updateRow(row)
elif row.F2019_DIR == -1:
row.F2019_BA_C = capacity(**dic) * lan
rows.updateRow(row)
else:
row.F2019_AB_C = capacity(**dic) * lan
row.F2019_BA_C = capacity(**dic) * lan
else:
pass
del row, rows#begin capacity calculation if (row.BUILD_STAT == 10) and (row.F2010_DIR in [1, -1]): row.F2010_AB_C = capacity(**dic) * lan elif (row.BUILD_STAT == 10) and (row.F2010_DIR == 0): row.F2010_AB_C = capacity(**dic) * lan row.F2010_BA_C = capacity(**dic) * lan rows.updateRow(row) del row, rows
import arcpy, os, sys
#set map doc and the layer to be used
mxd = arcpy.mapping.MapDocument("Current")
mapLyr = arcpy.mapping.ListLayers(mxd, "CUR_Master_Network_2045")[0]
rows = arcpy.UpdateCursor(mapLyr)
for row in rows:
row.F2010_AB_C = 0 #clear all capacities to 0
row.F2010_BA_C = 0
row.F2019_AB_C = 0
row.F2019_BA_C = 0
row.F2025_AB_C = 0
row.F2025_BA_C = 0
row.F2045_AB_C = 0
row.F2045_BA_C = 0
#find capacity variables
rnam = row.getValue("ROAD_NAM")
ffc = row.getValue("LRTP_FFC")
at = row.getValue("TYPE_AREA")
lan = row.getValue("F2010_NUML")
dic = {"ROAD_NAM": rnam, "LRTP_FFC": ffc, "TYPE_AREA": at}
#capacity calculation
yr = row.BUILD_STAT # any row can only have one year state...
if row.getValue('row.F20%s_DIR' % yr) in [1, -1]:
row.setValue('F20%s_AB_C' % yr, capacity(**dic) * lan)
elif row.getValue('F20%s_DIR' % yr) == 0:
row.setValue('F20%s_AB_C' % yr, capacity(**dic) * lan)
row.setValue('F20%s_BA_C' % yr, capacity(**dic) * lan)
rows.updateRow(row)
del row, rows
import arcpy, os, sys
#set map doc and the layer to be used
mxd = arcpy.mapping.MapDocument("Current")
mapLyr = arcpy.mapping.ListLayers(mxd, "CUR_Master_Network_2045")[0]
#Single Lane Capacity Generator
def capacity(ROAD_NAM, LRTP_FFC, TYPE_AREA):
if ROAD_NAM == "Interstate 74 Bridge":
return 19000
elif ROAD_NAM == "Interstate 80 Bridge":
return 18000
elif ROAD_NAM == "Interstate 280 Bridge":
return 19000
elif ROAD_NAM == "Centennial Bridge":
return 11000
elif ROAD_NAM == "Arsenal Bridge":
return 9500
elif LRTP_FFC == 1:
return 19000
elif LRTP_FFC == 2:
if TYPE_AREA == 1:
return 8500
elif TYPE_AREA == 2:
return 8650
elif TYPE_AREA == 3:
return 9000
elif TYPE_AREA == 4:
return 9000
elif TYPE_AREA == 5:
return 8000
else:
pass
elif LRTP_FFC == 3:
if TYPE_AREA == 1:
return 8200
elif TYPE_AREA == 2:
return 8300
elif TYPE_AREA == 3:
return 8500
elif TYPE_AREA == 4:
return 8500
elif TYPE_AREA == 5:
return 7500
else:
pass
elif LRTP_FFC == 4:
if TYPE_AREA == 1:
return 6300
elif TYPE_AREA == 2:
return 7500
elif TYPE_AREA == 3:
return 7500
elif TYPE_AREA == 4:
return 7500
elif TYPE_AREA == 5:
return 7500
else:
pass
elif LRTP_FFC == 5:
if TYPE_AREA == 1:
return 5300
elif TYPE_AREA == 2:
return 6500
elif TYPE_AREA == 3:
return 6500
elif TYPE_AREA == 4:
return 6500
elif TYPE_AREA == 5:
return 5700
else:
pass
elif LRTP_FFC == 6:
return 15200
elif LRTP_FFC == 7:
if TYPE_AREA ==1:
return 4800
elif TYPE_AREA == 2:
return 6000
elif TYPE_AREA == 3:
return 6000
elif TYPE_AREA == 4:
return 6000
elif TYPE_AREA == 5:
return 5200
else:
pass
elif LRTP_FFC == 8:
return 99999
else:
return 0
rows = arcpy.UpdateCursor(mapLyr)
for row in rows:
row.F2010_AB_C = 0 #clear all capacities to 0
row.F2010_BA_C = 0
row.F2019_AB_C = 0
row.F2019_BA_C = 0
row.F2025_AB_C = 0
row.F2025_BA_C = 0
row.F2045_AB_C = 0
row.F2045_BA_C = 0
rows.updateRow(row)
#find capacity variables
rnam = row.getValue("ROAD_NAM")
ffc = row.getValue("LRTP_FFC")
at = row.getValue("TYPE_AREA")
lan10 = row.getValue("F2010_NUML")
lan19 = row.getValue("F2019_NUML")
lan25 = row.getValue("F2025_NUML")
lan45 = row.getValue("F2045_NUML")
dic = {"ROAD_NAM": rnam, "LRTP_FFC": ffc, "TYPE_AREA": at}
#begin capacity calculation
if row.BUILD_STAT == 10 and row.F2010_DIR == 1:
row.F2010_AB_C = capacity(**dic) * lan10
rows.updateRow(row)
if row.F2019_DIR == 1:
row.F2019_AB_C = capacity(**dic) * lan19
rows.updateRow(row)
if row.F2025_DIR == 1:
row.F2025_AB_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2025_DIR == -1:
row.F2025_BA_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2025_AB_C = capacity(**dic) * lan25
row.F2025_BA_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2019_DIR == -1:
row.F2019_BA_C = capacity(**dic) * lan19
rows.updateRow(row)
if row.F2025_DIR == 1:
row.F2025_AB_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2025_DIR == -1:
row.F2025_BA_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2025_AB_C = capacity(**dic) * lan25
row.F2025_BA_C = capacity(**dic) * lan25
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2019_AB_C = capacity(**dic) * lan19
row.F2019_BA_C = capacity(**dic) * lan19
rows.updateRow(row)
if row.F2025_DIR == 1:
row.F2025_AB_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2025_DIR == -1:
row.F2025_BA_C = capacity(**dic) * lan25
rows.updateRow(row)
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2025_AB_C = capacity(**dic) * lan25
row.F2025_BA_C = capacity(**dic) * lan25
if row.F2045_DIR == 1:
row.F2045_AB_C = capacity(**dic) * lan45
rows.updateRow(row)
elif row.F2045_DIR == -1:
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
else:
row.F2045_AB_C = capacity(**dic) * lan45
row.F2045_BA_C = capacity(**dic) * lan45
rows.updateRow(row)
I realize how long it is, but it does work and that's what matters most to me. But since I'm still pretty new to scripting I'm very happy to learn other ways of coding. I have a little brushing up to do on matrices, but is it possible to replace my entire capacity function with a matrix or table and under the specific conditions a cell value is returned?
row.F[YEAR]_[DIR]_C = capacity(**dic) * lan[YEAR]