本帖最后由 hygnic 于 2021-4-26 18:31 编辑
Python和ArcGIS自动化制图完全指南:前言
前言:下文以《指南》代替本系列文章名称。在该指南中,我们将手把手的讲解如何使用 Python(ArcPy) 这门编程语言实现 ArcGIS 自动化的更新制图等操作。在学完所有文章后,读者可以通过使用 Python(ArcPy),针对林业、国土、水利、农业等需要大量制作专题图、分布图的项目,实现批量化、自动化,高效生成地图。 |
“Life is short, you need Python”(生命苦短,你需要 Python)
Python 诞生于上个世纪八十年代,是一种面向对象的高级语言,相比于其他的低级语言(比如 C 语言就是一个贴近系统的低级语言)较易上手、同时代码量少、可以快速构建程序。
Python 之父 Guido van Rossum
非常适合非编程工作者编写代码来开展业务和扩展自己的相关领域能力。 在该《指南》中,我们会通过讲解以及使用 Python 实操编写一个用于自动出图的完整程序来帮助读者掌握和了解该技能。
相信大家都有安装 ArcGIS,Python2.7 会随其一同安装在电脑,不用额外安装 Python。
Note: 上文说的高级语言和低级语言不是指语言的优劣,而是指该语言面向人类和机器的程度。 |
ArcPy是随 ArcGIS 软件安装的非开源的站点包,它使用Python 语言封装。是一个可以使用 Python 语言调用的工具包。
ArcPy的官方定位不是一个底层的接口, ArcPy的使用较为简单,功能多(能完全调用 ArcGIS 所包含的上千个工具)。 但是作为交换,ArcPy的操作细粒度较大,一些基础的工作需要我们使用 ArcGIS 完成。比如我们需要制作好模板文件等。
整个制图系统由三部分组成:mxd模板、数据库、Python程序
- mxd模板:模板文件就是 mxd 后缀的模板文件。预先设置好合适的样式、图层和大小等信息,是我们最终输出成果的模板。
- 数据库:在这里我们一般指 ArcGIS 所支持的 GDB 格式的数据库,用于存放所有的项目矢量数据或者栅格数据。
- Python程序:即使用 Python 代码编写的程序。
使用 Python 代码通过一定的规则来对 mxd 模板文件及数据进行筛选和选择性的显示——对 mxd 文件标题、图层、图例、符号系统、查询语句、布局视图的位置以及各种要素进行更新和操控,将修改内容后的 mxd 模板另存为指定的名称,然后导出成地图。实现一个完整的自动化操作。
举个栗子,比如某个项目,其中有几十个功能分区,你需要给每个分区都制作一张地图。先完成一个分区的成果 ,其成果 mxd 将作为 mxd 模板。 然后 Python 不仅会对这个模板的数据进行修改更新,也会自动更新图例、修改文字描述、设置界面居中等。 最后将修改内容另存为按指定规则命名的 mxd 文档。一个接一个,直到将所有分区地图的 mxd 文件都制作出来,最后统一导出地图。 Note: mxd 文件是不保存空间数据的,它保存的是空间数据的路径信息、图层信息、符号信息以及对于制作地图非常重要的布局视图信息等。所以真正意义上完整的 mxd 模板也包括了与之相关联的数据库。 |
详细介绍了 ArcPy 的使用、如何编写、如何运行。然后以一个例子,生动展示了 ArcPy 在地理空间处理工作流方面的强大。 能为没有 Python 编程经验的读者提供一定的参考和帮助,为后续内容做一个铺垫。
编写 Python 程序自动识别各自的大小。使不同尺寸的制图单位和大小合适的 mxd 模板相匹配。
编写 Python 程序自动化操控 mxd 文件实现文件的筛选、更新、布局操作等,最终完成专题图的制图。
- ArcGIS——10.3(所有提供下载的 mxd 模板已另存为10.1版本,方便使用)
- Python——2.7
​分享GIS,不止于Python。荟GIS精粹,关注我,带你飞!(长按扫码也行)
|