GP 服务示例:更多河流网络
文件夹 |
StreamNet2 |
目的 |
用户可下载经预先计算的网络或创建自定义网络。 |
服务 |
StoweStreamNetworksBasemap(地图服务)StoweStreamNetworkTasks(地理处理服务)。 |
地理处理任务 |
获取预先计算的河流网络、创建河流网络。 |
输入 |
对于获取预先计算的河流网络任务,用户需输入图层名称。对于创建河流网络,用户需输入最小上游面积(以公顷为单位)。 |
输出 |
河流网络 |
数据 |
此示例将使用 Spatial Analyst 教程中的数字高程数据(栅格)和其他数据。 |
扩展模块 |
Spatial Analyst。 |
注释 |
请按照 GP 分水岭服务示例中的介绍,使用图层符号系统文件 (.lyr) 指示客户端应用程序如何绘制输出河流网络。 |
对应的文件夹
C:\arcgis\ArcTutor\GP Service Examples\StreamNet2 包含完整的模型和数据。
关于本示例
本示例基于在 GP 服务示例:河流网络中创建的“创建河流网络”任务。正如该示例中所述,此任务的主要目的是生成用于制图显示的河流网络,用户可生成多个不同的网络,最终选择一个适合其制图需要的网络。“创建河流网络”任务使用结果地图服务显示结果。
本示例中,河流网络要素将被传输到客户端以进行显示。由于这些要素被传输到客户端应用程序,因此无需使用结果地图服务。此服务包含两个任务,一个是提取预先计算的网络,另一个是创建新的网络。
下图显示的是最终生成的 StoweStreamNetworksBasemap 地图服务内容列表以及 StoweStreamNetworkTasks 地理处理服务中的地理处理任务。
底图服务允许用户查看五个预先计算的网络,面积范围从 10 公顷到 50 公顷。有两种地理处理服务:
- 获取预先计算的河流网络 - 用户选择预先计算的河流网络,且要素将被传输回客户端。
- 创建河流网络 - 用户通过输入上游流域面积创建新的网络。此为 GP 服务示例:河流网络中所介绍的“创建河流网络”任务稍加修改后的形式。
底图
以下显示的是 StoweStreamNetworksBasemap.mxd 的内容列表以及目录 视图中的 StoweStreamNetworkTasks 工具箱。
已使用“预先计算河流网络”模型创建了五个河流网络图层。此模型是一种工具,它不是地理处理服务的组成部分。“预先计算河流网络”与“创建河流网络”相似,但具有以下不同之处:
- 输入变量的名称为 Area。
- accumulation 和 flowdir 栅格数据集变量表示 ToolData 文件夹中的栅格数据集,而不是 ArcMap 内容列表中的图层。这样即可在 ArcMap 内容列表中不具有栅格图层的情况下执行模型。
- Stream Network 变量具有图层符号系统文件。
创建和使用图层符号系统文件的基本步骤如下
- 从目录 窗口运行“预先计算河流网络”模型。新图层即会被添加到 ArcMap 中。
- 右键单击新图层,选择属性,然后单击符号系统选项卡。
- 将符号系统更改为值为 GRID_CODE 的分级符号。使用自然间断点分级法(Jenks) 分类。
- 在内容列表中右键单击图层,然后单击另存为图层文件。保存为 ToolData/Stream Network.lyr 文件
- 编辑“预先计算河流网络”模型。
- 右键单击 Stream Network 输出变量,然后单击属性。
- 在“属性”对话框中,单击图层符号系统选项卡,然后输入上述步骤中创建的图层文件。
模型
StoweStreamNetworkTasks.mxd 的内容如下所示。
此内容列表与 StoweStreamNetworksBasemap.mxd 所具有的预先计算的河流网络图层相同。这些图层的创建步骤如下:
- 将 StoweStreamNetworksBasemap.mxd 中的各个河流网络图层均保存为 ToolData 目录下的图层文件。
- 使用 StoweStreamNetworkTasks.mxd 中的添加数据 将上述步骤中创建的各个图层文件添加到内容列表中。
“获取预先计算的河流网络”模型是用于将要素图层的内容复制到临时工作空间的简单模型。
输入变量 Network to download 属于“要素图层”数据类型。执行任务时,将列出所有基于要素的图层,用户将从中选取一个。(请注意,不会列出栅格图层,因为栅格不是要素。也不会列出工具图层中的任何子图层,因为 ArcGIS Server 将自动从要素图层列表中过滤出所有工具图层及其子图层。)然后,基础要素将被复制到临时工作空间,当传输回客户端时,将使用在 ToolData/Stream Network.lyr 中定义的符号系统绘制这些基础要素。
“创建河流网络”任务与其在 GP 服务示例:河流网络中基本相同,只有如下这个显著差别:输出变量 Stream Network 将其图层符号系统属性设置为 Stream Network.lyr,如下所示。
发布
StoweStreamNetworksBasemap.mxd 将发布为地图服务。
StoweStreamNetworkTasks.mxd 将发布为地理处理服务:
- 在目录 窗口中,导航到您的 GIS 服务器,右键单击,然后选择添加新服务。将服务命名为 StoweStreamNetworkTasks,然后选择地理处理服务作为服务类型。
- 单击下一步。
- 选择 StoweStreamNetworkTasks.mxd 作为服务的源。
- 将服务器返回的最大记录数更改为 10000。您需要更改此项设置,因为不存在结果地图服务而无法绘制结果,并且要素将被传输回客户端。如果将记录数保留为默认的 1000,任何任务都不会返回完整数据集,因为所有任务都将生成 1,000 条以上的记录。
- 出于测试目的,请选中显示消息。
- 单击下一步。从此步骤开始,即可接受向导所提供的默认值。
使用
要使用此服务,请以空白文档启动 ArcMap,然后添加 StoweStreamNetworksBasemap 地图服务和 StoweStreamNetworkTasks 地理处理服务。打开并执行这两项任务。如果未从任一任务获取到结果,可能是因为服务器返回的最大记录数参数未按上述内容设置为较大数值。
使用范围过滤器
可对模型工具参数使用过滤器,这些过滤器用于验证参数值。对于“创建河流网络”,可使用范围过滤器验证最小上游面积(以公顷为单位)参数。如果最小面积小于 5 公顷,将生成数千个河段并生成不可用的输出(至少无法用于制图显示目的)。可使用过滤器禁止处理任何小于 5 公顷的值。
要设置范围过滤器
- 在目录窗口中,右键单击“创建河流网络”工具,然后单击属性。或者,在模型构建器中打开“创建河流网络”后,在模型构建器主菜单中单击模型,然后单击模型属性。
- 在属性对话框中,单击参数选项卡。
- 单击最小上游面积(以公顷为单位)参数中的过滤器单元,然后选择范围。将自动打开范围对话框。
- 在范围对话框中,输入最小值和最大值。
对“创建河流网络”模型进行这一更改后,必须重新启动此服务以使更改生效。
进行这些更改后,每当输入小于 5 的值时,任务将显示错误消息。必须在此服务中选中显示消息以便用户查看消息。