acoular 23.11__py3-none-any.whl → 24.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
acoular/fbeamform.py CHANGED
@@ -43,13 +43,20 @@ invert, dot, newaxis, zeros, linalg, \
43
43
  searchsorted, pi, sign, diag, arange, sqrt, log10, \
44
44
  reshape, hstack, vstack, eye, tril, size, clip, tile, round, delete, \
45
45
  absolute, argsort, sum, hsplit, fill_diagonal, zeros_like, \
46
- einsum, ndarray, isscalar, inf, real, unique
46
+ einsum, ndarray, isscalar, inf, real, unique, atleast_2d, einsum_path,trace
47
47
 
48
48
  from numpy.linalg import norm
49
49
 
50
50
  from sklearn.linear_model import LassoLars, LassoLarsCV, LassoLarsIC,\
51
51
  OrthogonalMatchingPursuitCV, LinearRegression
52
52
 
53
+ #check for sklearn version to account for incompatible behavior
54
+ import sklearn
55
+ from packaging.version import parse
56
+ sklearn_ndict = {}
57
+ if parse(sklearn.__version__)<parse('1.4'):
58
+ sklearn_ndict['normalize'] = False
59
+
53
60
  from scipy.optimize import nnls, linprog, fmin_l_bfgs_b, shgo
54
61
  from scipy.linalg import inv, eigh, eigvals, fractional_matrix_power
55
62
  from warnings import warn
@@ -170,7 +177,7 @@ class SteeringVector( HasPrivateTraits ):
170
177
 
171
178
  @property_depends_on('grid.digest, mics.digest, env.digest')
172
179
  def _get_rm ( self ):
173
- return self.env._r(self.grid.pos(), self.mics.mpos)
180
+ return atleast_2d(self.env._r(self.grid.pos(), self.mics.mpos))
174
181
 
175
182
  @cached_property
176
183
  def _get_digest( self ):
@@ -1547,7 +1554,7 @@ class BeamformerOrth( BeamformerBase ):
1547
1554
  self.r_diag,
1548
1555
  normFactor,
1549
1556
  steer_vector(f[i]),
1550
- (ones(1), eve[:, n:n+1]))[0]
1557
+ (ones(1), eve[:, n].reshape((-1,1))))[0]
1551
1558
  ac[i, beamformerOutput.argmax()]+=eva[n]/numchannels
1552
1559
  fr[i] = 1
1553
1560
 
@@ -1890,16 +1897,16 @@ class BeamformerCMF ( BeamformerBase ):
1890
1897
  # choose method
1891
1898
  if self.method == 'LassoLars':
1892
1899
  model = LassoLars(alpha = self.alpha * unit,
1893
- max_iter = self.max_iter,
1894
- normalize=False)
1900
+ max_iter = self.max_iter,
1901
+ **sklearn_ndict)
1895
1902
  elif self.method == 'LassoLarsBIC':
1896
1903
  model = LassoLarsIC(criterion = 'bic',
1897
- max_iter = self.max_iter,
1898
- normalize=False,)
1904
+ max_iter = self.max_iter,
1905
+ **sklearn_ndict)
1899
1906
  elif self.method == 'OMPCV':
1900
- model = OrthogonalMatchingPursuitCV(normalize=False)
1907
+ model = OrthogonalMatchingPursuitCV(**sklearn_ndict)
1901
1908
  elif self.method == 'NNLS':
1902
- model = LinearRegression(normalize=False, positive=True)
1909
+ model = LinearRegression(positive=True)
1903
1910
 
1904
1911
  if self.method == 'Split_Bregman' and PYLOPS_TRUE:
1905
1912
  Oop = MatrixMult(A) #tranfer operator
@@ -2041,7 +2048,8 @@ class BeamformerSODIX( BeamformerBase ):
2041
2048
  group)
2042
2049
  ac = self.h5f.get_data_by_reference('result','/'+nodename)
2043
2050
  fr = self.h5f.get_data_by_reference('freqs','/'+nodename)
2044
- return (ac,fr)
2051
+ gpos = None
2052
+ return (ac,fr,gpos)
2045
2053
 
2046
2054
  @property_depends_on('ext_digest')
2047
2055
  def _get_sodix_result ( self ):
@@ -2059,7 +2067,7 @@ class BeamformerSODIX( BeamformerBase ):
2059
2067
  config.global_caching == 'none' or
