通常,我们用ArcGIS批量出图的时候,需要借助“数据驱动页面”这个功能,以某个图层作为分幅框,在布局视图下批量输出分幅框内的图形。
“数据驱动页面”可以基于单个地图文档方便快捷地创建一系列布局页面,要素图层或索引图层基于图层中的各个索引要素将地图分割为多个部分,然后为每个索引要素生成一个相应的页面。
但如果要导出的格式为JPG图片,“数据驱动页面”就只支持单张导出,有的地图集有几十页的,单张导出,就有点太麻烦了!
但幸好,还有Arcpy这一强大的工具。
用“数据驱动页面”构建地图册,可以使用 Arcpy.mapping函数。Arcpy.mapping 是作为 ArcPy 站点包一部分的 Python 脚本模块。此模块提供自动执行导出和打印的函数。Arcpy.mapping 可用于自动执行地图生产;它扩展了“数据驱动页面”的功能,同时,它包含导出至JPG、PDF 文档函数,而为构建完整地图册所必需。
用Arcpy批量导出JPG图片,只需短短的几行代码,非常简单。
完整代码如下:
>>> mxd = arcpy.mapping.MapDocument("CURRENT")
... for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
... mxd.dataDrivenPages.currentPageID = pageNum
... arcpy.mapping.ExportToJPEG(mxd, r"C:\Users\Administrator\Desktop\sda\A-" + str(pageNum) + ".jpg",resolution = 400)
... del mxd
代码调用了Arcpy.mapping中ExportToJPEG
函数,批量输出数据驱动页面的所有地图集。
可以在第4行中更改自定义参数,如:C:\Users\Administrator\Desktop\sda\
代表存放路径,可以更改为其它路径
A-
代表导出图片的前缀,即导出的每张图片名称前都会加上一个A-
的前缀,如A-1
、A-2
、A-N
,可以不要这个前缀,或者改成其它的前缀;
resolution
代表分辨率,可以自定义更改。
使用方法:
1、首先要在数据驱动页面将各项参数设置好,并勾选启动数据驱动页面
,图层栏下选择需要分幅的图层,排序字段
等相应进行选择;
2、在数据框左下角切换为布局视图;
3、启动Arcpy命令窗口;
4、将代码输入窗口内,在末尾回车执行地理处理脚本;
5、代码执行需要一定时间,等待期间不要操作软件,以免软件卡漰;
以上,就是使用Arcpy代码批量输出地图集为JPG图片的方法!
更多内容请访问3S技术之家微信公众号!