陳 光
(湖州市水文站,浙江 湖州 313000)
歷史洪水資料是洪水預(yù)報(bào)模型參數(shù)率定的基礎(chǔ),建立水文預(yù)報(bào)方案的洪水資料基本由水文整編數(shù)據(jù)轉(zhuǎn)換而成[1]。位于湖州市境內(nèi)的西苕溪流域防汛任務(wù)十分艱巨,為提高流域內(nèi)水庫和河道代表站洪水預(yù)報(bào)的時效性,湖州市水文部門申報(bào)建設(shè)西苕溪流域?qū)崟r洪水預(yù)報(bào)系統(tǒng)。該系統(tǒng)降雨徑流計(jì)算主要采用新安江模型,系統(tǒng)建設(shè)初期,首要的任務(wù)是將dBASE、FoxPro、Sybase等不同格式存儲管理的基礎(chǔ)水文數(shù)據(jù)庫相關(guān)記錄轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)庫格式,然后對所需的歷史雨量、蒸發(fā)、水位、流量等數(shù)據(jù)進(jìn)行庫表結(jié)構(gòu)轉(zhuǎn)換、摘錄數(shù)據(jù)時段化轉(zhuǎn)換插補(bǔ)等,最終形成洪水資料庫。
水利行業(yè)標(biāo)準(zhǔn)SL 324—2005《基礎(chǔ)水文數(shù)據(jù)庫表結(jié)構(gòu)及標(biāo)識符標(biāo)準(zhǔn)》[2]貫徹實(shí)施的時間不長,浙江省基礎(chǔ)水文數(shù)據(jù)庫經(jīng)歷了dBASE到FoxPro數(shù)據(jù)庫開發(fā)管理的階段,目前絕大部分歷史數(shù)據(jù)以.dbf文件格式存儲。近幾年,水文基礎(chǔ)數(shù)據(jù)采用了南方片 《水文資料整匯編軟件》SHDP1.0進(jìn)行整編,成果數(shù)據(jù)以Sybase SQL Anywhere 5.0格式存儲(默認(rèn)數(shù)據(jù)文件為SHDP.db)[3];升級版SHDP2.0即將投入使用,成果數(shù)據(jù)改為SQL SERVER 2000(個人版)存儲,數(shù)據(jù)庫主文件為MDF格式。
SQLSERVER2000數(shù)據(jù)庫管理程序?qū)嵱眯暂^好,西苕溪流域?qū)崟r洪水預(yù)報(bào)系統(tǒng)采用其作為后臺數(shù)據(jù)庫。因此,以MDF格式存儲歷史洪水資料即能滿足生產(chǎn)要求。
采用SQL SERVER 2000的DTS(導(dǎo)入和導(dǎo)出數(shù)據(jù))功能,分別將dBASE或FoxPro不同版本的.dbf文件、Sybase版本的.db文件導(dǎo)入到新建的歷史洪水?dāng)?shù)據(jù)庫中,通過DELPHI編程技術(shù),實(shí)現(xiàn)相關(guān)數(shù)據(jù)庫表結(jié)構(gòu)轉(zhuǎn)換和摘錄數(shù)據(jù)時段化插補(bǔ)功能(見圖1)。
圖1 預(yù)報(bào)系統(tǒng)數(shù)據(jù)預(yù)處理功能列表圖
應(yīng)用DTS,需預(yù)先檢查WINDOWS操作系統(tǒng)內(nèi)置的管理工具ODBC數(shù)據(jù)源管理器中是否存在Microsoft Visual FoxPro Driver和Sybase SQL Anywhere 5.0驅(qū)動程序,否則需下載安裝相應(yīng)的驅(qū)動程序。
2.1.1 .dbf導(dǎo)入MDF
浙江省基礎(chǔ)水文數(shù)據(jù)庫以.dbf格式存儲,由于數(shù)據(jù)管理程序開發(fā)升級,在庫表結(jié)構(gòu)上存在2種版本 (3.0和4.0版,推薦應(yīng)用后者),并且在dBase和FoxPro 2種不同環(huán)境下生成的.dbf文件不完全兼容,導(dǎo)致無法采用單一數(shù)據(jù)源類型完成數(shù)據(jù)導(dǎo)入,導(dǎo)入步驟如下:
首先采用DTS以數(shù)據(jù)源類型為OLE DBProvider for Visual FoxPro、連接數(shù)據(jù)類型為Free Table Directory,可以將大部分.dbf文件自動導(dǎo)入SQL SER VER 2000數(shù)據(jù)庫中,其余部分不能成功導(dǎo)入的.dbf文件,依次采用數(shù)據(jù)源類型為Microsoft dBase Driver、dBase 5、dBase IV完成數(shù)據(jù)導(dǎo)入。
2.1.2 SHDP.db導(dǎo)入MDF
南方片《水文資料整匯編軟件》SHDP1.0數(shù)據(jù)文件SHDP.db存儲近幾年的水文基礎(chǔ)數(shù)據(jù)整編成果,采用DTS以數(shù)據(jù)源類型為Sybase SQL Anywhere 5.0、添加和配置應(yīng)用DSN,即可完成數(shù)據(jù)導(dǎo)入。
2.1.3 統(tǒng)一庫表結(jié)構(gòu)
做大做強(qiáng)銷售業(yè)務(wù),加快終端網(wǎng)絡(luò)建設(shè)。相比國際大石油公司,在能源轉(zhuǎn)型背景下,中國的石油公司對銷售業(yè)務(wù)的資產(chǎn)和商務(wù)運(yùn)作模式的優(yōu)化,以及向綜合性服務(wù)站的轉(zhuǎn)型升級起步較晚,力度較小。中國石油企業(yè)不應(yīng)隨著油價的回升而放松對銷售業(yè)務(wù)的轉(zhuǎn)型升級,未來幾年仍要持續(xù)加大投資,加快終端銷售布局,為打造油、電、氫為一體的清潔化能源綜合銷售網(wǎng)絡(luò)做準(zhǔn)備。同時中國石油企業(yè)應(yīng)該嘗試在海外新興市場國家布局終端銷售網(wǎng)絡(luò),提升成品油出口銷售能力。
轉(zhuǎn)換后的基礎(chǔ)水文數(shù)據(jù)庫和南方片整編成果庫表結(jié)構(gòu)不完全相同,在應(yīng)用前需將相關(guān)表進(jìn)行再次轉(zhuǎn)換,使之符合水利行業(yè)標(biāo)準(zhǔn)SL 323—2005《實(shí)時雨水情數(shù)據(jù)庫表結(jié)構(gòu)與標(biāo)識符標(biāo)準(zhǔn)》[4]。
2.2.1 日累積量與日均值轉(zhuǎn)換
蒸發(fā)、雨量屬于累積量,日蒸發(fā)與日雨量數(shù)據(jù)表選取關(guān)鍵字段分別導(dǎo)入即可。日均水位、流量分屬不同的表,應(yīng)用編程或SQL SER VER 2000查詢分析器查詢語句將同一測站同期數(shù)據(jù)合并后插入新表。
基礎(chǔ)水文數(shù)據(jù)庫3.0版日表類表結(jié)構(gòu)與實(shí)時雨水情庫有很大不同,數(shù)據(jù)轉(zhuǎn)換的目的是將月記錄轉(zhuǎn)換成日記錄。以某站逐日降水量表 (DP)雨量記錄轉(zhuǎn)換為例,說明日表類數(shù)據(jù)轉(zhuǎn)換編程要點(diǎn):首先將 YR,MO,P1,...,P28,P29,P31等字段某年記錄查詢輸出到二維數(shù)組,根據(jù)年份(YR)數(shù)據(jù)判斷是否為閏年以確定2月份的天數(shù)以及根據(jù)月份(MO)數(shù)據(jù)判斷其他月的天數(shù),然后將逐日數(shù)據(jù)分離出來。表1表示二維數(shù)組中逐日數(shù)據(jù)的相對順序號,逐日數(shù)據(jù)分離的關(guān)鍵是生成日期數(shù)據(jù)的同時將序號為2至32、35至62(閏年為63)、……、365至395的數(shù)據(jù)分別作為記錄。
表1 日表類數(shù)據(jù)轉(zhuǎn)換輔助表
2.2.2 摘錄數(shù)據(jù)逐時轉(zhuǎn)換
新安江模型次洪率定需要逐時蒸發(fā)量、雨量、流量等數(shù)據(jù)。逐時蒸發(fā)量數(shù)據(jù)的生成,采用簡化的蒸發(fā)與氣溫、日照的關(guān)系,按正態(tài)分布曲線將代表站逐日蒸發(fā)量分解到逐時,其中,逐時蒸發(fā)量最大值分配在14∶00。
逐時雨量數(shù)據(jù)采用先分配后插補(bǔ)的方式進(jìn)行。先將不等時間間距的雨量摘錄數(shù)據(jù)平均分配到時段內(nèi)逐時 (當(dāng)小時內(nèi)有分鐘雨量摘錄數(shù)據(jù)時要進(jìn)行累加),并對時段外逐時數(shù)據(jù)插補(bǔ)為0(相鄰記錄時間相隔超過24 h時不補(bǔ)0)。預(yù)報(bào)站區(qū)域逐時平均雨量還可用加權(quán)平均算法預(yù)先計(jì)算存儲在自定義表內(nèi)。
2.2.3 其他相關(guān)數(shù)據(jù)轉(zhuǎn)換
水庫站水位—庫容曲線采用最近年份的“水庫控制運(yùn)用計(jì)劃”編報(bào)的數(shù)據(jù),在應(yīng)用時將水位級差為1.0 m(或0.5 m)的水位庫容曲線轉(zhuǎn)換為級差為 cm的關(guān)系線存儲,以方便程序調(diào)用。在水庫庫容曲線、次洪逐時洪水要素完整的情況下,根據(jù)水量平衡原理,可反推逐時入庫流量,作為水庫站降雨徑流模型計(jì)算入庫流量的實(shí)測值。
2.2.4 重復(fù)記錄清理
經(jīng)過上述轉(zhuǎn)換,歷史洪水?dāng)?shù)據(jù)庫相關(guān)表中有可能出現(xiàn)重復(fù)記錄,在SQL SERVER 2000查詢分析器中運(yùn)行以下程序可以清理重復(fù)記錄。
USE歷史洪水?dāng)?shù)據(jù)庫
SELECT DISTINCT*INTO#TMP FROM表名稱
DROP TABLE表名稱
SELECT*INTO表名稱FROM#TMP
DROP TABLE#TMP
通過闡述西苕溪流域?qū)崟r洪水預(yù)報(bào)系統(tǒng)建設(shè)前期歷史洪水資料由各類異構(gòu)庫表轉(zhuǎn)換的方法以及相關(guān)水文摘錄數(shù)據(jù)時段化插補(bǔ)算法,探討了洪水預(yù)報(bào)水文數(shù)據(jù)預(yù)處理方法。通過水文數(shù)據(jù)庫異構(gòu)庫表轉(zhuǎn)換統(tǒng)一,可以改進(jìn)浙江省基礎(chǔ)水文數(shù)據(jù)庫管理方式;采用推薦的洪水預(yù)報(bào)水文數(shù)據(jù)預(yù)處理時段化轉(zhuǎn)換與插補(bǔ)方法,可以為快速構(gòu)建洪水預(yù)報(bào)系統(tǒng)打好基礎(chǔ)。
[1]中華人民共和國國家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局,中國國家標(biāo)準(zhǔn)化管理委員會.GB/T 22482—2008水文情報(bào)預(yù)報(bào)規(guī)范 [S].北京:中國標(biāo)準(zhǔn)出版社,2009.
[2]中華人民共和國水利部.SL 324—2005基礎(chǔ)水文數(shù)據(jù)庫表結(jié)構(gòu)及標(biāo)識符標(biāo)準(zhǔn)[S].北京:中國水利水電出版社,2005.
[3]梅軍亞,張潮,賴厚桂.南方片水文資料整匯編軟件系統(tǒng)開發(fā)與應(yīng)用 [J].水文,2006(2):73-75.
[4]中華人民共和國水利部.SL 323—2005實(shí)時雨水情數(shù)據(jù)庫表結(jié)構(gòu)與標(biāo)識符標(biāo)準(zhǔn) [S].北京:中國水利水電出版社,2005.