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