World Ocean Simulation System (WOSS) library
|
This document provides a short techical description of the World Ocean Simulation System (WOSS) library and of its integration into Multi InteRfAce Cross Layer Extension (NS-Miracle).
The WOSS library aims to model a channel power delay or frequency attenuation profiles according to a more accurate representation of propagation phenomena as described by the laws of acoustical physics [3]. WOSS is a multi-threaded framework that permits the integration of any existing underwater channel simulator that expects environmental data as input and provides as output a channel realization represented using the channel profiles just mentioned.
From version 1.3.5 the simplified acoustic model based on empirical equations for the calculation of delay, attenuation and noise power has been moved into NS-Miracle. These equations can be found in [1], [2].
Currently WOSS integrates the Bellhop ray-tracing program [4], while the NS-Miracle integration library retains the previously mentioned formula for the noise power.
From version 1.3.0 WOSS supports time evolution, for a better representation of the channel variability. Bellhop calculations are performed across the whole bandwidth with custom resolution, while noise calculations are performed at the geometric average of the highest and the lowest frequencies of the band being used, as pointed in [5]. To calculate the solution of the propagation equations between a transmitter and a receiver, Bellhop requires the knowledge of the Sound Speed Profile (SSP) (The Sound Speed Profile is the propagation speed of sound considered as a function of water depth. Different profiles lead to potentially very different propagation effects, including surface sound channels, deep sound channels, convergence zones, shadow zones, and so on, see [3]), the Bathymetric Profile (BP) and the type of Bottom Sediments (BS, required to model acoustic power losses due to bottom reflections). In this respect, WOSS offers a technology independent database API and a number of classes to manipulate SSP, BP and BS data. For the SSP, it employs a custom implementation of the World Ocean Database [7-11], a collection of SSPs calculated with the TEOS-10 [6] exact formula based on the depth, temperature and salinity data measured during a number of experiments around the world; the measurements are divided by location and day or season of the year when the measurement was performed (recall that sound propagation is affected by water temperature, which in turn undergoes seasonal changes, especially in the superficial layer). The bathymetry data have been taken from the General Bathymetric Chart of the Oceans [12], a public database offering samples of the depth of the sea bottom with an angular spacing of 30 seconds of arc. Finally, the type of bottom sediments is provided by a geo-acoustic analysis of the National Geophysical Data Center's Deck41 data-base [13].
Thanks to this automation the user only has to specify the location in the world and the time where the simulation should take place. This is done by setting the simulated date and the wanted latitude and longitude of every node involved. The simulator automatically handles the rest. In more detail, the simulator picks the location (i.e., latitude, longitude and depth) of the transmitter and the receiver and queries the database manager for samples of bottom sediments, measured SSPs (for simplicity, the SSP can also be assumed to be constant, on average, throughout the network area) and for bathymetry data along the path. Full customization of surficial sediment, bathymetry and SSP data is also possible if more accurate data is available. The power delay profile obtained with Bellhop can be used to model multiple receptions: in detail the user can choose to coherently combine the complex channel gains with a custom resolution time window and obtain one or more complex channel taps.
Figs. 1.1 and 1.2 show the coherent sum of all channel taps, obtained with WOSS for an example scenario. Fig. 1.1, represents the attenuation incurred by an acoustic wave at 4 kHz transmitted in August, approximately 20 km offshore the harbor of the city of Taranto, Southern Italy, with the transmitter located at 40.32N, 17.12E, 300 m depth. Darker shades of gray represent stronger signal power. The figure shows that the signal reaches the top right corner surface, about 11 km from the transmitter, bearing sufficient power to allow correct reception. In contrast, Fig 1.2 shows the same scenario in March: in this case, the average temperature of the water is lower, changing the way the sound is refracted and reflected by the sea bottom. Here, any acoustic receiver deployed between 9 and 11 km from the transmitter may be unable to acquire the transmitted signal. Furthermore, a shadow zone of about 2 km appears in front of the transmitter, causing failure in a hypothetical short range communication scenario.
In this section, a short techical overview of the WOSS library and its APIs is provided.
WOSS foundation is a complete set of classes for:
The woss::WossDb API separates database technology implementation (SQL, NetCDF, textual…) from data behaviour implementation, permitting maximum code modularity and re-usability. Data behaviour are defined with WossBathymetryDb, WossSedimentDb, WossSSPDb.
The woss::WossDbCreator API provides interface for creation and initializiation of WossDb objects, providing the user a ready-made database instance.
Custom defined bathymetry, SSP and sediment databases are accessed through the woss::WossDbManager API, to provide a further refinement of data (eg. averaging, arithmetics…).
The woss::WossResPressDb and woss::WossResTimeArrDb classes provide the possibility to store and retrieve channel simulation results in any user defined fashion.
The woss::Woss API has the task of integrating a channel simulator. It gives interface for:
The woss::WossCreator API provides interface for creation and initializiation of woss::Woss objects, relieving the user from this task.
The woss::WossManager API has the logic to control and manipulate and create woss::Woss objects. It offers the abilities to:
Finally the woss::WossController API has the task of inter-connecting all major APIs involved.
The current version provides: