这篇是读书笔记。同事手里有本《面向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基础命名规范 这本书中也提到了命名规范的内容,这是我在初期没有考虑到的问题。随着时间的推移和协同工作的需要,渐渐发现这是个非常重要的内容,大型的科技公司会更重视这个方面。编程和写文章一样,仅仅懂得一种语言的语法、词汇是不足够的,更重要的是如何将文章写的清晰优雅,对应到代码中就是简洁高效。python的官方命名规范:Style Guide for Python Code,它是PEPs(Python Enhancement Proposals)中的一部分。 变量名及脚本文件名:
缩进:
注释:
从脚本外部输入参数 使用系统参数 sys.agv 。系统参数sys.argv[0]存储的是脚本自身的地址,因此额外的系统参数是从1开始。
在命令行中执行:
在交互式python编译器中使用 input(),可以接收用户输入。
ArcGIS 中通过创建脚本工具,与GP框架结合的调用方法,是更适合ArcGIS用户的方法。以前写过 《在ArcGIS中创建Python工具(一)、(二)、(三)》几篇,点击链接可以近一步了解脚本工具。 |
|