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 - v24.04

Tests: * fixes unpickable classes and adds pickle test

- Python
Published by adku1173 10 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_path together with einsum function
    • changed start value pgtol for the optimization with scipy.optimize.fmin_l_bfgs_b solver
  • Bugfixes:
    • fixes unrecognized sector arguments in MetricEvaluator
    • handles version-dependent default values for normalize attribute in sklearn solvers (relevant for BeamformerCMF )
    • fixes bug in BeamformerOrth: assigned strongest source at grid index 0 when instead of eva_list the trait n was given
    • fixes broken SpatialInterpolator
    • minor bugfix for single microphone transfer functions calculated with SteeringVector
    • fixes broken NNLS method in BeamformerCMF (wrong keyword argument normalize)
  • 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.RectGrid3D repaired
      • :class:~acoular.tbeamform.BeamformerCleant and derived classes now never miss samples

- 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

acoular - v20.10

- Python
Published by esarradj over 5 years ago

acoular - v20.02

- Python
Published by esarradj almost 6 years ago