ArcGIS 10地学服务(Geoprocessing Services)的实现(一)---等值线在线生成
地学服务通过发布地理处理模型和脚本工具可以创建任务。地学处理的主要目的在于使您能够自动执行GIS任务以及执行空间分析和建模任务。地学处理提供一组丰富的工具和机制来实现工作流的自动化操作,这些工具和机制能够使用模型和脚本将一系列的工具按照一定操作顺序结合在一起,自动处理复杂任务。
在ArcGIS Desktop中,可通过以下两种方法创建地学处理服务:
发布地学处理工具箱。工具箱中的每个工具都将成为地理处理服务中的一个任务。
发布包含地学处理工具图层的ArcMap文档。各工具图层都将成为地学处理服务中的一个任务。
地学处理服务及其任务可以通过公共Internet和私有Intranet访问,并且可以ArcGIS Desktop、ArcGIS Explorer和Web应用程序(如使用ArcGIS Server管理器构建的网站)中使用。在 ArcGIS Desktop 中,可以将地学处理服务作为工具箱添加到 ArcToolbox 窗口中,而任务将成为工具箱中的工具[1]。
本次试验利用ArcGIS Server 10发布Geoprocessing Services,通过调用服务用户可以根据提供的要素集自动处理并生成要素集的等值线,并自动显示。笔者对地学服务的两种创建方法都进行了尝试,认为发布包含地学处理工具图层的ArcMap文档对用户而言更为直观。
一、数据准备
1. ArcGIS对Geoprocessing Services输入、输出的数据有严格的控制,详细情况请参考[2]。
2. 在合适的位置新建文件夹(Contour),在Contour下新建文件夹(ToolData)和(Scratch),下新建一个Scratch数据库。将试验数据存放在ToolData中,Scratch将作为地学处理的临时工作空间(workspace)。
3. 将eqpointIdentityfinal.lyr在ArcMap中保存为Contourbasemap.mxd,作为地图服务发布,地图服务只需有制图(mapping)功能即可。在后续调用GP服务时该地图服务将作为底图。
二、构建模型
本次试验的目的是根据给定的数据自动生成点要素集的等值线。简单说来,由点要素集生成等值线只需两个步骤:对点要素集进行插值,由插值后的栅格数据集生成等值线。模型构建如下:
1.打开ModelBuilder,画布任意地方右单击,选择Create Variable,重命名Input Point,将Data Type设置如下:
关于数据类型如上所述参考[1]
2.在ArcToolbox中搜索插值工具IDW,直接拖曳到ModelBuilder中,将IDW的output重命名IDW output,右单击IDW选择make Variable from Parameter—Z value field,右单击Z value field将其设置为参数,会看到一个字母“P”。双击IDW设置如下:
IDW output是模型的中间数据,在任务执行完后就没有意义了,右单击选择managed(托管),将IDW output存储在…\Contour\Scratch,注意是Scratch不是Scratch.gdb。
3.同样在ArcToolbox中搜索Contour工具,直接拖曳到ModelBuilder中,将Contour的输出重命名Output Contour并设参,双击Output Contour将其输出路径设置为%scratchworkspace%\Contour_Idw.shp,右单击选择Add to Display,右单击Contour选择make Variable from Parameter—Contour interval,并将Contour interval设参。双击Contour,设置如下:
Contour的输出路径可以为以下几个方式:
- %scratchworkspace%/<dataset>
- %scratchworkspace%/scratch.gdb/<dataset>
- in_memory/<dataset>唯一的情况是GP服务没有输出结果。
4.(这一步非常重要)单击模型界面菜单栏的Model,选择Model Properties,设置环境变量输出坐标系和工作空间,如下:
5.在Contour文件夹下新建一个工具箱Contour.tbx,将模型保存到Contour.tbx中。
三、建立地图符号库
1.在ArcMap中打开地图文档Contourbasemap.mxd,打开ArcToolbox并加载自定义工具箱Contour.tbx,双击模型Contour,参数设置如下:
单击OK,执行结果如下图:
2.在Table of Contents中设置等高线的符号,并将Contour_idw1以图层Contour_idw1.lyr保存到ToolData文件夹中。
3.编辑模型,右单击Output Contour,将输出图层符号设置为E:\takeoff\Contour\ToolData\Contour_Idw1.lyr。
四、发布Geoprocessing Services
1.同Contourbasemap.mxd一样将eqpointIdentityfinal.lyr另存为Contour.mxd存放在文件夹Contour中。
2.在ArcMap中打开地图文档,加载工具箱Contour.tbx,将模型Contour直接拖曳到Table of Contents中,设置如步骤3建立符号库一样,将生成的等值线图层一并保存,作为发布GP服务的准 备。生成的等值线图层将作为GP工具发布。
3.地学处理服务的创建方式在文章的开始就已经介绍,本文采用的是发布包含地学处理工具图层的ArcMap文档,即Contour.mxd。服务配置如下:
需要注意的是服务器最大返回值的设置,默认的是1000,本次采用数据有5000多点要素,因此需要修改最大返回值为10000。或者发布服务后,停止服务,修改Service Properties。
五、检验Geoprocessing Services
1.以空白文档打开ArcMap,单击Add Data,由服务器导入地图服务Contourbasemap。
2.打开ArcToolbox,右单击,由服务器添加Geoprocessing Services,即ContourGP。Geoprocessing Services在ArcToolbox显示为工具。
3.双击,在弹出的窗口进行设置,因为创建模型时将Z value和Contour interval设为参数,参数设置如下:
模型中Input Point也可以设置为参数,用户就能提供自己数据(必须是GP服务支持的)生成等高线。执行后的效果如下图:
六、补充
1.IDW:反距离权重插值法。反距离权重插值使用一组采样点的线性权重组合来确定像元值。权重是一种反距离函数。进行插值处理的表面应当是具有局部因变量的表面。此方法假定所映射的变量因受到与其采样位置间的距离的影响而减小。
2. Extend:在使用ArcMap中经常会出现一个低级错误,但是又常常忘记。 Error000824:the tool is not licensed 解决方法就是选中Customize—Extensions选中需要的工具即可。