arcgis批量出图---批量输出结果为jpg


  • 详细的需求如下:
  • 具体操作如下所述:
  • step1:启用数据驱动
  • step2:图斑图层设置
  • step3: 批量出图


这两天在项目上遇到一个问题,如何快速批量的导出成果图,并且成果图只显示一个图斑。

详细的需求如下:

第一张图片的多个图斑文件批量出图成为单张,且一张图片只显示一个地块/图斑。

Python作图数据导出 怎么把python画的图导出_arcgis


Python作图数据导出 怎么把python画的图导出_Python作图数据导出_02

具体操作如下所述:

step1:启用数据驱动

将数据加载到arcmap的处理窗口,在arcmap上方右击激活数据驱动

如果找不到可以点击红框的地方向下寻找。

Python作图数据导出 怎么把python画的图导出_arcgis_03


激活数据驱动后如下图所示,为数据驱动的工具栏,点击工具栏的红框位置进行数据设置

Python作图数据导出 怎么把python画的图导出_数据驱动_04


点进去后不要着急,咱们慢慢来,这才是开始。

点进去后你会发现如下界面的图嗷,注意!!!

刚开始下面的框框都是灰色的,需要点击红框1,激活后续的操作!!!

现在咱们具体来解释解释:

红框1:表示启用数据驱动,点击坐标那个方框,后续的操作才能继续。

黄框2:表示图斑的图层,选中就行,一定要选对哦,不然后面会出问题。

蓝框3:表示选中图层的唯一字段,这个XPBH是选中图层的唯一字段也是标注上显示的,这个只要选中属性表中唯一值的字段就行了。

红框4:表示FID字段,这个字段就不用多解释了吧。

然后点击确定,就完成了数据驱动的设置,接下来就是下一步。

Python作图数据导出 怎么把python画的图导出_python_05

step2:图斑图层设置

选中要逐个划分图斑的文件,右键 →选择 →全选

Python作图数据导出 怎么把python画的图导出_arcgis_06


完成上述操作后,更具所选要素创建图层,细心的朋友就会发现,这个操作和上述操作类似:

右键 →选择 →根据所选要素创建图层

Python作图数据导出 怎么把python画的图导出_Python作图数据导出_07


完成这两部操作后,就会发现多出了个文件。比如你的文件是jiangxiProvince,那么就会生成一个jiangxiProvince 选择,具体就不上图了。这个后缀带有名字选择文件就是我们所需要的,设置自己所需要的属性,就可以了。

这个位置一定要选中上述生成的图层文件!!!!,十分注意,如果选成原始文件就会找不到页面定义

右键属性选择中定义查询,具体的位置如下

Python作图数据导出 怎么把python画的图导出_Python作图数据导出_08


进入页面定义查询后勾选启用,才能接下来的操作;

页面字段名称:选择你文件中的唯一值的字段,这种一般是有命名的,选择这个就行

显示符合以下条件的要素:选择匹配就好,具体就如下所示,最后肯定不用想,点确定和应用的的。

Python作图数据导出 怎么把python画的图导出_python_09


然后点击进入布局试图,就是下图左下角的选中的位置,然后再点击数据驱动页面工具的这几个箭头,你就会发现只显示单个图斑了,是不是很神奇!!!

Python作图数据导出 怎么把python画的图导出_arcgis_10

step3: 批量出图

前两步咱们已经做好了预处理部分,接下来,咱们就要批量出图了,先上代码:

mxd = arcpy.mapping.MapDocument("CURRENT")

... for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):

...   mxd.dataDrivenPages.currentPageID = pageNum

...   arcpy.mapping.ExportToJPEG(mxd, r"E:\BatchDrawingMap\Output\Slope-" + str(pageNum) + ".jpg",resolution = 400)

... del mxd

咱们来看看要成为自己的代码要咋改动嗷,不要看到代码就觉得害怕,其实很简单的。
咱们的需求是批量出图,那基本内容就和这个一样,需要改动的是这个地方:
arcpy.mapping.ExportToJPEG(mxd, r"E:\BatchDrawingMap\Output\Slope-" + str(pageNum) + “.jpg”,resolution = 400)
然后在拆解,就是需要改动这里:
r"E:\BatchDrawingMap\Output\Slope-" + str(pageNum) + “.jpg”
这行内容表示自己要存储的位置,打个比方,我要存放在D盘中的Output文件夹,我该怎么写呢?
那咱们就该这样r"D:\Output\Slope-" + str(pageNum) + “.jpg”
再打个比方,我要存放在F盘的Arcgis文件夹中的20240108文件夹,我该怎么写呢?
那咱们就该这样嗷:r"F:\Arcgis\20240108\Slope-" + str(pageNum) + “.jpg”
也就是Slope前面的是你具体文件夹的路径,Slope-表示具体的文件名,详细的可以去学习学习python的基本规则,这里就不再缀述。
具体想要学习上述代码的朋友就要去参考arcpy的官方手册学习了,感兴趣的可以去学习。

具体运行代码方式如下:

首先调用运行的窗口

Python作图数据导出 怎么把python画的图导出_数据驱动_11


调出来的python后将上述的代码拷贝进去:

记得修改自己的文件存储路径,可以拷贝到txt文件中进行修改,就是下图画红色的地方,也是我上面阐述的点;(忽略红框以外的内容,哈哈哈,上次测试后没有清空)

Python作图数据导出 怎么把python画的图导出_Python作图数据导出_12


拷贝完后,光标会落在del mxd后面, 最后,就只要双击回车键,就行了,一定要双击!!!

当你双击后,arcgis在一闪一闪,那就是成功了!!!!

最后就是去看你的存储路径的文件。

注意:Arcgis文件存放路径建议全英文,作为开发者的一点建议,中文路径在编程处理数据过程中可能遇到字符编码问题!!!!
[1]:https://doc.arcgis.com/zh-cn/
[2]: https://www.douyin.com/video/7317605712752938251
[3]: https://mp.weixin.qq.com/s/fdCk0-u7hWqbQF9gQO2TgQ
[4]: https://mp.weixin.qq.com/s/rOQOzHBXj-x59w_DuXq86w