Solved! Go to Solution.
import arcpy fc = "c:/...your featureclass" use_field = "UseClass" length_field = "SUM_SHAPE_Length" # Create an expression with proper delimiters # a1expression = arcpy.AddFieldDelimiters(fc, Use_field) + " = A1" with arcpy.da.SearchCursor(fc, (use_field, length_field), where_clause=a1expression) as a1cursor: for row in a1cursor: a1value = row d1expression = arcpy.AddFieldDelimiters(fc, Use_field) + " = D1" with arcpy.da.SearchCursor(fc, (use_field, length_field), where_clause=d1expression) as d1cursor: for row in d1cursor: d1value = row ## you can then use a1value and d1value in an if statement to calculate the percentages in the same way as field calculator if d1value > (a1value * .2): print "more than 20%" ## if you are running as a script tool then use arcpy.AddMessage("more than 20%") elif d1value < (a1value * .2): print "less than 20%" ## if you are running as a script tool then use arcpy.AddMessage("less than 20%") elif d1value == (a1value * .2): print "exactly 20%" ## if you are running as a script tool then use arcpy.AddMessage("exactly 20%") else: print "invalid calculation - please check inputs and try again" del a1value, d1value, a1cursor, d1cursor, a1expression, d1expression, row, use_field, length_field, fc
no worries mark - if you are working in arcmap then in the first instance I would just run the code line by line in the python window:
you can then copy my code statement by statement into this, hit return after each line and see if it runs ok - you'll get red error messages if it doesn't which will help to resolve any issues - there might be a couple.
when you have fixed all the niggles and run it a few times then you can save it as a python script, add to a toolbox and define your input/output parameters:
Thanks you for the code. However the values I want to compare are in the same field.