地理处理框架课件.ppt
《地理处理框架课件.ppt》由会员分享,可在线阅读,更多相关《地理处理框架课件.ppt(51页珍藏版)》请在三一办公上搜索。
1、兰小机简历,主要经历1988年7月毕业于南方冶金学院工程测量专业,获学士学位,并留校任教1994年6月毕业于武汉测绘科技大学工程测量专业,获硕士学位,回校任教2005年6月毕业于南京师范大学地图学与地理信息系统专业,获理学博士学位,回校任教主要研究方向GIS应用开发分布式并行计算环境下空间数据的存储管理空间数据库理论与GMLGISGML空间数据挖掘空间数据集成与共享,科研项目,国家自然科学基金项目-面向GML的时空关联规则及序列模式挖掘研究(编号:40971234),35万元,主持国家自然科学基金项目-本原GML空间数据库理论及GMLGIS与传统GIS集成研究(编号:40761017),16万
2、元,主持国家自然科学基金项目-GML空间数据存储索引机制研究(编号:40401045),26万元,排名第二地理信息科学江苏省重点实验室开发基金项目-面向对象的GML空间数据库及其应用研究(编号:JK20050302),5万元主持江西省教育厅科技项目GML空间数据库理论及GMLGIS研究,1万元,主持萍乡市基础地理信息系统研究与开发,22万元,主持城市公众地理信息服务系统研究与开发,10万元,主持,Chap.8 地理处理框架,本章内容:地理处理框架概述通过Python使用地理处理工具通过ArcObjects使用地理处理工具,8.1 地理处理框架概述,地理处理(Geoprocessing)提供一组
3、丰富的工具和机制来实现GIS工作流的自动化操作,这些工具和机制能够使用模型、脚本、高级开发语言将一系列的工具按照一定操作顺序结合在一起,完成更复杂的GIS工作流。地理处理框架是指ArcGIS用于建立自动化处理流程的应用环境和开发框架,其主要内容包括:地理处理工具、模型构造器(Model Builder)、脚本、ArcObjects中的地理处理。,地理处理工具,地理处理工具用于执行地理数据处理的最基本的功能单元,例如提取和叠加数据、更改地图投影、向表中添加列、计算属性值、最优路径等。工具都储存在工具箱中,ArcGIS 提供了数百种工具,并将它们进行了分类并放到了十余个工具箱中,这些工具功能丰富、
4、涉及领域广泛。可以通过多种方式使用地理处理工具:工具对话框、Python窗口、模型构造器、脚本、ArcObjects开发。,ArcGIS引入了后台地理处理(Background Geoprocessing)的概念,允许Geoprocessing工具、ArcGIS操作同时运行(使用多核CPU)。即工具在后台运行时,您仍可以继续使用ArcMap(或其他应用程序,例如ArcGlobe),文档底部将出现一个进度条显示当前所执行工具的名称,工具执行完毕后,系统托盘中将显示一个弹出通知。,模型构造器(Model Builder),模型构造器(Model Builder)是ArcGIS中地理数据处理框架的一
5、部分。通过模型构造器可将地理处理语言中的各个要素(工具)按顺序连接在一起构建可视化的地理处理模型,实现更复杂的地理处理功能。Model Builder为设计和实现地理处理模型(包括工具、脚本和数据)提供了一个图形化的建模框架。将创建的地理处理模型共享为工具,可扩展ArcGIS功能。,脚本,在地理处理框架中,还可使用脚本语言来创建新的实用软件。脚本语言(例如Python和Perl)用于将多个应用程序组合到一起。和模型一样,可将脚本程序引入至自定义工具箱中,成为工具箱中一个工具;与模型构造器相比,脚本可以设计较复杂的程序处理逻辑和较高级的数据结构,且脚本可在ArcGIS外部执行。,ArcObjec
6、ts中的地理处理,ArcGIS提供了地理处理工具(Geoprocessing Tools)。在ArcObjects中,每个工具都有一个对应的类。在GIS应用开发中,可以直接使用这些地理处理工具。,8.2 通过Python使用地理处理工具,Python 是一种通用的开源编程语言,在ArcGIS地理处理中用作脚本语言。使用 Python 中的 ArcPy 站点包可访问地理处理功能。通过ArcPy可访问地理处理工具和其他函数、类和模块,使用它们可快速轻松地创建简单或复杂GIS工作流。,8.2.1 Python窗口,ArcGIS 10.0 通过Python窗口提供了一种新的嵌入式 Python 体验。
7、在Python 窗口中,可以交互式地输入并执行地理处理工具和 Python 函数;Python 命令可以是单行代码,也可以是带逻辑的复杂块。Python 窗口的提示符为三个大于号(),可以直接从第一行输入并执行简单的 Python 语法。,可输入并执行包含多个地理处理工具的多行命令。输入多个命令时,输入第一行命令后,要想接着输入代码行而不执行代码块,请在第一行命令输入完成后按住 CTRL 键并按 ENTER;光标即会移动到 Python 窗口的二级提示符()处,此时便可输入其他代码行。按此种方式输入完所有命令后,按两次 ENTER 便可执行整个代码块。如图所示的示例中,逻辑 for 语句要求至
8、少再输入一行代码才能完成整个代码。需要注意的是:上例中的“print count”代码一定要缩进(按“空格”键缩进)。,目录路径的使用编程语言(如Python)将反斜线()用作转义字符。例如,n 表示换行符,t 表示制表符。指定路径时,可使用正斜线(/)代替反斜线,或使用两条反斜线(),也可通过在包含反斜线的字符串前放置字母 r(以便正确解释)来使用字符串文本。正确使用如下:import arcpy arcpy.GetCount_management(c:/temp/streams.shp)arcpy.GetCount_management(c:tempstreams.shp)arcpy.Ge
9、tCount_management(rc:tempstreams.shp),在 Python窗口中设置环境,每个工具都有一组参数,其中一些参数在所有工具中通用,如容差或输出位置。这些参数可从地理处理环境中获得默认值。在ArcPy中,地理处理环境被组织为 ArcPy包中env类下的属性,如overwriteOutput、workspace、configKeyword、XYResolution、XYTolerance等属性。如以下设置workspace属性:arcpy.env.workspace=rE:usaStatesHighwayCity.gdb,由于地理处理环境对工具操作和输出有着很大的影响
10、,因此需要保证能够追踪环境设置并在必要时将其重置为默认状态。ArcPy中的ResetEnvironments函数可用于恢复默认环境值。在Python窗口中输入如下:arcpy.ResetEnvironments()ArcPy中的ListEnvironments函数可用于创建所有地理处理环境的列表。该列表可用于访问并输出所有环境及其当前值。,在Python窗口中执行工具,在Python窗口中访问地理处理工具和geoprocessor方法之前,先要导入ArcPy 站点包(import arcpy)。导入ArcPy之后,无论何时在提示符后输入arcpy.,都会出现一个下拉列表,其中包含全部地理处理工
11、具、geoprocessor方法以及其他的脚本功能。随着字符的不断输入,此下拉列表会不断地进行过滤,以便仅匹配出最符合输入字符的工具或方法。例如,如果在 Python 窗口中输入 arcpy.Bu,则在下拉列表中会只包含以那些字符开头的工具或方法。当输入左半圆括号“(”时,会在帮助和语法窗口中显示 Buffer_analysis工具的帮助。默认情况下,会将第一个参数高亮显示,如下图所示。,工具的参数中,有些是必需的,有些是可选的。可选参数会放在大括号 中;而必需参数则没有大括号。可选参数位于必需参数之后。如果不为可选参数输入值,则会为其计算并应用默认值。工具可能会有多个可选参数。有时,只需关注
12、工具的某些可选参数并对其进行设置。跳过或略过可选参数的方式有三种:将可选参数设置为一组空双引号()。将可选参数设置为双引号中的#号(#)。明确指定要使用的参数名称及其值。,工具参数可接受单个值或多个值。当可接受多个值时,参数值可指定为一个 Python 列表。如删除字段工具可接受多个要删除的字段:arcpy.DeleteField_management(c:/base/rivers.shp,Type,Turbidity,Depth)某些工具(例如 Union_analysis 和 Intersect_analysis 叠加工具)具有像表一样的参数;即它们有多行,并且每一行都有多个值。就 Uni
13、on_analysis 而言,输入要素参数支持使用坐标精度等级,等级作为可选值指定给每个输入要素类,其中1为最高等级。这种类型的参数可以使用“值表”表示。arcpy.env.workspace=D:/St_Johns/data.mdb/neighborhoods inputList=east,1,west,1,south,1,north,2 arcpy.Union_analysis(inputList,D:/St_Johns/data.mdb/land_use),使用 Python 窗口创建工作流,通过ArcPy站点包,Python窗口支持执行数百种地理处理工具。在Python窗口中,可以执行
14、单个工具,也可以按特定顺序依次执行多个工具。Python 窗口还允许访问支持更复杂Python工作流的许多函数和类。支持Python工作流的函数,例如创建某些数据类型的列表、检索某一数据集的属性、在将表添加至地理数据库前验证表名称或执行其他许多有用的脚本函数。,以下代码是根据要素类和字段名创建字段值的唯一列表:featureclass=rE:usaStatesHighwayCity.gdbUSAStatesstatesfield=STATE_NAMEvalueList=rows=arcpy.SearchCursor(featureclass)for row in rows:valueList.
15、append(row.getValue(field)uniqueSet=set(valueList)uniqueList=list(uniqueSet)uniqueList.sort()del rowsdel rowprint uniqueList,set 是一个无序不重复元素集合,List为列表;集合没有排序功能,列表可以排序。,函数定义函数是用于执行特定任务的小代码块,可用在更细化的工作流中。创建函数后,即可反复使用该函数,省去了重复编写相同任务的麻烦。def listFieldNames(table,wildcard=None,fieldtype=None):fields=arcpy.L
16、istFields(table,wildcard,fieldtype)nameList=for field in fields:nameList.append(field.name)return nameList在Python中,定义函数的方法是使用Python的def关键字后接函数名和参数列表;其中的 return 语句用于从函数中返回值fieldNames=listFieldNames(rE:usaStatesHighwayCity.gdbUSAStatesstates),8.2.2 ArcPy站点包,ArcPy站点包(site-package)是ArcGIS将GIS功能传送到Python
17、的Python库,它随ArcGIS一起自动安装。通过ArcPy可访问地理处理工具和其他函数、类和模块。在ArcPy中,所有地理处理工具均以函数形式提供,但并非所有函数都是地理处理工具。函数是用于执行某项特定任务的程序代码块。工具函数和非工具函数之间加以区分:工具会返回 result 对象;而函数不会。工具会生成可通过各种函数(如 GetMessages()进行访问的消息;函数不会生成消息。工具需要在产品级别及扩展模块上进行授权;不对函数进行授权。,ArcPy中包含三个模块:制图模块(arcpy.mapping)、空间分析模块(arcpy.sa)、地统计分析模块(arcpy.ga)。制图模块(a
18、rcpy.mapping)提供了与地图文档及图层文件互操作的命令。可以通过创建Python脚本来打开地图文档,加载图层,查询并选择内容,然后打印、导出或者保存修改后的地图文档。,例如你在ArcMap中的工作流程为:打开位于“C:GISTownCenter_2009.mxd”的文档。将文本元素“GIS Services Division 2009”换成“GIS Services Division 2010”。将更新后的地图导出为PDF。你可以写如下脚本来实现:mxd=arcpy.mapping.MapDocument(rC:GISTownCenter_2009.mxd)for textEleme
19、nt in arcpy.mapping.ListElements(mxd,Text):if textElement.text=GIS Services Division 2009:textElement.text=GIS Services Division 2010arcpy.mapping.ExportToPDF(mxd,rC:GISTownCenterUpdate_2010.pdf)del mxd,8.2.3 使用Python脚本执行地理处理工具,在Python窗口中,可以交互式输入、执行代码,并能立即运行结果。但也可使用PythonWin 之类的集成开发环境(IDE)创建Python文件
20、(带有.py 扩展名的文件,称为脚本)。脚本只是文本文件,任何文本编辑器(如记事本)都可用于编写脚本。但是,使用 IDE(如 PythonWin)有很多优点。PythonWin也有一个交互式窗口,可用于执行单行Python代码。此外,PythonWin包含许多特征,可帮助您输入、编辑、检查语法以及调试Python代码。说明:读者可以从网上下载PythonWin及相应版本的Python,并安装到自己的机器上。,以下是实现要素裁剪的Python代码:import arcpy import osarcpy.env.workspace=rE:usaUSAStates.gdbUSAStatesclipF
21、eatures=rE:usaUSAStates.gdbUSAStatesClipPolygonoutWorkspace=rE:usaOutput.gdbclusterTolerance=0.01try:fcs=arcpy.ListFeatureClasses()for fc in fcs:featureClassName=arcpy.ValidateTableName(fc,outWorkspace)outFeatureClass=os.path.join(outWorkspace,featureClassName)if fc os.path.basename(clipFeatures):ar
22、cpy.Clip_analysis(fc,clipFeatures,outFeatureClass,clusterTolerance)except:arcpy.AddMessage(arcpy.GetMessages(2)print arcpy.GetMessages(2),可以保存为一个脚本文件,可以在任意的Python集成编辑环境中编辑、调试。,8.3 通过ArcObjects使用地理处理工具,8.3.1 ArcObjects中地理处理概述,ArcGIS提供的数百个地理处理工具组织在18个工具箱中;在ArcObjects中,每个工具箱对应于一个类库,具体包括:ESRI.ArcGIS.Ana
23、lysisTools、ESRI.ArcGIS.Analyst3DTools、ESRI.ArcGIS.CartographyTools、ESRI.ArcGIS.ConversionTools、ESRI.ArcGIS.CoverageTools、ESRI.ArcGIS.DataInteroperabilityTools、ESRI.ArcGIS.DataManagementTools、ESRI.ArcGIS.EditingTools、ESRI.ArcGIS.GeocodingTools、ESRI.ArcGIS.GeostatisticalAnalystTools、ESRI.ArcGIS.Linear
24、ReferencingTools、ESRI.ArcGIS.MultidimensionTools、ESRI.ArcGIS.NetworkAnalystTools、ESRI.ArcGIS.ParcelFabricTools、ESRI.ArcGIS.SampleTools、ESRI.ArcGIS.SchematicsTools、ESRI.ArcGIS.ServerTools、ESRI.ArcGIS.SpatialAnalystTools、ESRI.ArcGIS.SpatialStatisticsTools、ESRI.ArcGIS.TrackingAnalystTools。通过引用以上程序集,可以在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地理 处理 框架 课件
链接地址:https://www.31ppt.com/p-3778617.html