- 相關推薦
淺析數據庫技術在海河流域水資源綜合規劃中的應用
論文關鍵詞:數據庫技術;水資源規劃;供需分析;海河流域
論文摘要:海河流域水資源綜合規劃采用水資源系統配置模擬模型對全流域進行了長系列的供需分析,生成了近2萬行供需平衡數據。如果采用常規手工分析方法進行供需分析,難于適應規劃的進度和精度要求。介紹如何利用Foxpro數據庫系統提供的強大數據處理功能,實現供需平衡數據的統計分析和輸出,并給出了實用的程序片段,不僅對提高水資源規劃工作效率有所幫助,而且其思路和方法對其他專業規劃也具有一定的參考價值。
1引言
海河委員會在水資源綜合規劃中委托中國水科院水資源所開發研制了海河流域水資源系統配置模型,配置模型以水資源三級區套地市作為基本計算分區,同時又根據規劃精度的要求對分區作了進一步細化,共劃分107個計算單元。利用配置模型對全流域進行了長系列的供需分析.生成了基準年、2010、2020和2030年4個規劃水平年107個計算單元45年的供需平衡數據,不僅數據量大,而且方案反復調整,十分煩瑣,若采用常規手工統計分析方法,對計算單元供需平衡數據按不同分區進行各種頻率的供需分析,難于適應規劃的進度和精度要求。運用Foxpro數據庫系統提供的強大數據處理功能.基本實現了不同水資源分區供需分析長系列成果生成、均值統計、各種保證率成果確定、大型調水工程不同保證率供水量統計及最終成果表編制等工作的程序化,極大地提高了工作效率。
2建立基礎數據庫
水資源配置模型運行后導出的供需平衡數據為包含107個計算單元的1956-2000年的系列數據.文件數據格式既可選擇Excel表格,也可選擇以Tab為分隔的數據文件.表格基本格式見表1(僅列部分字段)。
Foxpro數據庫系統具有直接導入以上兩種數據格式文件并生成相應數據庫的功能。以Tba分隔數據文件為例,如水資源配置模型導出文件名為balance.dat則導入并建立數據庫的程序為:
use單元供需分析.dbf
delel all
pack
append from balance.Dat type delimited with tab
其中,“單元供需分析.dbf”為事先建立.其字段為與balance.dat相一致的數據庫文件。
按水資源綜合規劃要求.供需分析成果以省級區套水資源二級區(以下簡稱省套二級區)為單元.保證率主要根據統計單元的降水頻率確定。因此.需建立一個以省套二級區為統計單元的長系列降水量數據庫“降水排序.dbf”.字段包括:年份、二級區碼、省級碼、降水量和降水排序(降水量降序排列號)5個字段,其中年份為1956-2000年。
為了簡化統計分析的程序代碼,構建了一個貯存省級行政區及二級區組合碼的數據庫“省套二級區編碼.dbf'’,數據庫記錄包括了海河流域省級行政區與二級區的所有可能組合.海河流域有l6個省套二級區,因此共有l6個記錄。字段包括:wt_code(二級區碼)、pry_code(省級碼)、wt_na(二級區名稱)、plv_na(省級區名稱)4個字段。
3數據庫記錄編碼
供需平衡數據的統計分析,主要以計算單元編碼作為統計區域分類的線索,選擇合適的編碼方式和規則尤為重要。以字母和數據構成的編碼具有簡潔、便于重新組合的優點。在海河流域水資源配置模型中,計算單元編碼由1個字母和l5個數字組成,其中前3位代表水資源二級區,如C02為海河北系;前7位代表水資源三級區,如C010100為灤河山區;8~9位為省級行政區,如l3為河北省;而第l0位以后的編碼為地市級行政區等信息。
對計算單元供需平衡數據按不同分區要求進行統計分析的操作,實際上是對數據庫記錄(行)進行分類、合并、排序、提取的過程。為了達到分類合并的目的,在“單元供需分析.dbf”數據庫中增加了1個“組合碼”字段,用于存儲重新分類統計的組合編碼。
4供需平衡數據的分析
為了生成省套二級區的供需分析長系列成果,并進行各種頻率的供需分析,首先需對“單元供需分析.dbf”數據庫中的每個記錄進行分類,如哪些記錄屬于海河北系河北省1956年的數據?通過提取單元編碼中代表二級區及省級區的編碼,并與年份進行組合,即可形成不同年份省套二級區的組合碼,將其存人數據庫的組合碼字段,為同類合并(相加)創造了條件。數據庫系統對已索引或排序的數據庫提供了方便的同類合并功能,以下程序片段,輕而易舉地完成了省套二級區供需分析長系列數據的整理工作。
use單元供需分析.dbf
copy all to temp.dbf
use temp.dbf
repl all組合碼with yearl+substr(code0,1,3)+substr(code0,8,2)1
index on組合碼to ch_code
total on組合碼to省套二級區系列.dbf
其中:temp.dbf為臨時數據庫,是“單元供需分析.dbf”數據庫的復制文件.對其進行操作可避免改變原有數據庫:yearl和code0分別為年份和單元編碼字段。
在數據庫系統的工作區1打開先前建立的“省套二級區編碼.dbf”,并保持打開狀態。在工作區2反復打開或關閉用于查找不同降水頻率對應年份的“降水排序.dbf”、用于提取不同保證率供需平衡數據的“省套二級區系列.dbf”及存儲統計分析結果的“省套二級區供需分析.dbf”,并進行數據的統計、復制、添加、分區名稱及保證率的填寫等操作。以工作區1第1個記錄(第一個省套二級區)為起始,提取省套二級區信息,利用do while not eofO循環語句。在兩個工作區之間來回變換,進行重復的統計分析操作,直到完成最后一個省套二級區的統計分析。程序片段(僅以50%保證率和平均值統計為例)如下:
sele1 &&選擇工作區1
use省套二級區編碼.dbf
do while not eof0 &&循環開始
prv_nal=prv_na &&提取要統計的省級區名
wt_na1=wt_na &&提取要統計的二級區名
prv_codel=pry_code &&提取要統計的省級區編碼
wt_codel=wt_code &&提取要統計的二級區編碼
sele2 &&選擇工作區2
use降水排頻.Dbf &&在排頻文件中找到年份
locate for省級碼=prv_codel and二級區碼=wt_codel and降水排序=23
year50=年份
use省套二級區系列.Dbf &&在數據庫中提取對應省套二級區和頻率的記錄
Locate for substr(code0,1,3)=wt_code1and substr(code0,8,2)=prv_codel and year0=year50
Copy next 1 to tmp50.dbf
average all城鎮需水to城鎮需水1 for substr(code0,1,3)=wt_codel and substr(code0,8,2)=pry_codel
…
use省套二級區供需分析表.dbf
append from tmp50.dbf
repl name0 with pry_nal
repl code0 with wt_nal
repl ch_code with“50%”
append blank
repl ch_code with“多年平均”
repl城鎮需水with城鎮需水1
…
sele 1
skip &&工作區1記錄指針加1
enddo &&循環結束語句
close all
其中:“降水排序=23”定位條件,用于查找降水量由大到小排序的第23個記錄,按經驗頻率計算,在45年系列中的頻率正好為50%的年份。
以上程序已完成省套二級區供需分析,并形成了相應的數據庫。最后通過以下兩個語句將省套二級區供需分析數據庫文件轉換成Excel文件格式的表格:
use省套二級區供需分析表.dbf
copy all to省套二級區供需分析表.Xls type xls
生成的Excel表格.表頭為數據庫結構中的字段名,過于簡單,利用Excel的鏈接功能,將其與具有滿足要求表頭的Excel文件相鏈接,便解決了正式表格的編制問題。
5按分區降水排頻存在的問題及解決辦法
受農田灌溉需水過程、徑流年內分布及水庫對地表水徑流調節作用等因素的影響,按分區降水排頻可能出現遇偏枯年份供水量并不減小或缺水并不明顯的特殊情況,不符合一般的規律。在現實中,也有類似的例子,如海河流域1980年為枯水年,但由于上一年為豐水年,水庫蓄水比較充足,在需水量大又有水可供的情況下,全流域地表水供水量達到了149億m3,比平水年還要大。為避免出現類似的情況,在供需分析中,分別采取了對應頻率附近3年平滑法(取近似頻率所對應3年的平均值)及3年中取偏大或偏小值年份(如95%頻率取3年中供水最小值或缺水最大值)法對成果進行了調整,必要時輔以人工分析,以使所選擇的典型年更具代表性。
【淺析數據庫技術在海河流域水資源綜合規劃中的應用】相關文章:
綜合智能控制技術在電網規劃中的應用03-26
淺析數據融合技術及其在林業中的應用03-19
淺析多媒體技術在高校音樂教學中的應用03-08
淺析力學在機械中的應用05-19
淺析現代生物技術在水污染控制中的應用03-18
淺析數字簽名技術在電子商務中的應用12-07
淺析公路施工中水泥攪拌樁應用技術03-20
淺析多媒體教學技術在服裝專業教學中的應用03-19