Tuesday, 10 May 2016

ArcGIS Field Calculator Python numbering rows of fishnet


I have a grid of 100*100 cells. I want to add to each cell a number representing the row it is in (like in excel). I added a field and want try to solve that with field calculator:


The code is something like this:


def test( OBJECTID ):

if OBJECTID > 0 and OBJECTID < 101:
return 1


elif OBJECTID > 100 and OBJECTID < 201:
return 2

elif OBJECTID > 200 and OBJECTID < 301:
return 3

elif OBJECTID > 300 and OBJECTID < 401:
return 4

elif OBJECTID > 400 and OBJECTID < 501:

return 5

elif OBJECTID > 500 and OBJECTID < 601:
return 6

elif OBJECTID > 600 and OBJECTID < 701:
return 7

This works good, however I want to automate it a little bit. The return value shall automatically be counted to the next number.


I tried to solve this with autoincrement. Though it adds a number per cell and not per row. Any ideas how to solve that?



Meanwhile I figured, that the cells of each row have obviously the same coordinates and with the help of another guy I have now this code. However I receive only NULL values for the fields. Any ideas what is wrong


def test( X_KORD_ED ):
var = 0
old_i = object()

for i in X_KORD_ED:
if i != old_i:
var += 1
old_i = i
yield i, var


Answer



Thanks for the answers. I solved the problem via the coordiantes of the cells/polygons. I summarized the x and y coordinate, exported it to excel, added 1-100 and ABC and joined it back to the feature class.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...