2060
2068
  (config.global_caching == 'individual' and self.cached == False)
2061
2069
  ):
2062
- (ac,fr) = self._get_filecache()
2070
+ (ac,fr,gpos) = self._get_filecache()
2063
2071
  if ac and fr:
2064
2072
  if not fr[f.ind_low:f.ind_high].all():
2065
2073
  if config.global_caching == 'readonly':
@@ -2216,21 +2224,28 @@ class BeamformerSODIX( BeamformerBase ):
2216
2224
 
2217
2225
  '''
2218
2226
  #### the sodix function ####
2219
- Djm = D.reshape([numpoints,num_mics])
2220
- csmmod = einsum('jm,jm,jn,jn->mn',h.T,Djm,Djm,h.T.conj() )
2221
- func = sum(absolute((csm - csmmod)))**2 + self.alpha*norm(Djm,self.pnorm)
2222
- ####the sodix derivitaive ####
2223
- inner = csm - einsum('jl,jl,jm,jm->lm',h.T,Djm,Djm,h.T.conj() )
2224
- derdrl = -4 * Djm * real(einsum('rm,rl,lm->rl',h.T,h.T.conj(),inner)) + \
2225
- self.alpha * (abs(Djm)/norm(Djm,self.pnorm))**(1-self.pnorm)*sign(Djm)
2226
-
2227
- return func, derdrl[:].flatten() #func[0]
2228
-
2227
+ Djm = D.reshape([numpoints,num_mics])
2228
+ p = h.T * Djm
2229
+ csm_mod = dot(p.T, p.conj())
2230
+ Q = csm - csm_mod
2231
+ func = sum((absolute(Q))**2)
2232
+
2233
+ # subscripts and operands for numpy einsum and einsum_path
2234
+ subscripts = 'rl,rm,ml->rl'
2235
+ operands = (h.T,h.T.conj()*Djm,Q)
2236
+ es_path = einsum_path(subscripts, *operands, optimize='greedy')[0]
2237
+
2238
+ #### the sodix derivative ####
2239
+ derdrl = einsum(subscripts, *operands, optimize=es_path)
2240
+ derdrl = -4 * real(derdrl)
2241
+ return func, derdrl.ravel()
2242
+
2229
2243
  ##### initial guess ####
2230
2244
  if all(ac[(i-1)]==0):
2231
2245
  D0 = ones([numpoints,num_mics])
2232
2246
  else:
2233
- D0 = ac[(i-1)]
2247
+ D0 = sqrt(ac[(i-1)]*
2248
+ real((trace(csm)/trace(array(self.freq_data.csm[i-1], dtype='complex128',copy=1)))))
2234
2249
 
2235
2250
  #boundarys - set to non negative [2*(numpoints*num_mics)]
2236
2251
  boundarys = tile((0, +inf), (numpoints*num_mics,1))
@@ -2239,11 +2254,11 @@ class BeamformerSODIX( BeamformerBase ):
2239
2254
  # see https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_l_bfgs_b.html
2240
2255
 
2241
2256
  qi = ones([numpoints,num_mics])
2242
- qi, yval, dicts = fmin_l_bfgs_b(function, D0, fprime=None, args=(), #None
2243
- approx_grad=0, bounds=boundarys, #approx_grad 0 or True
2244
- factr=100.0, pgtol=1e-09, epsilon=1e-08,
2245
- iprint=0, maxfun=1500000, maxiter=self.max_iter,
2246
- disp=None, callback=None, maxls=20)
2257
+ qi, yval, dicts = fmin_l_bfgs_b(function, D0, fprime=None, args=(),
2258
+ approx_grad=0, bounds=boundarys,
2259
+ factr=100.0, pgtol=1e-12, epsilon=1e-08,
2260
+ iprint=-1, maxfun=1500000, maxiter=self.max_iter,
2261
+ disp=-1, callback=None, maxls=20)
2247
2262
  #squared pressure
2248
2263
  ac[i]=qi**2
2249
2264
  else:
@@ -21,7 +21,14 @@ RectGrid, BeamformerBase, BeamformerEig, BeamformerOrth, BeamformerCleansc, \
21
21
  MaskedTimeSamples, BeamformerCMF, \
22
22
  BeamformerCapon, BeamformerMusic, BeamformerDamas, BeamformerClean, \
23
23
  BeamformerFunctional, BeamformerDamasPlus, BeamformerGIB, BeamformerGridlessOrth,\
24
- SteeringVector, Environment
24
+ SteeringVector, Environment, BeamformerSODIX
25
+
26
+ # copy CMF classes as workaround so that reference data name is unique later
27
+ class BeamformerCMFLassoLarsBIC (BeamformerCMF):
28
+ pass
29
+
30
+ class BeamformerCMFNNLS (BeamformerCMF):
31
+ pass
25
32
 
26
33
  # if this flag is set to True
27
34
  WRITE_NEW_REFERENCE_DATA = False
@@ -70,12 +77,14 @@ def fbeamformers():
70
77
  bdp = BeamformerDamasPlus(beamformer=bb, n_iter=100, cached = False)
71
78
  bo = BeamformerOrth(freq_data=f, steer=st, r_diag=True, eva_list=list(range(38,54)), cached = False)
72
79
  bs = BeamformerCleansc(freq_data=f, steer=st, r_diag=True, cached = False)
73
- bcmf = BeamformerCMF(freq_data=f, steer=st, method='LassoLarsBIC', cached = False)
80
+ bcmflassobic = BeamformerCMFLassoLarsBIC(freq_data=f, steer=st, method='LassoLarsBIC', cached = False)
81
+ bcmfnnls = BeamformerCMFNNLS(freq_data=f, steer=st, method='NNLS', cached = False)
74
82
  bl = BeamformerClean(beamformer=bb, n_iter=10, cached = False)
75
83
  bf = BeamformerFunctional(freq_data=f, steer=st, r_diag=False, gamma=3, cached = False)
76
84
  bgib = BeamformerGIB(freq_data=f, steer=st, method= 'LassoLars', n=2, cached = False)
77
85
  bgo = BeamformerGridlessOrth(freq_data=f, steer=st, r_diag=False, n=1, shgo={'n':16}, cached = False)
78
- return (bbase, bc, beig, bm, bl, bo, bs, bd, bcmf, bf, bdp, bgib, bgo)
86
+ bsodix = BeamformerSODIX(freq_data=f, steer=st,max_iter=10, cached = False)
87
+ return (bbase, bc, beig, bm, bl, bo, bs, bd, bcmflassobic, bcmfnnls, bf, bdp, bgib, bgo,bsodix)
79
88
 
80
89
  class acoular_beamformer_test(unittest.TestCase):
81
90
 
acoular/tools.py CHANGED
@@ -24,11 +24,11 @@ from numpy import array, concatenate, newaxis, where,arctan2,sqrt,pi,mod,zeros,\
24
24
  from numpy.linalg import norm
25
25
  from numpy.ma import masked_where
26
26
  from .spectra import synthetic
27
- from traits.api import Bool, CArray, Float, HasPrivateTraits, Instance, Property, Either
27
+ from traits.api import Bool, CArray, HasPrivateTraits, Instance, Property, Any
28
28
 
29
29
  from scipy.special import spherical_yn, spherical_jn, sph_harm
30
30
  from scipy.spatial.distance import cdist
31
-
31
+ from copy import copy
32
32
 
33
33
  class MetricEvaluator(HasPrivateTraits):
34
34
  """Evaluate the reconstruction performance of source mapping methods.
@@ -104,8 +104,11 @@ class MetricEvaluator(HasPrivateTraits):
104
104
  sectors = []
105
105
  for i in range(ns):
106
106
  loc = self.target_grid.gpos[:,i]
107
- sectors.append(
108
- ac.CircSector(r=r[i],x=loc[0],y=loc[1]))
107
+ sector = copy(self.sector)
108
+ sector.r = r[i]
109
+ sector.x = loc[0]
110
+ sector.y = loc[1]
111
+ sectors.append(sector)
109
112
  return sectors
110
113
 
111
114
  def _integrate_sectors(self):
@@ -116,11 +119,12 @@ class MetricEvaluator(HasPrivateTraits):
116
119
  array (num_freqs,num_sources)
117
120
  returns the integrated Pa**2 values for each sector
118
121
  """
122
+ sectors = self.sectors
119
123
  results = empty(shape=self.target_data.shape)
120
124
  for f in range(self.target_data.shape[0]):
121
125
  data = self.data[f]
122
126
  for i in range(self.target_data.shape[1]):
123
- sector = self.sectors[i]
127
+ sector = sectors[i]
124
128
  results[f,i] = ac.integrate(data,self.grid,sector)
125
129
  if not self.multi_assignment:
126
130
  indices = self.grid.subdomain(sector)
acoular/tprocess.py CHANGED
@@ -40,7 +40,7 @@
40
40
  from numpy import array, empty, empty_like, pi, sin, sqrt, zeros, newaxis, unique, \
41
41
  int16, nan, concatenate, sum, float64, identity, argsort, interp, arange, append, \
42
42
  linspace, flatnonzero, argmin, argmax, delete, mean, inf, asarray, stack, sinc, exp, \
43
- polymul, arange, cumsum, ceil, split
43
+ polymul, arange, cumsum, ceil, split, array_equal
44
44
 
45
45
  from numpy.linalg import norm
46
46
  from numpy.matlib import repmat
@@ -957,7 +957,7 @@ class SpatialInterpolator(TimeInOut):
957
957
  # Interpolation for 1D Arrays
958
958
  if self.array_dimension =='1D' or self.array_dimension =='ring':
959
959
  #for rotation add phidelay
960
- if not phiDelay == []:
960
+ if not array_equal(phiDelay,[]):
961
961
  xInterpHelp = repmat(virtNewCoord[0, :], nTime, 1) + repmat(phiDelay, virtNewCoord.shape[1], 1).T
962
962
  xInterp = ((xInterpHelp + pi ) % (2 * pi)) - pi # shifting phi cootrdinate into feasible area [-pi, pi]
963
963
  #if no rotation given
@@ -1001,7 +1001,7 @@ class SpatialInterpolator(TimeInOut):
1001
1001
  # Interpolation for arbitrary 2D Arrays
1002
1002
  elif self.array_dimension =='2D':
1003
1003
  #check rotation
1004
- if not phiDelay == []:
1004
+ if not array_equal(phiDelay,[]):
1005
1005
  xInterpHelp = repmat(virtNewCoord[0, :], nTime, 1) + repmat(phiDelay, virtNewCoord.shape[1], 1).T
1006
1006
  xInterp = ((xInterpHelp + pi ) % (2 * pi)) - pi #shifting phi cootrdinate into feasible area [-pi, pi]
1007
1007
  else:
@@ -1081,7 +1081,7 @@ class SpatialInterpolator(TimeInOut):
1081
1081
  # Interpolation for arbitrary 3D Arrays
1082
1082
  elif self.array_dimension =='3D':
1083
1083
  #check rotation
1084
- if not phiDelay == []:
1084
+ if not array_equal(phiDelay,[]):
1085
1085
  xInterpHelp = repmat(virtNewCoord[0, :], nTime, 1) + repmat(phiDelay, virtNewCoord.shape[1], 1).T
1086
1086
  xInterp = ((xInterpHelp + pi ) % (2 * pi)) - pi #shifting phi cootrdinate into feasible area [-pi, pi]
1087
1087
  else:
acoular/version.py CHANGED
@@ -5,5 +5,5 @@
5
5
 
6
6
  # separate file to find out about version without importing the acoular lib
7
7
  __author__ = "Acoular Development Team"
8
- __date__ = "20 November 2023"
9
- __version__ = "23.11"
8
+ __date__ = "11 March 2024"
9
+ __version__ = "24.03"
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: acoular
3
- Version: 23.11
3
+ Version: 24.3
4
4
  Summary: Python library for acoustic beamforming
5
5
  Project-URL: homepage, https://acoular.org
6
6
  Project-URL: documentation, https://acoular.org
7
7
  Project-URL: repository, https://github.com/acoular/acoular
8
8
  Author-email: Acoular Development Team <info@acoular.org>
9
- Maintainer-email: Adam Kujawski <adam.kujawski@tu-berlin.de>, Art Pelling <a.pelling@tu-berlin.de>, Ennes Sarradj <ennes.sarradj@tu-berlin.de>, Gert Herlod <gert.herold@tu-berlin.de>, Mikolaj Czuchaj <mikolaj.czuchaj@tu-berlin.de>, Simon Jekosch <s.jekosch@tu-berlin.de>
10
- License: Copyright (c) 2006-2023 The acoular developers.
9
+ Maintainer-email: Adam Kujawski <adam.kujawski@tu-berlin.de>, Art Pelling <a.pelling@tu-berlin.de>, Ennes Sarradj <ennes.sarradj@tu-berlin.de>, Gert Herold <gert.herold@tu-berlin.de>, Mikolaj Czuchaj <mikolaj.czuchaj@tu-berlin.de>, Simon Jekosch <s.jekosch@tu-berlin.de>
10
+ License: Copyright (c) Acoular Development Team.
11
11
  All rights reserved.
12
12
 
13
13
 
@@ -57,10 +57,18 @@ Requires-Dist: scipy>=1.1.0
57
57
  Requires-Dist: tables>=3.4.4
58
58
  Requires-Dist: traits>=6.0
59
59
  Provides-Extra: dev
60
+ Requires-Dist: graphviz; extra == 'dev'
61
+ Requires-Dist: ipython; extra == 'dev'
62
+ Requires-Dist: matplotlib; extra == 'dev'
60
63
  Requires-Dist: nox; extra == 'dev'
64
+ Requires-Dist: numpydoc; extra == 'dev'
65
+ Requires-Dist: pickleshare; extra == 'dev'
66
+ Requires-Dist: sounddevice; extra == 'dev'
67
+ Requires-Dist: sphinx; extra == 'dev'
61
68
  Provides-Extra: full
62
69
  Requires-Dist: matplotlib; extra == 'full'
63
70
  Requires-Dist: pylops; extra == 'full'
71
+ Requires-Dist: sounddevice; extra == 'full'
64
72
  Description-Content-Type: text/markdown
65
73
 
66
74
  ![Acoular Logo](./docs/source/_static/Acoular_logo.png)
@@ -3,7 +3,7 @@ acoular/calib.py,sha256=vOAZe-l9iFZiO74vgF2Xo8PwbIeHBydV75GMkwExWkI,2655
3
3
  acoular/configuration.py,sha256=svKch7hyuNV9feyuVjRK7vnApA11rFJRJWfqegPR0ZE,7221
4
4
  acoular/environments.py,sha256=_fFt7xJGl3ts3Z2uY3NL3pXflVA1pJYAIMIHT15SFKI,22349
5
5
  acoular/fastFuncs.py,sha256=bqiquPiz4xYIEF5jtmj0DJGqNBTdiSo5Jn4Vmr4Kxqg,38191
6
- acoular/fbeamform.py,sha256=ez03xuocmGORLKMsUCKGX2ptX36Vo9mMkc6sa5kwTgc,117385
6
+ acoular/fbeamform.py,sha256=8b1_44AlYyyv1YB4OxDzInBbro1u3-Bj8eQWrJecp1g,117815
7
7
  acoular/fileimport.py,sha256=Y1w75IlH_x-nH7put-E8awXFy5Thgz5yHNoIQl7cjMA,13285
8
8
  acoular/grids.py,sha256=jynZLFIABIRTXbHw4qKYwdXWrAYRBo-jr1_uNsut1K0,41908
9
9
  acoular/h5cache.py,sha256=uoYs4i83qt7oRI27w7b03-GPCBn88Z0eo_UjR-ywKfo,4700
@@ -17,17 +17,17 @@ acoular/sources.py,sha256=fYKtGYEp638YvwLrk0mKi9X634zpN1YCWmXQdNBfR7s,51086
17
17
  acoular/spectra.py,sha256=8FrrOfjVAKLJep1Sb4HtphcA9oLKk-cUrPmxJpIvKBY,28975
18
18
  acoular/tbeamform.py,sha256=H1T_rFJYV9Xp-ezZpyUngYkNJ1kJQlv-S8AY-nvtKQ0,31193
19
19
  acoular/tfastfuncs.py,sha256=ibbTU9LemjXlxYsppgKTyMwW4XsXmduo3JudA0XlsBY,7383
20
- acoular/tools.py,sha256=NL4TIudTdQ_MyLgEbIZyfMbjF5xKS3K9HJC0ShhjqSE,14820
21
- acoular/tprocess.py,sha256=VY1asOBL1FUV4lX5nPIK8e2tLrgvt_hQWJVXH9QaIco,91097
20
+ acoular/tools.py,sha256=dqhAju7UOtckrzov_HJGkHo7QAgOCeEEVDs0RzfvY4Q,14934
21
+ acoular/tprocess.py,sha256=KBsPlYUCot7AIcK_1JeECwGzCv70io1uLILQF-4o688,91140
22
22
  acoular/traitsviews.py,sha256=VHCIr70gEU6nJkicq1JkxGlYyHh16vUCe4vHkgdkQwA,17655
23
23
  acoular/trajectory.py,sha256=oxsOvlti4p4qlPnoYJjObQ-42UfWfWvb96OhwnRv56I,4203
24
- acoular/version.py,sha256=dhhdv5oajI8uBA4Ihd--qI4XL_8F1CdAv9Ma0wlq5qQ,395
24
+ acoular/version.py,sha256=jIKXs3ln6FKIM_k1QqkYRrGe61DwueDwUBFWw0VPx1M,392
25
25
  acoular/demo/__init__.py,sha256=0pWbkUhMd8p6oMA8K6iNjT2a1EfKzwOLbmPVJxh7KU0,251
26
26
  acoular/demo/acoular_demo.py,sha256=cRWesR6JyeoYbcTXuPYU9hSLjsVaRiL4DJ4Z__LbtAQ,2801
27
27
  acoular/tests/run_tests.sh,sha256=ucCUE7q7j7sWoXjytwFDPwtbUz_RZOR6DP_itXWuA-c,288
28
28
  acoular/tests/run_tests_osx.sh,sha256=Dq2s3vWbZOgW1swGhN_ZFacNDRXbZWJ_g4GCLyl-2Jk,286
29
29
  acoular/tests/test.npy,sha256=57PGpFDUwRkIF3-JA6FmflozplmiOVjHVmDoX7wGN6A,441
30
- acoular/tests/test_beamformer_results.py,sha256=RHUhEInHjUD-EFGGel3n2mINC7WCnsCs9AzNUBJhVpw,10196
30
+ acoular/tests/test_beamformer_results.py,sha256=gMm-WMu0MupDs9ky1jzaP6ClEGR_rDvQ1wUGPCCD5Qw,10612
31
31
  acoular/tests/test_classes.py,sha256=KphaNvUZJmqog8efyFQVkIO3oxs6K2EEFvdK7eIWLVA,2736
32
32
  acoular/tests/test_digest.py,sha256=jz9qZZk4so0ZW75L-KJSeic6i3Y4OP87Oy3uQCI6oXw,8645
33
33
  acoular/tests/test_environments.py,sha256=X7evzBtzmklG18tZybzfGo8xs8tdrm8py0LXxl3yMxk,2532
@@ -49,7 +49,8 @@ acoular/tests/reference_data/BeamformerBaseTrue1.npy,sha256=07gDCvKquHgZtAJtH0I_
49
49
  acoular/tests/reference_data/BeamformerBaseTrue2.npy,sha256=M0VWloRkEsBL_N8JZreUdjDZpQ8e2NxKNTY42E-GKSA,1480
50
50
  acoular/tests/reference_data/BeamformerBaseTrue3.npy,sha256=SXWz2lZNJIVTJtDeVpKo0FtITyRRx43I2b-LnWB6RPY,1480
51
51
  acoular/tests/reference_data/BeamformerBaseTrue4.npy,sha256=LWqzl2iy15GzQbd2Y6Rd2tIm2Ft71984qNnhMp0KIag,1480
52
- acoular/tests/reference_data/BeamformerCMF.npy,sha256=hu8jmG8C7KCUhnTSuRO9qC0sDhVzmVQPtpThL7DYnpw,1480
52
+ acoular/tests/reference_data/BeamformerCMFLassoLarsBIC.npy,sha256=hu8jmG8C7KCUhnTSuRO9qC0sDhVzmVQPtpThL7DYnpw,1480
53
+ acoular/tests/reference_data/BeamformerCMFNNLS.npy,sha256=WVQQBiPdej1VWqYzRS_p6zjni1psV1HluolWM_RiCsk,1480
53
54
  acoular/tests/reference_data/BeamformerCapon.npy,sha256=12V9FHQQrnfAaYXFJP5udGbrdOBjn0Z4SXMa6iOdUm4,1480
54
55
  acoular/tests/reference_data/BeamformerClean.npy,sha256=DlY5YMM3XCf5EDhFwEvpmSzXEzBRyjEcV_OZlAfXW3U,1480
55
56
  acoular/tests/reference_data/BeamformerCleansc.npy,sha256=Dpx-1X23LlaKUMu58QmXGQkRz3BGz3bOk6jCNmrmOpY,1480
@@ -73,6 +74,7 @@ acoular/tests/reference_data/BeamformerGIB.npy,sha256=seJXgy3zVn29yUFWGz4gN4AzIc
73
74
  acoular/tests/reference_data/BeamformerGridlessOrth.npy,sha256=8lr3zhn2TviDQCEOVdVeOs9QySdvAxdEavx_w0K0TU8,648
74
75
  acoular/tests/reference_data/BeamformerMusic.npy,sha256=tWSiwIt2XfGdO5Wf8M8qGm2_IzHK3hVDjCTd2blpAsg,1480
75
76
  acoular/tests/reference_data/BeamformerOrth.npy,sha256=a_OWXScfCtwhHZsuCe_CA_lIl-IoKOtkAYzmno4yySM,1480
77
+ acoular/tests/reference_data/BeamformerSODIX.npy,sha256=IIv7LCCFSiuHXqPU2mEtzsoGwlB__IqDnXuMrgESf98,73136
76
78
  acoular/tests/reference_data/BeamformerTime.npy,sha256=IJy6Y65DKAiYd98R1gHMrj48TjAtf9f7BQq0Aunc6ZM,512
77
79
  acoular/tests/reference_data/BeamformerTimeSq.npy,sha256=uy3_vy6HF3AOEeei6pqibSXHPXUi0n2SGI6dlUd-4FA,512
78
80
  acoular/tests/reference_data/BeamformerTimeSqTraj.npy,sha256=tldZ1uhwgImum4e0uE5lLB6si8uyXOIK7sI-DIPC_PQ,512
@@ -139,8 +141,8 @@ acoular/xml/calib_vw_ring32.xml,sha256=9chpz0O3e__oIs4ZuJTvUJNIuawjDqEnkdRbfyUBB
139
141
  acoular/xml/gfai_ring32.xml,sha256=liKaGpfgUn8R1psDmiw6qqpZi5SwtPWBRhwhqy7YuOc,1831
140
142
  acoular/xml/minidsp_uma16.xml,sha256=QDL13OJtkuzdbu29RyhtJgx69aYsy257MxagI4OIwZQ,1153
141
143
  acoular/xml/tub_vogel64.xml,sha256=PixVMx5hMJjgBOekH46uu6D3ODqYVOLlk82zkYl4EBM,4424
142
- acoular-23.11.dist-info/METADATA,sha256=U4UoQnOfIl0u7ChHTdyMimb1ffB8nJrwtS2tAeQazoE,9644
143
- acoular-23.11.dist-info/WHEEL,sha256=9QBuHhg6FNW7lppboF2vKVbCGTVzsFykgRQjjlajrhA,87
144
- acoular-23.11.dist-info/licenses/AUTHORS.rst,sha256=445q_Us_TnQx8s_GP2yringU2DMTk3-ycrk2REtSsx0,382
145
- acoular-23.11.dist-info/licenses/LICENSE,sha256=Ego5lrGo_UNS9tVQD3EhSCrGG3x9OtE8TDiexlMKGkI,1528
146
- acoular-23.11.dist-info/RECORD,,
144
+ acoular-24.3.dist-info/METADATA,sha256=ojEXPOpe8wW2FgoQ0JrdQDlKdmWJJlAewzxiIuHLBGA,9964
145
+ acoular-24.3.dist-info/WHEEL,sha256=TJPnKdtrSue7xZ_AVGkp9YXcvDrobsjBds1du3Nx6dc,87
146
+ acoular-24.3.dist-info/licenses/AUTHORS.rst,sha256=445q_Us_TnQx8s_GP2yringU2DMTk3-ycrk2REtSsx0,382
147
+ acoular-24.3.dist-info/licenses/LICENSE,sha256=NWcGAW6iG6xTR5CyiiSmHsbFfIHhcwscK85if20Q3hY,1520
148
+ acoular-24.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.18.0
2
+ Generator: hatchling 1.21.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,4 +1,4 @@
1
- Copyright (c) 2006-2023 The acoular developers.
1
+ Copyright (c) Acoular Development Team.
2
2
  All rights reserved.
3
3
 
4
4