(江蘇省水文水資源勘測局蘇州分局 蘇州 215000)
江蘇省1989—2005年斷刊的水文年鑒復刊過程中,由于數據導入導出或原來成果庫的原因,根據南方片2.0 匯編輸出的文本文件進行排版后生成的逐潮高低潮位表同原始底稿存在差異或不符合規范要求,主要表現在以下幾個方面:一是部分站部分日期的潮別信息多余;二是部分站部分日期出現5個潮位;三是部分站部分日期失潮時沒有按規范要求進行空行。這些問題導致最后得到的逐潮高低潮位表月統計、潮位月年統計表中的月年統計出現錯誤,手工逐一修改比較麻煩且不容易全部改全,這就需要通過對原始數據進行重新計算才能得到正確的結果。而復刊時只是將導出的csv 成果庫文件進行導入操作或僅補錄了成果數據,并沒有涉及到原始數據錄入、整編計算。在原始數據無法獲得的情況下,如何從已有的成果庫或生成的逐潮高低潮位成果表得到適合南方片2.0 整編計算的逐潮高低潮位數據,是解決上述缺陷的關鍵所在。
以2000年復刊南方片數據庫中的平湖(二)站為例,分別從數據庫和成果表中獲取潮位原始數據,兩種方法生成的文件均以站碼+年份命名。
首先以管理員權限打開企業管理器,單擊菜單項“工具-SQL 查詢分析器”,在對象瀏覽器中單擊選擇“2000年復刊南方片庫”,接著在右側的查詢窗口內輸入“Select * From HY_HLTDZ_B Where STCD='63309600' Order By TM”,該條查詢語句用于在HY_HLTDZ_B 找出站碼為63309600 的所有數據,并按照時間先后順序排列,然后單擊圖1方框中的箭頭執行以上查詢命令,最后將查詢出來的結果全選后復制粘貼到Excel 中進行下一步處理。

圖1 執行查詢示意圖
在Excel 中對應第二列時間,設置單元格格式為自定義的“hh.mm”格式。接著同時選擇第二列時間、第四列潮位,將其復制到記事本中,保存為csv 文件備用。
成果表數據轉換成潮位數據主要采用VBA 編程語句來實現,獲取的數據保存在成果表所在目錄下,后綴名為csv。分析如圖2中的表格式可知,逐潮高低潮位表每月數據表頭包含4 行、表尾包含9 行月統計和2 行附注,表頭加表尾總計有15 行,去掉這15 行,中間部分就是每月潮位數據有效行數,因此有效行數可以通過ActiveSheet.UsedRange.Rows.Count- 15 得到;潮位和時間分成3 組,分別在第3、4 列、第9、10 列和第15、16 列,因此采用循環方法獲得。

圖2 逐潮高低潮位表每月數據示意圖
最后獲取潮位數據的主要代碼如下:

首先在南方片2.0 中的“整編-原始整編數據錄入-原始數據測站信息”里錄入平湖(二)站相應的測站信息,然后設置控制信息,最后用記事本打開生成的文件,復制全部數據,將其粘貼到南方片2.0 潮位整編數據中的逐潮高低潮位(T0G04)中。
完成數據復制后,對照錄入說明和底稿,按照南方片中的錄入說明修改數據文件。由于數據庫和成果表生成的潮位數據都是帶小數點的,因此,萬位信息相應的就變為百位信息,即原來南方片中輸入提示是“潮位+10000”的,要改成以“潮位+100”的格式錄入。
對于失潮數據的錄入,同一天內,后一時間大于前一時間,跨日則在兩天時間之內,這樣執行“重置整編時間”命令時才不會出錯。
完成以上步驟后,就可以試著對轉換而來的潮位數據進行整編計算。如果生成的成果表同底稿不一致,那就還需要對轉換的數據補充完善,直到同底稿完全一致。最后匯編輸出排版文件,交由排版單位以整體替換錯誤的表項。
本文以2000年復刊南方片數據庫中的平湖(二)站為例,介紹了從數據庫和成果表中獲取滿足南方片2.0 格式要求的潮位原始數據的方法,通過采用南方片2.0 重新整編計算,為生成滿足規范要求的逐潮高低潮位表提供了一種有效的解決方案■