【摘要】 水库库容是水库调度的重要参数,其精度直接到水库的防洪安全与蓄水兴利。本文介绍了大中型水库容测量与库容计算的方法,论述了水库库容测量合理测图比例尺的选取、具体作业方法;采用ArcGIS建立数字高程模型方式,利用Python脚本文件建立循环,更加快速准确地实现分层库容自动计算和统计。文中给出了Python脚本文件建立循环的实例,对大中型水库库容测量及库容计算有较好的借鉴意义。 
关键词 库容测量 库容计算 数字高程模型 ArcGIS Python 
1 概述 
大中型水库在防洪、灌溉、发电和水产养殖等方面多发挥了巨大的经济与社会效益,而且随着社会经济的发展,它将发挥着越来越重要的作用。水库库容作为当今水利工程施工建设和运行管理中不可忽略的重要参数之一,它是确定装机容量、工程施工量、泄洪量以及水利功能的重要指导依据。在目前的工程项目中,库容计算结果的精确度、可靠度的提高是水利工程事业发展的重要指导,更是对水利工程、水库运行管理决策与整合的技术指导。尤其是在近年来,随着水利事业的兴起和水利功能的发挥,水库容量的重要性日渐突出,已成为衡量大坝安全、提高水库社会经济效益的主要方法。水库在长期运行过程中,受地表径流、洪水以及自然变化和人为活动影响,库区现状的地形、地貌和库容势必发生变化,为了保证水库的安全运行和最大程度地发挥综合效益,定期对库容进行测量和计算,以了解水库淤积情况和水库实际有效库容,已成为当今水库工程中最受重视和关注的问题之一。 
2 库容测量测图比例尺选取 
2.1 测图比例尺的选取 
大中型水库一般多建设在山区,库区的地形主要有河谷和山坡为主。库区地形测图比例尺的选取,不但关系着库容测量和计算的精度,而且关系着外业工作量和直接生产成本。因此,合理的测图比例尺的选取对库容测量具有重要意义。根据本单位几十年水库测量经验,水库在正常蓄水运行十年后,库区地形横断面近似为“U”字型,且非汛期兴利库容最高蓄水位以上部分地形较陡,平面投影面积较小,库区地形淤积变化主要发生在死水库容以下部分以及原河床部位。因此,库容测量的重点在正常蓄水位以下部分,通常大中型水库测量测图比例尺为1:5000和1:10000,根据多年的资料进行库容计算分析对比,1:10000测图比例过小,1:5000测图通过适当加密水下测点密度可以确保库容计算精度。测图比例尺过大对提高库容精度没有明显提高,且会大大提高生产成本和外业工作量。建议选取测图比例为1:5000为宜。 
2.2 基本等高距的选择 
水库库区地形图的基本等高距,应根据水库库区地形特征及满足设计精度的要求来确定。一般来说,库区底部比较平缓,两侧山坡高度变化较大,同时为了提高库容计算精度,基本等高局应为1m,如库区高差变化较小基本等高距可定位0.5m。 
3 库区数字地形测图测量 
3.1 控制测量 
库区水面以上地势较陡,植被茂密,难以架设仪器,采用传统的控制测量方法难以开展。采用GPS布设控制网不但可以提高精度,而且可以大大提高工作效率。以我单位近期施测的梅山水库为例,我们在省测绘局购买了4个平高控制点(平面为C级以上,高程Ⅵ以上)作为起算点,在库区布设了20个D级GPS点,采用高程拟合解算控制点平面位置和高程。 
为了确保高程精度,采用四等水准联测了5个控制点的高程,其余15个控制点采用AHCORS客户端采集了三维坐标并送安徽CORS中心换算了高程,与拟合高程进行了对比,联测点高程误差均在3cm以内,CORS客户端点误差均小于5cm。利用D级GPS网平差前后数据解算库区的七差数用于地形图测绘,控制校核精度均小于7cm。 
3.2 地形数据采集 
要想得到比较准确的库容数据,地形数据采集的方法是关键。特别是特征部位的数据采集决定了DEM模型的质量。
库区水面以下地形数据采集适合采用横断面法观测。应在原有测图上合理设计航线利用 GPS卫星定位系统以实时差分或CORS客户端进行测点平面位置定位,水深采用超声波测深仪进行测量。测量中,测深与平面定位应同时同位进行,以消除滞后误差,在断面形状变换处应特别注意加密了测点,真实地反映地形变化的实际情况。 
由于库区平面形态比较复杂,水面以下地形数据采用横断面法还难以真实反映库区地形平面凹凸变化情况。因此,应顺施测时水位淹没线布设2~3条纵向航线,这样能够比较完整地反映库区水面以下地形情况。 
库区水面以上地形采用CORS客户端或GPS RTK法进行数据采集比较方便快捷。但是,由于库区植被比较茂密,有时GPS难以固定,应辅以全站仪进行局部补充测量。如遇斜坡、陡坎、石崖等地形,在坎上、坎下成对测点,以保证等高线生成的精度。 
有条件的情况下,库区水面以下采用多波速测声系统进行水下地形扫测,将获得更加完整的面状DEM数据,能够大大提高库容计算的精度。 
3.3 绘制数字地形图 
将外业采集的数据采用专用成图软件(如CASS)进行展点,绘制地物、地貌,建立三角网DEM,由软件自动绘制等高线。在此基础上,根据实际地形和地貌变化情况,对自动生成的等高线进行合理编辑、修改。为了提高库容计算精度,在出图之前生成的等高线尽量不要修剪,即使遇到斜坡、陡坎、石崖、房屋、建筑物等地形、地物也要使等高线均匀穿越,这样可以提高ArcGIS中建模的精度和合理性。   4 水库库容计算 
 4.1 传统计算方法 
