Note
This package is now in maintainence mode and not being actively developed. I personally no longer use Python much, as all my scientific work has now moved to Julia. I still maintain this package for others who use it, but new features rarely get implemented. I am, however, happy to review and take in PRs from contributors who would like to add features or fix bugs.
Tip
For those of you who use this package as a Python front-end to BELLHOP, there is now a better option to consider.
The UnderwaterAcoustics.jl
ecosystem provides
a unified interface to a variety of propagation models including BELLHOP, KRAKEN, etc. Although developed
for Julia, the packages can easily be used from Python.
Packages such as numpy
and scipy
provide excellent mathematical tools for
scientists and engineers using Python. However, these packages are still young
and evolving, and understandably have some gaps, especially when it comes to
domain-specific requirements. The arlpy
package aims to fill in some of the
gaps in the areas of underwater acoustics, signal processing, and communication.
Additionally, arlpy
also includes some commonly needed utilities and plotting
routines based on bokeh
.
The following modules are general and are likely to be of interest to researchers and developers working on signal processing, communication and underwater acoustics:
- Signal processing (
arlpy.signal
) - Communications (
arlpy.comms
) - Beamforming and array processing (
arlpy.bf
) - Stable distributions (
arlpy.stable
) - Geographical coordinates (
arlpy.geo
) - Underwater acoustics (
arlpy.uwa
) - Underwater acoustic propagation modeling (
arlpy.uwapm
) - Plotting utilities (
arlpy.plot
) - Common utilities (
arlpy.utils
)
The following modules are specific to tools available at the ARL and may not be of general interest to others:
- Digital Towed Array (
arlpy.dtla
) - ROMANIS (
arlpy.romanis
) - HiDAQ (
arlpy.hidaq
) - UNET (
arlpy.unet
)
Installation::
pip install arlpy
To import all general modules::
import arlpy
Png export of bokeh plots requires selenium
, pillow
and phantomjs
. These are not
installed as automatic depdendencies, since they are optional and only required
for png export. These should be installed manually, if desired.