ArcGIS空间数据处理•在ArcGIS空间处理是地理信息的处理过程:数据操作数据ArcGIS空间数据处理模型•ArcGIS的工具是建立复杂处理过程的基础,通过对数据反复使用不同的工具,可以得到新的数据或结果。•把多个步骤中使用的工具连接起来就形成了一个空间数据处理模型,这个模型可以被用来自动执行和完成ArcGIS中的空间数据处理任务。•Arcgis地理处理工具是进行地理数据分析的主要手段•地理数据处理方法复杂,操作步骤多,重复工作耗时耗力Arcgis空间处理工具•支持:工具、命令、模型、脚本空间数据处理方式•在ArcGIStoolbox中运行具有GUI的工具•以命令行的形式运行一个分析工具•生成并运行一个模型,执行一系列的空间处理操作.•编写并运行脚本程序调用空间处理工具(支持VBScript,Python等脚本语言)ArcGISModelBuilder•模型是现实问题的抽象和简化•来源于现实问题的影响因素在模型中以数据的形式呈现•对现实问题的影响因素的处理方法在模型中以工具的形式呈现•研究者的思考在模型中以处理逻辑和流程的形式呈现•最简单的模型ArcGISModelBuilder实现•通过按处理逻辑(流程)把多个处理过程组合到一起从而实现对复杂问题的建模公园选址模型地理模型的用途•自动完成空间数据处理分析、数据管理、转换工作•记录和保存一种处理方法•共享空间处理过程•创建定制的工具,将通用的操作集合到一个工具中地理建模的主要数据处理方法•数据转换:矢量到栅格,采样点空间插值,DEM到栅格•地形分析:坡度、坡向、光照模型•重分类•缓冲区分析•图层叠加分析:权重模式、高级算法模式图层叠加Overlay•将多个图层的信息结合在一个图层中。•矢量图层的复合:相交、合并、剪切•栅格图层的叠加:栅格计算器栅格计算器加权叠加25%25%50%ArcGISModelBuilder•ModelBuilder提供了一个图形化的操作环境,可以在其中创建及修改模型。•类似于图形化(非可视化)的程序设计界面,实现GIS问题的建模•模型输出结果可以加入到ArcMap数据框中•数据或工具可以直接从ArcMap中拖入ModelBuilderModelBuilder:模型参数化•模型中的变量(数据和派生数据)可以参数化,这样做的目的有两个:•可以通过对话框的方式运行模型,就如运行Arctoolbox中的其它分析工具一样;•能够作为子模型用于其它模型中•参数化的模型可以作为子模型用于构造更复杂的模型唯一输入数据的模型AreaWithin100metersofStreams多个输入数据的模型:ParcelsWithinFloodZone多个输出数据的模型ModelBuilder介绍•ModelBuilder界面介绍•如何加入数据•如何加入工具•如何设置参数变量•如何运行和将已完成的工具共享,让其他人使用ModelBuilder界面介绍•启动ModelBuilder•在ArcGIS(Catalog、Map、Globe、Scene)的菜单中选择地理处理菜单下的模型构建器菜单•新建工具,在ToolBox中单击右键,出来右键菜单,在New的子菜单里选ModelModelBuilder界面介绍模型运行过程产生的数据,不删除可能会造成模型因为文件名冲突而不能运行•编辑菜单,依次是剪贴、复制、粘贴和选择所有•视图菜单,自动布局是流程更加美观、各种放大ModelBuilder界面介绍添加数据到模型中选择模型中的数据,工具将数据和工具连接起来运行选中的处理过程或整个模型Page31•加入数据四种方式•adddata按钮•从ArcMap或ArcCatalog从直接拖到模型中•模式界面中右键createvariable•在工具中添加数据•加入工具•从ArcToolBox中拖拽已有的工具,添加到模型中•在ArcToolBox中查找工具方法:概要•创建一个模型•模型概念部分•模型基本元素•模型过程•构建模型部分•添加模型元素•连接模型元素•验证和运行模型•模型的整饰创建一个模型创建一个简单模型关于简单模型的基本问题•组成一个Model的基本元素有什么?•如何根据基本元素一个Model?•如何运行一个Model?Model基本元素模型的基本元素DataVariableDerivedDataValueVariableTools连接线——Data•Data:代表数据流向或执行方向连接线——Environment下一级覆盖上一级连接线——Environment通过模型属性设置可以是常量也可以指向一个变量连接线——Environment连接线——Precondition•前提:用某个变量控制其他工具执行连接线——Feedback•反馈:将结果重新作为输入过程一个过程•过程=工具+变量+连接线•模型的执行以过程为基本单位这些都是过程使用多个过程•多个相关的过程就组成了一个模型添加模型元素添加工具•直接拖拽•AddDataorTool添加变量•所有变量类型工具右键创建空白处右键创建添加变量•数据变量•从CatalogWindow中直接拖拽•使用AddDataorTool演示•添加变量和工具连接模型元素输出结果会默认连好普通GP迭代器ModelOnlyTools连接工具与变量使用连接工具下拉框选择使用连接工具•动态显示可用的参数使用连接工具•根据模型元素类型判断连接线类型演示•连接模型元素在ModelBuilder中运行模型元素的状态模型的验证模型验证做了什么•检查数据源是否有效•检查参数是否有效•检查工具是否有效运行的方式运行单个过程运行所有可运行的过程运行Ready-To-Run的过程在ArcMap检查结果•勾选AddToDisplay使之添加到ArcMap中间数据•用于连接多个过程的中间结果是中间数据•以下情况外都默认设置成中间数据:•已有数据、最终结果、设为参数•在ModelBuilder中运行模型中间数据需要手动删除中间数据的存放位置•人工指定到特定位置•共享后其他人没有相应文件夹或数据库怎么办?•放到ScratchWorkspace下•可指定,通过%scratchworkspace%使用•可以指定到GDB或Foder•共享是他人设置与你不同怎么办?中间数据的存放位置•放到ScratchGDB或ScratchFolder•根据规则生成,在模型中通过%scratchGDB%和%scratchFolder%使用•设置成Managed•Model自行指定合适位置推荐删除中间数据•手动删除中间数据以标准工具方式运行以标准工具方式运行以对话框的方式运行以对话框方式使用模型•将需要的模型变量发布成模型参数•将不需要默认值的变量清空值以对话框方式使用模型•在模型属性中设置参数属性•参数顺序•设置Filter中间数据问题•中间数据会自行删除,无需手动删除ModelBuilder的整饰元素形状更改工具和变量更改连接线空间位置文字标注自由标注和链接标注创建标注的方法标注的显示属性Esri中国技术支持联系方式•网址:•邮箱:support@esrichina.com.cn•热线:400-819-2881•资源中心:定义参数定义参数Page85设置参数1、双击、2、右键打开按Run运行,再次run先删除内部临时数据Page86设置工具参数Page87修改每个节点的名称,右键Rename或则显示属性Page88增加已有的工具,保存当前工具运行工具•蓝色的椭圆表示输入数据,绿色的椭圆表示输出数据,黄色的矩形表示动作(采用哪个工具)•只能从arctoolbox中拖拽工具,可以从ArcCatalog或arcmap拖拽数据•工具是矩形,数据是椭圆,线连接数据和工具,箭头表示方向,所有的工具都有输出ModelBuilder示例•对已有表加字段•创建矩形接幅表•缩编中村级行政区,生成乡级行政区•tin到dem•等高线抽稀(加密度)•ModelBuilder循环的简单列子对已有表加字段任务:给一个表增加两个字段一个是ID,一个是Name,使用AddField在DataManagementTools下创建矩形接幅表任务:创立一个可以指定范围矩形接幅表CreateFishnet和FeatureToPolygon创建1:5万西安80国际标准分幅中央经线为102度,经度范围为101-103,纬度22-24,1:5万经差15分(0.25度),纬差10分(0.16666666度)创建1:5万西安80国际标准分幅行政区融合1、村级行政区,select生成另一个表2、更新行政代码3、融合4、处理碎片建tin到dem在arctoolbox没有createtinfromfeatureclass只能先createtin,后edittin等高线抽稀从20米等高距到50米等高距的(加密,可能需要平滑)Page99循环的列子一个目录下的有很多类似文件,进行循环脚本和Python•脚本语言的特征•在执行时以解释(interpreting)为主的编程语言•特征:松散类型:变量无需定义成指定的类型•无需编译,解释执行•并非系统编程语言为什么在地理处理中使用脚本•和建模一样的优越性:•高效地执行系列任务•阅读和编写简单•容易共享•批处理操作•使用逻辑来控制工具的执行•任务计划•与其它系统有接口•单个文件•任何时刻都可以运行•用户不需要学习一个特定的语言选择脚本语言为什么使用Python•Python易学,因为它的语法清晰简单。•Python支持基于对象的编程,并且更易理解•Python文档简单•复杂的数据结构可以直接在python中工作•有调试的环境•Python可以简单地跟C++和Fortran语言结合。•Python可以无缝地与Java结合在一起•Python是免费的并且被很多人采用。•跨平台•ESRI提供了大量基于Python的例子Python版本•每一个ArcGIS版本都有相对应的Python版本(默认随ArcGIS安装)编写Python脚本•标准代码,导入基本模块,创建地理处理器对象•#Importmodules•importarcgisscripting,sys,os