Arcpy实现批量字段拆分
本文针对这样一种情况,当你需要对一个图层的多个字段进行重复使用 按属性提取 这一工具时,可以参考本文实现批量自动化。
工具:ArcGIS Pro 2.8 以及附带的python解释器(python版本:3.7.10)、VScode
本文使用的数据展示如下:

空间数据为全国369个城市以及代表的行政区边界数据。对地图进行了分类设色。

属性数据中根据各个条件设置了不同的字段。
目的:根据这些字段,把每个字段中具有相同属性的内容进行提取。代码如下:

第一步:导入包并路径设定
import pandas as pd
import arcpy
env = r'G:\迁徙\迁徙分析\迁徙分析.gdb'
arcpy.env.workspace = env # 设定默认工作空间
arcpy.env.overwriteOutput = True # 对保证对输出的文件进行复写
第二步:给每个字段的内容新建一个要素数据集用于存储拆分的数据
# 定义路径序列
month = ['十月20','十一月20','十二月20','一月21','二月21','三月21',
'四月21','五月21','六月21','七月21','八月21','九月21','十月21','十一月21','十二月21']
for item in month:
arcpy.management.CreateFeatureDataset(env,item,spatial_reference='City_即时最优') # 创建要素数据集

第三步:进行属性分割
fieldlist = arcpy.ListFields('City_即时最优') # 获取图层中的所有字段,返回值为字段对象列表
communitylist = fieldlist[14:-2] # 选择需要属性提取的字段,返回值为字段对象列表
featureDataset = arcpy.ListDatasets() # 遍历数据库中的要素数据库,返回值为要素数据库名列表
# 按属性分割
for i in range(len(communitylist)):
arcpy.analysis.SplitByAttributes('City_即时最优',featureDataset[i],communitylist[i].name)

部分结果展示:

如在其中一个字段下的某个属性值,提取出来的空间数据如图所示