Repository navigation
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
pytta.iso3382_3, the single-number quantities of ISO 3382-3:2012 for open-plan offices, computed from measurements along a line of workstations:source_level_1m(Lw): the free-field level at 1 m of the measurement source, Lw + 10 lg(1 / 4π), about Lw − 11 dB (Eq. 1).speech_levels(Lw_source, Lp_source): the A-weighted level of normal speech at each position, Lp,A,S,n. The attenuation of each octave band from 1 m in free field to the position, measured with the calibrated source, is applied to the speech spectrum of Table 1, and the bands are A-weighted and summed (Eq. 2 to 4).spatial_decay(r, LpAS): the spatial decay rate of speech per distance doubling, D2,S, and the speech level at 4 m, Lp,A,S,4m, from the regression line of the levels on lg(r / 1 m) over the positions from 2 m to 16 m (Eq. 5, 3.3 and 6.2).distance_at_sti(r, sti, limit): the distraction distance rD (STI 0.50) and the privacy distance rP (STI 0.20) from the regression line of the STI on the distance (3.6, 3.7 and 6.3). It returns nan when the line does not fall.OCTAVES,SPEECH_LW,SPEECH_LP_1MandA_WEIGHTINGhold Table 1. The STI at each position is computed separately by the full method of IEC 60268-16, for instance withpytta.iec60268.sti(#67), so this module does not depend on it.Source
The equations and Table 1 were taken from the Brazilian adoption of the standard, ABNT NBR ISO 3382-3 (draft of January 2017), which is identical to ISO 3382-3:2012. The mean background level (6.4) is left out, because the text does not say whether the mean over the positions is arithmetic or energetic.
Tests
tests/test_iso3382_3.pyuses Table 1 and analytic sound fields:Checked with Python 3.12, numpy 1.26 and scipy 1.17. The 7 failures of
development(3 intest_h5io.py, 4 intest_pyttasave.py) are the same with and without this change.Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com