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

Arcpy从多个图层中提取属性值

2022-04-19 21:25 作者:常陈一  | 我要投稿

上一篇文章中我们介绍了如何将一个图层根据多个字段拆分到不同的要素数据集之中。那么这次我们反过来,从多个要素数据集中的多个要素中提取属性值。如下这种情况

我要从每个要素数据集中 ,每个要素类中,查询这个要素类有多少个城市并将城市的数量和名称保存到一个记录里面。

如果按照手动的方式需要在gis软件中逐一打开图层,查询导出、合并。为了避免这种低效的方式,我们使用arcpy来进行批处理。

工具:ArcGIS Pro 2.8 以及附带的python解释器(python版本:3.7.10)

导入包并设定环境

接下来,有三层循环。我将逐一介绍这三层循环,【代码确实不够高效( ̄へ ̄),能用就行】

第一步:获取环境中的要素数据集,并返回每个要素数据集的要素名。并新建输出信息的表单

第一层遍历:遍历所有的要素数据集,并查询要素数据集中的要素类。返回一个要素列表

注意:ListFeatureClasses函数中:第一个参数是工作空间由于之前已经设定过默认工作空间所以这里缺省了,第二个参数是限定要素类型(此处不限定),第三个限定要素所属的要素数据集

第二层遍历:遍历所有要素,将要素名作为ID存放于输出表单中,确定获取要素中的字段。新建SearchCursor准备遍历属性表。

第三层遍历:遍历属性表,逐记录的返回要素值,并存放在初始化的输出列表之中。将数据写入到输出列表,并进行到下一次循环。

最后,将所有的部分整合,最终的代码如下:

最后展示输出结果:

ID:要素名称;coms_EN:要素中城市的英文名称; coms_CH:要素中城市的中文名称; number:城市数量

Arcpy从多个图层中提取属性值的评论 (共 条)

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