arcgispython实习指导.doc
实习一PYTHON基础学习1什么是PYTHONPYTHON是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。因而得到了广泛应用和支持。ARCGIS90社区中引入了PYTHON。此后,PYTHON被视为可供地理处理用户选择的脚本语言并得以不断发展。每个版本都进一步增强了PYTHON体验,从而为您提供更多的功能以及更丰富、更友好的PYTHON体验。ESRI已将PYTHON完全纳入ARCGIS中,并将其视为可满足用户需求的语言。下面仅介绍PYTHON的部分优势易于学习,非常适合初学者,也特别适合专家使用可伸缩程度高,适于大型项目或小型的一次性程序(称为脚本)可移植,跨平台可嵌入(使ARCGIS可脚本化)稳定成熟用户社区规模大PYTHON已延伸到ARCGIS中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言,因而有助于提高工作效率。2在ARCGIS中使用PYTHON(1)打开ARCMAP,在工具栏中点击“”按钮,位置如图11所示,即可打开PYTHON编辑窗口。图11(2)PYTHON程序为解释运行,输入一行代码,按“回车”键后即可运行,如图12。图123行和缩进学习PYTHON与其他语言最大的区别就是,PYTHON的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。PYTHON最具特色的就是用缩进来写模块。(1)缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。在PYTHON窗口中输入如图13所示的代码块并运行,该代码块是严格缩进的。图13(2)以下代码将会执行错误,如图14图14实习二使用ARCPYARCPY是一个以成功的ARCGISSCRIPTING模块为基础并继承ARCGISSCRIPTING功能进而构建而成的站点包。目的是为以实用高效的方式通过PYTHON执行地理数据分析、数据转换、数据管理和地图自动化创建基础。该包提供了丰富纯正的PYTHON体验,具有代码自动完成功能(输入关键字和点即可获得该关键字所支持的属性和方法的弹出列表;从中选择一个属性或方法即可将其插入),并针对每个函数、模块和类提供了参考文档。在PYTHON中使用ARCPY的另一个主要原因是,PYTHON是一种通用的编程语言。PYTHON是一种支持动态输入的解释型语言,适用于交互式操作以及为称为脚本的一次性程序快速制作原型,同时其具有编写大型应用程序的强大功能。用ARCPY编写的ARCGIS应用程序的优势在于,可以使用由来自多个不同领域的GIS专业人员和程序员组成的众多PYTHON小群体开发的附加模块。1通过PYTHON使用工具每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息。在PYTHON中使用工具时,必须正确设置工具的参数值,以便在脚本运行时工具可以执行。下面以缓冲区分析为例练习通过PYTHON使用工具的方法。(1)点缓冲1)在ARCMAP中打开实验数据中的“POINTSHP”文件,如图21。图212)打开PYTHON窗口,在其中输入图22所示的代码,其中WORKSPACE的路径根据数据在电脑中的实际路径设置。在调用工具(图中红色部位)的时候会在窗口右侧出现提示信息,根据提示信息,输入相关参数,运行结果如图23。运行后会在目录中生成一个“POINTBUFFERSHP”文件,这个文件的文件名和路径均在代码中设置。图22图23(2)线缓冲1)在ARCMAP中打开实验数据中的“LINESHP”文件,选中其中的一条线,如图24。图242)打开PYTHON窗口,在其中输入图25所示的代码,运行结果如图26。图25图263)取消选中,重新运行一次代码,运行结果如图27所示。从两次运行结果可以看出,地理处理工具处理对象首先应是选中的要素,如果没有选中要素,则默认为图层中所有对象。图27(3)多层缓冲在输入要素周围的指定距离内创建多个缓冲区。使用缓冲距离值可随意合并和融合这些缓冲区,以便创建非重叠缓冲区。在ARCMAP中打开实验数据中的“LINESHP”文件,运行如图28所示的程序,结果如图29。多个缓冲区的距离为“10,20,30”,可根据实际情况自己设定。图28图292使用PYTHON处理游标游标是一种数据访问对象,可用于在表中迭代一组行或者向表中插入新行。游标有三种形式搜索、插入或更新。ARCPYDAINSERTCURSORIN_TABLE,FIELD_NAMES插入行ARCPYDASEARCHCURSORIN_TABLE,FIELD_NAMES,{WHERE_CLAUSE},{SPATIAL_REFERENCE},{EXPLODE_TO_POINTS},{SQL_CLAUSE}只读访问ARCPYDAUPDATECURSORIN_TABLE,FIELD_NAMES,{WHERE_CLAUSE},{SPATIAL_REFERENCE},{EXPLODE_TO_POINTS},{SQL_CLAUSE}更新或删除行读取几何(1)读取点1)在ARCMAP中打开“POINTSHP”文件,点的相对位置如图210。图2102)在PYTHON窗口中运行如图211所示的代码,“SHAPEXY”表示一个要素的质心XY坐标,点的质心为其本身。CURSOR为一个搜索游标,其中“FORROWINCURSOR”是用一个FOR循环来遍历游标中的每一行。运行结果如图212所示,红框中的数据为点的坐标。图211(2)读取折线或面1)在ARCMAP中打开实验数据中的“LINESHP”文件,两个线要素相对位置如图213。图2132)在PYTHON窗口中运行如图214所示的代码,结果如图215所示。红色方框中的数据为两个先要素的折点坐标。搜索游标中“OID”表示要素的FID,“SHAPE”表示几何要素对象。图214图215写入几何通过使用插入游标可以实现写入几何功能,(1)写入点将“POINTSHP”加载到ARCMAP中,在PYTHON窗口中输入图216所示的代码并运行,运行结束后点击左下方的“”按钮,刷新一下地图窗口,结果如图217。在写入点要素时,只有单个点对象用于设置点要素几何。使用“SHAPEXY”,就可轻松地创建点。图216图217(2)写入线将“LINESHP”加载到ARCMAP中,在PYTHON窗口中输入图218所示的代码并运行,运行结果如图219。代码中“ARCPYARRAY”表示数组对象可包含任意数量的地理处理对象,例如点、几何或空间参考。(点坐标可自行设置)图218图219实习三创建ARCGISPYTHONADDIN加载项是一种自定义项,它可以插入到ARCGISFORDESKTOP应用程序(即ARCMAP、ARCCATALOG、ARCGLOBE和ARCSCENE)中以便提供补充功能以完成自定义任务,例如工具条上的工具集合。1创建加载项项目(1)选择加载项项目文件夹解压“ADDIN_ASSISTANTZIP”(图31)文件,在解压后的文件夹处找到ADDIN_ASSISTANT(图32)文件并双击。将打开浏览文件夹对话框,在其中输入用来存储加载项项目的文件夹。必须选择一个空文件夹或创建一个新文件夹(图33),单击确定。图31图32图33(2)