許輝熙,薛萬蓉,何政偉,張東輝
(1.四川建筑職業(yè)技術(shù)學(xué)院交通與市政工程系測(cè)量工程研究所,四川德陽 618000;2.成都理工大學(xué)數(shù)字國(guó)土與生態(tài)科學(xué)研究所,四川成都 610059)
修建水庫(kù)是水電站建設(shè)的重要內(nèi)容。庫(kù)區(qū)地形開闊,河道縱坡緩,水庫(kù)蓄水量就大,工程效益也較大;反之,若庫(kù)區(qū)地形狹窄,河道縱坡陡,壩雖高,但其蓄水量不一定大。用以反映水庫(kù)地形特征的曲線稱為水庫(kù)特性曲線,分為水庫(kù)水位-面積關(guān)系曲線和水庫(kù)水位-庫(kù)容關(guān)系曲線(簡(jiǎn)稱水庫(kù)面積-庫(kù)容曲線,下同),它們是水庫(kù)的重要技術(shù)指標(biāo),是水庫(kù)規(guī)劃設(shè)計(jì)的重要依據(jù)[1]。
水庫(kù)面積-庫(kù)容曲線計(jì)算,關(guān)鍵在于水庫(kù)庫(kù)容計(jì)算。常用水庫(kù)庫(kù)容計(jì)算方法有兩種[2]:一種是圖上量測(cè);一種是實(shí)地量測(cè)。在圖上量算的方法中又有“等高線法”[3]、“格網(wǎng)法”、“橫斷面法”[4]和“解析法”[5]。 “等高線法”、“格網(wǎng)法”和“橫斷面法”計(jì)算庫(kù)容工作量大,耗時(shí)多,精度較低;“解析法”計(jì)算的精度比前三種方法要高,但算法復(fù)雜,不易實(shí)現(xiàn)。實(shí)地量測(cè)的方法是在庫(kù)區(qū)實(shí)地,采用測(cè)量橫斷面圖的方法進(jìn)行庫(kù)容的量測(cè)計(jì)算,這種方法的精度要高些,但是實(shí)際可操作性不強(qiáng)。GIS技術(shù)的普及應(yīng)用,為水利水電工作者解脫繁重的量算工作、提高工作精度和效率提供了技術(shù)支持。
本文基于數(shù)字高程模型(DEM),提出基于“土地平整法”計(jì)算水庫(kù)面積-庫(kù)容曲線的思想,并通過.NET平臺(tái) C#語言編寫軟件,以期在水電開發(fā)決策的預(yù)可研階段實(shí)現(xiàn)水庫(kù)面積-庫(kù)容曲線的快速計(jì)算,提高決策效率和水平,有利于各項(xiàng)參數(shù)比選,真正做到水電站規(guī)劃的優(yōu)化設(shè)計(jì)。
圖1 “土地平整法”計(jì)算水庫(kù)面積和庫(kù)容的基本原理
“土地平整法”計(jì)算水庫(kù)面積-庫(kù)容曲線的基本原理:將計(jì)算水庫(kù)面積和庫(kù)容視為一項(xiàng)土地平整工程,水庫(kù)面積就是工程設(shè)計(jì)標(biāo)高所在平面面積,水庫(kù)庫(kù)容計(jì)算就是工程土方的填方量,如圖 1所示。
“土地平整法”計(jì)算水庫(kù)面積和庫(kù)容的簡(jiǎn)要過程:將“土地平整區(qū)”(庫(kù)區(qū))微分成許多相同的正方形單元,且認(rèn)為每個(gè)單元表面是水平的,即高程是均一的,而鄰近單元有差異。這樣,單個(gè)柵格單元填方體積實(shí)際就是地面與“土地平整設(shè)計(jì)標(biāo)高線”(即水庫(kù)設(shè)計(jì)水位線)之間構(gòu)成的立方體體積 V=Δh×s,s是微分單元面積,Δh是該單元實(shí)際地面高程與“設(shè)計(jì)標(biāo)高”(即設(shè)計(jì)水位線)之間的差值。將整個(gè)“土地平整區(qū)”(即庫(kù)區(qū))所有微分單元體積求和就是“土地平整工程量”(即庫(kù)容);而所有單元面積之和就是水庫(kù)水面面積。式(1)是水庫(kù)面積和庫(kù)容計(jì)算公式。
式中:a為地面采樣微分單元邊長(zhǎng);h0為某一設(shè)計(jì)水位高程;hi為該設(shè)計(jì)高程以下淹沒的某一單元的高程;n為淹沒單元個(gè)數(shù);V為該設(shè)計(jì)高程的水庫(kù)庫(kù)容;S為該設(shè)計(jì)高程下的水庫(kù)面積。
根據(jù)式(1)可以計(jì)算任意設(shè)計(jì)水位高程 h0對(duì)應(yīng)的水庫(kù)水面 S和水庫(kù)容積 V,進(jìn)而可以繪制水位-面積曲線和水位-庫(kù)容曲線。
但是,和土地平整工程不同之處是,水庫(kù)庫(kù)容計(jì)算“只填不挖”,即只算“填方體積”,不算“挖方體積”,包括庫(kù)區(qū)中的孤島也不能“開挖”。
系統(tǒng)框架結(jié)構(gòu)設(shè)計(jì)見圖2。本系統(tǒng)工作流程為:
(1)對(duì) DEM數(shù)據(jù)進(jìn)行預(yù)處理操作,生成系統(tǒng)易于導(dǎo)入的數(shù)據(jù)集。
(2)導(dǎo)入符合要求的數(shù)據(jù)集,生成一維數(shù)組,將硬盤數(shù)據(jù)導(dǎo)入到計(jì)算機(jī)的內(nèi)存儲(chǔ)器中,以便于算法實(shí)現(xiàn)。
(3)進(jìn)行計(jì)算前的準(zhǔn)備工作,設(shè)置相關(guān)參數(shù),滿足不同數(shù)據(jù)下對(duì)系統(tǒng)計(jì)算的不同需求,這些設(shè)置包括:設(shè)置高程信息、DEM分辨率和高程計(jì)算步長(zhǎng)等。
(4)把事先導(dǎo)入的數(shù)據(jù),通過讀取上述設(shè)置信息,代入數(shù)學(xué)模型中,分別得出水庫(kù)面積和水庫(kù)庫(kù)容計(jì)算結(jié)果。
(5)利用圖形控件,根據(jù)計(jì)算結(jié)果,生成水庫(kù)水位-面積和水庫(kù)水位-庫(kù)容曲線,將所有的原始數(shù)據(jù)、中間設(shè)置數(shù)據(jù)和計(jì)算結(jié)果(包括文本和圖形)都能夠以一定的方式導(dǎo)出到硬盤中,供研究分析使用。
本系統(tǒng)以 DEM(ASCII碼)數(shù)據(jù)為計(jì)算起點(diǎn),以生成水庫(kù)水位-面積和水庫(kù)水位-庫(kù)容曲線為最終目標(biāo),整體功能具有嚴(yán)密的流程,數(shù)據(jù)具有明顯時(shí)序性。鑒于此,本系統(tǒng)的設(shè)計(jì)采用的是流程式架構(gòu),即根據(jù)數(shù)據(jù)運(yùn)算的先后順序來劃分系統(tǒng)模塊。系統(tǒng)的功能總體上分為5個(gè)。
(1)數(shù)據(jù)導(dǎo)入模塊:讀取經(jīng)過預(yù)處理的數(shù)據(jù)文件,并導(dǎo)入到數(shù)組中;
(2)數(shù)據(jù)準(zhǔn)備模塊:進(jìn)行計(jì)算前相關(guān)參數(shù)的設(shè)置等準(zhǔn)備工作;
(3)數(shù)據(jù)計(jì)算模塊:根據(jù)數(shù)學(xué)算法,計(jì)算水庫(kù)面積和水庫(kù)容積;
(4)生成圖形模塊:繪制相關(guān)曲線;
(5)導(dǎo)出數(shù)據(jù)模塊:將中間數(shù)據(jù)以及結(jié)果數(shù)據(jù)進(jìn)行導(dǎo)出。
本系統(tǒng)開發(fā)工具選擇.NET平臺(tái)的 C#語言。C#是.NET平臺(tái)的主流語言,是一種先進(jìn)的、面向?qū)ο蟮恼Z言。通過 C#可以使程序開發(fā)人員快速地建立大范圍的基于 Microsoft網(wǎng)絡(luò)平臺(tái)的應(yīng)用,并且提供大量的開發(fā)工具和服務(wù),幫助開發(fā)人員開發(fā)基于計(jì)算和通信的各種應(yīng)用。C#也可以為 C/C++開發(fā)人員提供快速的開發(fā)手段而不需要犧牲任何 C/C++語言的特點(diǎn)和優(yōu)點(diǎn)。從繼承角度來看,C#在更高層次上重新實(shí)現(xiàn)了 C/C++,熟悉C/C++開發(fā)的人員可以很快地轉(zhuǎn)變?yōu)?C#開發(fā)人員。作為一種全新的語言,C#具有許多新特性,其中主要有自動(dòng)內(nèi)存管理、統(tǒng)一類型系統(tǒng)、版本控制及對(duì)網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)的支持等。
圖2 水庫(kù)面積-庫(kù)容曲線計(jì)算系統(tǒng)框架設(shè)計(jì)
3.1.1 自動(dòng)內(nèi)存管理
.Net運(yùn)行時(shí)(Run Time)提供了一個(gè)無用單元收集器,負(fù)責(zé) C#程序中的內(nèi)存管理。當(dāng)檢測(cè)到過程需要清理時(shí),即調(diào)用無用單元收集器,由其檢測(cè)哪些對(duì)象不可以從代碼中訪問,并將其刪除。
3.1.2 統(tǒng)一類型系統(tǒng)
所有類型都是從 System Object類型派生而來,并且它們都可被當(dāng)作對(duì)象處理。
3.1.3 版本兼容
版本兼容問題起因于多個(gè)應(yīng)用程序都安裝了相同DLL名字的不同版本。.Net平臺(tái)通過使用裝配件 (裝配件是自我描述的安裝單元)對(duì)應(yīng)用程序提供版本支持,使C#可以更好地支持版本控制。
3.1.4 支持網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)
C#的內(nèi)置特性使任何組件可以輕松轉(zhuǎn)化為 XML網(wǎng)絡(luò)服務(wù),被任何操作系統(tǒng)上運(yùn)行的任何程序調(diào)用。
本系統(tǒng)采用的是多級(jí)數(shù)據(jù)控制結(jié)構(gòu),可以在保護(hù)重點(diǎn)數(shù)據(jù)的前提下,利用緩存技術(shù),優(yōu)化文件數(shù)據(jù)的運(yùn)算和存儲(chǔ)方式。數(shù)據(jù)讀取的方式是后臺(tái)處理辦法,一定程度上加速了讀取的速度。表1是系統(tǒng)核心數(shù)據(jù)的定義。
黃河瑪爾擋水電站為西北勘測(cè)設(shè)計(jì)研究院《黃河上游干流多松至爾多河段水電規(guī)劃》推薦 3級(jí)開發(fā)方案中的第 2個(gè)梯級(jí)電站。壩址位于青海省瑪沁縣拉軍鎮(zhèn)上游約 5 km的黃河干流上,左岸為果洛州瑪沁縣,右岸為海南州同德縣,距上游規(guī)劃的寧木特水電站(正常蓄水位 3 410m)約 75 km,距下游規(guī)劃的爾多水電站(正常蓄水位 3 070m)約 33 km。西寧 ~果洛州省道(S101)通過下壩址右壩肩,距西寧市公路里程約 363 km。工程規(guī)模為Ⅰ等大(1)型工程,主要建筑物為1級(jí),次要建筑物為 3級(jí),是一座以發(fā)電為主的大型水電樞紐工程。工程目前處于預(yù)可研階段。
壩址區(qū)地處青藏高原腹地,為典型高原深切峽谷地貌。河谷彎曲,總體西流,深切 200~250m,河道狹窄,水流湍急,多有跌坎,岸坡陡峭,部分直立,基巖裸露較好,河床覆蓋淺,沖溝支流發(fā)育,多常年有水,兩岸高平臺(tái)為黃河高階地侵蝕堆積成因,受局部剝蝕,呈不連續(xù)分布。場(chǎng)內(nèi)勘察工作環(huán)境和條件如氣候(多雨雪、大風(fēng))、交通、供水供電、水上作業(yè)等,極為困難。
以瑪爾擋水電站研究區(qū)格網(wǎng)DEM計(jì)算初擬正常蓄水位3 270m時(shí)的水庫(kù)面積-庫(kù)容曲線為例,說明軟件的使用過程。
(1)DEM數(shù)據(jù)準(zhǔn)備。采用研究區(qū) 1∶10000等高線數(shù)據(jù),在 ArcGIS的 WorkStation工作環(huán)境中,利用 Topogridtool命令生成 2m分辨率格網(wǎng)DEM,根據(jù)水電站水庫(kù)設(shè)計(jì)的下壩址位置和初擬正常蓄水位 3 270m,通過掩膜(mask)處理得到正常蓄水位線以下的 DEM,利用 ArcGIS的“Raster to ASCII”命令將其導(dǎo)出為 ASCII碼(文本文件),刪除文本文件中記錄原數(shù)據(jù)行列號(hào)等信息的頭文件,得到可直接用于本系統(tǒng)計(jì)算水庫(kù)面積和庫(kù)容的數(shù)值文件。
(2)啟動(dòng)系統(tǒng)(圖 3),讀入 DEM文本文件(圖 4)。
(3)輸入設(shè)計(jì)水位線、DEM柵格單元大小和高程計(jì)算步長(zhǎng)(圖 5)。
(4)計(jì)算不同水位時(shí)的水庫(kù)面積(圖 6)。
(5)計(jì)算不同水位時(shí)的水庫(kù)庫(kù)容(圖 7)。
(6)自動(dòng)生成水庫(kù)水位-面積關(guān)系曲線(圖 8)。
(7)自動(dòng)生成水庫(kù)水位-庫(kù)容關(guān)系曲線(圖 9)。
(8)文本、圖片等成果輸出(圖 10)。
圖3 系統(tǒng)啟動(dòng)界面
圖4 讀入 DEM文本數(shù)據(jù)
圖5 設(shè)置計(jì)算參數(shù)
圖6 計(jì)算不同高程的水庫(kù)面積
圖7 計(jì)算不同高程的水庫(kù)庫(kù)容
圖8 自動(dòng)繪制水庫(kù)水位-面積曲線
圖9 自動(dòng)繪制水庫(kù)水位-庫(kù)容曲線
圖10 計(jì)算成果輸出
通過計(jì)算得到的水庫(kù)水位-面積關(guān)系曲線和水庫(kù)水位-庫(kù)容關(guān)系曲線,反映了瑪爾擋水電站的水庫(kù)面積和庫(kù)容隨著蓄水位變化而變化的趨勢(shì),對(duì)水庫(kù)地形特征的展示形象直觀,一目了然。
[1]武鵬林,霍德敏,馬存信,等.水利計(jì)算與水庫(kù)調(diào)度[M].北京:地震出版社,2000
[2]袁勇.基于 DEM庫(kù)容計(jì)算及可視化研究[D].武漢:武漢大學(xué),2004
[3]葉守澤.水文水利計(jì)算[M].北京:水力電力出版社,1992
[4]劉煒,牛占,陳濤.斷面法水庫(kù)庫(kù)容計(jì)算模型的幾何分析[J].人民黃河,2006,28(10):72-74
[5]何習(xí)平.解析法計(jì)算水庫(kù)庫(kù)容[J].南昌水專學(xué)報(bào),1998,17(3):56-61