戰 和,金中原,楊日杰
(1.海軍航空工程學院,山東 煙臺 264001; 2. 92074部隊,浙江 寧波 315020)
【裝備理論與裝備技術】
海洋聲速剖面數據庫的快速存取技術研究
戰 和1,2,金中原1,楊日杰1
(1.海軍航空工程學院,山東 煙臺 264001; 2. 92074部隊,浙江 寧波 315020)
海洋中聲信號的傳播受聲速剖面的影響,而聲速剖面往往是通過數據庫的形式來獲取的;從SQL Server等第三方數據庫軟件無法滿足實時性要求出發,研究了聲速剖面數據的特點以及使用的特點,以此為基礎建立了新的數據文件格式并設計了存取接口;經測試,應用新格式生成的數據文件體積大幅度縮小,存取速度大幅度提升。
聲速剖面;數據庫;快速存取技術
在海洋中電磁波無法傳播,要實現遠距離通信或對水下目標進行探測,必須以聲波作為載體,而聲信號在海水中的傳播受多種因素的影響,其中最主要的就是聲速在海水中垂直方向的分布,即聲速剖面[1-3]。目前,獲取聲速剖面的手段主要有兩種,一種是使用測量船等手段測量總結形成的歷史數據庫,另一種是在具體海域開展工作時進行現場實測。現場實測一般需耗時15~20 min,對于實時性要求較高的情況并不適用,只能借助歷史數據庫。因此,數據庫中數據文件的組織結構以及存取速度,就成為了能否滿足實時性的關鍵技術。
1.1 數據來源及其特點
本文使用的原始數據為美國NOAA的WOD13數據(http://www.nodc.noaa.gov),數據范圍為經度Lo1~LoM、緯度La1~LaN(因數據是柵格化的,M和N分別表示經度、緯度方向的數據跨度),將其中溫度、鹽度、壓力3項代入Chen-Millero-Li聲速經驗公式求得擴展標準層的聲速值,作為數據庫的數據基礎[4-6]。數據精度在經度、緯度方向為1°,深度方向為標準層(共18層),時間方向為1月。
可以看出,任何一條數據都具備5種屬性,分別是月份、經度、緯度、深度和聲速值,其中前4種用作查詢條件,最后一種作為查詢時返回的結果。
為清晰體現每一條數據包含的信息,可從4種查詢屬性中任選3種建立坐標系,在指定另一種屬性查詢值的情況下用圖像進行描述。以指定月份(假設為6月份)的情況為例,可將其柵格化后表示在如圖1所示的空間中,圖1中每一個點表示一條數據,每條數據都體現了經度、緯度、深度和聲速值的信息。例如A點處所對應的那條數據可記為(LoA,LaA,6,SD3,1 500.00),表示位于經度LoA、緯度LaA、6月、標準層深度3處的聲速值為1 500.00 m/s。圖2則是同一條數據在固定緯度時的情況。

圖1 固定月份時數據的空間分布

圖2 固定緯度時數據的空間分布
1.2 數據使用特點
在廣泛使用的如SQL Server等第三方數據庫軟件中,一張表中各條數據之間的關系是平行的[7-8],也就是說在其生成的數據文件中各條數據是簡單堆積在一起的,并未進行排序。這導致在執行查詢操作時只能將數據文件中包含的全部數據逐條與查詢條件進行比對,其得出結果的運算速度自然較慢。
同時,在實際使用聲速剖面數據庫時,用戶的需求必定是某月份、某經緯度處由18個標準深度層上的聲速組成的聲速剖面,而對SQL Server等數據庫軟件提供的其他功能并不關心。因此,可以考慮不依托第三方數據庫軟件,按照一定格式或規則自主生成數據文件,并根據這一規則設計數據存取接口,這樣一方面可以提高運算速度,另一方面也極大的增強了數據文件和存取接口在不同平臺之間的可移植性,特別是像Vx Works這種不支持第三方軟件的操作系統[9-10]。
1.3 設計數據文件格式
針對用戶對聲速剖面數據庫的實際需求和使用特點,在設計數據文件格式時,應考慮排序問題。即,在生成數據文件時,應當已按一定規則完成了排序工作。觀察每條數據,可發現4種查詢條件都可以用數值表示的特點,因此可考慮將聲速值分屬性按數值大小進行排序后依次拼接形成數據文件,流程如圖3所示。

圖3 數據文件生成流程
按圖3所示流程生成的數據文件中,除空格外,全是聲速值數據,沒有了其他的屬性,大大減少了數據文件的體積,并具備自身的規律:從文件開始處,每個數(如1 503.78)由4位整數部分、一個小數點和2位小數部分組成,其后緊跟一個空格符,以方便在讀取時斷字;從文件開始處,每連續18個數可視為一組,用以匹配用戶一次查詢的查詢結果;從文件開始處,每18×12個數據表示的是某經緯度處1~12月的全部聲速剖面,組序號除以12的余數r表示該組18個聲速值組成的聲速剖面是r月份的;從文件開始處,每N×18×12個數表示的是某經度上,柵格中從最低緯度(La1)到最高緯度(LaN)處1~12月的全部聲速剖面。
數據文件生成后,需根據其數據結構設計對應的數據存取接口。
2.1 數據查詢接口設計
根據生成數據文件的格式及數據規律,可發現得到的查詢結果應該是從文件中某一位置開始的連續18個數值,也就是說,確定了開始進行連續讀取的指針位置,也就唯一確定了查詢操作的返回值。針對任意的查詢條件(Loi,Laj,Monthk),在數據文件中對應的開始讀取的指針位置PPos應該滿足下式:
PPos=8×[(Loi-Lo1)×1×N×12×18+ (Loi-Lo1)×1×12×18+(Monthk-1)×1×18]
其中,Loi和La1分別表示數據文件覆蓋海域的最小經度和最小緯度,N表示柵格化后緯度方向上數據的跨度。(Loi-Lo1)×N×12×18×1表示由查詢經度引入的指針偏移量,(Loi-Lo1)表示的是查詢經度和起始經度之差,乘以1是因為數據精度在經度方向上為1°,乘以N是因為在每一個經度上都有N種緯度不同的數據,乘以12是因為在每一個確定的經緯度上都有12月的數據,乘以18是因為每組返回數據都由18個連續的聲速值數據組成。同理,(Laj-La0) ×1×12×18表示由查詢緯度引入的指針偏移量,(Monthk-1) ×1×18表示由查詢月份引入的指針偏移量。PPos取3種偏移量之和乘以8是因為每個數據在數據文件中占8位。
例如,查詢圖4中P1位置處3月份的聲速剖面,開始進行讀取操作的文件指針位置PPos=8×(2×1×N×12×18 + 1×1×12×18 + 2×1×18),而對應P2位置處6月份的情況,PPos=8×((M-1)×1×N×12×18 + (N-1)×1×12×18 + 5×1×18)。

圖4 數據查詢示意圖
設計對應的數據查詢流程如圖5所示。
2.2 數據修改接口設計
若需要對數據庫中(Loi,Laj,Monthk)處的數據進行修改,可按上一節的方法先求得文件指針位置PPos,然后刪除緊接下來的8×18位,再將18個修改值按由淺至深的順序依次插入即可。
按自定義格式生成數據文件并確定了存取接口后,使用i5-2300CPU、2GB內存的PC機對一塊55°×55°的方形海域分別使用SQL Server和自建數據庫進行性能對比測試。
測試內容:生成的數據文件體積比較;淺海(海深小于100 m,124°E-30°N-5月)讀取速度比較;深海(125°E-22°N-1月)讀取速度比較。測試結果如表1所示,二者使用相同的繪制接口,查詢結果相同(因數據源相同),均如圖6所示。

圖5 數據查詢流程

表1 測試結果

圖6 淺海、深海查詢結果
從表1中可看出,自建庫文件體積遠遠小于包含相同內容的SQL Server MDF文件,且運算速度在淺海條件下提高了至少5個數量級,在深海條件下更是提高了至少6個數量級。這樣的速度優勢使得在一些對實時性要求較高而SQL Server等第三方數據庫軟件無法滿足的情況下,自建庫完全可作為替代品。
4.1 問題描述與方法分析
前幾節介紹了自定義數據庫,并分別通過在淺海和深海條件下的查詢進行了簡要的性能分析。值得注意的是,上述分析中使用的查詢位置在數據庫中均有對應的數據(如圖7中P1點),當查詢位置處在數據庫中無現成數據時,需要將查詢位置周圍的現有數據進行同化處理后再作為查詢值返回,圖7描述了這一問題。

圖7 數據查詢示意圖
解決這一類問題一般有兩種方法:一種是先插值后平均,即先將查詢點附近每個平面點上的數據插值到整個海深范圍內,得到P個聲速剖面,再將這些剖面按一定算法平均到查詢點處;另一種是先平均后插值,即先將查詢點附近P個平面點上的數據按一定算法平均到查詢點處,得到查詢點處標準層深度上的聲速值,再將其插值到整個海深范圍內,得到查詢點處的聲速剖面。
因為數據庫中的記錄是按數據精度柵格化的,而查詢位置在數據范圍內可認為是隨機的,所以查詢點與周圍柵格上數據點的距離在絕大多數情況下是不同的,那么查詢點處的聲速剖面受周圍不同柵格點上數據的影響也應該是不同并且與距離相關的,因此可考慮使用反距離加權平均法。
假設查詢點位置與柵格上各數據位置之間距離為Ri,i∈[1,2,…,P],距離之和R=∑Ri,那么各權值wi可表示為
查詢點返回的數據D=∑wiDi,其中Di表示周圍第i條數據記錄的聲速值。
4.2 實例分析
為驗證上述方法在工程實踐中的可行性并對誤差大小進行分析,現將原始數據精度在經度和緯度方向上降低一倍,再將查詢條件設置在某個由于降低精度而去掉的柵格點上,將插值得到的數據與原始數據進行對比,分析上一節提出的方法在精確度上的誤差。
查詢條件依舊設置為125°E、22°N、1月,取降低精度后的數據庫中周圍4點數據進行同化處理。分別按照先平均后插值和先插值后平均兩種方式進行的數據同化結果如圖8所示,誤差如圖9所示,主要性能指標對比如表2所示。

圖8 數據同化結果

圖9 同化誤差

表2 主要性能對比
從圖8和圖9中可以看出:整體上,兩種方法得到的結果與原始數據均能夠較好的貼合,能夠很好的體現出聲速隨深度的變化趨勢。同化誤差方面,先平均后插值方法的結果整體偏小,先插值后平均方法的結果整體偏大,但兩種方法的誤差均較小,最大時也在±0.07%以內(絕對誤差0.96,原數據大于1 500),先平均后插值方法的誤差則更是始終保持在±0.05%以內,因此可認為將這兩種方法用于水平方向的數據同化是可行的。
細節上,雖然經過了平均計算,但兩種方法也都能保留一些原數據的特點,例如在10 m、47 m和75 m附近這種原數據有較大變化的位置,也能夠體現出波動和“拐彎”等細節信息。海深150m以上時,先平均后插值方法的效果較好,而150 m以下時,先插值后平均方法的效果則更勝一籌。
從表2可以看出,先插值后平均方法耗時約為先平均后插值方法的4倍,這是因為得出結果所需要的運算中,最耗時的就是長度300 m的插值運算,而先插值后平均方法進行了4次,先平均后插值方法則只進行了一次。此外,加權平均運算先插值后平均方法進行了300次,而先平均后插值方法只進行了16次,由于該運算耗時很短,對總耗時的貢獻并不大。
總體來看,兩種方法的計算精度都可以控制在0.1%以內,運算總耗時也都在130 ms以內,完全能夠在實時性要求較高的環境下使用。
本文針對海洋聲速剖面的數據特點和使用特點,設計了一種新的數據存儲格式并生成了數據文件,同時根據該格式建立了相應的數據查詢、修改接口;針對聲速剖面查詢,實現了SQL Server等常用數據庫所具備的功能,并在數據文件體積和查詢速度上實現了巨大的提升,為該類型數據在實時性要求較高的系統中使用提供了技術支撐。
[1] 孫杰,董楠.淺海聲速剖面類型對水下聲傳播的影響研究[J].環境工程,2013,31(7):736-738.
[2] 祝捍皓,張海剛,劉偉,等.聲速剖面對淺海波導頻散特性的影響研究[J].聲學技術,2013,32(6):67-68.
[3] 高飛,潘長明,李勝全,等.聲躍層控制聲線傳播彎曲模型的構建[J].海洋測繪,2014,34(2):21-24.
[4] URICK R J.Principles of Underwater Sound[M].New York:McGraw-Hili,1975.
[5] JENSEN F B,KUPERMAN W A,PORTER M B,et al.Computational Ocean Acoustics[M].2nd ed.New York:Springer,2011.
[6] GB/T12763.7-2007,海洋調查規范[S].
[7] 陳瀟.SQLServer2008數據庫存儲過程的應用[J].軟件工程師,2015,18(6):18-19.
[8] 陳波,周月陽.基于Delphi和SQL Server的能耗監控系統的設計與實現[J].四川兵工學報,2014,35(1):104-106.
[9] 李杰,李亞文,張鎖平,等.實時操作系統VxWorks在海洋觀測系統的應用[J].海洋技術學報,2014,33(6):118-122.
[10]張萬緒,劉雷,揚威,等.基于VxWorks的航空機電自動測試系統、通信機制[J].西北大學學報,2014,44(6):886-889.
(責任編輯周江川)
Research On Fast Access Technique of Sound Speed Profile Database
ZHAN He1,2,JIN Zhong-yuan1,YANG Ri-jie1
(1.Naval Aeronautics and Astronautics University, Yantai 264001, China; 2.The No.92074thTroop of PLA, Ningbo 315020, China)
Acoustic signal propagation in sea was influenced by sound speed profile, which was usually obtained from database.Since third party database software, like SQL Server, can not meet the specification of real-time, new data format of database files was designed, so was the access interface.The new format was created based on the feature of sound speed profile data itself and the characteristics of utilizing it.Test result shows that the size of data files is sharply decreased and the access speed is greatly increased.
sound speed profile; database; fast access technique
2016-08-19;
國家自然科學基金資助項目(61271444)
戰和(1984—),男,博士研究生,主要從事水聲工程研究。
10.11809/scbgxb2016.12.003
戰和,金中原,楊日杰.海洋聲速剖面數據庫的快速存取技術研究[J].兵器裝備工程學報,2016(12):13-17.
format:ZHAN He,JIN Zhong-yuan,YANG Ri-jie.Research On Fast Access Technique of Sound Speed Profile Database[J].Journal of Ordnance Equipment Engineering,2016(12):13-17.
TB566
A
2096-2304(2016)12-0013-05
修回日期:2016-10-08