4

Basically, I am trying to sort the records within the shapefile based on an attribute(eg: pop) and then add a new field that indicates ranking based on the sort. eg: the record with the highest pop would get a rank value of 1, the next would get a value 2.

I can easily sort and add the field in arcgis but the calculating field so that it is ranked based on the order is something i don't know how it works and hence i am thinking may be a python script would be better.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
ssteven
  • 41
  • 2

1 Answers1

7

Assuming you're using ArcGIS 10 (I'd have to check if it works in 9.3) you could use an update cursor, which has a sort attribute.

pop_rank = 1
rows = arcpy.UpdateCursor ("path_to_dataset", "", "", "", "pop A")
for row in rows:
    row.setValue("pop_rank_field", pop_rank)
    pop_rank += 1
    rows.updateRow(row) 

The A after the sort field name means ascending, which you could replace with D for descending also.

om_henners
  • 15,642
  • 2
  • 46
  • 86