Add wind-turbine tonal audibility report via .report() (#337)
* Add wind-turbine tonal audibility report via .report()
Add WindTurbineTonalityResult.report() rendering a one-page PDF
wind-turbine tonality-assessment fiche (IEC 61400-11:2012+A1:2018,
subclauses 9.5.2-9.5.5).
The sheet carries a standard-basis line, an optional metadata header
(source/situation, client, measurement position, instrumentation, date),
a two-panel body with the critical-band and masking analysis in a metrics
table (tone frequency, critical bandwidth, tone level L_pt, masking-noise
level L_pn, tonality dL_tn, audibility criterion L_a and tonal audibility
dL_a) beside the narrowband-spectrum plot with the critical band, masking
level and tone marked, and a boxed decisive tonal audibility dL_a with the
tone frequency and the audibility decision (a tone is audible when dL_a
exceeds 0 dB). A maximum acceptable tonal audibility supplied via the
metadata requirement adds a PASS/FAIL verdict (a lower audibility is
better). English and Spanish both render.
Register the example fiche, add structural and i18n tests, and regenerate
the committed example PDF, WebP preview and API reference.
* Base the audibility decision on the displayed rounded tonal audibility
The boxed result, verdict and decision text all commit to the tonal
audibility rounded as displayed, but the decision phrase and note branched
on the raw is_audible flag. A raw dL_a just above 0 dB that rounds to a
displayed 0.0 dB could therefore print a self-contradicting "0.0 dB > 0".
Derive the audibility decision from the same rounded value through a shared
helper, and add a boundary regression test.
authored by
This is a binary file and will not be displayed.