Recent Releases of acoular
acoular - v25.07
New features
- add acoular.grids.Grid.export_gpos to acoular.grids.Grid
- deprecates acoular.grids.RectGrid.extend method in favour of acoular.grids.RectGrid.extent property
- reworked WriteWAV class that now also supports uint8 and int32 encoding, adds a max_val attribute for normalization purposes, and avoids unnecessary double calculations
Documentation
- generalizes data import in the airfoil examples using the acoular.tools.helpers.get_data_file helper function
- add a new example for grids
- changes all appearances of acoular.grids.RectGrid.extend to acoular.grids.RectGrid.extent
- introduces a deprecation policy in the contributing guidelines
- adds new docstrings to submodule acoular.tprocess
Tests
- add tests for export and load XML functionalities of acoular.grids.Grid
Internal
- add three_sources_1d.h5, three_sources_2d.h5, and three_sources_3d.h5
- add functions _create_three_sources, create_three_sources_1d, create_three_sources_2d, and create_three_sources_3d to create the test data
- change create_three_sources function to an alias of create_three_sources_2d
- introduces speedup for acoular.sources.MovingPointSource by using block-wise processing
- fixes acoular.tbeamform.BeamformerTime crashing if buffer exceeds processing block size
- fixes deprecation issue for output parameters of scipy.optimize.fmin_l_bfgs_b solver
- fixes acoular.fbeamform.BeamformerBase.integrate return an empty result sometimes
- excludes scipy version 1.16 from the dependencies due to bug affecting the scipy.signal.tf2sos function
- adds the acoular.tools.helpers.get_data_file helper function for ensuring that a file is available locally
- add three_sources_1d.h5, three_sources_2d.h5, and three_sources_3d.h5
- add functions _create_three_sources, create_three_sources_1d, create_three_sources_2d, and create_three_sources_3d to create the test data
- change create_three_sources function to an alias of create_three_sources_2d
- removal of deprecated classes TimeInOut, FFTSpectra, TimeAverage, TimeCache, MaskedTimeInOut and the beamformer attribute of frequency domain beamformers
- Python
Published by artpelling 7 months ago
acoular - v25.03
New features:
* Introduces rps trait in class acoular.environments.FlowField, that now correctly defines direction of rotation
Documentation
* add known issue section to install guide
* adds new docstrings to submodules acoular.spectra, acoular.environments, acoular.fprocess, acoular.process, acoular.signals, acoular.sources, acoular.trajectory
Internal * fix broken meta.yaml (adds conda build stage to CI)
- Python
Published by adku1173 12 months ago
acoular - v25.01
New features:
- Consistently use file as an attribute to specify a filename (instead of from_file or name).
- Consistently use n_iter in beamformer algorithms that require setting a fixed or maximum number of iterations (e.g., max_iter deprecated).
- Adds new function acoular.tools.helper.c_air to calculate the speed of sound from temperature and humidity.
- acoular.calib.Calib can now be used as a separate processing block.
- Enable varying block buffer sizes for acoular.process.SampleSplitter.
- Replaces HasPrivateTraits with HasStrictTraits and ABCHasStrictTraits for better implementation of ABCs.
- Allow Path objects to specify the caching and time data directory via acoular.Config.
- Adds new abstract base classes acoular.signals.PeriodicSignalGenerator and acoular.signals.NoiseGenerator.
- Adds support for Python 3.13.
Bugfixes
- Pass missing n_iter as an argument to LassoLarsCV in acoular.fbeamform.BeamformerGIB (otherwise, LassoLarsCV runs up to 500 iterations).
- Fix broken pylops solvers in acoular.fbeamform.BeamformerCMF.
- Fixes negative values in source maps obtained with the solvers LassoLars, LassoLarsCV, and LassoLarsBIC.
- Fix use of Trait() factory and replace by Enum, Instance, Map, Union.
- Fix use of deprecated CLong, Long, and ListInt traits.
- The previously broken example in the main README now runs out of the box.
Documentation
- Adds guide on how to submit a pull request.
- Adds intersphinx extension to cross-link documentation from other projects.
- Updates examples to use a right-hand coordinate system.
Tests
- Tests now consequently use pytest framework instead of unittest.
- Separate tests into tests/regression and tests/unittests directories.
- Increases coverage to 76%.
- Introduces snapshot/regression testing for all acoular.base.Generator, acoular.fbeamform.BeamformerBase, acoular.environments.FlowField, and acoular.environments.Environment derived classes (results in new snapshot data of size 1.1MB, see tests/regression/_regtest_output).
- Use pytest-cases to separate parameters from tests (cases are located under tests/cases).
- Full coverage of sdinput.py module through the use of pytest-mock (mocks the behavior of an InputStream object, which cannot be used for CI due to missing audio interfaces).
- Linting and formatting for tests directory.
- Refactor acoular.h5cache.HDF5Cache class due to a bug encountered with the new tests (acoular now can handle changing caching directories during a session. Previously, only the basename was observed, which caused problems with changing cache directories).
- Tests now log the 10 slowest test runs.
- Adds profile options to hatch test environment to profile test run via hatch run tests:profile and save a graphviz chart as an SVG file.
- Test AIAA benchmark classes with the benchmark data.
- Test aperture, center, export_mpos functions in acoular.microphones.MicGeom.
- Fix a typo in AngleTracker that led to a property being incorrectly accessed.
- Exclude jited functions from test coverage report.
- Treat warnings as errors in tests.
- Recursively test for empty dependencies in Property traits that are depended on.
Internal
- Adds a pull request template.
- Dynamically set the version in the pyproject.toml file (from version.py).
- Activates maximum line length enforcement of 120 and 100 for comments and docstrings.
- Adds CI workflow for inspecting regression test outputs.
- Adds action that automatically assigns a team member to newly opened pull requests.
- depends_on now
- Python
Published by adku1173 about 1 year ago
acoular - v24.10
New features:
- Sounddevice inputs now allow for user-settable sample rates and precision types
- Block-wise frequency domain processing
- Introduces new acoular.base module with abstract base classes:
~acoular.base.Generator, ~acoular.base.SpectraGenerator, ~acoular.base.InOut,
~acoular.base.TimeOut, ~acoular.base.SpectraOut
- Introduces new module acoular.fprocess including new frequency domain processing
classes: ~acoular.fprocess.RFFT, ~acoular.fprocess.IRFFT,
~acoular.fprocess.AutoPowerSpectra, ~acoular.fprocess.CrossPowerSpectra
- Introduces new module acoular.process including general purpose (domain invariant)
processing classes: ~acoular.process.Cache, ~acoular.process.Average,
~acoular.process.SampleSplitter
- Rename ~acoular.tprocess.MaskedTimeInOut to ~acoular.tprocess.MaskedTimeOut
- Deprecates: ~acoular.base.TimeInOut, ~acoular.fprocess.FFTSpectra,
~acoular.process.TimeAverage, ~acoular.tprocess.MaskedTimeInOut,
~acoular.process.TimeCache
- Adds unittests: test_process.py, test_fprocess.py
- Adds documentation example: example_fft.py
- Allows more platforms to build the docs files including Linux, macOS, and Windows
Bugfixes
- Flush file in ~acoular.tprocess.TimeCache to prevent data loss/corruption
- Fixes use of already deprecated traits
- Fixes import order to avoid deactivation of parallelization in numba
- Fixes numpy.matlib deprecation warning
Documentation
- Updates literature and adds sphinxcontrib-bibtex extension to support BibTeX citation
- Cleans up and structures the conf.py file and fixes missing Acoular logo in documentation
- Fixes missing and incorrect docstrings for result methods in ~acoular.tbeamform
- Improves explanation of installation dependencies
- Adds explanation on how to test specific Python versions
- Tests documentation build on all latest platforms
Internal
- Refactoring of classes in ~acoular.tbeamform (moves buffer logic away from Beamformer classes)
- Adds new ~acoular.tools.utils.SamplesBuffer class located in ~acoular.tools.utils
- Replaces markdown-link-check with lychee:
- Faster CI (written in RUST)
- Allows more files to be checked, including .rst files in documentation
- Adds a cron job that runs daily
- Sets final version for several deprecated traits (to be removed in version 25.01)
- Uses scipy.linalg consistently over numpy.linalg
- Drops support for Python 3.8 and 3.9
- Enables Numpy version > 2.0
- Runs unittests on the latest macOS
- Python
Published by adku1173 over 1 year ago
acoular - v24.07
New features:
* Implement a lazy result array for acoular.fbeamform.BeamformerBase derived classes (https://github.com/acoular/acoular/pull/280)
* Adds flow establishment length traits (https://github.com/acoular/acoular/pull/265)
* Updates acoular demo with ASCII map and gets rid of writing file (https://github.com/acoular/acoular/pull/262)
Bugfixes:
* temporary fix to PyTables - NumPy 2.0 incompatibility problem (https://github.com/acoular/acoular/pull/279)
* Fixes acoular.fbeamform.BeamformerGridlessOrth shgo params and eva_list initial value bug (https://github.com/acoular/acoular/pull/282)
* makes acoular.sdinput.SoundDeviceSamplesGenerator always importable (https://github.com/acoular/acoular/pull/270)
Internal:
* use hatch for publishing the Acoular package (https://github.com/acoular/acoular/pull/261)
* add issue templates (https://github.com/acoular/acoular/pull/273)
* adds Conda CI (https://github.com/acoular/acoular/pull/260)
* CI for TestPyPI and PyPI (https://github.com/acoular/acoular/pull/259)
* remove plot_example.py (https://github.com/acoular/acoular/pull/255)
* add autolabel rule for fix and linting (https://github.com/acoular/acoular/pull/277)
* fix linting rules (https://github.com/acoular/acoular/pull/276)
* add zenodo release to CITAITON.cff (https://github.com/acoular/acoular/pull/257)
* adds Contributing section in docs, update examples (https://github.com/acoular/acoular/pull/287)
- Python
Published by adku1173 over 1 year ago
acoular - v24.05
- adds support for Python version 3.12 on Linux, MacOS, Windows
- drops official support for Python version 3.7
- provides new tools to import data in AIAA array benchmark format (https://github.com/acoular/acoular/pull/248)
Bugfixes: * changes to UMA-16 microphone array arrangement (https://github.com/acoular/acoular/pull/249)
Internal:
* formatting and linting with ruff (https://github.com/acoular/acoular/pull/229, https://github.com/acoular/acoular/pull/245)
* introduce hatch (https://github.com/acoular/acoular/pull/232)
* test coverage (https://github.com/acoular/acoular/pull/241)
* replace zenodo.json by CITATION.cff file (https://github.com/acoular/acoular/pull/223)
* bugfixes CI (https://github.com/acoular/acoular/pull/218)
* update LICENSE (https://github.com/acoular/acoular/pull/221)
* adds code of conduct (https://github.com/acoular/acoular/pull/222)
* allow workflow dispatch for testing on different branches (https://github.com/acoular/acoular/pull/250)
* refine package structure
* move test directory (https://github.com/acoular/acoular/pull/230)
* remove outdated submodules (https://github.com/acoular/acoular/pull/244)
* new submodule acoular/tools (https://github.com/acoular/acoular/pull/248)
* improve documentation (https://github.com/acoular/acoular/pull/243)
- Python
Published by adku1173 almost 2 years ago
acoular - v24.03
- Improve test coverage for
BeamformerCMF - Changes to
BeamformerSODIX- correction of wrong cost-function
- speedups through the use of Numpy's
einsum_pathtogether witheinsumfunction - changed start value
pgtolfor the optimization withscipy.optimize.fmin_l_bfgs_bsolver
- Bugfixes:
- fixes unrecognized sector arguments in
MetricEvaluator - handles version-dependent default values for
normalizeattribute in sklearn solvers (relevant forBeamformerCMF) - fixes bug in
BeamformerOrth: assigned strongest source at grid index 0 when instead ofeva_listthe traitnwas given - fixes broken
SpatialInterpolator - minor bugfix for single microphone transfer functions calculated with
SteeringVector - fixes broken
NNLSmethod inBeamformerCMF(wrong keyword argumentnormalize)
- fixes unrecognized sector arguments in
- Internal:
- new GitHub workflow for CI of the documentation
- added Zenodo metadata file
- changes to author name in
pyproject.toml
- Python
Published by adku1173 almost 2 years ago
acoular - v23.11
Supports Python 3.7, 3.8, 3.9, 3.10, 3.11 on Linux, MacOS, Windows
- New class MetricEvaluator to evaluate the performance of source mapping methods according to Herold and Sarradj (2017)
- New class PointSourceConvolve to blockwise convolve an arbitrary source signal with a spatial room impulse response
- All filter classes derived from Filter use SOS filters now
- No more version restrictions for scikit-learn
- Speedups for numba jitted functions by enforcing C-contiguous arguments and the efficient use SIMD processor instructions
- Class BeamformerOrth now reimplements orthogonal deconvolution to be even faster and has a slightly different interface
- Simple benchmark suite to compare the performance of Acoular core routines on different computers
- Some internal rework in grid and sector classes
- Test coverage is improved
- Bugfixes:
- minor bugfix for convective amplification in BeamformerCleantTraj and BeamformerCleantTrajSq
- bugfix in some attributes of ImportGrid
- Python
Published by esarradj over 2 years ago
acoular - v23.6
Supports Python 3.7, 3.8, 3.9, 3.10, 3.11 on Linux, MacOS, Windows - New build system using hatch, purge setuptools - New base class BeamformerAdaptiveGrid for gridless algorithms - New class BeamformerGridlessOrth for gridless orthogonal beamforming - New class RectSector3D - Improved ray casting implementation for GeneralFlowEnvironment - Improved handling of spectra calculation: - New base class BaseSpectra - New class FFTSpectra for time-frequency analysis - New class PowerSpectraImport for cross spectral matrix import - MicGeom now has an aperture trait - Tests are improved - Bugfixes: - broken numpy.int import - one off bug in LineGrid
- Python
Published by esarradj over 2 years ago
acoular - v22.3
- New class :class:
~acoular.fbeamform.BeamformerSodix- New SplitBregman and FISTA solvers in :class:
~acoular.fbeamform.BeamformerCMF - IDW is now available for virtual rotation
- different steering vector formulations are now available for time beamformers as well
- Speedups:
- time domain beamformers and CleanT deconvolution now share a common core codebase and all do blockwise processing
- Bugfixes:
- broken digest in :class:
~acoular.grids.RectGrid3Drepaired - :class:
~acoular.tbeamform.BeamformerCleantand derived classes now never miss samples
- broken digest in :class:
- New SplitBregman and FISTA solvers in :class:
- Python
Published by esarradj almost 4 years ago
acoular - v21.05
Supports Python 3.6, 3.7, 3.8, 3.9 on Linux, MacOS, Windows
New class FiltWNoiseGenerator
New classes SphericalHarmonicSource, Linesource, MovingPointSourceDipole, MovingLineSource
New class TimeConvolve
Speedups:
CSM works now in parallel and is faster
frequency domain beamformers are abaout 30% faster
time domain beamformers and CLEAN-T is now about 10 x faster
Unittests for all major features, much better coverage
Bugfixes:
integration sectors
new grid classes from 20.10 are now imported into module namespace
- Python
Published by esarradj almost 5 years ago