GP 服务逐步指南:Watershed
文件夹 |
Watershed |
目的 |
在使用 Spatial Analyst 扩展模块的情况下,利用这一基本服务来计算分水岭面。 |
服务 |
StoweBasemap(地图服务),StoweHydro(地理处理服务)。 |
地理处理任务 |
创建分水岭面 |
输入 |
用户在研究区域内数字化的点。 |
输出 |
计算出的分水岭面和一个捕捉的倾泻点。 |
数据 |
此示例将使用 Spatial Analyst 教程中的数字高程数据(栅格)和其他数据。 |
扩展模块 |
Spatial Analyst。 |
对应的文件夹
C:\arcgis\ArcTutor\GP Service Examples\Watershed 包含完整的模型和数据。完成下面的所有步骤后,表明您已经复制了此文件夹的内容。
数据准备
数据
可在 C:\arcgis\ArcTutor\Spatial Analyst 中找到此示例的数据。该数据针对佛蒙特州的斯托镇。此位置的内容如下所示:
创建 toolshare 文件夹
- 启动 ArcCatalog。
- 在所选位置创建名为 Watershed 的新文件夹。在 Watershed 中,创建 ToolData 和 Scratch 文件夹。在 Scratch 中,创建名为 Scratch 的新文件地理数据库。
- 将 C:\arcgis\ArcTutor\Spatial Analyst 文件夹的内容复制到 ToolData。
数据处理
对于此项服务,需要创建四个新的栅格数据集(如下所示)。
- Dem_fill 是使用高程作为输入的填充工具的执行结果。
- Hillshade 是使用 dem_fill 作为输入的山体阴影工具的执行结果。
- Flowdir 是使用 dem_fill 作为输入的流向工具的执行结果。
- Accumulation 是使用 flowdir 作为输入的流量工具的执行结果。
此示例中的模型使用要素集,您需要将点要素类用作要素集方案。在 Stowe.gdb 中,创建名为 PourPoint 的新点要素类。
- 对于坐标系,导入 ToolData 文件夹中现有的任一数据集。
- 使用 xy 容差的默认值和默认配置关键字。
底图
底图包含三个图层:Landuse(landuse 栅格)、Hillshade(hillshade 栅格)和 Roads(Stowe.gdb/roads 要素类)。需要创建一个包含这三个图层的地图文档。将 ArcMap 文档命名为 StoweBasemap.mxd。
Hillshade 图层以 55% 的透明度绘制。要更改透明度,右键单击 Hillshade 图层,选择“属性”,单击显示选项卡,然后更改透明度。
创建并保存 StoweBasemap.mxd 后,将其以地图服务的形式发布到服务器。
- 在目录 窗口中,右键单击 StoweBasemap.mxd,然后单击发布到 ArcGIS Server。
- 在第一个面板中,将服务命名为 StoweBasemap(默认名称)。
- 单击下一步。
- 所需的唯一功能就是制图,所有其他功能对于此项服务来说都是可选的。
- 单击下一步。
- 单击完成。
可以测试 StoweBasemap 服务,方法是以空文档启动 ArcMap,然后通过以下方式来添加该服务:单击“添加数据”,导航到服务器,选择 StoweBasemap。
工具箱和地图文档
- 在 Stowe 文件夹中,创建名为 StoweHydro 的新工具箱。
- 以新文档启动 ArcMap,并将 accumulation 和 flowdir 栅格添加到内容列表,同时分别将图层重命名为 Flow Accumulation 和 Flow Direction。添加之前创建的 PourPoint 要素类。
- 或者,将 PourPoint 的符号系统更改为红色加号,如下所示。
发布的任务将使用 Flow Direction 和 Flow Accumulation 图层,但它们从不向用户显示。因此,这两个图层的符号系统无关紧要。
按如下方法将地理处理临时工作空间环境设置为 Scratch 文件夹:
- 在 ArcMap 中,单击地理处理 > 环境。
- 展开工作空间设置类别。
- 输入之前创建的临时工作空间的路径(如 E:\Watershed\Scratch)。
- 单击确定接受更改。
- 将地图另存为 StoweHydro.mxd。
创建模型
Create Watershed Polygon 模型的输入是用户提供的点。每个输入点的输出是一个分水岭面。此外,使用捕捉倾泻点工具会将用户提供的点捕捉到流量最大的像元。捕捉的点同样也作为输出。
由于这些模型使用地图文档中的图层,所以在 ArcMap 中使用 StoweHydro 地图文档创建这些模型。
Create Watershed Polygon 模型如下图所示:
模型的构建步骤
- 在目录 窗口中,右键单击 StoweHydro 工具箱,然后选择新建 > 模型。
将打开包含空模型的模型构建器。
- 按如下方法创建一个数据类型为要素集的变量:
- 右键单击“模型构建器”画布,然后单击创建变量。
- 选择要素集作为数据类型。
- 单击确定。
- 将变量重命名为 Pour Point。
- 右键单击 Pour Point,然后单击属性。单击数据类型选项卡。在下拉列表中选择 Pour Point 图层,将方案设置为该图层。
- 右键单击 Pour Point,然后单击模型参数。模型参数旁边将出现一个复选标记,Pour Point 变量旁边将出现一个 P。
- 将捕捉倾泻点工具从 ArcToolbox、目录 或搜索 窗口拖动到模型中,以添加该工具。
- 右键单击 Snap Pour Point,然后从捕捉距离参数获取一个变量。
- 双击 Snap Distance,然后将捕捉距离设置为 250 米。并不要求您将 Snap Distance 作为模型变量,但这样做可以使查看该模型的用户能够直观地看到捕捉距离是一个重要的变量。
- 双击 Snap Pour Point,然后将输入栅格参数设置为 Pour Point。将倾泻点字段参数设置为 ObjectID(如果尚未设置)。将输入蓄积栅格数据参数设置为 Flow Accumulation 图层。
- 右键单击 Snap Pour Point,然后单击获取变量 > 从环境 > 处理范围 > 范围,如下图所示。
- 双击 Extent 变量,然后将其设置为“输入的并集”。
- 将 Snap Pour Point 的输出重命名为 Pour Point Raster。这是中间输出,在工具执行完后应被删除。右键单击 Pour Point Raster,然后选中托管。
- 将栅格转点工具添加到模型。双击 Raster To Point,然后将输入栅格参数设置为 Pour Point Raster。将输出点要素参数设置为 %scratchworkspace%\snapped_pour.shp。
- 将 Raster To Point 输出变量重命名为 Output snapped pour point。
- 右键单击 Output snapped pour point,然后使其成为模型参数。
- 将分水岭工具添加到模型,然后对输入流向栅格数据参数使用 Flow Direction 图层。将 Watershed 工具的输出重命名为 Watershed raster。Watershed raster 是中间输出。
- 右键单击 Watershed raster,然后单击托管。
- 将栅格转面工具添加到模型。将输入栅格参数设置为 Watershed raster。将输出面要素参数设置为 %scratchworkspace%\Watershed.shp。
- 将 Raster To Polygon 工具的输出变量重命名为 Output Watershed。
- 右键单击 Output Watershed,然后使其成为模型参数。
- 在“模型构建器”主菜单中,单击模型 > 模型属性。
- 将“名称”设置为 CreateWatershedPolygon。
- 将“标注”设置为 Create Watershed Polygon。
- 选中存储相对路径名。
- 保存并关闭模型。
创建符号系统图层文件
通过下面几个步骤,您将创建用作任务的输出符号系统的图层文件。
- 在目录 窗口中,双击创建分水岭面工具打开其对话框。该对话框将如下所示:(工具对话框中的参数顺序可能有所不同,具体取决于您是按哪种顺序使变量成为模型参数。可在模型工具的属性中更改参数的顺序。)
- 单击“添加要素”()添加倾泻点。用作倾泻点的位置应位于山谷中,而不应该在没有分水岭的山顶上。下图显示了“创建分水岭面”的执行结果:
请注意,在上图中,输出分水岭面用蓝色表示,捕捉的倾泻点用小点表示。(您的符号系统可能会有所不同。)在下列步骤中,您将创建更好的符号系统、将此符号系统另存为图层文件 (.lyr),然后使用这些图层文件定义输出变量的符号系统。
- 打开 snapped_pour 图层的属性,然后将符号设置为红叉。
- 打开 Watershed 图层的属性,然后将填充符号设置为浅蓝色。
- 右键单击 snapped_pour,单击另存为图层文件,然后另存为 Stowe\ToolData\snapped_pour.lyr。
- 右键单击 Watershed,单击另存为图层文件,然后另存为 Stowe\Tooldata\Watershed.lyr。
- 编辑 Create Watershed Polygon 模型。
- 右键单击 Output snapped pour point 变量,然后单击属性。在“属性”对话框中,单击图层符号系统选项卡,然后将符号系统图层设置为 snapped_pour.lyr。
- 对 Output Watershed 变量执行相同的操作,但要将符号系统图层设置为 watershed.lyr。
- 保存并关闭模型。
- 从内容列表中移除现有的 snapped_pour 和 Watershed 图层。
创建工具图层
- 从内容列表中移除 snapped_pour 和 Watershed 图层(如果尚未移除)。
- 要创建工具图层,请将“创建分水岭面”工具拖入 ArcMap 内容列表。如下所示,子图层不一定与工具图层一起显示。如果在创建工具图层时存在工具输出,则显示子图层。
- 右键单击工具图层,然后单击打开。将打开工具对话框。使用要素集控件添加倾泻点,然后运行工具。运行工具后,ArcMap 内容列表中的两个子图层将进行刷新,并使用之前创建的符号系统图层中定义的符号系统。
- 最后,移除 PourPoint 图层,因为已不再需要它。应该先将图层保存为图层文件,以便随后再次使用。
- 将地图另存为 StoweHydro.mxd,然后退出 ArcMap。
发布服务
在上述步骤中,您已发布了 StoweBasemap 地图服务。接下来,您将发布 StoweHydro 地理处理服务。StoweHydro 服务包含“创建分水岭面”任务。
- 在目录 窗口中,导航到服务器,右键单击,然后选择添加新服务。将服务命名为 StoweHydro,然后选择地理处理服务作为类型。
- 单击“下一步”。
- 选择 StoweHydro.mxd 作为地理处理服务的源,如下所示。由于要测试服务,因此请选中显示消息复选框。在生产环境中,最好禁用消息。
- 单击下一步。此后,便可接受向导提供的默认值。
使用服务
- 以空白文档启动 ArcMap。
- 将 StoweBasemap 地图服务从 ArcGIS Server 连接添加到 ArcMap 内容列表。
- 在 ArcGIS Server 连接中展开 StoweHydro 地理处理服务,然后打开“创建分水岭面”工具。
- 使用要素集控件将一个点添加到“创建分水岭面”,然后单击确定运行任务。完成任务后,内容列表将包含两个输出图层,如下图所示:
- 在结果 窗口中检查任务结果,如下所示: