打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
《面向ArcGIS的Python脚本编程》读后 | kikita & Maps
​ 这篇是读书笔记。同事手里有本《面向ArcGIS的Python脚本编程》,系统的介绍了如何结合ArcGIS使用python。最近拿来阅读,觉得受益颇多。最早期我是通过python自身的学习资源、书籍、ArcGIS帮助文档入门的,知识体系虽然建立起来了,但是很多细节没有考虑到,对照书中的内容温故知新、查漏补缺。
arcpy与AO
​ 书的开篇就介绍了脚本语言和程序语言的区别。我将其引申到日常工作中用户会经常问到的,“为什么AO可以实现的东西,arcpy却不能?”“为什么arcpy的功能这么‘粗粒度’?”
​ AO中包含了ArcGIS用到的所有编程对象,包含了数以千计的不同对象,因此程序员可以精细控制软件的外观和运行机制。Python作为一种非常平易近人的语言,既是脚本语言又是程序语言,在ArcGIS平台中,python更多充当的是脚本语言的角色,例如:访问ArcGIS现有的功能,组合各种现有功能来扩展ArcGIS的功能,更可以作为一种“粘合剂”将更多的功能整合进来。用书中的话讲,脚本语言就是在“控制其他应用程序以实现任务自动化”。arcpy是ArcGIS提供的python站点包,用于访问ArcGIS 的地理处理功能,定位正在于此。
arcpy与model builder
​ model builder(简称MB吧)是ArcGIS Desktop中我认为最可爱的功能没有之一,它采用了编程的思想却免去了书写代码,是给非程序员实践创造的启航之地。日常工作中,很多逻辑简单、功能清晰的任务都可以使用MB实现。以前写过一篇,《如何在ArcGIS for Desktop中实现批量任务》,具体不再展开。你可能由这些疑问,“MB也能完成批量任务,我何时应该考虑使用python?” 当然这里回答的是“不得不”的问题,如果你本来就是编程高手,从一开始就会觉得MB限制了你的想象力,如下回答可能不需要考虑。
​ MB的局限性有什么?或者说相比之下,python能更多实现什么?
python可以实现更高级的编程逻辑。例如嵌套循环是MB的软肋,一遇到多重遍历之类的任务就只能呵呵了。
python可以实现更底层的处理任务。例如我们可以使用Cursor,遍历表并对其增删改等等。
python可以集成第三方的资源。例如R语言等第三方类库来处理数据执行任务。
python可以不在ArcGIS软件内部执行任务,只需要安装并授权ArcGIS软件,然后通过独立脚本的形式运行。既然可以独立运行,就可以定义系统任务定时执行。
python基础
命名规范
​ 这本书中也提到了命名规范的内容,这是我在初期没有考虑到的问题。随着时间的推移和协同工作的需要,渐渐发现这是个非常重要的内容,大型的科技公司会更重视这个方面。编程和写文章一样,仅仅懂得一种语言的语法、词汇是不足够的,更重要的是如何将文章写的清晰优雅,对应到代码中就是简洁高效。python的官方命名规范:Style Guide for Python Code,它是PEPs(Python Enhancement Proposals)中的一部分。
​ 变量名及脚本文件名:
变量名以字母开头,不能使用特殊字符开头
全部使用小写字母
必要的时候使用下划线,增加代码可读性
使用描述性变量,避免使用俚语或缩写
变量名尽量简短
​ 缩进:
建议使用四个空格表示缩进
不要同时使用tab和空格进行缩进
​ 注释:
建议每个功能块都有相关注释
每个脚本工具或函数文件前需要有个头文件,应该包含脚本文件名、功能介绍、运行要求、作者、开发时间等信息。
从脚本外部输入参数
​ 使用系统参数 sys.agv 。系统参数sys.argv[0]存储的是脚本自身的地址,因此额外的系统参数是从1开始。
1
2
3
4
5
# This is content of testInputPara.py.
import sys
x = int(sys.argv[1])
y = int(sys.argv[2])
print(x*y)
​ 在命令行中执行:
1
2
D:\ForTempTest>python testInputPara.py 2 8
16
​ 在交互式python编译器中使用 input(),可以接收用户输入。
1
2
3
4
>>> x = input("")
bingo
>>> print(x)
bingo
​ ArcGIS 中通过创建脚本工具,与GP框架结合的调用方法,是更适合ArcGIS用户的方法。以前写过 《在ArcGIS中创建Python工具(一)(二)(三)》几篇,点击链接可以近一步了解脚本工具。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在ArcGIS?10中使用python
基于 ArcGIS Pro 的Python 教学书籍开放下载
ArcGis Python脚本
Linux 系统下Anaconda 3 联合arcpy共同工作
S60 Python 编程指南——语法
搜罗全网!ArcGIS二次开发Python(arcpy)指南(七):你也可以制作ArcGIS工具箱
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服