根据要素类中的组自动增加字段?


10

我需要根据要素类中的组自动增加字段。我在给定的多边形内有8个图,并且需要为每个多边形内的每个图集从1-8分配一个ID。多边形将具有其自己的唯一ID号,该ID号可用于对图进行分组。

我认为这是对它的修改:

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

1
您可能想读一读Python(%)的模运算符的用法
Vince

Answers:


12

适用于Python的字段计算器

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

---------------------------

GroupOrder( !locality! )

改变地方!到相关领域。

更新:表达式的这种变化:

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

在大型数据集上应该可以更快地工作。


如果要在独立的python脚本中使用GroupOrder函数,则该GroupOrder函数将是code block参数,而GroupOrder( !locality! )则将是'expression'参数。
user3467260

在脚本中,它是:a)创建字典b)更新2个字段组和一个要填充的字段上的光标。3-5行代码。
FelixIP

1
我在评论中没有提及那些参数将包含在arcpy计算字段工具中:arcpy.CalculateField_management(inTable, fieldName, expression, "PYTHON_9.3", codeblock)如果在独立脚本中使用。感谢您描述了在独立脚本中使用代码的另一种方法的步骤。
user3467260

都好。无论如何,我对da游标的印象比字段计算器快得多。
FelixIP
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.