acoular 24.3__py3-none-any.whl → 24.5__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/__init__.py +118 -50
- acoular/calib.py +29 -38
- acoular/configuration.py +116 -73
- acoular/demo/__init__.py +10 -4
- acoular/demo/acoular_demo.py +78 -53
- acoular/environments.py +265 -262
- acoular/fastFuncs.py +361 -191
- acoular/fbeamform.py +1460 -1404
- acoular/grids.py +501 -545
- acoular/h5cache.py +50 -59
- acoular/h5files.py +154 -137
- acoular/internal.py +10 -11
- acoular/microphones.py +57 -53
- acoular/sdinput.py +47 -52
- acoular/signals.py +167 -179
- acoular/sources.py +818 -693
- acoular/spectra.py +349 -359
- acoular/tbeamform.py +414 -413
- acoular/tfastfuncs.py +178 -101
- acoular/tools/__init__.py +25 -0
- acoular/tools/aiaa.py +186 -0
- acoular/tools/helpers.py +189 -0
- acoular/tools/metrics.py +165 -0
- acoular/tprocess.py +1201 -1143
- acoular/traitsviews.py +513 -501
- acoular/trajectory.py +50 -52
- acoular/version.py +5 -6
- acoular/xml/minidsp_uma-16.xml +20 -0
- acoular/xml/{minidsp_uma16.xml → minidsp_uma-16_mirrored.xml} +3 -0
- {acoular-24.3.dist-info → acoular-24.5.dist-info}/METADATA +45 -46
- acoular-24.5.dist-info/RECORD +50 -0
- {acoular-24.3.dist-info → acoular-24.5.dist-info}/WHEEL +1 -1
- acoular-24.5.dist-info/licenses/LICENSE +28 -0
- acoular/fileimport.py +0 -380
- acoular/nidaqimport.py +0 -273
- acoular/tests/reference_data/BeamformerBase.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseFalse1.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseFalse2.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseFalse3.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseFalse4.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseTrue1.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseTrue2.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseTrue3.npy +0 -0
- acoular/tests/reference_data/BeamformerBaseTrue4.npy +0 -0
- acoular/tests/reference_data/BeamformerCMFLassoLarsBIC.npy +0 -0
- acoular/tests/reference_data/BeamformerCMFNNLS.npy +0 -0
- acoular/tests/reference_data/BeamformerCapon.npy +0 -0
- acoular/tests/reference_data/BeamformerClean.npy +0 -0
- acoular/tests/reference_data/BeamformerCleansc.npy +0 -0
- acoular/tests/reference_data/BeamformerCleant.npy +0 -0
- acoular/tests/reference_data/BeamformerCleantSq.npy +0 -0
- acoular/tests/reference_data/BeamformerCleantSqTraj.npy +0 -0
- acoular/tests/reference_data/BeamformerCleantTraj.npy +0 -0
- acoular/tests/reference_data/BeamformerDamas.npy +0 -0
- acoular/tests/reference_data/BeamformerDamasPlus.npy +0 -0
- acoular/tests/reference_data/BeamformerEig.npy +0 -0
- acoular/tests/reference_data/BeamformerEigFalse1.npy +0 -0
- acoular/tests/reference_data/BeamformerEigFalse2.npy +0 -0
- acoular/tests/reference_data/BeamformerEigFalse3.npy +0 -0
- acoular/tests/reference_data/BeamformerEigFalse4.npy +0 -0
- acoular/tests/reference_data/BeamformerEigTrue1.npy +0 -0
- acoular/tests/reference_data/BeamformerEigTrue2.npy +0 -0
- acoular/tests/reference_data/BeamformerEigTrue3.npy +0 -0
- acoular/tests/reference_data/BeamformerEigTrue4.npy +0 -0
- acoular/tests/reference_data/BeamformerFunctional.npy +0 -0
- acoular/tests/reference_data/BeamformerGIB.npy +0 -0
- acoular/tests/reference_data/BeamformerGridlessOrth.npy +0 -0
- acoular/tests/reference_data/BeamformerMusic.npy +0 -0
- acoular/tests/reference_data/BeamformerOrth.npy +0 -0
- acoular/tests/reference_data/BeamformerSODIX.npy +0 -0
- acoular/tests/reference_data/BeamformerTime.npy +0 -0
- acoular/tests/reference_data/BeamformerTimeSq.npy +0 -0
- acoular/tests/reference_data/BeamformerTimeSqTraj.npy +0 -0
- acoular/tests/reference_data/BeamformerTimeTraj.npy +0 -0
- acoular/tests/reference_data/Environment.npy +0 -0
- acoular/tests/reference_data/Example1_numerical_values_testsum.h5 +0 -0
- acoular/tests/reference_data/FiltFiltOctave__.npy +0 -0
- acoular/tests/reference_data/FiltFiltOctave_band_100_0_fraction_Thirdoctave_.npy +0 -0
- acoular/tests/reference_data/FiltFreqWeight_weight_A_.npy +0 -0
- acoular/tests/reference_data/FiltFreqWeight_weight_C_.npy +0 -0
- acoular/tests/reference_data/FiltFreqWeight_weight_Z_.npy +0 -0
- acoular/tests/reference_data/FiltOctave__.npy +0 -0
- acoular/tests/reference_data/FiltOctave_band_100_0_fraction_Thirdoctave_.npy +0 -0
- acoular/tests/reference_data/Filter__.npy +0 -0
- acoular/tests/reference_data/GeneralFlowEnvironment.npy +0 -0
- acoular/tests/reference_data/OctaveFilterBank__.npy +0 -0
- acoular/tests/reference_data/OpenJet.npy +0 -0
- acoular/tests/reference_data/PointSource.npy +0 -0
- acoular/tests/reference_data/PowerSpectra_csm.npy +0 -0
- acoular/tests/reference_data/PowerSpectra_ev.npy +0 -0
- acoular/tests/reference_data/RotatingFlow.npy +0 -0
- acoular/tests/reference_data/SlotJet.npy +0 -0
- acoular/tests/reference_data/TimeAverage__.npy +0 -0
- acoular/tests/reference_data/TimeCumAverage__.npy +0 -0
- acoular/tests/reference_data/TimeExpAverage_weight_F_.npy +0 -0
- acoular/tests/reference_data/TimeExpAverage_weight_I_.npy +0 -0
- acoular/tests/reference_data/TimeExpAverage_weight_S_.npy +0 -0
- acoular/tests/reference_data/TimeInOut__.npy +0 -0
- acoular/tests/reference_data/TimePower__.npy +0 -0
- acoular/tests/reference_data/TimeReverse__.npy +0 -0
- acoular/tests/reference_data/UniformFlowEnvironment.npy +0 -0
- acoular/tests/reference_data/beamformer_traj_time_data.h5 +0 -0
- acoular/tests/run_tests.sh +0 -18
- acoular/tests/run_tests_osx.sh +0 -16
- acoular/tests/test.npy +0 -0
- acoular/tests/test_beamformer_results.py +0 -213
- acoular/tests/test_classes.py +0 -60
- acoular/tests/test_digest.py +0 -125
- acoular/tests/test_environments.py +0 -73
- acoular/tests/test_example1.py +0 -124
- acoular/tests/test_grid.py +0 -92
- acoular/tests/test_integrate.py +0 -102
- acoular/tests/test_signals.py +0 -60
- acoular/tests/test_sources.py +0 -65
- acoular/tests/test_spectra.py +0 -38
- acoular/tests/test_timecache.py +0 -35
- acoular/tests/test_tprocess.py +0 -90
- acoular/tests/test_traj_beamformer_results.py +0 -164
- acoular/tests/unsupported/SpeedComparison/OvernightTestcasesBeamformer_nMics32_nGridPoints100_nFreqs4_nTrials10.png +0 -0
- acoular/tests/unsupported/SpeedComparison/cythonBeamformer.pyx +0 -237
- acoular/tests/unsupported/SpeedComparison/mainForCython.py +0 -103
- acoular/tests/unsupported/SpeedComparison/mainForParallelJit.py +0 -143
- acoular/tests/unsupported/SpeedComparison/setupCythonOpenMP.py +0 -63
- acoular/tests/unsupported/SpeedComparison/sharedFunctions.py +0 -153
- acoular/tests/unsupported/SpeedComparison/timeOverNMics_AllImportantMethods.png +0 -0
- acoular/tests/unsupported/SpeedComparison/timeOverNMics_faverage.png +0 -0
- acoular/tests/unsupported/SpeedComparison/vglOptimierungFAverage.py +0 -204
- acoular/tests/unsupported/SpeedComparison/vglOptimierungGaussSeidel.py +0 -182
- acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAMFULL_INVERSE.py +0 -764
- acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAM_OS.py +0 -231
- acoular/tests/unsupported/SpeedComparison/whatsFastestWayFor_absASquared.py +0 -48
- acoular/tests/unsupported/functionalBeamformer.py +0 -123
- acoular/tests/unsupported/precisionTest.py +0 -153
- acoular/tests/unsupported/validationOfBeamformerFuncsPOSTAcoularIntegration.py +0 -254
- acoular/tests/unsupported/validationOfBeamformerFuncsPREeAcoularIntegration.py +0 -531
- acoular/tools.py +0 -422
- acoular-24.3.dist-info/RECORD +0 -148
- acoular-24.3.dist-info/licenses/LICENSE +0 -29
- {acoular-24.3.dist-info → acoular-24.5.dist-info}/licenses/AUTHORS.rst +0 -0
acoular/tools.py
DELETED
|
@@ -1,422 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
#pylint: disable-msg=E0611, E1101, C0103, R0901, R0902, R0903, R0904, W0232
|
|
3
|
-
#------------------------------------------------------------------------------
|
|
4
|
-
# Copyright (c) Acoular Development Team.
|
|
5
|
-
#------------------------------------------------------------------------------
|
|
6
|
-
"""
|
|
7
|
-
Implements tools for Acoular.
|
|
8
|
-
|
|
9
|
-
.. autosummary::
|
|
10
|
-
:toctree: generated/
|
|
11
|
-
|
|
12
|
-
MetricEvaluator
|
|
13
|
-
return_result
|
|
14
|
-
spherical_hn1
|
|
15
|
-
get_radiation_angles
|
|
16
|
-
get_modes
|
|
17
|
-
barspectrum
|
|
18
|
-
bardata
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
import acoular as ac
|
|
22
|
-
from numpy import array, concatenate, newaxis, where,arctan2,sqrt,pi,mod,zeros,\
|
|
23
|
-
complex128, ones, inf, minimum, empty
|
|
24
|
-
from numpy.linalg import norm
|
|
25
|
-
from numpy.ma import masked_where
|
|
26
|
-
from .spectra import synthetic
|
|
27
|
-
from traits.api import Bool, CArray, HasPrivateTraits, Instance, Property, Any
|
|
28
|
-
|
|
29
|
-
from scipy.special import spherical_yn, spherical_jn, sph_harm
|
|
30
|
-
from scipy.spatial.distance import cdist
|
|
31
|
-
from copy import copy
|
|
32
|
-
|
|
33
|
-
class MetricEvaluator(HasPrivateTraits):
|
|
34
|
-
"""Evaluate the reconstruction performance of source mapping methods.
|
|
35
|
-
|
|
36
|
-
This class can be used to calculate the following performance metrics
|
|
37
|
-
according to Herold and Sarradj (2017):
|
|
38
|
-
* Specific level error
|
|
39
|
-
* Overall level error
|
|
40
|
-
* Inverse level error
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
#: an array of shape=(nf,ng) containing the squared sound pressure data of the
|
|
44
|
-
#: source mapping. (nf: number of frequencies, ng: number of grid points)
|
|
45
|
-
data = CArray(shape=(None,None),
|
|
46
|
-
desc="Contains the calculated squared sound pressure values in Pa**2.")
|
|
47
|
-
|
|
48
|
-
#: an array of shape=(nf,ns) containing the squared sound pressure data of the
|
|
49
|
-
#: ground-truth sources. (nf: number of frequencies, ns: number of sources)
|
|
50
|
-
target_data = CArray(shape=(None,None),
|
|
51
|
-
desc="Contains the ground-truth squared sound pressure values in Pa**2.")
|
|
52
|
-
|
|
53
|
-
#: :class:`~acoular.grids.Grid`-derived object that provides the grid locations
|
|
54
|
-
#: for the calculated source mapping data.
|
|
55
|
-
grid = Instance(ac.Grid,
|
|
56
|
-
desc="Grid instance that belongs to the calculated data")
|
|
57
|
-
|
|
58
|
-
#: :class:`~acoular.grids.Grid`-derived object that provides the grid locations
|
|
59
|
-
#: for the ground-truth data.
|
|
60
|
-
target_grid = Instance(ac.Grid,
|
|
61
|
-
desc="Grid instance that belongs to the ground-truth data")
|
|
62
|
-
|
|
63
|
-
#: sector type. Currently only circular sectors are supported.
|
|
64
|
-
sector = Instance(ac.CircSector, default=ac.CircSector(),)
|
|
65
|
-
|
|
66
|
-
#: if set True: use shrink integration area if two sources are closer
|
|
67
|
-
#: than 2*r. The radius of the integration area is then set to half the
|
|
68
|
-
#: distance between the two sources.
|
|
69
|
-
adaptive_sector_size = Bool(True,
|
|
70
|
-
desc="adaptive integration area")
|
|
71
|
-
|
|
72
|
-
#: if set `True`, the same amplitude can be assigned to multiple targets if
|
|
73
|
-
#: the integration area overlaps. If set `False`, the amplitude is assigned
|
|
74
|
-
#: to the first target and the other targets are ignored.
|
|
75
|
-
multi_assignment = Bool(True,
|
|
76
|
-
desc="if set True, the same amplitude can be assigned to multiple targets if the integration area overlaps")
|
|
77
|
-
|
|
78
|
-
#: returns the determined sector sizes for each ground-truth source position
|
|
79
|
-
sectors = Property()
|
|
80
|
-
|
|
81
|
-
def _validate_shapes(self):
|
|
82
|
-
if self.data.shape[0] != self.target_data.shape[0]:
|
|
83
|
-
raise ValueError("data and target_data must have the same number of frequencies!")
|
|
84
|
-
if self.data.shape[1] != self.grid.size:
|
|
85
|
-
raise ValueError("data and grid must have the same number of grid points!")
|
|
86
|
-
if self.target_data.shape[1] != self.target_grid.size:
|
|
87
|
-
raise ValueError("target_data and target_grid must have the same number of grid points!")
|
|
88
|
-
|
|
89
|
-
def _get_sector_radii(self):
|
|
90
|
-
ns = self.target_data.shape[1]
|
|
91
|
-
radii = ones(ns)*self.sector.r
|
|
92
|
-
if self.adaptive_sector_size:
|
|
93
|
-
locs = self.target_grid.gpos.T
|
|
94
|
-
intersrcdist = cdist(locs, locs)
|
|
95
|
-
intersrcdist[intersrcdist == 0] = inf
|
|
96
|
-
intersrcdist = intersrcdist.min(0)/2
|
|
97
|
-
radii = minimum(radii,intersrcdist)
|
|
98
|
-
return radii
|
|
99
|
-
|
|
100
|
-
def _get_sectors(self):
|
|
101
|
-
"""Returns a list of CircSector objects for each target location."""
|
|
102
|
-
r = self._get_sector_radii()
|
|
103
|
-
ns = self.target_data.shape[1]
|
|
104
|
-
sectors = []
|
|
105
|
-
for i in range(ns):
|
|
106
|
-
loc = self.target_grid.gpos[:,i]
|
|
107
|
-
sector = copy(self.sector)
|
|
108
|
-
sector.r = r[i]
|
|
109
|
-
sector.x = loc[0]
|
|
110
|
-
sector.y = loc[1]
|
|
111
|
-
sectors.append(sector)
|
|
112
|
-
return sectors
|
|
113
|
-
|
|
114
|
-
def _integrate_sectors(self):
|
|
115
|
-
"""Integrates over target sectors.
|
|
116
|
-
|
|
117
|
-
Returns
|
|
118
|
-
-------
|
|
119
|
-
array (num_freqs,num_sources)
|
|
120
|
-
returns the integrated Pa**2 values for each sector
|
|
121
|
-
"""
|
|
122
|
-
sectors = self.sectors
|
|
123
|
-
results = empty(shape=self.target_data.shape)
|
|
124
|
-
for f in range(self.target_data.shape[0]):
|
|
125
|
-
data = self.data[f]
|
|
126
|
-
for i in range(self.target_data.shape[1]):
|
|
127
|
-
sector = sectors[i]
|
|
128
|
-
results[f,i] = ac.integrate(data,self.grid,sector)
|
|
129
|
-
if not self.multi_assignment:
|
|
130
|
-
indices = self.grid.subdomain(sector)
|
|
131
|
-
data[indices] = 0 # set values to zero (can not be assigned again)
|
|
132
|
-
return results
|
|
133
|
-
|
|
134
|
-
def get_overall_level_error(self):
|
|
135
|
-
"""Returns the overall level error (Herold and Sarradj, 2017).
|
|
136
|
-
|
|
137
|
-
Returns
|
|
138
|
-
-------
|
|
139
|
-
numpy.array
|
|
140
|
-
overall level error of shape=(nf,)
|
|
141
|
-
"""
|
|
142
|
-
self._validate_shapes()
|
|
143
|
-
return ac.L_p(self.data.sum(axis=1)) - ac.L_p(self.target_data.sum(axis=1))
|
|
144
|
-
|
|
145
|
-
def get_specific_level_error(self):
|
|
146
|
-
"""Returns the specific level error (Herold and Sarradj, 2017).
|
|
147
|
-
|
|
148
|
-
Returns
|
|
149
|
-
-------
|
|
150
|
-
numpy.array
|
|
151
|
-
specific level error of shape=(nf,ns). nf: number of frequencies, ns: number of sources
|
|
152
|
-
"""
|
|
153
|
-
self._validate_shapes()
|
|
154
|
-
sector_result = self._integrate_sectors()
|
|
155
|
-
return ac.L_p(sector_result) - ac.L_p(self.target_data)
|
|
156
|
-
|
|
157
|
-
def get_inverse_level_error(self):
|
|
158
|
-
"""Returns the inverse level error (Herold and Sarradj, 2017).
|
|
159
|
-
|
|
160
|
-
Returns
|
|
161
|
-
-------
|
|
162
|
-
numpy.array
|
|
163
|
-
inverse level error of shape=(nf,1)
|
|
164
|
-
"""
|
|
165
|
-
self._validate_shapes()
|
|
166
|
-
sector_result = self._integrate_sectors()
|
|
167
|
-
return ac.L_p(sector_result.sum(axis=1)) - ac.L_p(self.data.sum(axis=1))
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
def return_result(source, nmax=-1, num=128):
|
|
172
|
-
"""
|
|
173
|
-
Collects the output from a
|
|
174
|
-
:meth:`SamplesGenerator.result()<acoular.tprocess.SamplesGenerator.result>`
|
|
175
|
-
generator and returns an assembled array with all the data.
|
|
176
|
-
|
|
177
|
-
Parameters
|
|
178
|
-
----------
|
|
179
|
-
source: SamplesGenerator or derived object.
|
|
180
|
-
This is the :class:`SamplesGenerator<acoular.tprocess.SamplesGenerator>` data source.
|
|
181
|
-
nmax: integer
|
|
182
|
-
With this parameter, a maximum number of output samples can be set
|
|
183
|
-
(first dimension of array). If set to -1 (default), samples are
|
|
184
|
-
collected as long as the generator yields them.
|
|
185
|
-
num : integer
|
|
186
|
-
This parameter defines the size of the blocks that are fetched.
|
|
187
|
-
Defaults to 128.
|
|
188
|
-
|
|
189
|
-
Returns
|
|
190
|
-
-------
|
|
191
|
-
array of floats (number of samples, source.numchannels)
|
|
192
|
-
Array that holds all the data.
|
|
193
|
-
"""
|
|
194
|
-
resulter = (_.copy() for _ in source.result(num))
|
|
195
|
-
|
|
196
|
-
if nmax > 0:
|
|
197
|
-
nblocks = (nmax-1) // num + 1
|
|
198
|
-
return concatenate(
|
|
199
|
-
list( res for _, res in
|
|
200
|
-
zip(range(nblocks),
|
|
201
|
-
resulter) ) )[:nmax]
|
|
202
|
-
else:
|
|
203
|
-
return concatenate(list(resulter))
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
def spherical_hn1(n,z,derivativearccos=False):
|
|
207
|
-
""" Spherical Hankel Function of the First Kind
|
|
208
|
-
|
|
209
|
-
"""
|
|
210
|
-
return spherical_jn(n,z,derivative=False)+1j*spherical_yn(n,z,derivative=False)
|
|
211
|
-
|
|
212
|
-
def get_radiation_angles(direction,mpos, sourceposition):
|
|
213
|
-
"""
|
|
214
|
-
Returns azimuthal and elevation angles between the mics and the source
|
|
215
|
-
|
|
216
|
-
Parameters
|
|
217
|
-
----------
|
|
218
|
-
direction : array of floats
|
|
219
|
-
Spherical Harmonic orientation
|
|
220
|
-
mpos : array of floats
|
|
221
|
-
x, y, z position of microphones
|
|
222
|
-
sourceposition : array of floats
|
|
223
|
-
position of the source
|
|
224
|
-
|
|
225
|
-
Returns
|
|
226
|
-
-------
|
|
227
|
-
azi, ele : array of floats
|
|
228
|
-
the angle between the mics and the source
|
|
229
|
-
"""
|
|
230
|
-
#direction of the Spherical Harmonics
|
|
231
|
-
direc = array(direction, dtype = float)
|
|
232
|
-
direc = direc/norm(direc)
|
|
233
|
-
# distances
|
|
234
|
-
source_to_mic_vecs = mpos-array(
|
|
235
|
-
sourceposition).reshape((3, 1))
|
|
236
|
-
source_to_mic_vecs[2] *= -1 # invert z-axis (acoular) #-1
|
|
237
|
-
# z-axis (acoular) -> y-axis (spherical)
|
|
238
|
-
# y-axis (acoular) -> z-axis (spherical)
|
|
239
|
-
#theta
|
|
240
|
-
ele = arctan2(sqrt(source_to_mic_vecs[0]**2 + source_to_mic_vecs[2]**2),source_to_mic_vecs[1])
|
|
241
|
-
ele +=arctan2(sqrt(direc[0]**2 + direc[2]**2), direc[1])
|
|
242
|
-
ele += pi*.5 # convert from [-pi/2, pi/2] to [0,pi] range
|
|
243
|
-
#phi
|
|
244
|
-
azi = arctan2(source_to_mic_vecs[2],source_to_mic_vecs[0])
|
|
245
|
-
azi += arctan2(direc[2],direc[0])
|
|
246
|
-
azi = mod(azi,2*pi)
|
|
247
|
-
return azi, ele
|
|
248
|
-
|
|
249
|
-
def get_modes(lOrder, direction, mpos , sourceposition = array([0,0,0])):
|
|
250
|
-
"""
|
|
251
|
-
Returns Spherical Harmonic Radiation Pattern at the Microphones
|
|
252
|
-
|
|
253
|
-
Parameters
|
|
254
|
-
----------
|
|
255
|
-
lOrder : int
|
|
256
|
-
Maximal order of spherical harmonic
|
|
257
|
-
direction : array of floats
|
|
258
|
-
Spherical Harmonic orientation
|
|
259
|
-
mpos : array of floats
|
|
260
|
-
x, y, z position of microphones
|
|
261
|
-
sourceposition : array of floats
|
|
262
|
-
position of the source
|
|
263
|
-
|
|
264
|
-
Returns
|
|
265
|
-
-------
|
|
266
|
-
modes : array of floats
|
|
267
|
-
the radiation values at each microphone for each mode
|
|
268
|
-
"""
|
|
269
|
-
azi, ele = get_radiation_angles(direction,mpos,sourceposition) # angles between source and mics
|
|
270
|
-
modes = zeros((azi.shape[0], (lOrder+1)**2), dtype=complex128)
|
|
271
|
-
i = 0
|
|
272
|
-
for l in range(lOrder+1):
|
|
273
|
-
for m in range(-l, l+1):
|
|
274
|
-
modes[:, i] = sph_harm(m, l, azi, ele)
|
|
275
|
-
if m<0:
|
|
276
|
-
modes[:, i]=modes[:, i].conj()*1j
|
|
277
|
-
i += 1
|
|
278
|
-
return modes
|
|
279
|
-
|
|
280
|
-
def barspectrum(data, fftfreqs, num = 3, bar = True, xoffset = 0.0):
|
|
281
|
-
"""
|
|
282
|
-
Returns synthesized frequency band values of spectral data to be plotted
|
|
283
|
-
as bar graph with the matlpotlib plot command.
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
Parameters
|
|
287
|
-
----------
|
|
288
|
-
data : array of floats
|
|
289
|
-
The spectral data (sound pressures in Pa) in an array with one value
|
|
290
|
-
per frequency line.
|
|
291
|
-
fftfreqs : array of floats
|
|
292
|
-
Discrete frequencies from FFT.
|
|
293
|
-
num : integer
|
|
294
|
-
Controls the width of the frequency bands considered; defaults to
|
|
295
|
-
3 (third-octave band).
|
|
296
|
-
bar : bool
|
|
297
|
-
If True, returns bar-like curve. If False, normal plot (direct
|
|
298
|
-
line between data points) is returned.
|
|
299
|
-
xoffset : float
|
|
300
|
-
If bar is True, offset of the perpendicular line (helpful if
|
|
301
|
-
plotting several curves above each other).
|
|
302
|
-
|
|
303
|
-
=== =====================
|
|
304
|
-
num frequency band width
|
|
305
|
-
=== =====================
|
|
306
|
-
1 octave band
|
|
307
|
-
3 third-octave band
|
|
308
|
-
=== =====================
|
|
309
|
-
|
|
310
|
-
Returns
|
|
311
|
-
-------
|
|
312
|
-
(flulist, plist, fc)
|
|
313
|
-
flulist : array of floats
|
|
314
|
-
Lower/upper band frequencies in plottable format.
|
|
315
|
-
plist : array of floats
|
|
316
|
-
Corresponding synthesized frequency band values in plottable format.
|
|
317
|
-
fc : array of floats
|
|
318
|
-
Evaluated band center frequencies.
|
|
319
|
-
"""
|
|
320
|
-
|
|
321
|
-
if num not in [1,3]:
|
|
322
|
-
print('Only octave and third-octave bands supported at this moment.')
|
|
323
|
-
return (0,0,0)
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
# preferred center freqs after din en iso 266 for third-octave bands
|
|
327
|
-
fcbase = array([31.5,40,50,63,80,100,125,160,200,250])
|
|
328
|
-
# DIN band center frequencies from 31.5 Hz to 25 kHz
|
|
329
|
-
fc = concatenate((fcbase, fcbase*10., fcbase[:]*100.))[::(3//num)]
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
# exponent for band width calculation
|
|
333
|
-
ep = 1. / (2.*num)
|
|
334
|
-
|
|
335
|
-
# lowest and highest possible center frequencies
|
|
336
|
-
# for chosen band and sampling frequency
|
|
337
|
-
f_low = fftfreqs[1]*2**ep
|
|
338
|
-
f_high = fftfreqs[-1]*2**-ep
|
|
339
|
-
# get possible index range
|
|
340
|
-
if fc[0] >= f_low:
|
|
341
|
-
i_low = 0
|
|
342
|
-
else:
|
|
343
|
-
i_low = where(fc < f_low)[0][-1]
|
|
344
|
-
|
|
345
|
-
if fc[-1] <= f_high:
|
|
346
|
-
i_high = fc.shape[0]
|
|
347
|
-
else:
|
|
348
|
-
i_high = where(fc > f_high)[0][0]
|
|
349
|
-
|
|
350
|
-
# synthesize sound pressure values
|
|
351
|
-
p = array([ synthetic(data, fftfreqs, list(fc[i_low:i_high]), num) ])
|
|
352
|
-
|
|
353
|
-
if bar:
|
|
354
|
-
# upper and lower band borders
|
|
355
|
-
flu = concatenate(( fc[i_low:i_low+1]*2**-ep,
|
|
356
|
-
( fc[i_low:i_high-1]*2**ep + fc[i_low+1:i_high]*2**-ep ) / 2.,
|
|
357
|
-
fc[i_high-1:i_high]*2**ep ))
|
|
358
|
-
# band borders as coordinates for bar plotting
|
|
359
|
-
flulist = 2**(2*xoffset*ep) * (array([1,1])[:,newaxis]*flu[newaxis,:]).T.reshape(-1)[1:-1]
|
|
360
|
-
# sound pressures as list for bar plotting
|
|
361
|
-
plist = (array([1,1])[:,newaxis]*p[newaxis,:]).T.reshape(-1)
|
|
362
|
-
else:
|
|
363
|
-
flulist = fc[i_low:i_high]
|
|
364
|
-
plist = p[0,:]
|
|
365
|
-
#print(flulist.shape, plist.shape)
|
|
366
|
-
return (flulist, plist, fc[i_low:i_high])
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
def bardata(data, fc, num=3, bar = True, xoffset = 0.0, masked = -360):
|
|
371
|
-
"""
|
|
372
|
-
Returns data to be plotted
|
|
373
|
-
as bar graph with the matlpotlib plot command.
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
Parameters
|
|
377
|
-
----------
|
|
378
|
-
data : array of floats
|
|
379
|
-
The spectral data
|
|
380
|
-
fc : array of floats
|
|
381
|
-
Band center frequencies
|
|
382
|
-
bar : bool
|
|
383
|
-
If True, returns bar-like curve. If False, normal plot (direct
|
|
384
|
-
line between data points) is returned.
|
|
385
|
-
xoffset : float
|
|
386
|
-
If bar is True, offset of the perpendicular line (helpful if
|
|
387
|
-
plotting several curves above each other).
|
|
388
|
-
|
|
389
|
-
=== =====================
|
|
390
|
-
num frequency band width
|
|
391
|
-
=== =====================
|
|
392
|
-
1 octave band
|
|
393
|
-
3 third-octave band
|
|
394
|
-
=== =====================
|
|
395
|
-
|
|
396
|
-
Returns
|
|
397
|
-
-------
|
|
398
|
-
(flulist, plist)
|
|
399
|
-
flulist : array of floats
|
|
400
|
-
Lower/upper band frequencies in plottable format.
|
|
401
|
-
plist : array of floats
|
|
402
|
-
Corresponding values in plottable format.
|
|
403
|
-
"""
|
|
404
|
-
ep = 1. / (2.*num)
|
|
405
|
-
|
|
406
|
-
if bar:
|
|
407
|
-
# upper and lower band borders
|
|
408
|
-
flu = concatenate(( fc[:1]*2**-ep,
|
|
409
|
-
( fc[:-1]*2**ep + fc[1:]*2**-ep ) / 2.,
|
|
410
|
-
fc[-1:]*2**ep ))
|
|
411
|
-
# band borders as coordinates for bar plotting
|
|
412
|
-
flulist = 2**(xoffset*1./num) * (array([1,1])[:,newaxis]*flu[newaxis,:]).T.reshape(-1)[1:-1]
|
|
413
|
-
# sound pressures as list for bar plotting
|
|
414
|
-
plist = (array([1,1])[:,newaxis] * data[newaxis,:]).T.reshape(-1)
|
|
415
|
-
else:
|
|
416
|
-
flulist = fc
|
|
417
|
-
plist = data
|
|
418
|
-
#print(flulist.shape, plist.shape)
|
|
419
|
-
if masked > -360:
|
|
420
|
-
plist = masked_where(plist <= masked, plist)
|
|
421
|
-
return (flulist, plist)
|
|
422
|
-
|
acoular-24.3.dist-info/RECORD
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
acoular/__init__.py,sha256=0BZMsRfFfwuSnTTYj9Jxs72TpqEFJswZfD65Oay_RVU,2641
|
|
2
|
-
acoular/calib.py,sha256=vOAZe-l9iFZiO74vgF2Xo8PwbIeHBydV75GMkwExWkI,2655
|
|
3
|
-
acoular/configuration.py,sha256=svKch7hyuNV9feyuVjRK7vnApA11rFJRJWfqegPR0ZE,7221
|
|
4
|
-
acoular/environments.py,sha256=_fFt7xJGl3ts3Z2uY3NL3pXflVA1pJYAIMIHT15SFKI,22349
|
|
5
|
-
acoular/fastFuncs.py,sha256=bqiquPiz4xYIEF5jtmj0DJGqNBTdiSo5Jn4Vmr4Kxqg,38191
|
|
6
|
-
acoular/fbeamform.py,sha256=8b1_44AlYyyv1YB4OxDzInBbro1u3-Bj8eQWrJecp1g,117815
|
|
7
|
-
acoular/fileimport.py,sha256=Y1w75IlH_x-nH7put-E8awXFy5Thgz5yHNoIQl7cjMA,13285
|
|
8
|
-
acoular/grids.py,sha256=jynZLFIABIRTXbHw4qKYwdXWrAYRBo-jr1_uNsut1K0,41908
|
|
9
|
-
acoular/h5cache.py,sha256=uoYs4i83qt7oRI27w7b03-GPCBn88Z0eo_UjR-ywKfo,4700
|
|
10
|
-
acoular/h5files.py,sha256=dKCSercvAJI-zD8d6i4cO0SgYFae9icsobh6IebuU1A,6476
|
|
11
|
-
acoular/internal.py,sha256=b4v-kVMU6K3fzkrKavYPyhjqyaysVk2bgw2DX3DB8Bo,861
|
|
12
|
-
acoular/microphones.py,sha256=-3vfL-PGla0Jt_h1QbNldYWAvzTAH6U0gLebzxs5lvQ,4684
|
|
13
|
-
acoular/nidaqimport.py,sha256=nXFw322eUwhQaKXPAWVT3fefII-d8P_odGAC1A22LEY,10702
|
|
14
|
-
acoular/sdinput.py,sha256=0OcChzIUD1sexcdUBNjrZ74jgUNqL06vieDOp-YGSKo,4344
|
|
15
|
-
acoular/signals.py,sha256=ZxikI-Nw4DwfmHTqCOmWbbhWllR2yW9wL-ljSgGpSQA,11865
|
|
16
|
-
acoular/sources.py,sha256=fYKtGYEp638YvwLrk0mKi9X634zpN1YCWmXQdNBfR7s,51086
|
|
17
|
-
acoular/spectra.py,sha256=8FrrOfjVAKLJep1Sb4HtphcA9oLKk-cUrPmxJpIvKBY,28975
|
|
18
|
-
acoular/tbeamform.py,sha256=H1T_rFJYV9Xp-ezZpyUngYkNJ1kJQlv-S8AY-nvtKQ0,31193
|
|
19
|
-
acoular/tfastfuncs.py,sha256=ibbTU9LemjXlxYsppgKTyMwW4XsXmduo3JudA0XlsBY,7383
|
|
20
|
-
acoular/tools.py,sha256=dqhAju7UOtckrzov_HJGkHo7QAgOCeEEVDs0RzfvY4Q,14934
|
|
21
|
-
acoular/tprocess.py,sha256=KBsPlYUCot7AIcK_1JeECwGzCv70io1uLILQF-4o688,91140
|
|
22
|
-
acoular/traitsviews.py,sha256=VHCIr70gEU6nJkicq1JkxGlYyHh16vUCe4vHkgdkQwA,17655
|
|
23
|
-
acoular/trajectory.py,sha256=oxsOvlti4p4qlPnoYJjObQ-42UfWfWvb96OhwnRv56I,4203
|
|
24
|
-
acoular/version.py,sha256=jIKXs3ln6FKIM_k1QqkYRrGe61DwueDwUBFWw0VPx1M,392
|
|
25
|
-
acoular/demo/__init__.py,sha256=0pWbkUhMd8p6oMA8K6iNjT2a1EfKzwOLbmPVJxh7KU0,251
|
|
26
|
-
acoular/demo/acoular_demo.py,sha256=cRWesR6JyeoYbcTXuPYU9hSLjsVaRiL4DJ4Z__LbtAQ,2801
|
|
27
|
-
acoular/tests/run_tests.sh,sha256=ucCUE7q7j7sWoXjytwFDPwtbUz_RZOR6DP_itXWuA-c,288
|
|
28
|
-
acoular/tests/run_tests_osx.sh,sha256=Dq2s3vWbZOgW1swGhN_ZFacNDRXbZWJ_g4GCLyl-2Jk,286
|
|
29
|
-
acoular/tests/test.npy,sha256=57PGpFDUwRkIF3-JA6FmflozplmiOVjHVmDoX7wGN6A,441
|
|
30
|
-
acoular/tests/test_beamformer_results.py,sha256=gMm-WMu0MupDs9ky1jzaP6ClEGR_rDvQ1wUGPCCD5Qw,10612
|
|
31
|
-
acoular/tests/test_classes.py,sha256=KphaNvUZJmqog8efyFQVkIO3oxs6K2EEFvdK7eIWLVA,2736
|
|
32
|
-
acoular/tests/test_digest.py,sha256=jz9qZZk4so0ZW75L-KJSeic6i3Y4OP87Oy3uQCI6oXw,8645
|
|
33
|
-
acoular/tests/test_environments.py,sha256=X7evzBtzmklG18tZybzfGo8xs8tdrm8py0LXxl3yMxk,2532
|
|
34
|
-
acoular/tests/test_example1.py,sha256=-dg6Wgu_--RiFmJTnUXcAvrUA79N8dTKVGLhV0W8ttA,4672
|
|
35
|
-
acoular/tests/test_grid.py,sha256=OFmdkWz9Dl6sHjWkjBkWvleb9YV5tD4yA_I9kHO_k3s,3892
|
|
36
|
-
acoular/tests/test_integrate.py,sha256=so03TUEqBA9FKrAaAjCQ8UVXAJFacVfe-FJ7pQGTP3c,4866
|
|
37
|
-
acoular/tests/test_signals.py,sha256=T2sz7KZ-fcJCSf-ALFJFuXRmI5bKpnZfGQSINJezuUc,2854
|
|
38
|
-
acoular/tests/test_sources.py,sha256=LsLSJITD4i0HtBpjJM02qrVxy6giEvQusfcrJCONrnQ,1932
|
|
39
|
-
acoular/tests/test_spectra.py,sha256=lSmemY9gZGYjofIw7BcT-fC2Wi10IWa06_fAQK6_1Bw,1226
|
|
40
|
-
acoular/tests/test_timecache.py,sha256=xAnwhUQ8PPnkdbLRrgvVnM40u3lQbynZ3kInYK4-GEk,1263
|
|
41
|
-
acoular/tests/test_tprocess.py,sha256=0lAfVqrsaCHmg-KtqDWfuIK-_dXefsEzufOGabL6yQU,2897
|
|
42
|
-
acoular/tests/test_traj_beamformer_results.py,sha256=qlh_Cx6PA2S8a7v7Xfoxg9dZcKLYd3J8aEUk93OCp2g,5472
|
|
43
|
-
acoular/tests/reference_data/BeamformerBase.npy,sha256=SXWz2lZNJIVTJtDeVpKo0FtITyRRx43I2b-LnWB6RPY,1480
|
|
44
|
-
acoular/tests/reference_data/BeamformerBaseFalse1.npy,sha256=1jyJenqjqrGH2sMoR9AgLpafSmuZTjGUlm7lltW9B40,1480
|
|
45
|
-
acoular/tests/reference_data/BeamformerBaseFalse2.npy,sha256=z7x2JtTSbtNL20jIR2u83tbdW80lkqDldjD1HtYvJsA,1480
|
|
46
|
-
acoular/tests/reference_data/BeamformerBaseFalse3.npy,sha256=yWVdkTGoCnrXe3p2PUcNJc8moUrJAVfWfeghWNqyx3k,1480
|
|
47
|
-
acoular/tests/reference_data/BeamformerBaseFalse4.npy,sha256=tLKQm2I20SpIkKVwJSxoZdoj9K96nFsX9OezT2z11kY,1480
|
|
48
|
-
acoular/tests/reference_data/BeamformerBaseTrue1.npy,sha256=07gDCvKquHgZtAJtH0I_Vsn9zKtpOugDu4HL6Ny1xBw,1480
|
|
49
|
-
acoular/tests/reference_data/BeamformerBaseTrue2.npy,sha256=M0VWloRkEsBL_N8JZreUdjDZpQ8e2NxKNTY42E-GKSA,1480
|
|
50
|
-
acoular/tests/reference_data/BeamformerBaseTrue3.npy,sha256=SXWz2lZNJIVTJtDeVpKo0FtITyRRx43I2b-LnWB6RPY,1480
|
|
51
|
-
acoular/tests/reference_data/BeamformerBaseTrue4.npy,sha256=LWqzl2iy15GzQbd2Y6Rd2tIm2Ft71984qNnhMp0KIag,1480
|
|
52
|
-
acoular/tests/reference_data/BeamformerCMFLassoLarsBIC.npy,sha256=hu8jmG8C7KCUhnTSuRO9qC0sDhVzmVQPtpThL7DYnpw,1480
|
|
53
|
-
acoular/tests/reference_data/BeamformerCMFNNLS.npy,sha256=WVQQBiPdej1VWqYzRS_p6zjni1psV1HluolWM_RiCsk,1480
|
|
54
|
-
acoular/tests/reference_data/BeamformerCapon.npy,sha256=12V9FHQQrnfAaYXFJP5udGbrdOBjn0Z4SXMa6iOdUm4,1480
|
|
55
|
-
acoular/tests/reference_data/BeamformerClean.npy,sha256=DlY5YMM3XCf5EDhFwEvpmSzXEzBRyjEcV_OZlAfXW3U,1480
|
|
56
|
-
acoular/tests/reference_data/BeamformerCleansc.npy,sha256=Dpx-1X23LlaKUMu58QmXGQkRz3BGz3bOk6jCNmrmOpY,1480
|
|
57
|
-
acoular/tests/reference_data/BeamformerCleant.npy,sha256=GV93byvuSeRdgl-nfi2laT6U1-N_y4rUjMml5VoC2LM,512
|
|
58
|
-
acoular/tests/reference_data/BeamformerCleantSq.npy,sha256=wbnS9njyA8c-OgDM-_PsJ5GAmiDftZ2kvMgWj06lVXc,512
|
|
59
|
-
acoular/tests/reference_data/BeamformerCleantSqTraj.npy,sha256=71sB7BJdfM9GoYDaFDxXNWydXLHl1UxAtnz6Rn549t0,512
|
|
60
|
-
acoular/tests/reference_data/BeamformerCleantTraj.npy,sha256=D5hjX8hqupNawbSHAOz2slkVHGdqtt_8ovqtdI-LjbQ,512
|
|
61
|
-
acoular/tests/reference_data/BeamformerDamas.npy,sha256=Mx2lfN-xcn0WZSBzt_G9548lwxecXG5rDTIyaTRTBHI,1480
|
|
62
|
-
acoular/tests/reference_data/BeamformerDamasPlus.npy,sha256=d1bXvIlaKnqmKz3cGBEZhs4uSVLr9NZTtnpkGaJe8K8,1480
|
|
63
|
-
acoular/tests/reference_data/BeamformerEig.npy,sha256=_qpZ5EpTMAf62vm41RZQHm47Vh8npZa4YDAqjBKbdwg,1480
|
|
64
|
-
acoular/tests/reference_data/BeamformerEigFalse1.npy,sha256=3uwKkHY7v3vWLbjEqkvtFgev86v-Dqv7TXiK10eaC5E,1480
|
|
65
|
-
acoular/tests/reference_data/BeamformerEigFalse2.npy,sha256=9eoFLuBfWsM5ZVksjoCFSqsciJ1aylGxrkJttfRhPl0,1480
|
|
66
|
-
acoular/tests/reference_data/BeamformerEigFalse3.npy,sha256=1vB2kQFwSxb4gMfQ746V1E_3IiXfWMTv9oShXagN-Ck,1480
|
|
67
|
-
acoular/tests/reference_data/BeamformerEigFalse4.npy,sha256=tuQi0qebS1-NYFYt5xjutIqf-PPI9MmpHKZVBLlpmO0,1480
|
|
68
|
-
acoular/tests/reference_data/BeamformerEigTrue1.npy,sha256=OoPvyJ2ArHLX-t8bCC8_R4qMJiK0CLkFhLoKBkbpntQ,1480
|
|
69
|
-
acoular/tests/reference_data/BeamformerEigTrue2.npy,sha256=CPK9PKOywjgeeb7Q4qvNGYV9nSOc-iWoTpP7wOO3k7k,1480
|
|
70
|
-
acoular/tests/reference_data/BeamformerEigTrue3.npy,sha256=_qpZ5EpTMAf62vm41RZQHm47Vh8npZa4YDAqjBKbdwg,1480
|
|
71
|
-
acoular/tests/reference_data/BeamformerEigTrue4.npy,sha256=kNx3nu7XuJPWQ8q_RPf-cqei9SHpAMSoAxAGHeU_L9Y,1480
|
|
72
|
-
acoular/tests/reference_data/BeamformerFunctional.npy,sha256=iI2m2FKEuOSqjamFzYex-W9M2DvmNwLzVzdd-jF2Z3I,1480
|
|
73
|
-
acoular/tests/reference_data/BeamformerGIB.npy,sha256=seJXgy3zVn29yUFWGz4gN4AzIcvnk0N9IJctffgJT6s,1480
|
|
74
|
-
acoular/tests/reference_data/BeamformerGridlessOrth.npy,sha256=8lr3zhn2TviDQCEOVdVeOs9QySdvAxdEavx_w0K0TU8,648
|
|
75
|
-
acoular/tests/reference_data/BeamformerMusic.npy,sha256=tWSiwIt2XfGdO5Wf8M8qGm2_IzHK3hVDjCTd2blpAsg,1480
|
|
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
|
|
78
|
-
acoular/tests/reference_data/BeamformerTime.npy,sha256=IJy6Y65DKAiYd98R1gHMrj48TjAtf9f7BQq0Aunc6ZM,512
|
|
79
|
-
acoular/tests/reference_data/BeamformerTimeSq.npy,sha256=uy3_vy6HF3AOEeei6pqibSXHPXUi0n2SGI6dlUd-4FA,512
|
|
80
|
-
acoular/tests/reference_data/BeamformerTimeSqTraj.npy,sha256=tldZ1uhwgImum4e0uE5lLB6si8uyXOIK7sI-DIPC_PQ,512
|
|
81
|
-
acoular/tests/reference_data/BeamformerTimeTraj.npy,sha256=BjB1sr_vHmY8CDzYC6kHl0mvKhfZ1ks7fTzBrWiaL9I,512
|
|
82
|
-
acoular/tests/reference_data/Environment.npy,sha256=R6lRfvm5F2nAANQNgpXCz6q5ySVuO72WyLRf0gAMpiM,992
|
|
83
|
-
acoular/tests/reference_data/Example1_numerical_values_testsum.h5,sha256=NEp7Crg4_Z5OQ1JOpS1YqsFLOK56q3h8k5Y097JM9Xk,9688
|
|
84
|
-
acoular/tests/reference_data/FiltFiltOctave__.npy,sha256=xDpbMR0-PwZ9ZzDp6aLWQLwkx77_jaKI-exmqYmAmAs,2368
|
|
85
|
-
acoular/tests/reference_data/FiltFiltOctave_band_100_0_fraction_Thirdoctave_.npy,sha256=e_cTAyIp7wrYdKLYpr9JDcOSl9AjgWiaroGMykdTrlo,2368
|
|
86
|
-
acoular/tests/reference_data/FiltFreqWeight_weight_A_.npy,sha256=Wi-US2VekdRdU7QdTxTV-wEptONiHRNUHLFJju5RDNU,2368
|
|
87
|
-
acoular/tests/reference_data/FiltFreqWeight_weight_C_.npy,sha256=33hYxl2DFw4UOJ7Jz7t_vfIIAdrjtDzwmeExY6sQUJo,2368
|
|
88
|
-
acoular/tests/reference_data/FiltFreqWeight_weight_Z_.npy,sha256=zDra9kY62Dc0dWF_pW0QyRx9XjLccbvYApuPU9wT6Vk,2368
|
|
89
|
-
acoular/tests/reference_data/FiltOctave__.npy,sha256=W2bkGnFlQf9Tgs7KJZ5zuvW52zd3a6Ut1hljDWlw8E8,2368
|
|
90
|
-
acoular/tests/reference_data/FiltOctave_band_100_0_fraction_Thirdoctave_.npy,sha256=tloYFBr6rdAJtbjumM9eNMvUmTI-o7anK-rNumg_NrU,2368
|
|
91
|
-
acoular/tests/reference_data/Filter__.npy,sha256=zDra9kY62Dc0dWF_pW0QyRx9XjLccbvYApuPU9wT6Vk,2368
|
|
92
|
-
acoular/tests/reference_data/GeneralFlowEnvironment.npy,sha256=BLqggxfgQbc1C4c-ztc3U8YQfkJ9f62hb4XB0KhLJQ0,992
|
|
93
|
-
acoular/tests/reference_data/OctaveFilterBank__.npy,sha256=wJnRKSgdXrvmbC4miqfNqipUSTb8x8x4aPLWayuEv3s,15808
|
|
94
|
-
acoular/tests/reference_data/OpenJet.npy,sha256=7LYVwYsJKDTbZH0WZ5WH8PYpufhL0vYcffs-yeAZU_g,2720
|
|
95
|
-
acoular/tests/reference_data/PointSource.npy,sha256=qxJAv-h6SDF5ZSHXJTAfaJVjBvEtUgBS_-oJijDaG7k,256
|
|
96
|
-
acoular/tests/reference_data/PowerSpectra_csm.npy,sha256=6JHBOoXLchECmmax5E21E4jFZSfms3vw65KZbAaRfA4,46784
|
|
97
|
-
acoular/tests/reference_data/PowerSpectra_ev.npy,sha256=562t_Imm1Bpy9VPKGJ1n8ouw_HfmQAgsqB4Q6B4Ft5k,46784
|
|
98
|
-
acoular/tests/reference_data/RotatingFlow.npy,sha256=4SrlFM0O6WhVl-QOdSgaS-LSXYi_zEbEShQp7p0-z6o,2720
|
|
99
|
-
acoular/tests/reference_data/SlotJet.npy,sha256=xxHcYpoVYxG4Ak8uBkvjvrncpfO2AeF0azTvLscNbpE,2720
|
|
100
|
-
acoular/tests/reference_data/TimeAverage__.npy,sha256=NAWXzq-CvKKweq0ob-FtHyAJatDbVBPKrtyZTWpfpoI,240
|
|
101
|
-
acoular/tests/reference_data/TimeCumAverage__.npy,sha256=tDKnIYqIZe7KUG8qB6cjrlYv8wAaQIrxJIPCzSI2W88,2368
|
|
102
|
-
acoular/tests/reference_data/TimeExpAverage_weight_F_.npy,sha256=YXopPBuLrY3a2iDxO1g3GS1PUrE_Mkz5zZnlNiLesOk,2368
|
|
103
|
-
acoular/tests/reference_data/TimeExpAverage_weight_I_.npy,sha256=656AhZ5Oipuh0b5_qGtykd_FKvNO6rATNUmYyNyDOEo,2368
|
|
104
|
-
acoular/tests/reference_data/TimeExpAverage_weight_S_.npy,sha256=zvkcB3QSnVv4XXKZejCpNrodBvKyRc04-lte82UnWls,2368
|
|
105
|
-
acoular/tests/reference_data/TimeInOut__.npy,sha256=hn0IQk-7vIw4vGgfWkniaa1gPI47t8mlubLQFVdRZ0Y,1248
|
|
106
|
-
acoular/tests/reference_data/TimePower__.npy,sha256=Q1776dwc0oYlJYOtSsXdK48z2453WO4m-NtgYxaE0UU,1248
|
|
107
|
-
acoular/tests/reference_data/TimeReverse__.npy,sha256=dONeF98PmipmsSm3zlfFUjsU0b2qZGcQzwPNcBebS60,1248
|
|
108
|
-
acoular/tests/reference_data/UniformFlowEnvironment.npy,sha256=suOncXF58GJtKhVxplMrbV2fMHcTktBEH75f_gSE66A,992
|
|
109
|
-
acoular/tests/reference_data/beamformer_traj_time_data.h5,sha256=beH9_En9IgxGUNmhxqCqLo_8PNteVLUSxQBVF3NauY4,69960
|
|
110
|
-
acoular/tests/unsupported/functionalBeamformer.py,sha256=NxGxn_5eVJWvIT1wTdJ52esRDXbYz7hrqTYr7NQJ-1w,4980
|
|
111
|
-
acoular/tests/unsupported/precisionTest.py,sha256=ysyZZzM6wxHXw0j9Qc0QVBZvXywTVUJyB59cpGG1JG4,6266
|
|
112
|
-
acoular/tests/unsupported/validationOfBeamformerFuncsPOSTAcoularIntegration.py,sha256=t_66UFLSxlOTQCTGtb4ROlF2tN7soI70wjY8GJ1xy54,13815
|
|
113
|
-
acoular/tests/unsupported/validationOfBeamformerFuncsPREeAcoularIntegration.py,sha256=QqVVFYmGTiOg_TkX5Sf-abzx4_125FXwiUhBYI1fGsI,31698
|
|
114
|
-
acoular/tests/unsupported/SpeedComparison/OvernightTestcasesBeamformer_nMics32_nGridPoints100_nFreqs4_nTrials10.png,sha256=mhn9gydEOjz0WB0N1qWgYb-u7Xc4_wFE9m8v1qGFOIU,131252
|
|
115
|
-
acoular/tests/unsupported/SpeedComparison/cythonBeamformer.pyx,sha256=WkWeWIgMnPFJ__SPnBdMRExn8QB8m3FFiRFg9_2rOOo,10727
|
|
116
|
-
acoular/tests/unsupported/SpeedComparison/mainForCython.py,sha256=knmx2n1-uJiK25WjGX0AM-CiwBJgPot2m93r_yW1W3E,3556
|
|
117
|
-
acoular/tests/unsupported/SpeedComparison/mainForParallelJit.py,sha256=0mNKKdSSDWCahLDgrXlnzt3MRvnEcTx2KIMHyBNssbQ,5842
|
|
118
|
-
acoular/tests/unsupported/SpeedComparison/setupCythonOpenMP.py,sha256=6TA7QT4ISf-EKCa4g6jhG55tWZr8XumrPGn4nl-XJ3I,2046
|
|
119
|
-
acoular/tests/unsupported/SpeedComparison/sharedFunctions.py,sha256=JgD5PYunPhllWvcppaS0-mwKnrN0e1cPXmvrhM8OIUo,5761
|
|
120
|
-
acoular/tests/unsupported/SpeedComparison/timeOverNMics_AllImportantMethods.png,sha256=b85-jiyfgrH3E9q0VCLCA-kSG75mZEQIr92K8EtRMVQ,172747
|
|
121
|
-
acoular/tests/unsupported/SpeedComparison/timeOverNMics_faverage.png,sha256=gjdeoXKNirQqwkse4kisdx5_r66qPJcoc_dOUD2F4To,131665
|
|
122
|
-
acoular/tests/unsupported/SpeedComparison/vglOptimierungFAverage.py,sha256=laX36WMfykyubiimNbf-ySAiuutv3bE6Plijix7-oRE,10020
|
|
123
|
-
acoular/tests/unsupported/SpeedComparison/vglOptimierungGaussSeidel.py,sha256=ZE6d6czkveURaqlom--LtrVLWZ6rSPkSQyP50Vieg_Q,9712
|
|
124
|
-
acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAMFULL_INVERSE.py,sha256=tkHyTS9FPK4GfhfOfU99RVZaK28t72LNWu_0AxJFzsM,40111
|
|
125
|
-
acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAM_OS.py,sha256=uphi9mNWFVLj4_isFMkLjcd1xtblWX2HUTPJfETuc78,13445
|
|
126
|
-
acoular/tests/unsupported/SpeedComparison/whatsFastestWayFor_absASquared.py,sha256=umIr8eC611yRJePa7XoyUKO1S8ZhedVct_kp5fDVqkA,1236
|
|
127
|
-
acoular/xml/HW90D240_f10.xml,sha256=WvowIe8aYJaeHSExjwaY9fjpYukLxX6A-H7fD1PW2g8,5127
|
|
128
|
-
acoular/xml/W90_D105_f10.xml,sha256=f8NHPoOYjEnRsstYDa_4E65EBR5m5BVzlg87jpCgckA,5283
|
|
129
|
-
acoular/xml/acousticam_2c.xml,sha256=xcVlKQhGbRqMQHLKuTAyXTt3SM3aLZEAfGqbuFaWx4k,1993
|
|
130
|
-
acoular/xml/acousticam_4c.xml,sha256=P8wAP5_GT0HS40VV3f7_88xQXwTLN1YRxI7MudnwIqw,1949
|
|
131
|
-
acoular/xml/array38.xml,sha256=FrbC-1yVHNfWTamEJPiJhhdPtVYVfGbPXJ3TLljBKx0,2363
|
|
132
|
-
acoular/xml/array92x.xml,sha256=65Wf2xbA6Dt_k98C3q4MfTtwPzceT8B2vKvK77hO9Yc,5874
|
|
133
|
-
acoular/xml/array_56.xml,sha256=qe8CAcRP7-3MLpPn919XKHB8hMb9G5JUPFzP1qOA4IM,3428
|
|
134
|
-
acoular/xml/array_56_10_9.xml,sha256=2G-KZSwvAtIuxyC6JKW2Hv2IWXVFd4Sux1tLxizJ5Z4,4432
|
|
135
|
-
acoular/xml/array_56_bomb.xml,sha256=tAdhLzvUrhMh7DMrbXU7skAEAlCvQ6GLbJXAU7Z2JxE,4193
|
|
136
|
-
acoular/xml/array_56_v2.xml,sha256=x4OTI77Fttfaqu-Kl7uWmslg8rZAuw2Y-RUa21MqzXk,3458
|
|
137
|
-
acoular/xml/array_64.xml,sha256=1ZHuQEHhFhz9EhBcNbXkVT-9tnAr6T9cHH5Xb1gHL7Y,4039
|
|
138
|
-
acoular/xml/array_84_10_9.xml,sha256=jzvMYZlQqo8y6jt3yllGOL7vk8bxMVpISexkZL0uquA,6558
|
|
139
|
-
acoular/xml/array_84_bomb_v3.xml,sha256=Mv8nvqSOUezrdIjrCHZt4gZpJ-Z3BzF2wIYPawHZjlA,6248
|
|
140
|
-
acoular/xml/calib_vw_ring32.xml,sha256=9chpz0O3e__oIs4ZuJTvUJNIuawjDqEnkdRbfyUBBxU,1341
|
|
141
|
-
acoular/xml/gfai_ring32.xml,sha256=liKaGpfgUn8R1psDmiw6qqpZi5SwtPWBRhwhqy7YuOc,1831
|
|
142
|
-
acoular/xml/minidsp_uma16.xml,sha256=QDL13OJtkuzdbu29RyhtJgx69aYsy257MxagI4OIwZQ,1153
|
|
143
|
-
acoular/xml/tub_vogel64.xml,sha256=PixVMx5hMJjgBOekH46uu6D3ODqYVOLlk82zkYl4EBM,4424
|
|
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,29 +0,0 @@
|
|
|
1
|
-
Copyright (c) Acoular Development Team.
|
|
2
|
-
All rights reserved.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Redistribution and use in source and binary forms, with or without
|
|
6
|
-
modification, are permitted provided that the following conditions are met:
|
|
7
|
-
|
|
8
|
-
a. Redistributions of source code must retain the above copyright notice,
|
|
9
|
-
this list of conditions and the following disclaimer.
|
|
10
|
-
b. Redistributions in binary form must reproduce the above copyright
|
|
11
|
-
notice, this list of conditions and the following disclaimer in the
|
|
12
|
-
documentation and/or other materials provided with the distribution.
|
|
13
|
-
c. Neither the name of the acoular developers nor the names of
|
|
14
|
-
its contributors may be used to endorse or promote products
|
|
15
|
-
derived from this software without specific prior written
|
|
16
|
-
permission.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
22
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
|
|
23
|
-
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
27
|
-
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
28
|
-
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
|
29
|
-
DAMAGE.
|
|
File without changes
|