ArcMap 数据驱动生成属性统计表

本教程介绍了如何使用Python和ArcGIS开发脚本,实现数据驱动出图并动态生成表格。脚本功能包括:根据当前视图生成数据表格,批量导出各页面为多种格式,利用多线程提高效率。实现过程涉及创建方框和文本元素、识别视图范围内的数据、绘制表格和数据,以及优化导出效率。
摘要由CSDN通过智能技术生成

前言

本教程只提供实现思路和关键api,源码算上写了注释差不多600行,因为加入了多线程,不怎么稳定,暂时就不放出来了,打磨打磨再说。

完整实战:【原创】记一次使用数据驱动出图,顺手开发了一个动态表格生成脚本

第一次用py2开发,和3差别还是挺大的

脚本功能

  • 生成当前页面的数据表格
  • 批量导出页面,且同时生成表格,导出成mxd、pdf,jpg等各种格式
  • 使用多线程实现同时导出多个页面,如理100多个页面的时候非常有用

image-20211011160504330

实现思路

  • 创建一个方框元素,用来决定表格在哪里生成,表格颜色,线框颜色等
  • 创建一个文本元素,用来填充数据
  • 获取当前视图的集合范围,将当前范围内显示的数据提取出来
  • 根据提取的数据生成表格
  • 导出需要的格式
  • 遍历整个数据驱动,每一页都生成表格和导出数据
  • 多线程同时导出

1、生成两个复制元素

  • 首先是手动创建方框元素,借助方框元素来设定后面数据表格要生成在什么位置,表格的边框、背景样色,还有表格的大小。

01创建表格元素

  • 创建文本元素,用于给脚本渲染数据内容

02创建表格内容元素

  • 创建后给两个元素都指定一个名字,至此无法使用脚本执行的部分就完成,剩下的工作就开始调用api实现

image-20211011134354088

image-20211011134650334

  • 通过arcpy.mapping.ListLayoutElements函数,对方框元素和文本元素进行实例

2、识别数据都出现在哪些视图范围内,并提取

获取目标数据集,获取当前视图显示的范围,判断哪些数据集中哪些元素出现在了当前视图内,可以理解成当前视图数据的几何显示范围内包含了那几个目标数据,然后提取包含数据的对应字段,提取出当前页面数据

image-20211011140234695

  • 获取当前视图出现的目标数据集
# 数据图层或者shp文件
# 只要是 SearchCursor 支持的输入即可
target = '东安江左岸'
    
# 要提取数据的字段
fileds = 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值