当前位置:文档之家› ArcGISPython实习指导

ArcGISPython实习指导

实习一Python基础学习1.什么是pythonPython是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。

因而得到了广泛应用和支持。

ArcGIS 9.0社区中引入了Python。

此后,Python被视为可供地理处理用户选择的脚本语言并得以不断发展。

每个版本都进一步增强了Python体验,从而为您提供更多的功能以及更丰富、更友好的Python体验。

ESRI已将Python完全纳入ArcGIS中,并将其视为可满足用户需求的语言。

下面仅介绍Python的部分优势:•易于学习,非常适合初学者,也特别适合专家使用•可伸缩程度高,适于大型项目或小型的一次性程序(称为脚本)•可移植,跨平台•可嵌入(使ArcGIS可脚本化)•稳定成熟•用户社区规模大Python已延伸到ArcGIS中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言,因而有助于提高工作效率。

2.在ArcGIS中使用Python(1)打开ArcMap,在工具栏中点击“”按钮,位置如图1-1所示,即可打开Python编辑窗口。

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

图1-23.行和缩进学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。

python最具特色的就是用缩进来写模块。

(1)缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

在Python窗口中输入如图1-3所示的代码块并运行,该代码块是严格缩进的。

图1-3(2)以下代码将会执行错误,如图1-4:图1-4实习二使用ArcPyArcPy 是一个以成功的arcgisscripting 模块为基础并继承arcgisscripting功能进而构建而成的站点包。

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

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

在Python中使用ArcPy的另一个主要原因是,Python是一种通用的编程语言。

Python是一种支持动态输入的解释型语言,适用于交互式操作以及为称为脚本的一次性程序快速制作原型,同时其具有编写大型应用程序的强大功能。

用ArcPy 编写的ArcGIS应用程序的优势在于,可以使用由来自多个不同领域的GIS 专业人员和程序员组成的众多Python小群体开发的附加模块。

1.通过Python使用工具每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息。

在Python中使用工具时,必须正确设置工具的参数值,以便在脚本运行时工具可以执行。

下面以缓冲区分析为例练习通过Python使用工具的方法。

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

图2-12)打开Python窗口,在其中输入图2-2所示的代码,其中workspace的路径根据数据在电脑中的实际路径设置。

在调用工具(图中红色部位)的时候会在窗口右侧出现提示信息,根据提示信息,输入相关参数,运行结果如图2-3。

运行后会在目录中生成一个“pointBuffer.shp”文件,这个文件的文件名和路径均在代码中设置。

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

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

图2-5图2-63)取消选中,重新运行一次代码,运行结果如图2-7所示。

从两次运行结果可以看出,地理处理工具处理对象首先应是选中的要素,如果没有选中要素,则默认为图层中所有对象。

图2-7(3)多层缓冲在输入要素周围的指定距离创建多个缓冲区。

使用缓冲距离值可随意合并和融合这些缓冲区,以便创建非重叠缓冲区。

在ArcMap中打开实验数据中的“line.shp”文件,运行如图2-8所示的程序,结果如图2-9。

多个缓冲区的距离为“[10,20,30]”,可根据实际情况自己设定。

图2-8图2-92.使用Python处理游标游标是一种数据访问对象,可用于在表中迭代一组行或者向表中插入新行。

游标有三种形式:搜索、插入或更新。

arcpy.da.InsertCursor(in_table, field_names) 插入行arcpy.da.SearchCursor(in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause}) 只读访问arcpy.da.UpdateCursor(in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause}) 更新或删除行读取几何(1)读取点1)在ArcMap中打开“point.shp”文件,点的相对位置如图2-10。

图2-102)在Python窗口中运行如图2-11所示的代码,“SHAPEXY”表示一个要素的质心XY坐标,点的质心为其本身。

cursor为一个搜索游标,其中“for row in cursor”是用一个for循环来遍历游标中的每一行。

运行结果如图2-12所示,红框中的数据为点的坐标。

图2-11(2)读取折线或面1)在ArcMap中打开实验数据中的“line.shp”文件,两个线要素相对位置如图2-13。

图2-132)在Python窗口中运行如图2-14所示的代码,结果如图2-15所示。

红色方框中的数据为两个先要素的折点坐标。

搜索游标中“OID”表示要素的FID,“SHAPE”表示几何要素对象。

图2-14图2-15写入几何通过使用插入游标可以实现写入几何功能,(1)写入点将“point.shp”加载到ArcMap中,在Python窗口中输入图2-16所示的代码并运行,运行结束后点击左下方的“”按钮,刷新一下地图窗口,结果如图2-17。

