I'm trying to make a script that performs the following: it creates a new field that will hold values based on size of the shape area (from 1 to end of table), basically ranking them.
I have a few ideas to do it, and managed to write a script, however it is not working, no errors, nothing.
import arcpy fc = "D:/M1 Geomatique/Programmation II/Dossier/zones-de-rattachement-des-bureaux-de-vote-en-2014.shp" try: arcpy.AddField_management(fc, "RANG", "INT") size_rank = 1 rows = arcpy.UpdateCursor(fc, ["shape_area"], "D") for row in rows: row.setValue("RANG", size_rank) pop_rank += 1 rows.updateRow(row) except: arcpy.GetMessages()
Another idea would be to somehow adapt this code, but in any case it is mentioned that shapefiles do not support ORDER BY as used above by arcpy.da.UpdateCursor’s sql_clause argument.
One other idea, to use a list (ListFeatureClasses probably) to get all values, sort them by size, make a loop that takes each value and places a number based on their size. This one seems a bit complicated and I don't have a clear image on how to get through with it.
What would you recommend me to do?