acoular 23.11__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.
Files changed (137) hide show
  1. acoular/__init__.py +118 -50
  2. acoular/calib.py +29 -38
  3. acoular/configuration.py +116 -73
  4. acoular/demo/__init__.py +10 -4
  5. acoular/demo/acoular_demo.py +78 -53
  6. acoular/environments.py +265 -262
  7. acoular/fastFuncs.py +361 -191
  8. acoular/fbeamform.py +1478 -1407
  9. acoular/grids.py +501 -545
  10. acoular/h5cache.py +50 -59
  11. acoular/h5files.py +154 -137
  12. acoular/internal.py +10 -11
  13. acoular/microphones.py +57 -53
  14. acoular/sdinput.py +47 -52
  15. acoular/signals.py +167 -179
  16. acoular/sources.py +818 -693
  17. acoular/spectra.py +349 -359
  18. acoular/tbeamform.py +414 -413
  19. acoular/tfastfuncs.py +178 -101
  20. acoular/tools/__init__.py +25 -0
  21. acoular/tools/aiaa.py +186 -0
  22. acoular/tools/helpers.py +189 -0
  23. acoular/tools/metrics.py +165 -0
  24. acoular/tprocess.py +1201 -1143
  25. acoular/traitsviews.py +513 -501
  26. acoular/trajectory.py +50 -52
  27. acoular/version.py +5 -6
  28. acoular/xml/minidsp_uma-16.xml +20 -0
  29. acoular/xml/{minidsp_uma16.xml → minidsp_uma-16_mirrored.xml} +3 -0
  30. {acoular-23.11.dist-info → acoular-24.5.dist-info}/METADATA +47 -40
  31. acoular-24.5.dist-info/RECORD +50 -0
  32. {acoular-23.11.dist-info → acoular-24.5.dist-info}/WHEEL +1 -1
  33. acoular-24.5.dist-info/licenses/LICENSE +28 -0
  34. acoular/fileimport.py +0 -380
  35. acoular/nidaqimport.py +0 -273
  36. acoular/tests/reference_data/BeamformerBase.npy +0 -0
  37. acoular/tests/reference_data/BeamformerBaseFalse1.npy +0 -0
  38. acoular/tests/reference_data/BeamformerBaseFalse2.npy +0 -0
  39. acoular/tests/reference_data/BeamformerBaseFalse3.npy +0 -0
  40. acoular/tests/reference_data/BeamformerBaseFalse4.npy +0 -0
  41. acoular/tests/reference_data/BeamformerBaseTrue1.npy +0 -0
  42. acoular/tests/reference_data/BeamformerBaseTrue2.npy +0 -0
  43. acoular/tests/reference_data/BeamformerBaseTrue3.npy +0 -0
  44. acoular/tests/reference_data/BeamformerBaseTrue4.npy +0 -0
  45. acoular/tests/reference_data/BeamformerCMF.npy +0 -0
  46. acoular/tests/reference_data/BeamformerCapon.npy +0 -0
  47. acoular/tests/reference_data/BeamformerClean.npy +0 -0
  48. acoular/tests/reference_data/BeamformerCleansc.npy +0 -0
  49. acoular/tests/reference_data/BeamformerCleant.npy +0 -0
  50. acoular/tests/reference_data/BeamformerCleantSq.npy +0 -0
  51. acoular/tests/reference_data/BeamformerCleantSqTraj.npy +0 -0
  52. acoular/tests/reference_data/BeamformerCleantTraj.npy +0 -0
  53. acoular/tests/reference_data/BeamformerDamas.npy +0 -0
  54. acoular/tests/reference_data/BeamformerDamasPlus.npy +0 -0
  55. acoular/tests/reference_data/BeamformerEig.npy +0 -0
  56. acoular/tests/reference_data/BeamformerEigFalse1.npy +0 -0
  57. acoular/tests/reference_data/BeamformerEigFalse2.npy +0 -0
  58. acoular/tests/reference_data/BeamformerEigFalse3.npy +0 -0
  59. acoular/tests/reference_data/BeamformerEigFalse4.npy +0 -0
  60. acoular/tests/reference_data/BeamformerEigTrue1.npy +0 -0
  61. acoular/tests/reference_data/BeamformerEigTrue2.npy +0 -0
  62. acoular/tests/reference_data/BeamformerEigTrue3.npy +0 -0
  63. acoular/tests/reference_data/BeamformerEigTrue4.npy +0 -0
  64. acoular/tests/reference_data/BeamformerFunctional.npy +0 -0
  65. acoular/tests/reference_data/BeamformerGIB.npy +0 -0
  66. acoular/tests/reference_data/BeamformerGridlessOrth.npy +0 -0
  67. acoular/tests/reference_data/BeamformerMusic.npy +0 -0
  68. acoular/tests/reference_data/BeamformerOrth.npy +0 -0
  69. acoular/tests/reference_data/BeamformerTime.npy +0 -0
  70. acoular/tests/reference_data/BeamformerTimeSq.npy +0 -0
  71. acoular/tests/reference_data/BeamformerTimeSqTraj.npy +0 -0
  72. acoular/tests/reference_data/BeamformerTimeTraj.npy +0 -0
  73. acoular/tests/reference_data/Environment.npy +0 -0
  74. acoular/tests/reference_data/Example1_numerical_values_testsum.h5 +0 -0
  75. acoular/tests/reference_data/FiltFiltOctave__.npy +0 -0
  76. acoular/tests/reference_data/FiltFiltOctave_band_100_0_fraction_Thirdoctave_.npy +0 -0
  77. acoular/tests/reference_data/FiltFreqWeight_weight_A_.npy +0 -0
  78. acoular/tests/reference_data/FiltFreqWeight_weight_C_.npy +0 -0
  79. acoular/tests/reference_data/FiltFreqWeight_weight_Z_.npy +0 -0
  80. acoular/tests/reference_data/FiltOctave__.npy +0 -0
  81. acoular/tests/reference_data/FiltOctave_band_100_0_fraction_Thirdoctave_.npy +0 -0
  82. acoular/tests/reference_data/Filter__.npy +0 -0
  83. acoular/tests/reference_data/GeneralFlowEnvironment.npy +0 -0
  84. acoular/tests/reference_data/OctaveFilterBank__.npy +0 -0
  85. acoular/tests/reference_data/OpenJet.npy +0 -0
  86. acoular/tests/reference_data/PointSource.npy +0 -0
  87. acoular/tests/reference_data/PowerSpectra_csm.npy +0 -0
  88. acoular/tests/reference_data/PowerSpectra_ev.npy +0 -0
  89. acoular/tests/reference_data/RotatingFlow.npy +0 -0
  90. acoular/tests/reference_data/SlotJet.npy +0 -0
  91. acoular/tests/reference_data/TimeAverage__.npy +0 -0
  92. acoular/tests/reference_data/TimeCumAverage__.npy +0 -0
  93. acoular/tests/reference_data/TimeExpAverage_weight_F_.npy +0 -0
  94. acoular/tests/reference_data/TimeExpAverage_weight_I_.npy +0 -0
  95. acoular/tests/reference_data/TimeExpAverage_weight_S_.npy +0 -0
  96. acoular/tests/reference_data/TimeInOut__.npy +0 -0
  97. acoular/tests/reference_data/TimePower__.npy +0 -0
  98. acoular/tests/reference_data/TimeReverse__.npy +0 -0
  99. acoular/tests/reference_data/UniformFlowEnvironment.npy +0 -0
  100. acoular/tests/reference_data/beamformer_traj_time_data.h5 +0 -0
  101. acoular/tests/run_tests.sh +0 -18
  102. acoular/tests/run_tests_osx.sh +0 -16
  103. acoular/tests/test.npy +0 -0
  104. acoular/tests/test_beamformer_results.py +0 -204
  105. acoular/tests/test_classes.py +0 -60
  106. acoular/tests/test_digest.py +0 -125
  107. acoular/tests/test_environments.py +0 -73
  108. acoular/tests/test_example1.py +0 -124
  109. acoular/tests/test_grid.py +0 -92
  110. acoular/tests/test_integrate.py +0 -102
  111. acoular/tests/test_signals.py +0 -60
  112. acoular/tests/test_sources.py +0 -65
  113. acoular/tests/test_spectra.py +0 -38
  114. acoular/tests/test_timecache.py +0 -35
  115. acoular/tests/test_tprocess.py +0 -90
  116. acoular/tests/test_traj_beamformer_results.py +0 -164
  117. acoular/tests/unsupported/SpeedComparison/OvernightTestcasesBeamformer_nMics32_nGridPoints100_nFreqs4_nTrials10.png +0 -0
  118. acoular/tests/unsupported/SpeedComparison/cythonBeamformer.pyx +0 -237
  119. acoular/tests/unsupported/SpeedComparison/mainForCython.py +0 -103
  120. acoular/tests/unsupported/SpeedComparison/mainForParallelJit.py +0 -143
  121. acoular/tests/unsupported/SpeedComparison/setupCythonOpenMP.py +0 -63
  122. acoular/tests/unsupported/SpeedComparison/sharedFunctions.py +0 -153
  123. acoular/tests/unsupported/SpeedComparison/timeOverNMics_AllImportantMethods.png +0 -0
  124. acoular/tests/unsupported/SpeedComparison/timeOverNMics_faverage.png +0 -0
  125. acoular/tests/unsupported/SpeedComparison/vglOptimierungFAverage.py +0 -204
  126. acoular/tests/unsupported/SpeedComparison/vglOptimierungGaussSeidel.py +0 -182
  127. acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAMFULL_INVERSE.py +0 -764
  128. acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAM_OS.py +0 -231
  129. acoular/tests/unsupported/SpeedComparison/whatsFastestWayFor_absASquared.py +0 -48
  130. acoular/tests/unsupported/functionalBeamformer.py +0 -123
  131. acoular/tests/unsupported/precisionTest.py +0 -153
  132. acoular/tests/unsupported/validationOfBeamformerFuncsPOSTAcoularIntegration.py +0 -254
  133. acoular/tests/unsupported/validationOfBeamformerFuncsPREeAcoularIntegration.py +0 -531
  134. acoular/tools.py +0 -418
  135. acoular-23.11.dist-info/RECORD +0 -146
  136. acoular-23.11.dist-info/licenses/LICENSE +0 -29
  137. {acoular-23.11.dist-info → acoular-24.5.dist-info}/licenses/AUTHORS.rst +0 -0
