我需要一行代码,根据我对数据指定的顺序来发布新的序列id。基本上,在按照我的喜好对数据进行排序之后,原始对象的Id对我来说不再是有意义的顺序。在我的表中,我创建了一个新字段(短整数)。在字段计算器的“预逻辑脚本”框中,我尝试了以下操作:
counter = 0
def uniqueID():
global counter
counter += 1
return counter
但似乎没用。。我的表的一个小例子如下:(为了可视化的目的)
Object_ID / MMSI / TIME / VESSEL / NEW_ID
1210 4444 01/10/10 01 NuLL
1801 4444 02/10/10 01 NuLL
303 4444 03/10/10 01 NuLL
2839 4444 03/10/10 01 NuLL
32100 5555 01/10/10 03 NuLL
34 5555 02/10/10 03 NuLL
本质上我需要那些零的现在是1,2,3,4。。。等,因为我的数据现在按我的喜好排序(首先按MMSI号码/在MMSI内按日期排序)
因此,它将如下所示:(请注意,新的“ID”字段现在已填充)
Object_ID / MMSI / TIME / VESSEL / NEW_ID
1210 4444 01/10/10 01 1
1801 4444 02/10/10 01 2
303 4444 03/10/10 01 3
2839 4444 03/10/10 01 4
32100 5555 01/10/10 03 5
34 5555 02/10/10 03 6
我该怎么做?谢谢
我试过代码(见下文),但只是在FID值上加1,而不是按排序顺序的序列。。。
ArcGIS帮助中有一个字段计算器示例,它可以完全满足您的需要。
http://resources.arcgis.com/en/help/main/10.1/index.html#//00170000004s000000
(如果该链接不起作用,只需在ArcGIS帮助中搜索“计算字段示例”)。
向下滚动至“累计和顺序计算”。
您可以使用arcpy库中的updatecorsor
请确保数据类型正确
相关问题 更多 >
编程相关推荐