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
MyAcousticModelclass 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
MyAcousticChannelin your simulations: