GP 服务示例:河流网络
文件夹 |
StreamNet |
目的 |
根据流向和流量数据创建河流网络。 |
服务 |
|
地理处理任务 |
Create Stream Network |
输入 |
Minimum upstream drainage area in hectares。 |
输出 |
河流网络 |
数据 |
使用 Spatial Analyst 教程中的数字高程数据(栅格)和其他数据。 |
扩展模块 |
Spatial Analyst |
注释 |
使用结果地图服务绘制网络。 |
对应的文件夹
C:\arcgis\ArcTutor\GP Service Examples\StreamNet 包含完成的模型和数据。
关于 Create Stream Network 任务
Create Stream Network 任务的主要目的是为制图显示生成河流网络。两种结果如下图所示,作为底图使用的是某研究区域(佛蒙特州的斯托镇)的山体阴影。此项服务的意义在于允许用户生成多个不同的网络,然后选择一个满足其制图需求的网络。
该任务创建的是由最小面积定义的河流网络,面积越小,生成的河段越多。每条河段都将根据上游河段数分配一个河网分级值,该值用于确定每条河段的显示线宽。
生成的河段数取决于使用的最小面积。如果输入为 1 公顷,则大约可生成 32,000 条河段。而如果为 45 公顷,大约只生成 600 条河段。
创建地理处理服务时需要做出的决定之一就是确定允许从服务器返回客户端的最大记录和要素数量。默认值为 1,000,您也可将该值增大到数十亿。但在 Web 上传输大量要素既昂贵又缓慢。如果您的任何一项服务可能需要输出大量要素,都应考虑使用结果地图服务创建包含结果的地图,从而使 ArcGIS Server 在 Web 上传输地图而非要素。由于 Create Stream Network 任务生成的河段数量取决于最小流域面积,因此在替换数据时(研究区域的大小和拓扑),在本例中使用的是结果地图服务绘制结果,而不是将要素在 Web 上传输到客户端。
数据
数据
本示例的数据来自 C:\arcgis\ArcTutor\GP Service Examples\Watershed。而该数据又派生自 C:\arcgis\ArcTutor\Spatial Analyst。要了解 Watershed 文件夹中数据如何创建,请参阅分水岭示例。
底图
如下图所示,本例中的底图 StoweHillshade.mxd 只包含一个图层 Hillshade。Hillshade 图层以 55% 的透明度绘制。
StoweHillshade.mxd 将发布为地图服务。
工具箱和地图文档
该地理处理服务的工具箱和源地图文档分别为 StoweStreamNet 和 StoweStreamNet.mxd。StoweStreamNet.mxd 包含两个源数据图层:Flow Direction(flowdir 栅格)和 Flow Accumulation(accumulation 栅格)。
模型
模型概览
Create Stream Network 模型如下图所示。输入变量为 Minimum upstream area in hectares。此变量为双精度型,表示创建河段所需的最小流域面积。面积越小,创建的河段越多。
该模型可计算出输入面积中的栅格像元数,然后使用条件函数工具对 Flow Accumulation 栅格中的每个输入像元执行 if-else 条件评估。由于 Flow Accumulation 栅格中的像元值即为流入该像元的上游像元数,因此上游面积大于中断值的所有像元都会被选中。选中的像元将形成河段,并在输出栅格中分配 1。
河网分级工具可将数字分级值分配给表示线性网络分支的栅格,例如条件函数工具的输出。通常,分级高表示水流量大,因此河流分级也可视为河流宽度的代名词。该模型的输出已经过符号化处理,以便使用较宽的线绘制分级值较高的河段。
栅格河网矢量化工具可将 Stream Order Raster 转换为输出线要素类。此要素类将由结果地图服务使用自身定义的符号系统绘制。
建模的具体过程如下所述。
项目数据
Flow Accumulation 和 Flow Direction 变量是源地图文档 StoweStreamNet.mxd 中的图层。在术语中,这两个变量称为项目数据,因为它们均属于非参数输入数据。
计算最小面积中的像元数
Flow Accumulation 和 Flow Direction 栅格已投影为佛蒙特州平面坐标(使用线性单位米)。像元大小为 30 米 x 30 米。要确定栅格的空间参考和像元大小,可执行以下操作之一:
- 在目录 窗口中,右键单击栅格,然后单击属性。
- 在 ArcMap 内容列表中,右键单击栅格图层,单击属性,然后单击源选项卡。
计算值工具用输入公顷数除以单位为公顷的像元大小(30 米 x 30 米 = 900 平方米 = 0.09 公顷)可得出最小上游面积中的像元数。如下图所示,计算值工具的参数需要使用变量替换。在变量名旁放置百分号 (%),即可将该变量的内容替换为该值。
Minimum upstream area in hectares 变量属于双精度数据类型,创建方法如下所示:
- 右键单击“模型构建器”画布,然后单击创建变量。
- 在创建变量 对话框上选择“双精度”作为数据类型。
- 单击确定。
- 将新创建的变量重命名为 Minimum upstream area in hectares。
- 双击该变量,然后输入默认值。对于斯托镇的面积,45 即为很合理的默认值。
Minimum upstream area in hectares 变量是执行 Calculate Value 的前提条件变量。前提条件变量表示变量中必须包含值,Calculate Value 才能执行。您可按以下方式设置前提条件变量:
- 右键单击 Calculate Value。
- 单击属性。
- 单击前提条件选项卡。
- 选中 Minimum upstream area in hectares。
条件函数使用流程
条件函数工具可对 Flow Accumulation 栅格中的每个输入像元执行 if-else 条件评估。
请注意,表达式需要使用变量替换。在表达式中,值大于最小像元数的所有像元均会被选中。(Flow Accumulation 栅格中像元的值即为流入各个像元的像元数。)
输入条件为真时所取的栅格数据或常量值参数是要向每个所选像元分配的值,它设置为 1。如果要从头开始创建此模型,请执行以下操作:
- 双击 Con 工具。
- 为输入条件为真时所取的栅格数据或常量值参数输入 1。
- 单击确定。
Input true raster or constant value 模型变量将自动创建并连接到 Con 工具。
工具图层
StoweStreamNet.mxd 中的工具图层用于定义结果地图符号系统。下列步骤将介绍如何创建工具图层以及合适的符号系统:
- 在 ArcMap 中将 Create Stream Network 工具从 StoweStreamNet 工具箱拖入 ArcMap 内容列表即可创建 Create Stream Network 工具图层。
- 右键单击 Create Stream Network 工具图层,然后单击打开即可打开该工具的对话框。
- 使用 45(默认值)作为最小面积。
- 单击确定运行工具。请注意,河流网络的默认符号是一条单线。
通过下列步骤中,您可将此符号改为分级线符号。右键单击 Stream Network 子图层,然后单击属性,再单击符号系统选项卡。
- 单击数量类别下的分级符号。
- “值”字段选择 GRID_CODE。
- 单击分类。
- 在分类对话框上选择手动作为分类方法。
- 可将手动分类的中断值设为 100、250、500、750 和 10000。在中断值面板中单击列表中的最后一个值。这样您便可编辑该值。输入上述中断值之一(如 10000)。列表将刷新以使各值重新排列。
继续编辑和设置中断值,直到列表显示为下图所示内容为止。
- 单击确定。
符号系统选项卡此时显示如下。您可能需要单击模板并选择一种合适的蓝色将颜色重设为蓝色。
- 单击确定。
Stream Network 子图层的图例将 GRID_CODE 显示为分类字段,这个名称对于使用服务的用户来说没什么意义。要进行更改,可在图例中单击 GRID_CODE,再按 F2 键,然后将文本更改为描述性更强的内容,例如 Shreve Order 或 Stream Order。
发布
StoweHillshade.mxd 将发布为地图服务。
要将 StoweStreamNet.mxd 发布为包含结果地图服务的地理处理服务,请执行以下操作:
- 在目录 窗口中右键单击 StoweStreamNet.mxd,然后单击发布到 ArcGIS Server。
- 接受所有默认设置。
使用
要使用服务,请启动 ArcMap,然后添加 StoweHillshade 地图服务和 StoweStreamNet 地理处理服务。请勿添加 StoweStreamNet 地图服务,因为它属于结果地图服务,包含与结果无关的 Flow Accumulation 和 Flow Direction 图层。