Skip to content

thejasvibr/bat_beamshapes

Repository files navigation

Build Status status Documentation Status

Beamshapes

Calculate directivity of various sound source models and get their beamshapes.

This package is released under an MIT license.

Getting started with beamshapes

>>> 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!

Installation

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.

  1. Clone the Github repository git clone https://github.com/thejasvibr/bat_beamshapes.git
  2. Change directories to the downloaded repo, and switch to the dev branch: git checkout dev
  3. Install the dependencies with pip install -r beamshapes/tests/requirements_test.txt
  4. Install beamshapes with python setup.py install

Detailed documentation

For more details on the concepts and source documentation - please check out the online docs.

Citation information

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__)

Change log

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.

Future implementations

  • Piston on a cylinder
  • Rectangular piston on a prolate spheroid (paper)