Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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.

Any help or thoughts on this would be greatly appreciated.

share|improve this question

1 Answer 1

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.