河流水质动态分段精细化制图

  通过ArcGIS可以制作水环境专题图,以可视化的方式表达,揭示不同区域的水环境状况,反映水体环境质量在空间上的变化趋势,对水环境的科学管理具有非常重要的意义,下面就来介绍河流水质动态分段精细化制图的方法和流程。
  河流水质的动态分段主要应用桌面的线性参考工具,处理的是线状河流数据,核心是通过自动化的GP工具动态计算通过线状河流构建的路径事件表中存储事件的地图位置的属性值,通过“创建路径事件图层”工具将路径事件表与河流线状路径要素相关联生成最终的动态分段图层,应用预先设置的符号渲染模板就可以实现渐变的分段效果。

  基础数据准备

  1、水质监测点要素数据(monitorsitepoint)

  2、线状河流要素数据(riverpolyline)

  说明:

  1、为了后续制图工作,需要检查水质监测点与线状河流的拓扑关系,保证水质监测点位于线状河流之上。

  2、为了实现随监测数据更新,水质制图结果也动态更新,需要把结果数据存储在企业级数据库中,并发布要素服务。

  制图过程主要用到的ArcGIS系统工具如下:

  • 几何网络工具(Data Management/Geometric Network)
  • 线性参考工具集(Linear Referencing Tools)

  制图流程:

  河流水质的动态分段制图流程如下图所示,在初始完成河流网络构建、河流汇点与监测点的上下游关系确认、路径创建等工作之后,可以通过GP脚本工具实现随水质监测数据变化,动态更新制图结果。
动态分段制图流程

1、Intersect生成河流交汇点

  1)利用“相交(Intersect)”工具生成线状河流的交汇点,输入为线状河流要素数据,注意输出类型为点。
这里写图片描述

  2)利用“追加(Append)”工具,将上述生成的河流交汇点追加到水质监测点要素类中。
这里写图片描述

  3)确定水质监测点要素类中所有点要素的唯一标识字段myid,保证值唯一。设置新增的河流交汇点的监测数值val默认为0,在水质监测点要素类中增加一个parentid字段,代表所有未知数值河流交汇点的最近上游监测点或者汇点的标识ID,如下图所示。
这里写图片描述

2、构建几何网络确定交汇点的上游监测点

  根据河流流向指定汇点,采用“创建几何网络(Create Geometric Network)”工具,用汇点和线状河流要素类(riverpolyline)构建有向几何网络,如下图所示可以通过追踪上游网络,从而确定水质监测点要素类中所有河流交汇点的最近上游监测点或者汇点的标识ID信息。
这里写图片描述
  将最近上游监测点或者汇点的标识ID信息,输入如下图所示parentid字段中。
这里写图片描述

3、计算河流交汇点水质数值

  通过GP工具,根据一定的算法,自动计算出上述所有交汇点的水质数值val。每次监测点的数据发生变化,都可以通过GP工具进行河流交汇点的水质数值自动更新。
这里写图片描述

4、用监测点与河流交汇点打断河流

  利用“在点处分割线(Split Line at Point)”工具,用水质监测点要素类将线状河流要素类(riverpolyline)打断,生成新的线状要素类(riverpolylinesplit),根据点的位置设置搜索半径范围。
这里写图片描述

5、创建路径

  1)利用“空间连接(Spatial Join)”工具,将打断的线状河流要素类(riverpolylinesplit)与水质监测点要素类进行连接,目标要素设置为打断的线状河流要素类,选择JOIN_ONE_TO_ONE的连接模式。
这里写图片描述
  2)在空间连接生成的结果要素类(riverspatialjoinone2one)中添加字段“Length”,类型为短整型,在Length字段名右键“计算字段”,将所有Length值均设为100,以100作为后续“创建路径”的参考。增加字段“startx”、“starty”、“endx”、“endy”四个字段,用“Calculate Geomerty”计算线段起点X、Y和线段终点X、Y值。
这里写图片描述
  3)利用“创建路径(Create Routes)”工具创建路径,输出路径要素类river_createroute。
这里写图片描述

  参数说明如下:

  输入线要素:上述空间连接生成的结果要素类(riverspatialjoinone2one)。

  路径标识字段:生成的riverspatialjoinone2one要素中,通过“Target FID”用来代表每一段河流。

  “Measure_Source(测量源)”:指定获取输出路径测量值的选项,这里选择用字段值ONE_FIELD作为路径测量值。

  “From-Measure Field(测量始于)”:选择连接生成的结果要素类中的“Length”字段。

  “Coordinate Priority(坐标优先级)”:选择动态分段的起始方向,如1-100,还是100-1,选择左上角“UPPER_LEFT”作为优先级最高的方向。如下图所示,生成的路径中各节点的顺序为从左到右。
这里写图片描述

6、创建路径事件表

  路径事件表至少具有两个字段:路径标识符和测量位置字段。
可以在Catalog中创建路径事件table表,对于每段河流分成100份,包括字段如下:
这里写图片描述
  字段说明如下:

  “TARGET_FID”:代表对应每段河流唯一标识ID值(用监测点打断后的每一段河流)。

  “num”:将每段河流分成100段时,代表第N段的序列号。

  “val_start”,“val_end”:代表每一段河流的起始节点和终止节点的水质数值。

  “VAL”:代表计算后100段的每一小段水质级别值,计算方法采用“VAL”=“val_start”+(”val_end”-“val_start”)/100*“num”。

  “M_beg”,“M_end”:每一小段河流的起始和终止标识点,作为测量位置字段,如某段河流按照路径方向的第一段,起始位置标识为0,终止位置标识为1,第二段的起始位置标识为1,终止位置标识为2。

  可以通过GP脚本工具,自动计算除“TARGET_FID”、“num”之外的字段值。思路为通过空间连接生成的结果要素类(riverspatialjoinone2one)按照线段起点终点坐标与水质监测点要素的坐标连接,获取到每段河流的起始节点和终止节点的水质数值“val_start”,“val_end”,然后计算每一小段的值“VAL”。

7、创建路径事件图层

  1)利用“创建路径事件图层(Make Route Event Layer)”工具生成路径事件图层,通过Append工具可以把生成的临时路径事件图层追加到最终结果的路径事件要素类中。
这里写图片描述
  2)采用分级渲染方式,针对输出的路径事件要素类进行渲染,并保存为mxd模板,发布要素服务。
这里写图片描述
  后续,会与大家分享怎么通过GP脚本工具实现动态分段数据的动态更新,敬请期待。

  想了解ArcGIS最新的技术动态和环保最新的应用,请关注微信公众号“环保GIS技术与应用”
这里写图片描述

猜你喜欢

转载自blog.csdn.net/liuniu1101/article/details/80604831