acoular 25.10__py3-none-any.whl → 26.1__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/aiaa/aiaa.py +1 -1
- acoular/base.py +7 -7
- acoular/calib.py +6 -6
- acoular/demo/__init__.py +97 -9
- acoular/demo/__main__.py +37 -0
- acoular/environments.py +24 -24
- acoular/fbeamform.py +145 -142
- acoular/fprocess.py +11 -9
- acoular/grids.py +45 -211
- acoular/microphones.py +8 -8
- acoular/process.py +7 -14
- acoular/sdinput.py +9 -9
- acoular/signals.py +10 -10
- acoular/sources.py +84 -68
- acoular/spectra.py +27 -36
- acoular/tbeamform.py +26 -26
- acoular/tools/helpers.py +1 -1
- acoular/tools/utils.py +168 -0
- acoular/tprocess.py +76 -63
- acoular/trajectory.py +1 -2
- acoular/version.py +2 -2
- {acoular-25.10.dist-info → acoular-26.1.dist-info}/METADATA +53 -108
- {acoular-25.10.dist-info → acoular-26.1.dist-info}/RECORD +26 -26
- {acoular-25.10.dist-info → acoular-26.1.dist-info}/WHEEL +1 -1
- acoular/demo/acoular_demo.py +0 -135
- {acoular-25.10.dist-info → acoular-26.1.dist-info}/licenses/AUTHORS.rst +0 -0
- {acoular-25.10.dist-info → acoular-26.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
acoular/__init__.py,sha256=FzwGAAHTrQbqo_UxXSwydKK8RundiTxMFZgda3hg-RU,3210
|
|
2
|
-
acoular/base.py,sha256=
|
|
3
|
-
acoular/calib.py,sha256=
|
|
2
|
+
acoular/base.py,sha256=yhQB7aTBfn81gY-PlG9_8JmHXpPsxcZHE9pzCeiUhpQ,9876
|
|
3
|
+
acoular/calib.py,sha256=xQ-H1bLQ79v3RjXMd500wkD4R4j_tfb_TNTz7FebxRM,7139
|
|
4
4
|
acoular/configuration.py,sha256=kVo0FSaycuUF7eM7wKVZy20ec_SyWc0IQ7EJ2dE92pk,8633
|
|
5
5
|
acoular/deprecation.py,sha256=9KgdNddd5NjmPibPWCQ-VCgCUccpZgo5c6z4nfMEHp8,4005
|
|
6
|
-
acoular/environments.py,sha256=
|
|
6
|
+
acoular/environments.py,sha256=leha-snsZWv2fQCmXC71dHfZxJvM10HmX6eqmk9Fgus,35908
|
|
7
7
|
acoular/fastFuncs.py,sha256=COq3IYq2PIOJOsQr5JhU-EcE5qmnpXj1MAhaDWznFNI,37333
|
|
8
|
-
acoular/fbeamform.py,sha256=
|
|
9
|
-
acoular/fprocess.py,sha256=
|
|
10
|
-
acoular/grids.py,sha256
|
|
8
|
+
acoular/fbeamform.py,sha256=Q3oTJloKmoPwV0PEw8ohsCEFqjx8J8y1e3Vq-NWPGkI,96282
|
|
9
|
+
acoular/fprocess.py,sha256=Pd2MaXm3wr1VK5tArclvklJLY_5Nddv8q-BvzXiftgA,19431
|
|
10
|
+
acoular/grids.py,sha256=C56zY-CkSYYTw-Rt4wVAzOSf2wCWutx61MbBkioKUq4,55298
|
|
11
11
|
acoular/h5cache.py,sha256=nmfnLhfKL6PSMk_Z7GzJrbmSRtXVqzhQ7yTLjih_6OY,4499
|
|
12
12
|
acoular/h5files.py,sha256=K30ylkKtna-h7GmGh2P-DHLZaKQnvrFQnrMpk_N_Grw,11513
|
|
13
13
|
acoular/internal.py,sha256=XBXWTc5SbUXdPEoc120O8-xGlGAN6-c2giLU1KdpGb4,1078
|
|
14
|
-
acoular/microphones.py,sha256=
|
|
15
|
-
acoular/process.py,sha256=
|
|
16
|
-
acoular/sdinput.py,sha256=
|
|
17
|
-
acoular/signals.py,sha256=
|
|
18
|
-
acoular/sources.py,sha256=
|
|
19
|
-
acoular/spectra.py,sha256=
|
|
20
|
-
acoular/tbeamform.py,sha256=
|
|
14
|
+
acoular/microphones.py,sha256=WPVR9ge2Fo6neUe3kOpxSh4v9bf9nRbZM417o8lG6lI,11127
|
|
15
|
+
acoular/process.py,sha256=BSzW7H848hgwScNfwTNzTCMdqRwlvY129es1J0E0ocw,38850
|
|
16
|
+
acoular/sdinput.py,sha256=QXRCLMd6fKTOSuMeEAdyNjnb5FIX8RO1C9a1Cibbm6A,4754
|
|
17
|
+
acoular/signals.py,sha256=htdvRGvBEaSvvkwmcOV7KMdCZU2adEazzOpQyCDJFR0,24203
|
|
18
|
+
acoular/sources.py,sha256=AxxeQb5eLsxQaQDC8aw-5GZEv8hCqsZwB_3uasf4yco,91405
|
|
19
|
+
acoular/spectra.py,sha256=nKV9iHuXcIt_NRWMURh9haRkRtsS-ge57mTxOB08gcU,27226
|
|
20
|
+
acoular/tbeamform.py,sha256=FNa3ZSm_v-m2hlvPTDvtPYKpV829a0Ix_blGl7mTnss,31935
|
|
21
21
|
acoular/tfastfuncs.py,sha256=q2ZbDoWmFbGMZw1TT_h-21hn24qGi2of_ZqJVoLMYhc,7901
|
|
22
|
-
acoular/tprocess.py,sha256=
|
|
22
|
+
acoular/tprocess.py,sha256=2J71MZZhjWhBL7rqcNMBh01TuRYTDMVfqarstkyD5ks,116764
|
|
23
23
|
acoular/traitsviews.py,sha256=D2__nVUNELFbb7X9BrLw-mzRMpCDYdYEseKcX-meQNM,13727
|
|
24
|
-
acoular/trajectory.py,sha256=
|
|
25
|
-
acoular/version.py,sha256=
|
|
24
|
+
acoular/trajectory.py,sha256=628xuQOspmdmVGCKL1MVk-tkp3qtYB0m5XtvGOhYwtc,7860
|
|
25
|
+
acoular/version.py,sha256=1X1HNzjhyBb3Xr89rZytQSt46CA-w5OJERgS0Hsm7xQ,387
|
|
26
26
|
acoular/aiaa/__init__.py,sha256=5RhoERGQmLBf6uosr9hYHWy_MruKiyR5x-8cMRX4hT4,420
|
|
27
|
-
acoular/aiaa/aiaa.py,sha256
|
|
28
|
-
acoular/demo/__init__.py,sha256=
|
|
29
|
-
acoular/demo/
|
|
27
|
+
acoular/aiaa/aiaa.py,sha256=-9V8HMOz18pngRGsP2CHQg7Pt2qRGF39O6Z0KgjVWZs,6366
|
|
28
|
+
acoular/demo/__init__.py,sha256=4u9RQcbH_Gus7FwlWpAs-LCaUesV_RxZGukAMVQ7IXM,3878
|
|
29
|
+
acoular/demo/__main__.py,sha256=M1tKrZp5GDT6YBBHetA_uktbItCI20jmK38gJf49Hlg,1007
|
|
30
30
|
acoular/tools/__init__.py,sha256=z8RHRQhcmqkUKwD8v3pInpAMN8csPcN5J4Z9QXu_GjQ,511
|
|
31
|
-
acoular/tools/helpers.py,sha256=
|
|
31
|
+
acoular/tools/helpers.py,sha256=DTRNj3XbFEH-K-aqcL_E_PDCyBmE_skg_6pL8NbETrQ,14178
|
|
32
32
|
acoular/tools/metrics.py,sha256=uD11YT54GcY6WyIy8LnOEiC-rjmGmOOErDLtwjF4eO0,6102
|
|
33
|
-
acoular/tools/utils.py,sha256=
|
|
33
|
+
acoular/tools/utils.py,sha256=e6Xxlr-HI34hetmW1kfuOOD0FY7N88tqKekNzDJlNAY,9890
|
|
34
34
|
acoular/xml/HW90D240_f10.xml,sha256=WvowIe8aYJaeHSExjwaY9fjpYukLxX6A-H7fD1PW2g8,5127
|
|
35
35
|
acoular/xml/W90_D105_f10.xml,sha256=f8NHPoOYjEnRsstYDa_4E65EBR5m5BVzlg87jpCgckA,5283
|
|
36
36
|
acoular/xml/acousticam_2c.xml,sha256=xcVlKQhGbRqMQHLKuTAyXTt3SM3aLZEAfGqbuFaWx4k,1993
|
|
@@ -49,8 +49,8 @@ acoular/xml/gfai_ring32.xml,sha256=liKaGpfgUn8R1psDmiw6qqpZi5SwtPWBRhwhqy7YuOc,1
|
|
|
49
49
|
acoular/xml/minidsp_uma-16.xml,sha256=oBj7J96RTDZufsQ7S4rw0jAvLOoykJaIGgl6_2gMON4,1140
|
|
50
50
|
acoular/xml/minidsp_uma-16_mirrored.xml,sha256=l6LUPIsEVg7HPMbs9NbnqZyFhpCSYS70glsbyH3IUOE,1418
|
|
51
51
|
acoular/xml/tub_vogel64.xml,sha256=PixVMx5hMJjgBOekH46uu6D3ODqYVOLlk82zkYl4EBM,4424
|
|
52
|
-
acoular-
|
|
53
|
-
acoular-
|
|
54
|
-
acoular-
|
|
55
|
-
acoular-
|
|
56
|
-
acoular-
|
|
52
|
+
acoular-26.1.dist-info/METADATA,sha256=u4ECZczGOergt7k_2yzcqBPk8z2Ng1XI_dGb29JsVe4,10267
|
|
53
|
+
acoular-26.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
54
|
+
acoular-26.1.dist-info/licenses/AUTHORS.rst,sha256=445q_Us_TnQx8s_GP2yringU2DMTk3-ycrk2REtSsx0,382
|
|
55
|
+
acoular-26.1.dist-info/licenses/LICENSE,sha256=tbw7-nx204gXCo8p-NwwR7w8oKvNMWB4H07FTT6V9p8,1505
|
|
56
|
+
acoular-26.1.dist-info/RECORD,,
|
acoular/demo/acoular_demo.py
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
# ------------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) Acoular Development Team.
|
|
3
|
-
# ------------------------------------------------------------------------------
|
|
4
|
-
"""Demo for Acoular.
|
|
5
|
-
|
|
6
|
-
To run the demo, execute the following commands:
|
|
7
|
-
|
|
8
|
-
.. code-block:: python
|
|
9
|
-
|
|
10
|
-
import acoular
|
|
11
|
-
|
|
12
|
-
acoular.demo.acoular_demo.run()
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Generates a test data set for three sources, analyzes them and generates a
|
|
16
|
-
map of the three sources.
|
|
17
|
-
|
|
18
|
-
The simulation generates the sound pressure at 64 microphones that are
|
|
19
|
-
arrangend in the 'array64' geometry, which is part of the package. The sound
|
|
20
|
-
pressure signals are sampled at 51200 Hz for a duration of 1 second.
|
|
21
|
-
|
|
22
|
-
Source location (relative to array center) and RMS in 1 m distance:
|
|
23
|
-
|
|
24
|
-
====== =============== ======
|
|
25
|
-
Source Location RMS
|
|
26
|
-
====== =============== ======
|
|
27
|
-
1 (-0.1,-0.1,0.3) 1.0 Pa
|
|
28
|
-
2 (0.15,0,0.3) 0.7 Pa
|
|
29
|
-
3 (0,0.1,0.3) 0.5 Pa
|
|
30
|
-
====== =============== ======
|
|
31
|
-
|
|
32
|
-
"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def create_three_sources(mg, h5savefile='three_sources.h5'):
|
|
36
|
-
"""
|
|
37
|
-
Create three noise sources and return them as Mixer.
|
|
38
|
-
|
|
39
|
-
Alias for :func:`create_three_sources_2d`.
|
|
40
|
-
"""
|
|
41
|
-
return create_three_sources_2d(mg, h5savefile=h5savefile)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def _create_three_sources(mg, locs, h5savefile='', sfreq=51200, duration=1):
|
|
45
|
-
"""Create three noise sources with custom locations and return them as Mixer."""
|
|
46
|
-
import acoular as ac
|
|
47
|
-
|
|
48
|
-
nsamples = duration * sfreq
|
|
49
|
-
|
|
50
|
-
n1 = ac.WNoiseGenerator(sample_freq=sfreq, num_samples=nsamples, seed=1)
|
|
51
|
-
n2 = ac.WNoiseGenerator(sample_freq=sfreq, num_samples=nsamples, seed=2, rms=0.7)
|
|
52
|
-
n3 = ac.WNoiseGenerator(sample_freq=sfreq, num_samples=nsamples, seed=3, rms=0.5)
|
|
53
|
-
|
|
54
|
-
noises = [n1, n2, n3]
|
|
55
|
-
ps = [ac.PointSource(signal=n, mics=mg, loc=loc) for n, loc in list(zip(noises, locs))]
|
|
56
|
-
pa = ac.Mixer(source=ps[0], sources=ps[1:])
|
|
57
|
-
|
|
58
|
-
if h5savefile:
|
|
59
|
-
wh5 = ac.WriteH5(source=pa, file=h5savefile)
|
|
60
|
-
wh5.save()
|
|
61
|
-
return pa
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def create_three_sources_1d(mg, h5savefile='three_sources_1d.h5'):
|
|
65
|
-
"""Create three noise sources on a 1D line and return them as Mixer."""
|
|
66
|
-
locs = [(-0.1, 0, -0.3), (0.15, 0, -0.3), (0, 0, -0.3)]
|
|
67
|
-
return _create_three_sources(mg, locs, h5savefile=h5savefile)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def create_three_sources_2d(mg, h5savefile='three_sources_2d.h5'):
|
|
71
|
-
"""Create three noise sources in a 2D plane and return them as Mixer."""
|
|
72
|
-
locs = [(-0.1, -0.1, -0.3), (0.15, 0, -0.3), (0, 0.1, -0.3)]
|
|
73
|
-
return _create_three_sources(mg, locs, h5savefile=h5savefile)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def create_three_sources_3d(mg, h5savefile='three_sources_3d.h5'):
|
|
77
|
-
"""Create three noise sources in 3D space and return them as Mixer."""
|
|
78
|
-
locs = [(-0.1, -0.1, -0.3), (0.15, 0, -0.17), (0, 0.1, -0.25)]
|
|
79
|
-
return _create_three_sources(mg, locs, h5savefile=h5savefile)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def run():
|
|
83
|
-
"""Run the Acoular demo."""
|
|
84
|
-
from pathlib import Path
|
|
85
|
-
|
|
86
|
-
import acoular as ac
|
|
87
|
-
|
|
88
|
-
ac.config.global_caching = 'none'
|
|
89
|
-
|
|
90
|
-
# set up microphone geometry
|
|
91
|
-
|
|
92
|
-
micgeofile = Path(ac.__file__).parent / 'xml' / 'array_64.xml'
|
|
93
|
-
mg = ac.MicGeom(file=micgeofile)
|
|
94
|
-
|
|
95
|
-
# generate test data, in real life this would come from an array measurement
|
|
96
|
-
|
|
97
|
-
pa = create_three_sources(mg)
|
|
98
|
-
|
|
99
|
-
# analyze the data and generate map
|
|
100
|
-
|
|
101
|
-
ps = ac.PowerSpectra(source=pa, block_size=128, window='Hanning')
|
|
102
|
-
|
|
103
|
-
rg = ac.RectGrid(x_min=-0.2, x_max=0.2, y_min=-0.2, y_max=0.2, z=-0.3, increment=0.01)
|
|
104
|
-
st = ac.SteeringVector(grid=rg, mics=mg)
|
|
105
|
-
|
|
106
|
-
bb = ac.BeamformerBase(freq_data=ps, steer=st)
|
|
107
|
-
pm = bb.synthetic(8000, 3)
|
|
108
|
-
spl = ac.L_p(pm)
|
|
109
|
-
|
|
110
|
-
if ac.config.have_matplotlib:
|
|
111
|
-
from matplotlib.pyplot import axis, colorbar, figure, imshow, plot, show
|
|
112
|
-
|
|
113
|
-
# show map
|
|
114
|
-
imshow(spl.T, origin='lower', vmin=spl.max() - 10, extent=rg.extent, interpolation='bicubic')
|
|
115
|
-
colorbar()
|
|
116
|
-
|
|
117
|
-
# plot microphone geometry
|
|
118
|
-
figure(2)
|
|
119
|
-
plot(mg.pos[0], mg.pos[1], 'o')
|
|
120
|
-
axis('equal')
|
|
121
|
-
|
|
122
|
-
show()
|
|
123
|
-
|
|
124
|
-
else:
|
|
125
|
-
print('Matplotlib not found! Please install matplotlib if you want to plot the results.')
|
|
126
|
-
print('For consolation we do an ASCII map plot of the results here.')
|
|
127
|
-
grayscale = '@%#*+=-:. '[::-1]
|
|
128
|
-
ind = ((spl.T - spl.max() + 9).clip(0, 9)).astype(int)[::-1]
|
|
129
|
-
print(78 * '-')
|
|
130
|
-
print('|\n'.join([' '.join(['|'] + [grayscale[i] for i in row[2:-1]]) for row in ind]) + '|')
|
|
131
|
-
print(7 * '-', ''.join([f'{grayscale[i]}={int(spl.max())-9+i}dB ' for i in range(1, 10)]), 6 * '-')
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if __name__ == '__main__':
|
|
135
|
-
run()
|
|
File without changes
|
|
File without changes
|