Align the sound power determinations and noise declarations with their standards' clauses (#353)
- ISO 3741:2010, 9.1.2/9.1.3: apply the background correction at each
microphone position (K1i, Eq. 14), correct the position levels first
(Eq. 15) and only then energy-average (Eq. 16). Pre-averaged 1D spectra
keep the single-K1 path, documented as an approximation.
- ISO 9614-2:1996, 10.6 b: omit the bands failing criteria 1 and/or 2 from
the A-weighted total, flag them in the new a_weighting_omitted_bands field
and name them in the fiche basis strip (EN/ES); warn when the criteria
inputs are absent and the screening cannot run.
- ISO 9614-3:2002, C.1.6.2: a band satisfying criterion 5 qualifies as a
final result even if FS(2) >= 2.
- ISO 3745:2012: bands above 10 kHz no longer abort the determination; only
the A-weighted total (outside the ISO 3744 Annex E table) is NaN.
- ISO 3744:2010, 8.2.3 / ISO 3746:2010, 8.3.3: K1 = 0 only strictly above
the upper criterion; Equation (16) still applies at exactly 15 dB / 10 dB.
- ISO 4871:1996, 3.16/6.2: verify dual-number declarations against the sum
of the separately rounded declared values (verified_dual), and lay the
dual-number fiche out exactly as Annex B.2 (no derived L_WAd row).
- Cite clause 8.4 for the apparent directivity indices and note that the
4.3.2 validity limit concerns K2A (per-band check kept, conservative).
Hand-derived oracles cover each correction; the ISO 4871 and ISO 9614-2
example fiches, the API reference pages and the llms text are regenerated.
Align the sound power determinations and noise declarations with their standards' clauses (#353)
- ISO 3741:2010, 9.1.2/9.1.3: apply the background correction at each
microphone position (K1i, Eq. 14), correct the position levels first
(Eq. 15) and only then energy-average (Eq. 16). Pre-averaged 1D spectra
keep the single-K1 path, documented as an approximation.
- ISO 9614-2:1996, 10.6 b: omit the bands failing criteria 1 and/or 2 from
the A-weighted total, flag them in the new a_weighting_omitted_bands field
and name them in the fiche basis strip (EN/ES); warn when the criteria
inputs are absent and the screening cannot run.
- ISO 9614-3:2002, C.1.6.2: a band satisfying criterion 5 qualifies as a
final result even if FS(2) >= 2.
- ISO 3745:2012: bands above 10 kHz no longer abort the determination; only
the A-weighted total (outside the ISO 3744 Annex E table) is NaN.
- ISO 3744:2010, 8.2.3 / ISO 3746:2010, 8.3.3: K1 = 0 only strictly above
the upper criterion; Equation (16) still applies at exactly 15 dB / 10 dB.
- ISO 4871:1996, 3.16/6.2: verify dual-number declarations against the sum
of the separately rounded declared values (verified_dual), and lay the
dual-number fiche out exactly as Annex B.2 (no derived L_WAd row).
- Cite clause 8.4 for the apparent directivity indices and note that the
4.3.2 validity limit concerns K2A (per-band check kept, conservative).
Hand-derived oracles cover each correction; the ISO 4871 and ISO 9614-2
example fiches, the API reference pages and the llms text are regenerated.
Align the sound power determinations and noise declarations with their standards' clauses (#353)
- ISO 3741:2010, 9.1.2/9.1.3: apply the background correction at each
microphone position (K1i, Eq. 14), correct the position levels first
(Eq. 15) and only then energy-average (Eq. 16). Pre-averaged 1D spectra
keep the single-K1 path, documented as an approximation.
- ISO 9614-2:1996, 10.6 b: omit the bands failing criteria 1 and/or 2 from
the A-weighted total, flag them in the new a_weighting_omitted_bands field
and name them in the fiche basis strip (EN/ES); warn when the criteria
inputs are absent and the screening cannot run.
- ISO 9614-3:2002, C.1.6.2: a band satisfying criterion 5 qualifies as a
final result even if FS(2) >= 2.
- ISO 3745:2012: bands above 10 kHz no longer abort the determination; only
the A-weighted total (outside the ISO 3744 Annex E table) is NaN.
- ISO 3744:2010, 8.2.3 / ISO 3746:2010, 8.3.3: K1 = 0 only strictly above
the upper criterion; Equation (16) still applies at exactly 15 dB / 10 dB.
- ISO 4871:1996, 3.16/6.2: verify dual-number declarations against the sum
of the separately rounded declared values (verified_dual), and lay the
dual-number fiche out exactly as Annex B.2 (no derived L_WAd row).
- Cite clause 8.4 for the apparent directivity indices and note that the
4.3.2 validity limit concerns K2A (per-band check kept, conservative).
Hand-derived oracles cover each correction; the ISO 4871 and ISO 9614-2
example fiches, the API reference pages and the llms text are regenerated.
Sound power from surface vibration report via .report() (ISO/TS 7849) (#325)
* Add ISO/TS 7849 sound-power-from-vibration .report() fiche
Render VibrationSoundPowerResult (airborne sound power radiated through
surface vibration, ISO/TS 7849-1/-2:2009) to a one-page PDF fiche via the
shared sound-power report engine. The vibration-method variant adds the
surface velocity level Lv and radiation factor epsilon columns, the
radiating area S in the boxed result and the LW = Lv + 10 lg(S/S0) +
10 lg(epsilon) + 10 lg(411/400) basis strip, and names the survey (Part 1,
fixed epsilon = 1) or engineering (Part 2, determined epsilon) method.
Add a sound_power_level_a property (A-weighted total) to the result and the
Spanish translations for the new strings.
* Add the ISO/TS 7849 example fiche and its committed preview
Register an engineering-method (Part 2) example in generate_reports.py: a
gearbox casing of radiating area S = 1.6 m2 surveyed over six octave bands
with a measured radiation factor, giving LWA = 88.7 dB(A) re 1 pW against a
declared 90 dB(A) limit. Commit the rendered PDF and its WebP preview.
* Test the ISO/TS 7849 sound-power-from-vibration fiche
Recompute LW and LWA from the closed-form ISO/TS 7849 Eq. 3/8/12 against a
clean-room oracle and assert they, the band labels, the method part and the
basis prose appear in the PDF; cover the survey/engineering variants, the
verbose radiation-factor column, the verdict, the metadata header, the
Spanish fiche and the rendering contract.
* Document the ISO/TS 7849 report and regenerate the API reference
Add a measurement-report section to the EN and ES vibration-sound-power
guides (with the ReportPreview) and the docs mirror, regenerate the
generated API page for the new report() and sound_power_level_a members, and
record the addition in the changelog.
* Address review on the ISO/TS 7849 report
- Do not present an unweighted broadband LW as LWA: sound_power_level_a now
returns nan without a band spectrum, so the fiche boxes the unweighted total
LW and draws no A-weighted verdict, and the basis strip omits the A-weighting
sentence for a broadband result.
- Drop the unused result parameter from the relation-strip helper.
- Render the fixed impedance term with the locale decimal separator (0.12 dB in
the English fiche, 0,12 dB in the Spanish one) via format_number.
- Cite the accelerometer calibration standard (ISO 16063-21) in the example
instead of IEC 60651, which specifies sound level meters.
- Assert the one-page contract on the longer one-third-octave table and add a
broadband test asserting no false A-weighted claim.
Regenerate the example fiche PDF and WebP preview and the generated API page.