Monday, 16 October 2017

arcgis desktop - Auto incrementing field based on groups within feature class?


I am needing to auto increment a field based on groups within a feature class. I have 8 plots within a given polygon and I need to assign them an ID from 1-8 for each set of plots within each polygon. The polygon would have its own unique ID number to be used to group the plots.


I assume it would be an alteration of this:



rec=0
def autoIncrement():
global rec
pStart = 1
pInterval = 1
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec


Answer



Field calculator for Python


d={}
def GroupOrder(groupID):
if groupID in d: d[groupID]+=1
else: d[groupID]=1
return d[groupID]


GroupOrder( !locality! )


Change !locality! to relevant field.


UPDATE: This variation of expression:


d={}
def GroupOrder(groupID):
N=d.get(groupID,0);N+=1
d[groupID]=N
return N

Should work much faster on large datasets.



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...