I am running underwater simulations using UnetStack Simulator. By default the simulations uses one of either ProtocolChannelModel
or BasicAcousticChannel
. Documentation
Let's say I provide GPS coordinates to the nodes. How can i provide the Bathymetry in the simulation to make it more reasonable ? I am planning to use the GEBCO 2019.
Is there a way to do that ?
Not out of the box, but it should be relatively simple to implement with a custom channel implementation (see section "Developing custom channel models" in the Unet handbook).
Outline:
Implement your own acoustic model (e.g.
MyAcousticModel
):and call a propagation model that uses bathymetry (e.g. Bellhop) and feed it bathymetry from the GEBCO database. The
MyAcousticModel
class would implement aAbstractAcousticChannel
, which provides you access to the location of the transmitter and the receiver, to extract bathymetry for. The channel model needs to return a received signal strength for each reception, which is simple to get from the propagation model transmission loss computation and the transmit power.TIP: You would want to cache the propagation model run results so you don't have to recompute unless nodes move.
You'd then use the channel model
MyAcousticChannel
in your simulations: