某项目的要素类按不同的数据集存放,现需为每个要素类添加一个唯一标识符字段(若已有则跳过)。代码如下:
env.workspace = r'D:\RK20180201.gdb'
print env.workspace
dss = arcpy.ListDatasets()
for ds in dss:
fcs = arcpy.ListFeatureClasses(feature_dataset = ds)
print fcs
for fc in fcs:
print(u'------current feature class : {0}'.format(fc))
fds = arcpy.ListFields(fc)
bGid = False
for fd in fds:
print(u' -- field : {0}'.format(fd.name))
if fd.name.upper() == 'GLOBALID':
bGid = True
print(' -- {0} has GID field'.format(fc))
if False == bGid:
print(' ++ {0} has no GID field'.format(fc))
arcpy.AddField_management(fc,"GLOBALID","TEXT",None,None,40,"唯一标识符","NULLABLE","NON_REQUIRED")
注意,测试数据的FeatureClass的字段由于使用了中文名称(是名称,不是别名),故而在print的时候,要指定字符集,即添加u开头。
本文介绍了一段Python脚本,用于在ArcGIS环境中为指定地理数据库内的所有要素类批量添加唯一标识符(GlobalID)字段。如果要素类已存在该字段,则跳过。此过程适用于多个数据集,并考虑到了字段名称中可能出现的中文字符。
1236

被折叠的 条评论
为什么被折叠?



