海洋声速剖面数据库的快速存取技术研究
2017-01-07金中原杨日杰
战 和,金中原,杨日杰
(1.海军航空工程学院,山东 烟台 264001; 2. 92074部队,浙江 宁波 315020)
【装备理论与装备技术】
海洋声速剖面数据库的快速存取技术研究
战 和1,2,金中原1,杨日杰1
(1.海军航空工程学院,山东 烟台 264001; 2. 92074部队,浙江 宁波 315020)
海洋中声信号的传播受声速剖面的影响,而声速剖面往往是通过数据库的形式来获取的;从SQL Server等第三方数据库软件无法满足实时性要求出发,研究了声速剖面数据的特点以及使用的特点,以此为基础建立了新的数据文件格式并设计了存取接口;经测试,应用新格式生成的数据文件体积大幅度缩小,存取速度大幅度提升。
声速剖面;数据库;快速存取技术
在海洋中电磁波无法传播,要实现远距离通信或对水下目标进行探测,必须以声波作为载体,而声信号在海水中的传播受多种因素的影响,其中最主要的就是声速在海水中垂直方向的分布,即声速剖面[1-3]。目前,获取声速剖面的手段主要有两种,一种是使用测量船等手段测量总结形成的历史数据库,另一种是在具体海域开展工作时进行现场实测。现场实测一般需耗时15~20 min,对于实时性要求较高的情况并不适用,只能借助历史数据库。因此,数据库中数据文件的组织结构以及存取速度,就成为了能否满足实时性的关键技术。
1 声速剖面数据分析
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 数据存取方法
数据文件生成后,需根据其数据结构设计对应的数据存取接口。
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个修改值按由浅至深的顺序依次插入即可。
3 性能分析
按自定义格式生成数据文件并确定了存取接口后,使用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 数据使用
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以内,完全能够在实时性要求较高的环境下使用。
5 结论
本文针对海洋声速剖面的数据特点和使用特点,设计了一种新的数据存储格式并生成了数据文件,同时根据该格式建立了相应的数据查询、修改接口;针对声速剖面查询,实现了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