传统库容计算主要采用等高线的台锥体公式和断面测量法。等高线法计算时是假定两等高线之间体积变化是线形性,对于两高程之间的地形起伏无法精确反映,特别对地势较为平坦地区,计算结果误差较大。要提高计算精确度就必须加密等高线,这将大大增加成图的难度。 
断面法库容计算主要是在库区设定相互平行的断面,要求断面间的地形变化较为均匀,呈现线性,而且计算时针对不同高程的库容计算极其繁锁。当库区地形复杂,库区支流纵多时,计算精度将难以保证。 
4.2编辑构建高程模型数据 
ArcMap下的3D Analyst工具能满足地形建模的需要,数字高程模型构建的效率很高,但构建时为全自动。目前的成图软件大多是基于AutoCAD平台下开发的,ArcMap下能够加载AutoCAD图形和数据。因此,只要将编辑好的库区数字地形图,按图层将等高线和高程点输出,导入ArcMap中就能建立数字高程模型。 
4.3 建立数字高程模型 
将等高线和高程点数据导入ArcMap中,并导出生成“*.Shp”文件,利用3D Analyst工具中的创建TIN工具将“*.Shp”文件创建TIN文件。TIN文件为由三角网构成的数值高程模型,根据实际情况对三角网进行修改,使数字高程模型更加合理。为了进一步精化模型,可以将TIN文件转化成栅格高程数字模型,栅格大小可以任意设置。 
4.4 库容计算 
采用3D Analyst工具中功能性表面模块中的表面体积工具,利用TIN文件或栅格高程数字模型可以快速地计算出你所需要对应水位或高程的水库库容,输出内容包括对应水位或高程的水面面积、水面以下的曲面面积和水体体积。 
但是库容计算往往要求计算不同水位的库容,防汛调度上更是要求每0.01m的分层库容,这样一个一个的计算很麻烦,不但时间长且容易出错。利用脚本文件能很容易地解决这个问题。 
4.5 Python脚本文件建立循环 
ArcGIS中的许多任务多可以通过脚本程序模型辅助完成。Python脚本文件的主要目的是使枯燥的数据处理工作自动化,通过逻辑来指挥处理过程。你所能用的ArcToolbox或Model中使用的工具都能够用在Python脚本中,这些脚本可以生成脚本工具,像其他地理处理工具一样使用。 
下面就是一个编写脚本文件来自动循环完成整个库容计算的实例: 
#导入ArcPy 
import arcpy 
from arcpy import env 
import os 
#设置输入输出工作空间 
arcpy.CheckOutExtension("3D") 
env.workspace = "c:/梅山水库" 
import math 
#循环获取计算库容的水位 
for i in range (76,128): 
mgs = str(i) 
#设置输出文件名称 
dl = str(i) + ".txt" 
#对应水位库容计算 
arcpy.SurfaceVolume_3d("2013t",dl, "below", mgs , "1", "5") 
脚本文件可在记事本等文本工具中编写,将编写好的脚本文件另存文“*.py”,在ArcMap中你的工作目录下新建工具箱,然后右键点取在工具箱添加文件名为“*.py”的脚本文件。添加完毕后直接双击脚本文件开始运行,运行完毕得到完整的库容。也可在ArcToolbox中直接添加脚本文件。 
 5 总结 
本文根据多年水库库容测量和库容计算的经验,结合近年安徽省梅山水库库容测量的具体实践,从大中型水库库容测量测图比例尺的选取、控制测量、地形数据的采集方法等方面进行了论述。利用ArcGIS和Python脚本文件能够快速准确地计算库区完整的库容,可为同类型水库的测量计算提供参考。同时,建议大中型水库库容测量时,尽量选在水库蓄水水位高、库区植被树叶比较稀少的季节,可以大大减少外业工作量。 
参考文献 
1 牟乃夏,刘文宝,王海银,戴洪磊.ArcGIS10地理信息系统教程.测绘出版社.2012(9) 
2 澎寿涛,张金山.GIS软件计算蓄洪区库容初探[J].治淮.2004(10):37-38 
3 张宗德,王卫平,张亚群,陆桂华. GPS在水库库容测量中的应用[J]. 河海大学学报.1999(01):31-33