基于GIS的断面法高效水库库容计算方法
2021-11-29王元超
王元超
(中国电建集团西北勘测设计研究院有限公司,西安 710065)
0 前 言
水库库容是水利水电工程设计和运营管理的重要参数[1]。进行库区泥沙冲淤变化、库岸变化、库容变化等监测,可为电站优化水库调度运行方式提供依据。在实际应用中,通常要对同一水域计算不同水位对应的库容。常用水库库容计算方法有数字高程模型(DEM)法、等高线法、断面法、方格网法等[2]。若已知水下地形的点云数据或者数字线划图等方便生成DEM的数据,优先选取DEM法。DEM法虽适用于任何情形的水下地形,但受数据源、施工设计阶段、工期、成本等因素限制,断面法仍有较多应用。断面法是一种常规的计算方法,主要适用于典型的河槽式河流[3]。其计算原理决定了它在库容计算时会有一定程度的精度损失[4],但仍可作为重要的参考依据。
AutoCAD作为绘图工具,用户界面良好,可通过交互菜单或命令行方式便可以进行各种操作,但其统计功能较弱。GIS的最大优势就是空间分析,如实现不同图层的叠加分析,使用空间关系连接不同要素的属性信息,使用字段挂接属性表等功能。GIS数据包含图形数据和属性数据两部分,不仅表达空间实体的位置和几何形状,同时记录空间实体对应的属性。Excel是大家常用的办公软件,主要用于对数据的处理、统计分析与计算、简单的数据库管理以及绘制图表等功能,还能利用Visual Basic for Application(VBA)语言开发面向特定应用的程序。Excel既可处理文字信息如数据透视表,也可整理数据信息,如:进行方差分析、回归等。
传统的实现方法中,断面法中的面积参数需通过多次量测,针对不同高程的库容计算繁琐,效率较低[5]。本文充分利用GIS的空间叠加分析、属性表连接、CAD辅助制图、Excel快速编辑及统计,根据断面法原理提出数据处理方法,并通过水库库容计算案例验证,实现了断面法水库库容的高效计算。
1 断面法计算库容方法
1.1 原 理
断面法是沿河道布设一系列垂直于河道的横断面,将河道分割为n段,计算出每个横断面的面积s,根据相邻两断面的面积及间距d,算出每相邻两断面间的体积,然后各体积求和,得出该处水域的库容量[6-7]。
测量中断面法常用的库容计算公式有2种:梯形公式和截锥公式。
梯形公式,又叫一般计算公式,具体公式为:
(1)
截锥公式,称之为严密计算公式,具体公式为:
(2)
式中:V为库容,m3;di为第i个断面到第i+1个断面间的距离,m;n为分段个数;Si为第i个断面的面积,m2。
断面法主要是根据沿水库河道布设代表性的横断面,通过测量横断面面积和断面间的距离来计算库容的一种方法,其精度与断面布设的间距、方向及断面的代表性相关。不同工程阶段、流域的不同部位对断面的测量比例尺和断面间距要求不一样,断面的布设越合理,计算的结果越精确。尤其在河流弯曲多、比降大、两岸经济价值较高、地物多的地方,其横断面应加密。一般来说,无论在哪个阶段,横断面的测量比例应不低于1∶2000,断面间距应能正确反映地表形状、地物的变化。在不同的工程阶段和测区条件(回水段、平水段、山区段、平原段等)下也不一样。具体可见NB/T 35029-2014《水电工程测量规范》[8]。
1.2 技术方案
断面法计算水库库容的重点是过水面积的计算。通常情况下,同一处水域需要计算多个甚至数百个水位高程下的库容,横断面也有几十条,逐一计算所有横断面在每个水位下的面积值,工作量巨大。本文采用解析几何法获取断面面积,利用GIS的空间叠加分析、属性表连接等功能,同时借助CAD辅助制图、Excel快速统计等功能实现断面法库容的批量高效计算,技术流程如图1。
图1 技术流程图
2 计算关键点
2.1 断面表格的整理
2.1.1横断面表格的整理
横断面成果表中通常都包含累距和高程2个属性[8],将其进行编辑,目的是一次性绘制出所有横断面线,且所有横断面线依次水平排列。以一种横断面表格格式为例,说明编辑方法。为方便读者更好地理解整理思路,采用VBA实现格式的快速整理,效果及实现代码见图2(为更清楚地显示断面表格格式,对部分行进行了隐藏)。也可直接通过编辑公式实现格式的快速整理。
横断面测量成果表上有累距和高程2列,且每条横断面的累距值都是从0开始。为便于后期叠加分析,需将断面平铺开,操作如下:第1条横断面的累距列和高程列直接组合成(x,y)格式;第2条横断面的累距列统一加1个常数值a(说明:a值定义为上1条断面的累距最大值加一固定的大于0的偏移常数),和高程列组合成(x,y)坐标格式;以此类推,依次完成所有断面的编辑。不加常数进行制图的效果如图3(a),加常数调整后的效果如图3(b),可见,调整后的断面条理性和清晰度更强。
图2 断面格式及VBA实现编辑的方法图
图3 横断面展绘图
2.1.2纵断面的整理
断面法计算库容有一个重要的参数d,即相邻两断面间的间距。我们只需要将纵断面成果中的横断面号及累距稍作整理成如图4所显示的格式。
图4 纵断面整理格式效果图
2.2 相关水位线的整理
由于计算库容的水位高程值通常较多,有规律的数值多使用快捷方式,对于特殊值手动插入,具体实现可根据个人习惯灵活改变。将涉及的所有水位按从高到低的顺序编辑好后添加序号列属性,值得注意的是序号的顺序最终呈现的是反向排序,目的是便于后期高程属性的挂接。同时,添加命令列,以C2为例,公式为“=”pline 0,“&B2&” 6500,“&B2&” “”,结果如图5显示。需要强调的是,6500为比最后一个断面累距略大的值,图1使用提示框进行了概略提示,也可手动翻到最后一条记录进行查看为清晰的展示图片,笔者只是代表性的计算几个水位高程对应的库容。此表中的“序号”用于2.5节中属性挂接的连接字段。
2.3 CAD环境成图
复制断面表格调整后的一列数据,对应图2中的F列,粘贴到CAD命令行,即可一次性按顺序绘制出所有断面线。复制图5命令行对应的内容,一次性实现所有相关水位高程的水平线。3根辅助线分别是把最低的水位线向下偏移任意值,确保和所有断面线不相交。再将水平线的两边用线封闭。效果如图6(为更好地展示效果,以两条断面为例,加粗线为辅助线)。
图5 相关水位高程图
图6 CAD制图效果图
2.4 GIS构面赋属性值
使用断面线和计算时所用的最高水位线进行“要素转面”操作,生成的面中无断面号或者断面顺序等属性,可使用“识别”工具将断面线中的属性信息进行连接。
“构面2”添加的“高程”字段值可通过字段连接(图5的“序号”列和系统生成的ID字段连接)将高程值赋予各面。赋值后标注系统ID字段和高程值显示如图7所示,可以看到ID值和图5的序号列值一致。通过显示能够观察到,若要获取某一水位高程以下的面积,可以通过几个面斑块面积的累加获得。
图7 含高程标注图
2.5 GIS叠加分析
使用“相交”工具将2.4节中的2个面叠加分析,那么相交部分同时拥有“断面顺序”和“水位高程”属性,便于后期统计分析。对处理后的图层标注高程和断面顺序进行显示,效果如图8。可以看到经过相交处理的图斑同时具有2个图层的信息。
图8 相交处理效果图
2.6 Excel计算断面面积
由于直接构面计算的面积是各个分段的面积,使用数据透视表功能将表格快速整理成列是高程,行是断面顺序的格式,得出各分段对应的面积,截取部分统计结果如图9。在该表格的基础上使用简单的公式编辑快速地批量计算各水平面以下的断面总截面积,效果如图10。
图9 透视表统计各分段断面面积效果图
图10 各水平面以下的断面总截面积效果图
2.7 Excel计算库容
在2.6计算的断面面积基础上,将断面的间距粘贴到第一行,编辑公式快速求取库容,效果如图11,以截锥公式(2)为例,单元格R3对应公式为“(B3+C3+SQRT(B3*C3))*C$1/3”,单元格AF3对应公式为“SUM(R3∶AE3)”。整个过程只需编辑R3、AF3公式,其他均可自动填充),此处需要注意的重点是使用表格编辑右下角十字进行自动填充公式时一定要固定常数,即两相邻断面的距离。最后按要求整理成目标表格,进行曲线图绘制等。
图11 库容计算结果图
3 实例验证
为验证文中提出实现方法的可操作性,选取云南某水电站库区为例进行计算。该库区属峡谷地貌,两岸山坡坡度较陡,主河道长约20 km,支沟长度约为7 km,库区既有实测断面数据,沿主河道布置43条横断面,支沟布置了12条横断面,同时有1∶2000的地形图数据。采用公式(2)进行了断面法库容计算,计算水位高程从1 260.00~1 310.00 m,步长为2.00 m,水库死水位1 303.00 m、正常蓄水位1 307.00 m、校核洪水位1 309.50 m。同时,为验证该方法计算结果的可靠性,使用该库区实测的地形图数据采用DEM法(原理见文献[9])进行了对比验证。
表1 断面法与DEM法在特定水位下库容计算结果对比表
图12 断面法与DEM法水位-库容关系示意图
图12显示了本次断面法与DEM法库容计算对比,水库水位大约在1 280.00 m以下库容值较接近,表1统计显示了特定水位处的库容结果,较差占比都在3%左右,文中共计算25个水位的库容值,整体较差较小,说明该库区断面的选取合理,库容计算结果可靠。合理确定断面的取向及间距是提高库容计算精度的关键。若在规划阶段,没有全区大比例尺地形数据时,可使用相对少量的断面数据,采用本文提出的计算方法快速实现不同水位的库容计算。
4 结 语
本文介绍的实现方法中,在CAD辅助制图环节有2点需要注意:第一,断面线和其他线分层绘制,便于通过属性选择批量输出成GIS格式;第二,要注意线的绘制顺序,该绘制顺序影响格式转换后GIS要素类属性表中的系统ID字段值,是后期批量赋值和属性连接的关键所在。同时注意横断面表格的数据整理需要根据不同的断面模板进行灵活调整,目的是整理成便于CAD制图的“累距,高程”的坐标格式。该库容计算方法可通过发挥不同软件的优势,在无需编程的情况下,实现库容的批量高效计算。本文结合样例数据演示了分步实现过程,最后又通过具体的实例数据验证了计算结果的可靠性,在以后的工作中可将数据的计算整理过程利用VBA、C++等语言进行汇编封装。