This project aims to develop a simulation environment for exploring river beds using sonar signals. Our work focuses on developing a parallel implementation in Devito that can simulate the propagation and detection of the reflected signals.
You can run the following command to access the application's usage description:
$ python -m simulation --help
Usage: sonar [OPTIONS] COMMAND [ARGS]...
Sonar: a Python package for sonar signal processing.
Options:
-v, --verbose Show debug messages.
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
Commands:
plot Display different plots.
beams Run the simulation in different beam angles.
analyse Takes the angles and recordings and creates a plot.
snaps Create an animation of the snapshots.
run Initialize the sonar class.You can run the following command to access the run command's usage description:
$ python -m simulation run --help
Usage: sonar run [OPTIONS]
Initialize the sonar class and run the simulation.
Options:
-x INTEGER Size in x direction. (m) [default: 60]
-y INTEGER Size in y direction. (m) [default: 30]
-f FLOAT Center frequency of the signal. (kHz) [default: 5]
-v FLOAT Environment velocity. (km/s) [default: 1.5]
-n INTEGER Number of sources. [default: 128]
-px FLOAT Position of the source in x direction. (relative) [default:
0.5]
-py FLOAT Position of the source in y direction. (relative) [default:
0.5]
-d FLOAT Distance between sources (m) [default: 0.2]
--bottom [flat|ellipsis|circle] [default: Bottom.ellipsis]
-r FLOAT Radius of the bottom circle. (m) [default: 28.0]
-o Obstacle flag. [default: False]
--help Show this message and exit.A series of Jupyter notebooks of incremental complexity are available in the notebooks folder. They are intended to show how the simulation works and how to use the different functions.