acoular/tools.py DELETED
@@ -1,418 +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, Float, HasPrivateTraits, Instance, Property, Either
28
-
29
- from scipy.special import spherical_yn, spherical_jn, sph_harm
30
- from scipy.spatial.distance import cdist
31
-
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
- sectors.append(
108
- ac.CircSector(r=r[i],x=loc[0],y=loc[1]))
109
- return sectors
110
-
111
- def _integrate_sectors(self):
112
- """Integrates over target sectors.
113
-
114
- Returns
115
- -------
116
- array (num_freqs,num_sources)
117
- returns the integrated Pa**2 values for each sector
118
- """
119
- results = empty(shape=self.target_data.shape)
120
- for f in range(self.target_data.shape[0]):
121
- data = self.data[f]
122
- for i in range(self.target_data.shape[1]):
123
- sector = self.sectors[i]
124
- results[f,i] = ac.integrate(data,self.grid,sector)
125
- if not self.multi_assignment:
126
- indices = self.grid.subdomain(sector)
127
- data[indices] = 0 # set values to zero (can not be assigned again)
128
- return results
129
-
130
- def get_overall_level_error(self):
131
- """Returns the overall level error (Herold and Sarradj, 2017).
132
-
133
- Returns
134
- -------
135
- numpy.array
136
- overall level error of shape=(nf,)
137
- """
138
- self._validate_shapes()
139
- return ac.L_p(self.data.sum(axis=1)) - ac.L_p(self.target_data.sum(axis=1))
140
-
141
- def get_specific_level_error(self):
142
- """Returns the specific level error (Herold and Sarradj, 2017).
143
-
144
- Returns
145
- -------
146
- numpy.array
147
- specific level error of shape=(nf,ns). nf: number of frequencies, ns: number of sources
148
- """
149
- self._validate_shapes()
150
- sector_result = self._integrate_sectors()
151
- return ac.L_p(sector_result) - ac.L_p(self.target_data)
152
-
153
- def get_inverse_level_error(self):
154
- """Returns the inverse level error (Herold and Sarradj, 2017).
155
-
156
- Returns
157
- -------
158
- numpy.array
159
- inverse level error of shape=(nf,1)
160
- """
161
- self._validate_shapes()
162
- sector_result = self._integrate_sectors()
163
- return ac.L_p(sector_result.sum(axis=1)) - ac.L_p(self.data.sum(axis=1))
164
-
165
-
166
-
167
- def return_result(source, nmax=-1, num=128):
168
- """
169
- Collects the output from a
170
- :meth:`SamplesGenerator.result()<acoular.tprocess.SamplesGenerator.result>`
171
- generator and returns an assembled array with all the data.
172
-
173
- Parameters
174
- ----------
175
- source: SamplesGenerator or derived object.
176
- This is the :class:`SamplesGenerator<acoular.tprocess.SamplesGenerator>` data source.
177
- nmax: integer
178
- With this parameter, a maximum number of output samples can be set
179
- (first dimension of array). If set to -1 (default), samples are
180
- collected as long as the generator yields them.
181
- num : integer
182
- This parameter defines the size of the blocks that are fetched.
183
- Defaults to 128.
184
-
185
- Returns
186
- -------
187
- array of floats (number of samples, source.numchannels)
188
- Array that holds all the data.
189
- """
190
- resulter = (_.copy() for _ in source.result(num))
191
-
192
- if nmax > 0:
193
- nblocks = (nmax-1) // num + 1
194
- return concatenate(
195
- list( res for _, res in
196
- zip(range(nblocks),
197
- resulter) ) )[:nmax]
198
- else:
199
- return concatenate(list(resulter))
200
-
201
-
202
- def spherical_hn1(n,z,derivativearccos=False):
203
- """ Spherical Hankel Function of the First Kind
204
-
205
- """
206
- return spherical_jn(n,z,derivative=False)+1j*spherical_yn(n,z,derivative=False)
207
-
208
- def get_radiation_angles(direction,mpos, sourceposition):
209
- """
210
- Returns azimuthal and elevation angles between the mics and the source
211
-
212
- Parameters
213
- ----------
214
- direction : array of floats
215
- Spherical Harmonic orientation
216
- mpos : array of floats
217
- x, y, z position of microphones
218
- sourceposition : array of floats
219
- position of the source
220
-
221
- Returns
222
- -------
223
- azi, ele : array of floats
224
- the angle between the mics and the source
225
- """
226
- #direction of the Spherical Harmonics
227
- direc = array(direction, dtype = float)
228
- direc = direc/norm(direc)
229
- # distances
230
- source_to_mic_vecs = mpos-array(
231
- sourceposition).reshape((3, 1))
232
- source_to_mic_vecs[2] *= -1 # invert z-axis (acoular) #-1
233
- # z-axis (acoular) -> y-axis (spherical)
234
- # y-axis (acoular) -> z-axis (spherical)
235
- #theta
236
- ele = arctan2(sqrt(source_to_mic_vecs[0]**2 + source_to_mic_vecs[2]**2),source_to_mic_vecs[1])
237
- ele +=arctan2(sqrt(direc[0]**2 + direc[2]**2), direc[1])
238
- ele += pi*.5 # convert from [-pi/2, pi/2] to [0,pi] range
239
- #phi
240
- azi = arctan2(source_to_mic_vecs[2],source_to_mic_vecs[0])
241
- azi += arctan2(direc[2],direc[0])
242
- azi = mod(azi,2*pi)
243
- return azi, ele
244
-
245
- def get_modes(lOrder, direction, mpos , sourceposition = array([0,0,0])):
246
- """
247
- Returns Spherical Harmonic Radiation Pattern at the Microphones
248
-
249
- Parameters
250
- ----------
251
- lOrder : int
252
- Maximal order of spherical harmonic
253
- direction : array of floats
254
- Spherical Harmonic orientation
255
- mpos : array of floats
256
- x, y, z position of microphones
257
- sourceposition : array of floats
258
- position of the source
259
-
260
- Returns
261
- -------
262
- modes : array of floats
263
- the radiation values at each microphone for each mode
264
- """
265
- azi, ele = get_radiation_angles(direction,mpos,sourceposition) # angles between source and mics
266
- modes = zeros((azi.shape[0], (lOrder+1)**2), dtype=complex128)
267
- i = 0
268
- for l in range(lOrder+1):
269
- for m in range(-l, l+1):
270
- modes[:, i] = sph_harm(m, l, azi, ele)
271
- if m<0:
272
- modes[:, i]=modes[:, i].conj()*1j
273
- i += 1
274
- return modes
275
-
276
- def barspectrum(data, fftfreqs, num = 3, bar = True, xoffset = 0.0):
277
- """
278
- Returns synthesized frequency band values of spectral data to be plotted
279
- as bar graph with the matlpotlib plot command.
280
-
281
-
282
- Parameters
283
- ----------
284
- data : array of floats
285
- The spectral data (sound pressures in Pa) in an array with one value
286
- per frequency line.
287
- fftfreqs : array of floats
288
- Discrete frequencies from FFT.
289
- num : integer
290
- Controls the width of the frequency bands considered; defaults to
291
- 3 (third-octave band).
292
- bar : bool
293
- If True, returns bar-like curve. If False, normal plot (direct
294
- line between data points) is returned.
295
- xoffset : float
296
- If bar is True, offset of the perpendicular line (helpful if
297
- plotting several curves above each other).
298
-
299
- === =====================
300
- num frequency band width
301
- === =====================
302
- 1 octave band
303
- 3 third-octave band
304
- === =====================
305
-
306
- Returns
307
- -------
308
- (flulist, plist, fc)
309
- flulist : array of floats
310
- Lower/upper band frequencies in plottable format.
311
- plist : array of floats
312
- Corresponding synthesized frequency band values in plottable format.
313
- fc : array of floats
314
- Evaluated band center frequencies.
315
- """
316
-
317
- if num not in [1,3]:
318
- print('Only octave and third-octave bands supported at this moment.')
319
- return (0,0,0)
320
-
321
-
322
- # preferred center freqs after din en iso 266 for third-octave bands
323
- fcbase = array([31.5,40,50,63,80,100,125,160,200,250])
324
- # DIN band center frequencies from 31.5 Hz to 25 kHz
325
- fc = concatenate((fcbase, fcbase*10., fcbase[:]*100.))[::(3//num)]
326
-
327
-
328
- # exponent for band width calculation
329
- ep = 1. / (2.*num)
330
-
331
- # lowest and highest possible center frequencies
332
- # for chosen band and sampling frequency
333
- f_low = fftfreqs[1]*2**ep
334
- f_high = fftfreqs[-1]*2**-ep
335
- # get possible index range
336
- if fc[0] >= f_low:
337
- i_low = 0
338
- else:
339
- i_low = where(fc < f_low)[0][-1]
340
-
341
- if fc[-1] <= f_high:
342
- i_high = fc.shape[0]
343
- else:
344
- i_high = where(fc > f_high)[0][0]
345
-
346
- # synthesize sound pressure values
347
- p = array([ synthetic(data, fftfreqs, list(fc[i_low:i_high]), num) ])
348
-
349
- if bar:
350
- # upper and lower band borders
351
- flu = concatenate(( fc[i_low:i_low+1]*2**-ep,
352
- ( fc[i_low:i_high-1]*2**ep + fc[i_low+1:i_high]*2**-ep ) / 2.,
353
- fc[i_high-1:i_high]*2**ep ))
354
- # band borders as coordinates for bar plotting
355
- flulist = 2**(2*xoffset*ep) * (array([1,1])[:,newaxis]*flu[newaxis,:]).T.reshape(-1)[1:-1]
356
- # sound pressures as list for bar plotting
357
- plist = (array([1,1])[:,newaxis]*p[newaxis,:]).T.reshape(-1)
358
- else:
359
- flulist = fc[i_low:i_high]
360
- plist = p[0,:]
361
- #print(flulist.shape, plist.shape)
362
- return (flulist, plist, fc[i_low:i_high])
363
-
364
-
365
-
366
- def bardata(data, fc, num=3, bar = True, xoffset = 0.0, masked = -360):
367
- """
368
- Returns data to be plotted
369
- as bar graph with the matlpotlib plot command.
370
-
371
-
372
- Parameters
373
- ----------
374
- data : array of floats
375
- The spectral data
376
- fc : array of floats
377
- Band center frequencies
378
- bar : bool
379
- If True, returns bar-like curve. If False, normal plot (direct
380
- line between data points) is returned.
381
- xoffset : float
382
- If bar is True, offset of the perpendicular line (helpful if
383
- plotting several curves above each other).
384
-
385
- === =====================
386
- num frequency band width
387
- === =====================
388
- 1 octave band
389
- 3 third-octave band
390
- === =====================
391
-
392
- Returns
393
- -------
394
- (flulist, plist)
395
- flulist : array of floats
396
- Lower/upper band frequencies in plottable format.
397
- plist : array of floats
398
- Corresponding values in plottable format.
399
- """
400
- ep = 1. / (2.*num)
401
-
402
- if bar:
403
- # upper and lower band borders
404
- flu = concatenate(( fc[:1]*2**-ep,
405
- ( fc[:-1]*2**ep + fc[1:]*2**-ep ) / 2.,
406
- fc[-1:]*2**ep ))
407
- # band borders as coordinates for bar plotting
408
- flulist = 2**(xoffset*1./num) * (array([1,1])[:,newaxis]*flu[newaxis,:]).T.reshape(-1)[1:-1]
409
- # sound pressures as list for bar plotting
410
- plist = (array([1,1])[:,newaxis] * data[newaxis,:]).T.reshape(-1)
411
- else:
412
- flulist = fc
413
- plist = data
414
- #print(flulist.shape, plist.shape)
415
- if masked > -360:
416
- plist = masked_where(plist <= masked, plist)
417
- return (flulist, plist)
418
-
@@ -1,146 +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=ez03xuocmGORLKMsUCKGX2ptX36Vo9mMkc6sa5kwTgc,117385
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=NL4TIudTdQ_MyLgEbIZyfMbjF5xKS3K9HJC0ShhjqSE,14820
21
- acoular/tprocess.py,sha256=VY1asOBL1FUV4lX5nPIK8e2tLrgvt_hQWJVXH9QaIco,91097
22
- acoular/traitsviews.py,sha256=VHCIr70gEU6nJkicq1JkxGlYyHh16vUCe4vHkgdkQwA,17655
23
- acoular/trajectory.py,sha256=oxsOvlti4p4qlPnoYJjObQ-42UfWfWvb96OhwnRv56I,4203
24
- acoular/version.py,sha256=dhhdv5oajI8uBA4Ihd--qI4XL_8F1CdAv9Ma0wlq5qQ,395
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=RHUhEInHjUD-EFGGel3n2mINC7WCnsCs9AzNUBJhVpw,10196
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/BeamformerCMF.npy,sha256=hu8jmG8C7KCUhnTSuRO9qC0sDhVzmVQPtpThL7DYnpw,1480
53
- acoular/tests/reference_data/BeamformerCapon.npy,sha256=12V9FHQQrnfAaYXFJP5udGbrdOBjn0Z4SXMa6iOdUm4,1480
54
- acoular/tests/reference_data/BeamformerClean.npy,sha256=DlY5YMM3XCf5EDhFwEvpmSzXEzBRyjEcV_OZlAfXW3U,1480
55
- acoular/tests/reference_data/BeamformerCleansc.npy,sha256=Dpx-1X23LlaKUMu58QmXGQkRz3BGz3bOk6jCNmrmOpY,1480
56
- acoular/tests/reference_data/BeamformerCleant.npy,sha256=GV93byvuSeRdgl-nfi2laT6U1-N_y4rUjMml5VoC2LM,512
57
- acoular/tests/reference_data/BeamformerCleantSq.npy,sha256=wbnS9njyA8c-OgDM-_PsJ5GAmiDftZ2kvMgWj06lVXc,512
58
- acoular/tests/reference_data/BeamformerCleantSqTraj.npy,sha256=71sB7BJdfM9GoYDaFDxXNWydXLHl1UxAtnz6Rn549t0,512
59
- acoular/tests/reference_data/BeamformerCleantTraj.npy,sha256=D5hjX8hqupNawbSHAOz2slkVHGdqtt_8ovqtdI-LjbQ,512
60
- acoular/tests/reference_data/BeamformerDamas.npy,sha256=Mx2lfN-xcn0WZSBzt_G9548lwxecXG5rDTIyaTRTBHI,1480
61
- acoular/tests/reference_data/BeamformerDamasPlus.npy,sha256=d1bXvIlaKnqmKz3cGBEZhs4uSVLr9NZTtnpkGaJe8K8,1480
62
- acoular/tests/reference_data/BeamformerEig.npy,sha256=_qpZ5EpTMAf62vm41RZQHm47Vh8npZa4YDAqjBKbdwg,1480
63
- acoular/tests/reference_data/BeamformerEigFalse1.npy,sha256=3uwKkHY7v3vWLbjEqkvtFgev86v-Dqv7TXiK10eaC5E,1480
64
- acoular/tests/reference_data/BeamformerEigFalse2.npy,sha256=9eoFLuBfWsM5ZVksjoCFSqsciJ1aylGxrkJttfRhPl0,1480
65
- acoular/tests/reference_data/BeamformerEigFalse3.npy,sha256=1vB2kQFwSxb4gMfQ746V1E_3IiXfWMTv9oShXagN-Ck,1480
66
- acoular/tests/reference_data/BeamformerEigFalse4.npy,sha256=tuQi0qebS1-NYFYt5xjutIqf-PPI9MmpHKZVBLlpmO0,1480
67
- acoular/tests/reference_data/BeamformerEigTrue1.npy,sha256=OoPvyJ2ArHLX-t8bCC8_R4qMJiK0CLkFhLoKBkbpntQ,1480
68
- acoular/tests/reference_data/BeamformerEigTrue2.npy,sha256=CPK9PKOywjgeeb7Q4qvNGYV9nSOc-iWoTpP7wOO3k7k,1480
69
- acoular/tests/reference_data/BeamformerEigTrue3.npy,sha256=_qpZ5EpTMAf62vm41RZQHm47Vh8npZa4YDAqjBKbdwg,1480
70
- acoular/tests/reference_data/BeamformerEigTrue4.npy,sha256=kNx3nu7XuJPWQ8q_RPf-cqei9SHpAMSoAxAGHeU_L9Y,1480
71
- acoular/tests/reference_data/BeamformerFunctional.npy,sha256=iI2m2FKEuOSqjamFzYex-W9M2DvmNwLzVzdd-jF2Z3I,1480
72
- acoular/tests/reference_data/BeamformerGIB.npy,sha256=seJXgy3zVn29yUFWGz4gN4AzIcvnk0N9IJctffgJT6s,1480
73
- acoular/tests/reference_data/BeamformerGridlessOrth.npy,sha256=8lr3zhn2TviDQCEOVdVeOs9QySdvAxdEavx_w0K0TU8,648
74
- acoular/tests/reference_data/BeamformerMusic.npy,sha256=tWSiwIt2XfGdO5Wf8M8qGm2_IzHK3hVDjCTd2blpAsg,1480
75
- acoular/tests/reference_data/BeamformerOrth.npy,sha256=a_OWXScfCtwhHZsuCe_CA_lIl-IoKOtkAYzmno4yySM,1480
76
- acoular/tests/reference_data/BeamformerTime.npy,sha256=IJy6Y65DKAiYd98R1gHMrj48TjAtf9f7BQq0Aunc6ZM,512
77
- acoular/tests/reference_data/BeamformerTimeSq.npy,sha256=uy3_vy6HF3AOEeei6pqibSXHPXUi0n2SGI6dlUd-4FA,512
78
- acoular/tests/reference_data/BeamformerTimeSqTraj.npy,sha256=tldZ1uhwgImum4e0uE5lLB6si8uyXOIK7sI-DIPC_PQ,512
79
- acoular/tests/reference_data/BeamformerTimeTraj.npy,sha256=BjB1sr_vHmY8CDzYC6kHl0mvKhfZ1ks7fTzBrWiaL9I,512
80
- acoular/tests/reference_data/Environment.npy,sha256=R6lRfvm5F2nAANQNgpXCz6q5ySVuO72WyLRf0gAMpiM,992
81
- acoular/tests/reference_data/Example1_numerical_values_testsum.h5,sha256=NEp7Crg4_Z5OQ1JOpS1YqsFLOK56q3h8k5Y097JM9Xk,9688
82
- acoular/tests/reference_data/FiltFiltOctave__.npy,sha256=xDpbMR0-PwZ9ZzDp6aLWQLwkx77_jaKI-exmqYmAmAs,2368
83
- acoular/tests/reference_data/FiltFiltOctave_band_100_0_fraction_Thirdoctave_.npy,sha256=e_cTAyIp7wrYdKLYpr9JDcOSl9AjgWiaroGMykdTrlo,2368
84
- acoular/tests/reference_data/FiltFreqWeight_weight_A_.npy,sha256=Wi-US2VekdRdU7QdTxTV-wEptONiHRNUHLFJju5RDNU,2368
85
- acoular/tests/reference_data/FiltFreqWeight_weight_C_.npy,sha256=33hYxl2DFw4UOJ7Jz7t_vfIIAdrjtDzwmeExY6sQUJo,2368
86
- acoular/tests/reference_data/FiltFreqWeight_weight_Z_.npy,sha256=zDra9kY62Dc0dWF_pW0QyRx9XjLccbvYApuPU9wT6Vk,2368
87
- acoular/tests/reference_data/FiltOctave__.npy,sha256=W2bkGnFlQf9Tgs7KJZ5zuvW52zd3a6Ut1hljDWlw8E8,2368
88
- acoular/tests/reference_data/FiltOctave_band_100_0_fraction_Thirdoctave_.npy,sha256=tloYFBr6rdAJtbjumM9eNMvUmTI-o7anK-rNumg_NrU,2368
89
- acoular/tests/reference_data/Filter__.npy,sha256=zDra9kY62Dc0dWF_pW0QyRx9XjLccbvYApuPU9wT6Vk,2368
90
- acoular/tests/reference_data/GeneralFlowEnvironment.npy,sha256=BLqggxfgQbc1C4c-ztc3U8YQfkJ9f62hb4XB0KhLJQ0,992
91
- acoular/tests/reference_data/OctaveFilterBank__.npy,sha256=wJnRKSgdXrvmbC4miqfNqipUSTb8x8x4aPLWayuEv3s,15808
92
- acoular/tests/reference_data/OpenJet.npy,sha256=7LYVwYsJKDTbZH0WZ5WH8PYpufhL0vYcffs-yeAZU_g,2720
93
- acoular/tests/reference_data/PointSource.npy,sha256=qxJAv-h6SDF5ZSHXJTAfaJVjBvEtUgBS_-oJijDaG7k,256
94
- acoular/tests/reference_data/PowerSpectra_csm.npy,sha256=6JHBOoXLchECmmax5E21E4jFZSfms3vw65KZbAaRfA4,46784
95
- acoular/tests/reference_data/PowerSpectra_ev.npy,sha256=562t_Imm1Bpy9VPKGJ1n8ouw_HfmQAgsqB4Q6B4Ft5k,46784
96
- acoular/tests/reference_data/RotatingFlow.npy,sha256=4SrlFM0O6WhVl-QOdSgaS-LSXYi_zEbEShQp7p0-z6o,2720
97
- acoular/tests/reference_data/SlotJet.npy,sha256=xxHcYpoVYxG4Ak8uBkvjvrncpfO2AeF0azTvLscNbpE,2720
98
- acoular/tests/reference_data/TimeAverage__.npy,sha256=NAWXzq-CvKKweq0ob-FtHyAJatDbVBPKrtyZTWpfpoI,240
99
- acoular/tests/reference_data/TimeCumAverage__.npy,sha256=tDKnIYqIZe7KUG8qB6cjrlYv8wAaQIrxJIPCzSI2W88,2368
100
- acoular/tests/reference_data/TimeExpAverage_weight_F_.npy,sha256=YXopPBuLrY3a2iDxO1g3GS1PUrE_Mkz5zZnlNiLesOk,2368
101
- acoular/tests/reference_data/TimeExpAverage_weight_I_.npy,sha256=656AhZ5Oipuh0b5_qGtykd_FKvNO6rATNUmYyNyDOEo,2368
102
- acoular/tests/reference_data/TimeExpAverage_weight_S_.npy,sha256=zvkcB3QSnVv4XXKZejCpNrodBvKyRc04-lte82UnWls,2368
103
- acoular/tests/reference_data/TimeInOut__.npy,sha256=hn0IQk-7vIw4vGgfWkniaa1gPI47t8mlubLQFVdRZ0Y,1248
104
- acoular/tests/reference_data/TimePower__.npy,sha256=Q1776dwc0oYlJYOtSsXdK48z2453WO4m-NtgYxaE0UU,1248
105
- acoular/tests/reference_data/TimeReverse__.npy,sha256=dONeF98PmipmsSm3zlfFUjsU0b2qZGcQzwPNcBebS60,1248
106
- acoular/tests/reference_data/UniformFlowEnvironment.npy,sha256=suOncXF58GJtKhVxplMrbV2fMHcTktBEH75f_gSE66A,992
107
- acoular/tests/reference_data/beamformer_traj_time_data.h5,sha256=beH9_En9IgxGUNmhxqCqLo_8PNteVLUSxQBVF3NauY4,69960
108
- acoular/tests/unsupported/functionalBeamformer.py,sha256=NxGxn_5eVJWvIT1wTdJ52esRDXbYz7hrqTYr7NQJ-1w,4980
109
- acoular/tests/unsupported/precisionTest.py,sha256=ysyZZzM6wxHXw0j9Qc0QVBZvXywTVUJyB59cpGG1JG4,6266
110
- acoular/tests/unsupported/validationOfBeamformerFuncsPOSTAcoularIntegration.py,sha256=t_66UFLSxlOTQCTGtb4ROlF2tN7soI70wjY8GJ1xy54,13815
111
- acoular/tests/unsupported/validationOfBeamformerFuncsPREeAcoularIntegration.py,sha256=QqVVFYmGTiOg_TkX5Sf-abzx4_125FXwiUhBYI1fGsI,31698
112
- acoular/tests/unsupported/SpeedComparison/OvernightTestcasesBeamformer_nMics32_nGridPoints100_nFreqs4_nTrials10.png,sha256=mhn9gydEOjz0WB0N1qWgYb-u7Xc4_wFE9m8v1qGFOIU,131252
113
- acoular/tests/unsupported/SpeedComparison/cythonBeamformer.pyx,sha256=WkWeWIgMnPFJ__SPnBdMRExn8QB8m3FFiRFg9_2rOOo,10727
114
- acoular/tests/unsupported/SpeedComparison/mainForCython.py,sha256=knmx2n1-uJiK25WjGX0AM-CiwBJgPot2m93r_yW1W3E,3556
115
- acoular/tests/unsupported/SpeedComparison/mainForParallelJit.py,sha256=0mNKKdSSDWCahLDgrXlnzt3MRvnEcTx2KIMHyBNssbQ,5842
116
- acoular/tests/unsupported/SpeedComparison/setupCythonOpenMP.py,sha256=6TA7QT4ISf-EKCa4g6jhG55tWZr8XumrPGn4nl-XJ3I,2046
117
- acoular/tests/unsupported/SpeedComparison/sharedFunctions.py,sha256=JgD5PYunPhllWvcppaS0-mwKnrN0e1cPXmvrhM8OIUo,5761
118
- acoular/tests/unsupported/SpeedComparison/timeOverNMics_AllImportantMethods.png,sha256=b85-jiyfgrH3E9q0VCLCA-kSG75mZEQIr92K8EtRMVQ,172747
119
- acoular/tests/unsupported/SpeedComparison/timeOverNMics_faverage.png,sha256=gjdeoXKNirQqwkse4kisdx5_r66qPJcoc_dOUD2F4To,131665
120
- acoular/tests/unsupported/SpeedComparison/vglOptimierungFAverage.py,sha256=laX36WMfykyubiimNbf-ySAiuutv3bE6Plijix7-oRE,10020
121
- acoular/tests/unsupported/SpeedComparison/vglOptimierungGaussSeidel.py,sha256=ZE6d6czkveURaqlom--LtrVLWZ6rSPkSQyP50Vieg_Q,9712
122
- acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAMFULL_INVERSE.py,sha256=tkHyTS9FPK4GfhfOfU99RVZaK28t72LNWu_0AxJFzsM,40111
123
- acoular/tests/unsupported/SpeedComparison/vglOptimierungR_BEAM_OS.py,sha256=uphi9mNWFVLj4_isFMkLjcd1xtblWX2HUTPJfETuc78,13445
124
- acoular/tests/unsupported/SpeedComparison/whatsFastestWayFor_absASquared.py,sha256=umIr8eC611yRJePa7XoyUKO1S8ZhedVct_kp5fDVqkA,1236
125
- acoular/xml/HW90D240_f10.xml,sha256=WvowIe8aYJaeHSExjwaY9fjpYukLxX6A-H7fD1PW2g8,5127
126
- acoular/xml/W90_D105_f10.xml,sha256=f8NHPoOYjEnRsstYDa_4E65EBR5m5BVzlg87jpCgckA,5283
127
- acoular/xml/acousticam_2c.xml,sha256=xcVlKQhGbRqMQHLKuTAyXTt3SM3aLZEAfGqbuFaWx4k,1993
128
- acoular/xml/acousticam_4c.xml,sha256=P8wAP5_GT0HS40VV3f7_88xQXwTLN1YRxI7MudnwIqw,1949
129
- acoular/xml/array38.xml,sha256=FrbC-1yVHNfWTamEJPiJhhdPtVYVfGbPXJ3TLljBKx0,2363
130
- acoular/xml/array92x.xml,sha256=65Wf2xbA6Dt_k98C3q4MfTtwPzceT8B2vKvK77hO9Yc,5874
131
- acoular/xml/array_56.xml,sha256=qe8CAcRP7-3MLpPn919XKHB8hMb9G5JUPFzP1qOA4IM,3428
132
- acoular/xml/array_56_10_9.xml,sha256=2G-KZSwvAtIuxyC6JKW2Hv2IWXVFd4Sux1tLxizJ5Z4,4432
133
- acoular/xml/array_56_bomb.xml,sha256=tAdhLzvUrhMh7DMrbXU7skAEAlCvQ6GLbJXAU7Z2JxE,4193
134
- acoular/xml/array_56_v2.xml,sha256=x4OTI77Fttfaqu-Kl7uWmslg8rZAuw2Y-RUa21MqzXk,3458
135
- acoular/xml/array_64.xml,sha256=1ZHuQEHhFhz9EhBcNbXkVT-9tnAr6T9cHH5Xb1gHL7Y,4039
136
- acoular/xml/array_84_10_9.xml,sha256=jzvMYZlQqo8y6jt3yllGOL7vk8bxMVpISexkZL0uquA,6558
137
- acoular/xml/array_84_bomb_v3.xml,sha256=Mv8nvqSOUezrdIjrCHZt4gZpJ-Z3BzF2wIYPawHZjlA,6248
138
- acoular/xml/calib_vw_ring32.xml,sha256=9chpz0O3e__oIs4ZuJTvUJNIuawjDqEnkdRbfyUBBxU,1341
139
- acoular/xml/gfai_ring32.xml,sha256=liKaGpfgUn8R1psDmiw6qqpZi5SwtPWBRhwhqy7YuOc,1831
140
- acoular/xml/minidsp_uma16.xml,sha256=QDL13OJtkuzdbu29RyhtJgx69aYsy257MxagI4OIwZQ,1153
141
- 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,,
@@ -1,29 +0,0 @@
1
- Copyright (c) 2006-2023 The acoular developers.
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.