欢迎光临散文网 会员登陆 & 注册

Arcpy实现批量字段拆分

2022-04-02 19:27 作者:常陈一  | 我要投稿

本文针对这样一种情况,当你需要对一个图层的多个字段进行重复使用 按属性提取 这一工具时,可以参考本文实现批量自动化。

工具: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)

部分结果展示:

部分结果

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




Arcpy实现批量字段拆分的评论 (共 条)

分享到微博请遵守国家法律