ArcPy批量化入门篇

ArcPy批量化入门篇写在前面玩 GIS 都知道 ArcGIS 这东西就好比倚天剑 每个工具都是一招一式 学了一两招后 用它处理一两副图的时候感觉很棒 感觉自己充满了力量 处理七八幅图也还行 脖子疼点而已 也还能应付 忽然 有一天 有人让你处理上百个图层 每个图层都需要一次使用好几个工具 是不是很懵逼 杀了我算了 没有群杀技能啊 今天的主题就是解决大量重复问题 也就是 批量 之前写过如何批处理的博文

写在前面

    玩GIS都知道ArcGIS,这东西就好比倚天剑,每个工具都是一招一式,学了一两招后,用它处理一两副图的时候感觉很棒,感觉自己充满了力量!处理七八幅图也还行,脖子疼点而已,也还能应付。忽然,有一天,有人让你处理上百个图层,每个图层都需要一次使用好几个工具。是不是很懵逼,杀了我算了,没有群杀技能啊!

    今天的主题就是解决大量重复问题,也就是“批量”,之前写过如何批处理的博文,我说你们可以用工具提供的示例代码,构建一个自己的脚本,然后泡杯茶吃点饼干等程序跑完就行了。结果呢,我发现很多人根本不会用这个示例代码,看见了示例代码都不知道往哪里放,怎么运行!接下来的几篇博文,将介绍一下武林秘籍–ArcPy。这个就是藏在倚天剑里面的《九阴真经》和《降龙十八掌》啊,倚天不出,谁与争锋!

 

什么是ArcPy

    其目的就是为了以实用高效的方式通过 Python 执行地理数据分析、数据转换、数据管理和地图自动化创建。

    说明它的最大的特性就是能自动化和批量化处理地理数据。当然,它的作用绝对不只是批量,很多复杂的图像处理,仅仅靠arcmap工具的组合是做不到的,得靠程序,这时候arcpy的强大是无以言表的,后面会做一些好玩的arcpy小工具分享出来。其次很重要的就是你得会点儿基本的python语法,这也是一直建议用学GIS的同学学一点儿python的原因,它有实在太多的关于地理数据的库了,用方便,别把时间花在重复造轮子上,何况你造的还不行呢!

 

ArcPy使用入门

2.1打开arcpy

    打开arcmap–>点击打开–>可以看到弹出的arcpy命令行窗口

ArcPy批量化入门篇

2.2第一行代码

输入’hello,arcpy’后回车,窗口会打印’hello,arcpy’。好了,恭喜入坑!

'hello,arcpy'

ArcPy批量化入门篇

2.3导入arcpy库

–当我们输入 ar 时,它会有提示arcpy,说明这个窗口已经加载了arcpy库。

ArcPy批量化入门篇

–但是为了养成用一个库前先引用的习惯,我们尝试导入arcpy库,这也是后面别写脚本不可少的一步。输入 import arcpy 后回车。

import arcpy 

ArcPy批量化入门篇

–查看库有哪些东西,输入 help(arcpy) 命令。

help(arcpy)

ArcPy批量化入门篇

2.4使用工具

    我们就以缓冲区分析这个工具为例子,来试试如何通过命令行窗口来使用工具。

–找到 缓冲区 工具(分析工具–邻域分析–缓冲区),拖拽到窗口中。

 

ArcPy批量化入门篇

–拖拽后可以在窗口看到 缓冲区 的函数头,右侧有这个函数需要传入的参数介绍。

ArcPy批量化入门篇

–除了拖拽,还可以直接数据。比如,输入 arcpy. 这个时候,就可以看到弹出的所有arcpy函数。

ArcPy批量化入门篇

–继而输入arcpy.Buff可以看到弹出的Buffer_analysis函数。直接选择即可。

ArcPy批量化入门篇

–对这个函数一无所知?不知道需要需要传入什么参数?这个时候在工具上 右键–>项目描述。

ArcPy批量化入门篇

–弹出框是对这个工具的详细介绍

ArcPy批量化入门篇

–往下翻,会有语法介绍,会详细说明每个参数的含义

ArcPy批量化入门篇

–继续往下翻,我们可以在给的事例中看到这个函数的用法。可以看到缓冲区这个函数需要有输入、输出、缓冲区距离等参数。

ArcPy批量化入门篇

–双击打开缓冲区工具门口一看到,众多参数中,其实只要输入三个要素就可以了。对于其他工具一样的,可以双击点开工具看看具体需要填写哪些参数。

ArcPy批量化入门篇

–输入要进行缓冲区的要素的地址,我这里是point;输出地址,和换出去大小。

注意:①地址前面加”r”,这个是防止乱码用的。②我这里缓冲区大小设置为10千米

 arcpy.Buffer_analysis(r'C:\Users\Dell\Desktop\toDo\test\point.shp', r'C:\Users\Dell\Desktop\toDo\test\point2.shp', '10 Kilometer') 

ArcPy批量化入门篇

–回车后窗口会提示已经成功。同时arcmap会打开结果图层。

ArcPy批量化入门篇

ArcPy批量化入门篇

到这里,大家已经学会了如何在命令行中使用工具。

 

总结

    你可能会失望,觉得在命令行里面使用工具,除了装逼,它们还没直接双击点开用的方便快捷,还要绞尽脑汁去查它的函数名和参数,参数格式输入不对还会各种报错,简直让人掉头发!而且,也没有体现批量啊!

    其实,对于一次批量来说,我们通常都会手动将过程走一遍,先使用哪个工具,然后怎么操作,需不需要地图代数等等。然后才能按照这个走通的步骤批量处理很多个图层。在命令行中实验工具的函数如何使用,届时不过是将这些工具外面套一个for循环而已。命令行其实就是一个批量化前的一次探路而已。

 

一个批量的小栗子

问题:

    想知道中国近20年每个省份餐饮数量的变化趋势。

已有数据:

    2000-2019年共计20张栅格图,一年一张。图中栅格若有数字表示该点有餐馆,没有表示没有餐馆。全国的餐馆会1-34进行标号,比如浙江内的餐馆,其栅格点的值是1,江苏内的是2。

分析:

    要想知道变化趋势,那你是不是得:对于每一张图,提取每个省份的栅格并导出,最后分别叠加各自省份20年的数据,看一下趋势。

做法:

    用栅格算器,计算出值为1的栅格,导出,计算值为2的栅格,导出,一直计算到34。当然也可以直接按属性分成34个,分别右键导出数据。且不说怎么分开各个省份的数据吧,单纯导出数据你就得进行20×34次了,想想,胳膊和眼睛还要不要了!

arcpy批量操作:

    几行代码,就可以分离20年34个省市地区的栅格,分门别类的保存在设定好的文件夹中。这就是脚本批量的魅力。

调用的是ArcPy的Con条件函数。

ArcPy批量化入门篇

 

    ​本次只是入门只是大致感受一下arcpy,先学会怎么用命令行去使用工具,后期会基于arcpy编写一下有意思脚本,甚至可以将自己的脚本制作成工具,共享给大家一起使用。

    ​记住,批量只是脚本的魅力,但是ArcPy的能力绝对不只是批量,以后一起探索吧!

 

 

 

ArcPy批量化入门篇

技多不压身

长按识别二维码关注我们

ArcPy批量化入门篇

 

 

ArcPy批量化入门篇

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224224.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:25
下一篇 2026年3月17日 下午12:25


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号