在写入点要素时,只有单个点对象用于设置点要素几何。

使用“SHAPEXY”,就可轻松地创建点。

图2-16图2-17(2)写入线将“line.shp”加载到ArcMap中,在Python窗口中输入图2-18所示的代码并运行,运行结果如图2-19。

代码中“arcpy.Array”表示数组对象可包含任意数量的地理处理对象,例如点、几何或空间参考。

(点坐标可自行设置)图2-18图2-19实习三创建ArcGIS Python Add-in 加载项是一种自定义项,它可以插入到ArcGIS for Desktop 应用程序(即ArcMap、ArcCatalog、ArcGlobe 和ArcScene)中以便提供补充功能以完成自定义任务,例如工具条上的工具集合。

1.创建加载项项目(1)选择加载项项目文件夹:解压“addin_assistant.zip”(图3-1)文件,在解压后的文件夹处找到addin_assistant.exe (图3-2)文件并双击。

将打开浏览文件夹对话框,在其中输入用来存储加载项项目的文件夹。

必须选择一个空文件夹或创建一个新文件夹(图3-3),单击确定。

图3-1图3-2图3-3(2)输入项目设置:选择工作文件夹之后,将显示向导的第一个面板(图3-4)。

可在此处输入项目设置。

这些设置是项目的元数据,存储在config.xml 文件中。

使用加载项时,这些设置在部署期间十分重要。

图3-42.创建工具条单击加载项容选项卡,右键单击工具条,然后单击“新建工具条”,如图3-5。

向导的右侧面板将显示工具条的属性,如图3-6。

工具条必须具有标题和ID。

标题用于为工具条提供标注。

ID 表示唯一的名称,用于区分不同工具条。

ID不能包含空格。

默认情况下,启动应用程序时初始显示工具条这一选项处于选中状态。

如果不希望在启动应用程序时显示工具条,可以取消选中此选项。

图3-5图3-63.创建按钮(1)输入工具条属性后,即可创建新按钮。

右键单击名为“工具条”的新工具条并选择“新建按钮”,如图3-7。

图3-7(2)新建按钮后,为按钮键入相应的属性信息,如图3-8,图3-8按钮具有多个属性需要设置。

以下列出了所有这些属性及其对应的说明。

这些属性存储在项目的config.xml 文件中属性描述标题(必填)定义按钮标题。

下图显示了ArcGIS 加载项管理器中使用的标题,有助于标识不同类型的可用自定义容(加载项类型在括号中标识):类(必填)在桌面应用程序中单击按钮后执行的Python 类。

Python 类是写入按钮业务逻辑的位置。

构造类时应使用Python 单词首字母大写命名约定,例如应使用“ZoomToSelectedFeatures”而不是“zoomtoselectedfeatures”。

ID(必填)用于标识按钮的唯一名称。

您可以为给定项目创建多个按钮,此ID 便用来区分不同的按钮。

理想情况下,应使用更有意义的值替换默认ID。

ID 不应包含任何空格。

可以使用下划线连接单词。

不应使用Python 关键字。

有关保留字信息,请查阅Python 文档。

工具提示(可选)将鼠标指针悬停在桌面应用程序中的按钮上方时出现的简短描述。

消息(可选)按钮功能的详细描述。

将鼠标指针悬停在按钮上方时,此消息会显示在工具提示下方。

图像(可选)此图像应为16 * 16 像素的图像,用于符号化按钮。

图像格式应为任意一种常用图片格式(即.bmp、.jpg等)。

图像将复制到加载项项目中创建的图像文件夹中。

4.编辑Python 脚本此时已为定义加载项按钮所需的属性添加了值。

此工作流的下一步是编辑Python 脚本并更新Python 类,以包含“缩放至所选要素”这一功能。

如果未选择任何要素,则会缩放至所有图层的全图。

要将此功能添加到自定义按钮,执行以下步骤:(1)在arcgis软件目录下找到如图3-9所示的Python编辑器,打开通过向导创建的工作文件夹下的“install”文件夹中Python脚本。

图3-9(2)在onClick(self)函数中键入相关代码,如图3-10.图3-10(3)保存脚本,如果出现图3-11所示的警告信息,则需要在脚本头上加上“# coding gbk”如图3-12.图3-11图3-125.测试按钮(1)创建加载项文件:转到工作文件夹,双击该文件夹以运行makeaddin.py (图3-13)脚本。

相关主题