ArcGISPython

本文详细介绍了在ArcGIS中使用Python的基础知识,包括Python在ArcGIS中的作用、如何通过Python使用地理处理工具(如点缓冲、线缓冲、多层缓冲)、处理游标读取和写入几何信息。此外,还讲述了创建ArcGIS Python Add-in的全过程,包括创建加载项项目、工具条、按钮以及编辑Python脚本和测试按钮。内容深入浅出,适合ArcGIS和Python初学者学习。
摘要由CSDN通过智能技术生成

实习一 Python基础学习

1.什么是python

Python是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。因而得到了广泛应用和支持。

ArcGIS
9.0社区中引入了Python。此后,Python被视为可供地理处理用户选择的脚本语言并得以不断发展。每个版本都进一步增强了Python体验,从而为您提供更多的功能以及更丰富、更友好的Python体验。

ESRI已将Python完全纳入ArcGIS中,并将其视为可满足用户需求的语言。下面仅介绍Python的部分优势:

  • 易于学习,非常适合初学者,也特别适合专家使用

  • 可伸缩程度高,适于大型项目或小型的一次性程序(称为脚本)

  • 可移植,跨平台

  • 可嵌入(使ArcGIS可脚本化)

  • 稳定成熟

  • 用户社区规模大

Python已延伸到ArcGIS中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言,因而有助于提高工作效率。

2.在ArcGIS中使用Python

(1)打开ArcMap,在工具栏中点击“

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9g2CSRhn-1598460886229)(media/843dc469d241ba071cb26aa7441f5619.png)]

”按钮,位置如图1-1所示,即可打开Python编辑窗口。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jII2o4yq-1598460886233)(media/9ad6d28e1625b07516c848232e07ee0c.png)]

图1-1

(2)Python程序为解释运行,输入一行代码,按“回车”键后即可运行,如图1-2。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vvPJViOM-1598460886234)(media/7893ad1f7503c0ccbc026eabcd063938.png)]

图1-2

3.行和缩进

学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。

(1)缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。在Python窗口中输入如图1-3所示的代码块并运行,该代码块是严格缩进的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qntkvZwp-1598460886235)(media/11d7dc551bedd2f63e1dcb8c07d6d05f.png)]

图 1-3

(2)以下代码将会执行错误,如图1-4:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BRaU2oEp-1598460886238)(media/ae87def47766c7858a9d968b881eac11.png)]

图1-4

实习二 使用ArcPy

ArcPy 是一个以成功的 arcgisscripting
模块为基础并继承arcgisscripting功能进而构建而成的站点包。目的是为以实用高效的方式通过Python执行地理数据分析、数据转换、数据管理和地图自动化创建基础。

该包提供了丰富纯正的Python体验,具有代码自动完成功能(输入关键字和点即可获得该关键字所支持的属性和方法的弹出列表;从中选择一个属性或方法即可将其插入),并针对每个函数、模块和类提供了参考文档。

在Python中使用ArcPy的另一个主要原因是,Python是一种通用的编程语言。Python是一种支持动态输入的解释型语言,适用于交互式操作以及为称为脚本的一次性程序快速制作原型,同时其具有编写大型应用程序的强大功能。用ArcPy
编写的ArcGIS应用程序的优势在于,可以使用由来自多个不同领域的GIS专业人员和程序员组成的众多Python小群体开发的附加模块。

1.通过Python使用工具

每个[地理处理工具](JavaScript:IDAHSWDB.Click())都具有一组固定的参数,这些参数为工具提供执行所需的信息。在Python中使用工具时,必须正确设置工具的参数值,以便在脚本运行时工具可以执行。下面以缓冲区分析为例练习通过Python使用工具的方法。

(1)点缓冲

1)在ArcMap中打开实验数据中的“point.shp”文件,如图2-1。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cu4UXnGE-1598460886239)(media/53a4a5fa090243f2c84ea4a2ea0af44c.png)]

图2-1

2)打开Python窗口,在其中输入图2-2所示的代码,其中workspace的路径根据数据在电脑中的实际路径设置。在调用工具(图中红色部位)的时候会在窗口右侧出现提示信息,根据提示信息,输入相关参数,运行结果如图2-3。运行后会在目录中生成一个“pointBuffer.shp”文件,这个文件的文件名和路径均在代码中设置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oen5Sr2p-1598460886239)(media/1f5f89578409f1d1a01f29d7dbde6777.png)]

图2-2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iywzpEG2-1598460886240)(media/2eede024defb8cd6d63f2af41f2d9eb8.png)]

图2-3

(2)线缓冲

1)在ArcMap中打开实验数据中的“line.shp”文件,选中其中的一条线,如图2-4。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MI0ouAzA-1598460886241)(media/91c51233f89d1ff70e4d732395e9522b.png)]

图2-4

2)打开Python窗口,在其中输入图2-5所示的代码,运行结果如图2-6。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r6mYPZOj-1598460886242)(media/e1c05e85c00580763cbe8ea3144f086a.png)]

图2-5

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-trWDexoh-1598460886244)(media/7bd826915f26f0fbd8b8d2a0b1209d4d.png)]

图2-6

3)取消选中,重新运行一次代码,运行结果如图2-7所示。从两次运行结果可以看出,地理处理工具处理对象首先应是选中的要素,如果没有选中要素,则默认为图层中所有对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ysizoggn-1598460886244)(media/f79a803742421e79aef9a440b7017fea.png)]

图2-7

(3)多层缓冲

在输入要素周围的指定距离内创建多个缓冲区。使用缓冲距离值可随意合并和融合这些缓冲区,以便创建非重叠缓冲区。

在ArcMap中打开实验数据中的“line.shp”文件,运行如图2-8所示的程序,结果如图2-9。多个缓冲区的距离为“[10,20,30]”,可根据实际情况自己设定。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hZudu5xM-1598460886246)(media/83ca6e24a5776d1e46ce27be6e9af781.png)]

图2-8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zKJMpnrC-1598460886247)(media/0cd58c5bec2caa878943e198810081fa.png)]

图2-9

2.使用Python处理游标

游标是一种数据访问对象,可用于在表中迭代一组行或者向表中插入新行。游标有三种形式:搜索、插入或更新。

arcpy.da.[InsertCursor](javascript:IDAWEXDB.Click())(in_table, field_names) 插入行
arcpy.da.[SearchCursor](javascript:IDAXFXDB.Click())(in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause}) 只读访问
arcpy.da.[UpdateCursor](javascript:IDAYGXDB.Click())(in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause}) 更新或删除行

读取几何

(1)读取点

1)在ArcMap中打开“point.shp”文件,点的相对位置如图2-10。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tWDMIRuB-1598460886249)(media/ad7f8b82b69f1c53afe99290f9d23b78.png)]

图2-10

2)在Python窗口中运行如图2-11所示的代码,“SHAPE@XY”表示一个要素的质心XY坐标,点的质心为其本身。cursor为一个搜索游标,其中“for
row in
cursor”是用一个for循环来遍历游标中的每一行。运行结果如图2-12所示,红框中的数据为点的坐标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yVtBnE64-159846

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值