顏小華 任曉東 唐曉春
水文年鑒復刊中引排水(潮)量數據的快速校核方法
顏小華任曉東唐曉春
由于歷史原因,江蘇省負責匯編刊印的5卷4冊與6卷19、20冊水文年鑒從1989~2005年根據上級要求,停止了匯編刊印。為適應水利建設及國民經濟發展對水文服務的需求,保持水文資料系列的連續性,江蘇省水文水資源勘測局決定對主編卷冊停刊水文年鑒進行復刊,蘇州分局作為主編單位,承擔了6卷20冊水文年鑒匯編刊印工作。作為江蘇省特有的引排水(潮)量統計表,6卷20冊包含了13個水文站的數據,而省局從數據庫中導出并提供的CSV中又沒有包含這些數據,這就需要在年鑒復刊軟件中采用人工方式對引排水(潮)量過程表、旬、月、年統計表進行錄入。這其中引排水(潮)量過程表的錄入及校核是一項繁重的工作,雖然兩人背靠背錄入方式能減少入庫錯誤的發生,但最后生成的成果表總會有意想不到的問題出現。通過多年來對引排水(潮)量過程表數據的檢查過程的實踐積累,嘗試將年鑒復刊軟件生成的hjs文件通過 VB.NET讀取到 Excel中,在Excel中根據引排水推流公式采用Visual Basic forApplication(以下簡稱VBA)編程方式對提取的引排水數據進行校核。
分析hjs文件可知,采用年鑒復刊程序生成的hjs文件,是將DataSet記錄序列化后,以字符編碼為UTF-16,保存的XML文件。因此要完成引排水(潮)量數據的校核,就要首先將hjs反序列化,以下為反序列化部分代碼。


MessageBox.Show("反序列化時出錯!")

反序列化后,再將數據導出到Excel文件中,以下為導出到Excel部分代碼。


圖1為將hjs文件中的數據導出到Excel中后的成果表,數據導入到Excel后,就可以用VBA編程方式對導入的數據進行校核。
江蘇沿江感潮堰閘站按潮引水或排水,采用“一潮推流法”定線推流。“一潮推流法”一般以有效波高、開閘開始水位與一次開閘的漲潮流或落潮流流量相關,建立通用關系式:

式中:Q—漲潮流或落潮流流量,m3/s;

根據“一潮推流法”的定義,圖1中的第六列一潮水量由第四、五列根據公式(1)乘以第二、三列的歷時所得,最后一列一潮最大流量由第四、五列根據公式(1)計算所得。因此,校核錄入數據正確與否,就只要看由公式計算出來的結果同最后兩列的差值是否為零。具體操作步驟如下:
1.首先在Excel的N、O、P列分別輸入引排水平均流量、最大流量的K、α、β系數,如圖2所示;
2.然后切換到VBA,點擊運行按鈕。以下為部分計算代碼:


圖1 hjs數據到Excel表成果圖

圖2 引排水系數圖

圖3 數據檢查結果圖
3.運行后,在Excel的I、J、K、L列得到相應數據,其中,I、K列分別為水量計算值、最大流量計算值,J、L列為計算值與人工錄入數據的差值;
4.最后再檢查J、K兩列的數值,如果結果不為零,則人工錄入數據有可能就有誤,圖3為檢查結果示例。
本文通過VB.NET將年鑒復刊軟件生成的hjs導出到Excel中,根據引排水量推流公式,用VBA編程的方法,計算得到水量、最大流量,實現了對人工錄入的引排水時間、水位、水量、流量的電算化校核,極大減輕了數據校核人員的工作強度,提高了工作效率,為快速查找人工錄入的引排水(潮)量過程表數據的錯誤提供了一種高效且可行的方法■
(作者單位:江蘇省水文水資源勘測局蘇州分局215000)