仲 梁
(雞東縣水務局,黑龍江雞東158200)
利用洪水預報模型進行洪水預報是防洪減災的有效措施之一,現(xiàn)有的多種模型,如:馬斯京根分段連續(xù)演算模型、降雨徑流相關模型、三水源蓄滿產(chǎn)流模型等,都已發(fā)展得比較成熟,并為各國水文工作者所普遍接受。但因下墊面條件的不同,所以模型應用的好壞,關鍵在于能否根據(jù)本地的實際情況通過歷史資料率定與之相應的模型參數(shù)。而率定這些參數(shù)所需要的資料,只能從浩如煙海的大量歷史水文資料中獲取,以往這項工作多由人工從積累的年鑒資料中查詢獲得,工作難度大,歷時長,而且一旦需要資料發(fā)生變化或者人為的疏忽大意,大部分工作將要重做。鑒于目前全國水文系統(tǒng)已經(jīng)建成統(tǒng)一的水文數(shù)據(jù)庫,因此可以充分利用計算機這種高科技手段,并結合現(xiàn)有的水文數(shù)據(jù)庫編制應用軟件,處理類似的重復性勞動以提高工作效率和質量,解決率定模型參數(shù)所需的大量歷史水文資料工作難度大的問題。
由于用水文數(shù)據(jù)庫取代了以往的年鑒資料,所以資料處理軟件將面對該數(shù)據(jù)庫進行操作,這是最為方便靈活的操作方式。但考慮到目前網(wǎng)絡的發(fā)展狀況和實際工作情況,使用者不可能隨時隨地對水文數(shù)據(jù)庫進行操作,因此,需另建一本地數(shù)據(jù)庫??梢圆捎梦④浀腁c(1ESS作為本地數(shù)據(jù)庫,其主要優(yōu)點是操作簡單、易于維護,主要是為單機用戶開發(fā)的,雖然穩(wěn)定性和安全性標準低一些,但處理我們的工作完全可以勝任。我們要求新建的數(shù)據(jù)庫表結構與水文數(shù)據(jù)庫完全一致(可以只建需要的庫表,如冰情表暫不需要就可不建),并導入數(shù)據(jù)。這樣即使離開辦公室,仍可以隨時從本地的Ac(數(shù)據(jù)庫中查詢需要的資料,在條件允許時,甚至可以連到外省的數(shù)據(jù)庫,檢索需要的資料。對于用戶來講,只需在配置服務器時輸入相應的0DBC名和數(shù)據(jù)庫名,就可以根據(jù)用戶的權限使用。
在歷史資料的處理過程中,往往要面對兩個或更多的數(shù)據(jù)庫進行操作。這樣,對于各數(shù)據(jù)庫中結構功能完全相同的表,其表名卻不一定相同(要求表中字段名一定要相同),為解決這個問題,在該程序的處理中把表名放在一初始化文件Data~[’ran.ini中的[DBTABLE]段說明,格式見圖1。等號后面分別代表日降水資料、日蒸發(fā)資料、日水位資料、日流量資料、降水摘錄和洪水摘錄資料的庫表名稱。在程序初始化階段,各表名將被讀入相應的全局變量,所有的查詢語句都引用此變量,從而最大程度地實現(xiàn)了查詢的靈活性。
根據(jù)不同模型所需要的資料格式,本軟件的輸出方式靈活多樣。可采用以TAB鍵或空格間隔同一行資料的文件輸出;也可以直接寫入數(shù)據(jù)庫表或形成sQL語句;還可以保存為電子表格文件(.-xls)。
率定模型參數(shù),首先要做的工作是選擇若干具有代表性的年份作為典型年,用典型年的資料進行率定。對于同一預報站,采用的預報模型不同,選擇歷史資料的側重點也不完全相同,但一般都是選擇大水年份的資料作為典型年。本軟件可以根據(jù)需要靈活選擇典型年,在實現(xiàn)上可以將任意測站的水位、流量、降水資料按指定的順序(年最大、最小、平均或總和的升序和降序)排列,以滿足各種不同需要。
歷史水文資料處理實際上就是獲得預報流域內測站典型年的資料。目前能夠處理的資料類型有5種,分別為日降水資料、日蒸發(fā)資料、日水位資料、日流量資料、降水摘錄和洪水摘錄資料,對用戶來講只要事先在初始化文件 Data'rran.ini中輸入每種資料需要的站號和時間即可,見圖1。
[DAYP】小節(jié)是處理日降水資料的文件格式,N:2代表有兩個預報站,“Stationl=”表示第一個預報站站號(包括流域內相關站),Year·1=表示Stationl中測站所需資料的典型年份。以此類推。從理論上N可以很大,但實際上所能處理的資料是根據(jù)數(shù)據(jù)庫引擎的指標決定的。同理可處理其余資料,[ABSTRAcTP】代表降水摘錄、[DAYZQ】代表日均水位流量、【ABSTRAcTFL00D】代表洪水摘錄、【DAYE】代表日蒸發(fā)。做到這一步,使用者就可以用生成的資料做進一步的率定工作了。
圖1 歷史的資料處理程序圖
軟件實現(xiàn)的幾個技術問題本軟件采用VB編制完成,能夠處理洪水摘錄、日平均水位流量、降水摘錄、日降水量以及日蒸發(fā)量等資料。在編制過程中主要涉及以下4個問題:
初始化文件的思路雖然是從WIN32中繼承過來的,但對于比較簡單而又不需保密的一些資料,放在初始化文件中保存仍不失為一個好方式。VB并沒有提供如何從初始化文件中讀取數(shù)據(jù)的函數(shù),需要自己編寫函數(shù)實現(xiàn)此功能,在該函數(shù)中我們引用了WIN32的API函數(shù)GetPrivatePr0一fileStrm‘g。
在現(xiàn)有的水文數(shù)據(jù)庫中,大部分庫表采用了橫表結構,每個月的資料放在一行存儲,這種方式不僅不利于資料檢索,而且每個月都有31 d,與事實不符,容易出現(xiàn)錯誤資料(如出現(xiàn)4月31日等),必須進行處理。
查詢語句一定要采用標準的sQI。語句,以達到支持多種類型數(shù)據(jù)庫的作用。
本軟件暫時只能實現(xiàn)資料的選取,如果與預報模型結合,還可以進行參數(shù)率定等工作。
[1]劉文斌,彭湘.計算機技術在水文預報中的應用[J].吉林水利,2002(11):121-130.