Calculate directivity of various sound source models and get their beamshapes.
This package is released under an MIT license.
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> import beamshapes
>>> from beamshapes import piston_in_infinite_baffle_directivity as PIB # short alias
>>> input_parameters = {'k':50, 'a':0.1}
>>> angles = np.linspace(-np.pi/2,np.pi/2,50)
>>> _, directionality = PIB(angles, input_parameters) # output the dB(D(theta)/D(on-axis))
>>> plt.figure();a0 = plt.subplot(111, projection='polar')
>>> plt.plot(angles, directionality) # plot the beamshape !!
For more detailed use-cases, check out the example gallery online!
PyPi installation (>=version 0.2.1)
pip install beamshapes
Local installation instructions For the steps below to work you need to have a working Python installation that you can access from the command line. It is recommended to do the installation in a virtual environment.
- Clone the Github repository
git clone https://github.com/thejasvibr/bat_beamshapes.git
- Change directories to the downloaded repo, and switch to the dev branch:
git checkout dev
- Install the dependencies with
pip install -r beamshapes/tests/requirements_test.txt
- Install beamshapes with
python setup.py install
For more details on the concepts and source documentation - please check out the online docs.
If you use this package - please cite the paper:
APA-style format
Beleyur, T., (2022). beamshapes: a Python package to generate directivity patterns for various sound source models. Journal of Open Source Software, 7(69), 3740, https://doi.org/10.21105/joss.03740
Bibtext format:
@article{Beleyur2022,
doi = {10.21105/joss.03740},
url = {https://doi.org/10.21105/joss.03740},
year = {2022},
publisher = {The Open Journal},
volume = {7},
number = {69},
pages = {3740},
author = {Thejasvi Beleyur},
title = {```beamshapes```: a Python package to generate directivity patterns for various sound source models},
journal = {Journal of Open Source Software}
}
If possible, and space allows also do mention the package version (e.g. beamshapes 0.2.X) . You can access the version number of the package being used with
>>> import beamshapes
>>> print(beamshapes.__version__)
v0.2.3 : unify the keyword arguments across the flint
and mpmath
piston in a sphere implementations. Both implementations now use NN
to define matrix size, and n_cores
to set number of CPUs to use.
- Piston on a cylinder
- Rectangular piston on a prolate spheroid (paper)