在ArcGIS上使用python(arcpy包)的入门教程 | 您所在的位置:网站首页 › 如何卸载arcgis108 › 在ArcGIS上使用python(arcpy包)的入门教程 |
1.why arcpy?
如果简单将arcgis理解成绘图与分析两大功能的话(由于本人对arcgis使用十分局限,该分类仅为个人使用范畴内的一个总结),arcpy包在arcgis的分析功能上有很大的帮助。其主要功能是利用代码行取代传统的手动点击。其应用在解决以下几大场景下的问题中十分有效: 操作步骤较多,并且希望自己的操作之后可以被重复实现。操作步骤选项繁复,难以绝对保证每个步骤选项设置无误。论文发表需要提交各数据处理过程的代码,但是在arcGIS上的点击操作无法给出代码。简单的操作但是需要重复多次,极其费时(最重要的功能) 2.如何使用arcpy?arcpy和python的各种包其实本质上无太多区别。理论上如果将该包安装至pip内,可以同常用的python包一样进行调用。但是在实际操作中经过笔者尝试,并不能利用pip或conda进行arcpy包的安装,只能在ArcMap环境中的python窗口进行运行。(理论上似乎可以手动将arcGIS环境下的python中的arcpy复制到常用python环境中,这样就可以完全脱离ArcMap进行地理计算了,不过可能存在版权问题)。 下面利用几个代码实例介绍一下arcpy的具体应用 (1)利用arcpy替代手动调用ArctoolBox引入包(个人习惯,似乎不引也可以…) import arcpy设置工作路径(也可以不用设置,后期利用绝对路径进行引用) arcpy.env.workspace="H:\桌面\数据\地块地铁匹配工作目录"将地铁线路设置一万米的缓冲区(若不设置工作路径则函数中使用绝对路径) arcpy.Buffer_analysis("地铁数据.shp", "buffer_10000M", "10000 METERS")将住宅用地数据合并至商服用地数据中 arcpy.Append_management(["住宅用地_clip"],"商服用地_clip")以上展示了简单的制作缓冲区,数据合并功能。实际上任何Arctoolbox内的工具均对应有python函数。具体的函数可以在ArcMap官网描述文档查询即可。官网上一般附带sample,上手难度很低。 (2)利用arcpy替代手动修改属性表属性表操作相较于Arctoolbox内工具箱稍微麻烦一些,需要是利用游标(cursor)来进行操作。这里引用简书上muyan大佬的一张图片来进行解释游标的本质。 游标是一种可迭代对象,通过创建一个指针对象调用指针的next方法。通过不断循环调用next来实现对属性表内每个条属性的访问。游标总共有以下三类: 函数游标对象SearchCursor()查找游标,只能读不能写InsertCursor()插入游标,只能写,创建新的行UpdateCursor更新游标,只能写,修改当前行或者删除当前行下文仅就更新游标对其基本功能做一个展示,关于三个游标 |
CopyRight 2018-2019 实验室设备网 版权所有 |