Skip to content
This documentation describes version 4.0.0, which is not released yet. The current version on PyPI is 3.3.0 and does not carry everything described here.

building.measurement.intensity_insulation

Sound insulation measured with sound intensity (ISO 15186).

This is the sound-intensity counterpart of the sound-pressure methods in phonometry.building.measurement.lab_insulation (ISO 10140) and phonometry.building.measurement.insulation (ISO 16283). Instead of an equivalent absorption area in the receiving room, the transmitted sound power is measured directly by scanning an intensity probe over a measurement surface enclosing the specimen. The main use is when the traditional pressure method fails because of high flanking transmission (ISO 15186-1:2000, Clause 1): the intensity method only captures the power radiated by the element itself.

Intensity sound reduction index (ISO 15186-1:2000, Clause 3.8, Formula (7)). From the average source-room sound pressure level Lp1 and the average normal sound intensity level LIn over the measurement surface, in dB,

with the measurement-surface area Sm and the specimen area S. The constant 6 dB is the diffuse-field relationship between the sound pressure level and the sound intensity level incident on the specimen. The same formula yields the apparent index R'I in the field (ISO 15186-2), the only difference being the measurement condition (flanking is not suppressed), not the arithmetic.

Modified intensity sound reduction index (Clause 3.10, Formula (9)). corrects RI so that it reproduces the ISO 140-3 (now ISO 10140-2) pressure result, which slightly overestimates R because the power radiated into the receiving room is underestimated. The adaptation term Kc (Annex B) is (Formula (B.1)) for a well-defined receiving room of boundary area Sb2 and volume V2, or the room-independent approximation (Formula (B.2)); both use the speed of sound m/s so that (B.1) with the reference room m², m³ reduces to (B.2).

Intensity element normalized level difference (Clause 3.9, Formula (8)). For small building elements, in dB,

with the reference absorption area m² and the number N of element units in the measurement surface. The printed Formula (8) subtracts its term instead of adding it, which is physically inconsistent with ISO 10140-2:2010 Formula (6) and ISO 15186-2:2010 Formula (12); the corrected per-unit form is implemented (see docs/ERRATA.md).

Surface pressure-intensity indicator (Clause 3.6 / 6.4.2, Formula (10)). qualifies the measurement surface: it must not exceed 10 dB for a sound-reflecting specimen (6 dB when the receiving side is sound absorbing), and the probe’s pressure-residual intensity index must exceed dB (Clause 4.1) for the dynamic capability to be adequate.

Frequency range (part 1, Clause 6.6). The part 1 and part 2 quantities are measured over the mandatory one-third-octave range 100 Hz to 5000 Hz (18 bands), optionally extended down to 50 Hz. The part 3 quantities at the end of this module answer over 50 Hz to 160 Hz instead (its Clause 1.1), and results from the two ranges are meant to be combined into one 50 Hz to 5000 Hz curve. The single-number weighted rating uses the ISO 717-1 core range, so the automatic rating (RI,w, RI,M,w, DI,n,e,w) is formed via the verified phonometry.building.weighted_rating engine only when exactly 16 one-third-octave (100-3150 Hz) or 5 octave (125-2000 Hz) values are supplied.

Auto-generated from the source docstrings by scripts/generate_api_docs.py (make api-docs). Do not edit by hand.

adaptation_term_kc(
freq: Sequence[float] | np.ndarray,
*,
boundary_area: float,
volume: float,
) -> np.ndarray
adaptation_term_kc(freq: Sequence[float] | np.ndarray) -> np.ndarray

Adaptation term Kc per ISO 15186-1:2000, Annex B.

Returns, per one-third-octave midband frequency, the term Kc that turns the intensity sound reduction index RI into the modified index (Clause 3.10). Two forms are available:

  • Well-defined receiving room (Formula (B.1)): when both boundary_area (Sb2) and volume (V2) are supplied, with the midband wavelength and m/s.
  • Room-independent approximation (Formula (B.2)): when neither is supplied, , the exact reduction of (B.1) for the reference room m², m³.

Parameters

NameDescription
freqOne-third-octave midband frequencies, in Hz.
boundary_areaTotal boundary-surface area Sb2 of the receiving room, in m². Supply together with volume for (B.1).
volumeReceiving-room volume V2, in m³.

Returns: The adaptation term Kc per band, in dB.

Raises

ExceptionWhen
ValueErrorIf freq is not positive/finite, if only one of boundary_area / volume is supplied, or if either is not positive.
combine_subareas(
l_in: Sequence[Sequence[float]] | np.ndarray,
measurement_area: Sequence[float] | np.ndarray,
) -> tuple[np.ndarray, float]

Combine per-subarea intensity levels (ISO 15186-1, Formulas (11)-(12)).

When the measurement surface is divided into subareas Smi each scanned individually, the normal sound intensity level over the whole surface is the area-weighted energy average, in dB,

with the total measured area (Formula (12)).

Negative-direction subareas (Clause 6.4.6). When the sound intensity of a subarea has a negative direction (net energy flowing back towards the specimen), the standard requires a minus sign before that Smi in Formula (11). Express this by passing the subarea’s area as a negative number: its energy is subtracted in the numerator while Sm keeps the unsigned area sum.

Parameters

NameDescription
l_inPer-subarea intensity levels as a (subareas, bands) array (one row per subarea), in dB (magnitude of the intensity).
measurement_areaSubarea areas Smi, in m² (one per row). Negative values mark reverse-flow subareas per Clause 6.4.6; zero is invalid.

Returns: A tuple (LIn, Sm) with the combined level per band, in dB, and the total measured area , in m².

Raises

ExceptionWhen
ValueErrorIf the shapes are inconsistent or values non-finite, if any subarea area is zero, or if the signed energy sum of Formula (11) is not positive in some band (the reverse flows cancel or exceed the forward flow, so no level exists).
intensity_element_normalized_difference(
lp1: Sequence[float] | np.ndarray,
l_in: Sequence[float] | np.ndarray,
*,
measurement_area: float,
n: int = 1,
) -> IntensityElementNormalizedResult

Intensity element normalized level difference per ISO 15186-1 (Formula (8)).

Computes, per frequency band, the intensity element normalized level difference of a single element unit, in dB,

from the average source-room sound pressure level Lp1, the average normal sound intensity level LIn over the measurement surface of area Sm (measurement_area), the reference absorption area m² and the number N of element units installed within the surface. The weighted rating DI,n,e,w is computed via phonometry.building.weighted_rating (ISO 717-1) when exactly 16 or 5 values are supplied.

Parameters

NameDescription
lp1Source-room sound pressure levels, in dB.
l_inNormal sound intensity levels over the measurement surface, in dB.
measurement_areaMeasurement-surface area Sm, in m².
nNumber N of small element units in the surface (Default: 1).

Returns: IntensityElementNormalizedResult.

Raises

ExceptionWhen
ValueErrorIf the band counts differ, if measurement_area is not positive, if n is not a positive integer, or if inputs are non-finite.
intensity_sound_reduction(
lp1: Sequence[float] | np.ndarray,
l_in: Sequence[float] | np.ndarray,
*,
measurement_area: float,
area: float,
kc: Sequence[float] | np.ndarray | None = None,
) -> IntensityReductionResult

Intensity sound reduction index per ISO 15186-1:2000 (Formula (7)).

Computes, per frequency band, the intensity sound reduction index, in dB,

from the average source-room sound pressure level Lp1 and the average normal sound intensity level LIn over the measurement surface of area Sm (measurement_area), for a specimen of area S (area). The same formula gives the apparent index R'I in the field (ISO 15186-2). When an adaptation term kc is supplied (see adaptation_term_kc), the modified index (Formula (9)) is also formed. Weighted ratings RI,w (and RI,M,w) are computed via phonometry.building.weighted_rating (ISO 717-1) when exactly 16 one-third-octave (100-3150 Hz) or 5 octave (125-2000 Hz) values are supplied.

lp1 and l_in may be one value per band (already averaged) or a two-dimensional (positions, bands) array, in which case the positions are energy-averaged. Subareas scanned separately should first be combined with combine_subareas.

Parameters

NameDescription
lp1Source-room sound pressure levels, in dB.
l_inNormal sound intensity levels over the measurement surface, in dB.
measurement_areaMeasurement-surface area Sm, in m².
areaSpecimen area S, in m².
kcAdaptation term Kc per band (dB) for the modified index, or None to skip it.

Returns: IntensityReductionResult.

Raises

ExceptionWhen
ValueErrorIf the band counts differ, if measurement_area / area are not positive, or if inputs are non-finite.
IntensityElementNormalizedResult(
d_i_n_e: np.ndarray,
rating: WeightedRatingResult | None,
measurement_area: float | None = None,
n: int = 1,
)

Per-band intensity element normalized level difference (ISO 15186-1).

Attributes

NameDescription
d_i_n_eIntensity element normalized level difference per band, in dB (Clause 3.9, Formula (8) with the corrected sign of its term; see docs/ERRATA.md).
ratingSingle-number weighted rating DI,n,e,w with C / Ctr (ISO 717-1), or None when the band count is neither 16 (one-third octave) nor 5 (octave).
measurement_areaMeasurement-surface area Sm, in m², or None on a manually built result (Clause 8 g).
nNumber N of element units within the measurement surface.
IntensityElementNormalizedResult.plot(
ax: Axes | None = None,
**kwargs: Any,
) -> Axes

Plot DI,n,e against the shifted ISO 717-1 reference curve.

Delegates to the weighted-rating plot. Requires the automatic rating to be available (16 or 5 bands) and matplotlib (pip install phonometry[plot]); returns the Axes.

IntensityElementNormalizedResult.report(
path: str,
*,
metadata: ReportMetadata | None = None,
engine: str = 'reportlab',
verbose: bool = False,
language: str = 'en',
fpi: Sequence[float] | np.ndarray | None = None,
residual_index: Sequence[float] | np.ndarray | None = None,
) -> str

Render an ISO 15186-1 element-normalized insulation report to a PDF.

Writes the one-page laboratory test report of ISO 15186-1:2000 Clause 8 for the element-normalized level difference DI,n,e of a small building element measured with sound intensity: the standard-basis line, an optional metadata header block, the band table (16 one-third-octave or 5 octave bands) beside the measured-versus-shifted-reference curve, the boxed rating DI,n,e,w (C; Ctr) (the element-normalized level difference DI,n,e rated per ISO 717-1), the intensity-method statement with the measurement-surface area Sm and unit count N when the result carries them (Clause 8 g), an optional verdict row and a footer with the identity block and disclaimer. The report requires the single-number rating to be present on the result; it is formed automatically only for exactly 16 one-third-octave (100 Hz to 3150 Hz) or 5 octave (125 Hz to 2000 Hz) bands, and a result carrying no rating (any other band count) is rejected.

The applicable ReportMetadata fields describe the intensity measurement: specimen (the tested element and its mounting and sealing, Clause 8 e), area (the element area), client, manufacturer, test_room (the laboratory / facility), laboratory, operator, report_id and test_date, plus the room/climate fields shared with the other insulation fiches. The measurement-surface shape, the measurement distance and the scanning-versus-discrete-point acquisition method (Clause 8 j-l) are not dedicated metadata fields; record them in notes (free text) and name the measurement standard in measurement_standard ("ISO 15186-1"). A requirement adds a PASS/FAIL verdict; the element insulation passes at or above the target.

Parameters

NameDescription
pathDestination path of the PDF file.
metadataOptional ReportMetadata; None produces a lightweight fiche (body, rating, statement and disclaimer only).
engineRendering back end; only "reportlab" is supported.
verboseWhen True, the left table shows the ISO 717 evaluation per band (the DI,n,e value, the shifted reference and the unfavourable deviation) instead of the two-column form.
languageFiche language: "en" (default, English) or "es" (Spanish, with a comma decimal separator).
fpiOptional per-band surface pressure-intensity indicator FpI (Clause 8 i requires it as a function of frequency); annexed as a table column when supplied.
residual_indexOptional per-band pressure-residual intensity index δpI0 of the probe and analyser (Clause 8 i); annexed as a table column when supplied.

Returns: The written path as a str.

Raises

ExceptionWhen
ValueErrorIf engine is unknown, language is not one of the supported values, the result carries no single-number rating (its band count is neither 16 one-third-octave nor 5 octave, so the ISO 717-1 rating the fiche needs was not formed), or fpi / residual_index do not match the band count.
ImportErrorIf reportlab is not installed (pip install phonometry[report]), or matplotlib is missing for the embedded rating figure (pip install phonometry[plot]).
IntensityReductionResult(
r_i: np.ndarray,
r_i_modified: np.ndarray | None,
rating: WeightedRatingResult | None,
rating_modified: WeightedRatingResult | None,
area: float | None = None,
measurement_area: float | None = None,
)

Per-band intensity sound reduction index (ISO 15186-1:2000).

Attributes

NameDescription
r_iIntensity sound reduction index per band, in dB (Clause 3.8, Formula (7)). In the field (ISO 15186-2) this is the apparent index R'I.
r_i_modifiedModified index per band, in dB (Clause 3.10, Formula (9)), or None when no adaptation term was supplied.
ratingSingle-number weighted rating RI,w with C / Ctr (ISO 717-1), or None when the band count is neither 16 (one-third octave) nor 5 (octave).
rating_modifiedWeighted rating RI,M,w of the modified index, or None when unavailable.
areaTest-object area S, in m², or None on a manually built result. Carried so the report can state it (Clause 8 g).
measurement_areaMeasurement-surface area Sm, in m², or None on a manually built result (Clause 8 g).
IntensityReductionResult.plot(ax: Axes | None = None, **kwargs: Any) -> Axes

Plot RI against the shifted ISO 717-1 reference curve.

Delegates to the weighted-rating plot (measured RI versus the shifted reference, unfavourable deviations shaded). Requires the automatic rating to be available (16 or 5 bands) and matplotlib (pip install phonometry[plot]); returns the Axes.

IntensityReductionResult.report(
path: str,
*,
metadata: ReportMetadata | None = None,
engine: str = 'reportlab',
verbose: bool = False,
language: str = 'en',
fpi: Sequence[float] | np.ndarray | None = None,
residual_index: Sequence[float] | np.ndarray | None = None,
) -> str

Render an ISO 15186-1 intensity sound-insulation report to a PDF.

Writes the one-page laboratory test report of ISO 15186-1:2000 Clause 8 for sound insulation measured with sound intensity: the standard-basis line, an optional metadata header block, the band table (16 one-third-octave or 5 octave bands) beside the measured-versus-shifted-reference curve, the boxed rating RI,w (C; Ctr) (the intensity sound reduction index RI rated per ISO 717-1), the intensity-method statement with the test-object and measurement-surface areas S / Sm when the result carries them (Clause 8 g), an optional verdict row and a footer with the identity block and disclaimer. The report requires the single-number rating to be present on the result; it is formed automatically only for exactly 16 one-third-octave (100 Hz to 3150 Hz) or 5 octave (125 Hz to 2000 Hz) bands, and a result carrying no rating (any other band count) is rejected.

The applicable ReportMetadata fields describe the intensity measurement: specimen (the tested element and its mounting, sealing and mass per unit area, Clause 8 e), client, manufacturer, test_room (the laboratory / facility), laboratory, operator, report_id and test_date, plus the room/climate fields shared with the other insulation fiches. The measurement-surface shape, the measurement distance and the scanning-versus-discrete-point acquisition method (Clause 8 j-l) are not dedicated metadata fields; record them in notes (free text) and name the measurement standard in measurement_standard ("ISO 15186-1").

Parameters

NameDescription
pathDestination path of the PDF file.
metadataOptional ReportMetadata; None produces a lightweight fiche (body, rating, statement and disclaimer only).
engineRendering back end; only "reportlab" is supported.
verboseWhen True and the Kc-modified index RI,M is available, the table annexes RI,M beside the reported RI.
languageFiche language: "en" (default, English) or "es" (Spanish, with a comma decimal separator).
fpiOptional per-band surface pressure-intensity indicator FpI (Clause 8 i requires it as a function of frequency); annexed as a table column when supplied.
residual_indexOptional per-band pressure-residual intensity index δpI0 of the probe and analyser (Clause 8 i); annexed as a table column when supplied.

Returns: The written path as a str.

Raises

ExceptionWhen
ValueErrorIf engine is unknown, language is not one of the supported values, the result carries no single-number rating (its band count is neither 16 one-third-octave nor 5 octave, so the ISO 717-1 rating the fiche needs was not formed), or fpi / residual_index do not match the band count.
ImportErrorIf reportlab is not installed (pip install phonometry[report]), or matplotlib is missing for the embedded rating figure (pip install phonometry[plot]).
limp_panel_reduction_index(
frequencies: Sequence[float] | np.ndarray,
*,
surface_mass: float,
area: float,
temperature: float = 23.0,
static_pressure: float = 101300.0,
) -> np.ndarray

Sound reduction index of a limp panel (ISO 15186-3:2002, Annex A).

Annex A is normative and is how a laboratory qualifies itself: measure a limp panel of area m\ :sup:2, calculate what it should read, and require the two to agree within 4,0 dB from 50 Hz to 160 Hz. This is the calculated half.

A.1 states two different things about the area, and this enforces the second: the qualification panel is required to be larger than 1 m², while Formula (A.3) is declared valid “if the area of the test specimen is at least 1 m²”. A panel of exactly 1 m² is therefore refused as a qualification but accepted as an input, which is the boundary the code takes.

with the characteristic impedance and the speed of sound taken from the climate of the test (Formulas (A.4) and (A.5)),

The panel is limp by assumption: is the mass law and the radiation efficiency of forced transmission alone. The 160 Hz ceiling is not this annex’s own: Clause 1.1 applies the whole of this part over 50 Hz to 160 Hz, and the qualification inherits it.

Any frequency is computed, and no range is imposed. A.1 declares Formula (A.3) valid “for the frequency range of this part of ISO 15186”, so a result outside 50 Hz to 160 Hz is the model evaluated past its stated validity: useful for seeing where a real panel leaves it, not usable as a qualification. Restricting the input is the caller’s to do, unlike low_frequency_intensity_reduction, whose quantity is defined over that range and nowhere else.

Parameters

NameDescription
frequenciesOne-third-octave mid-band frequencies, in hertz.
surface_massSurface mass m of the panel, in kg/m².
areaPanel area S, in m². Formula (A.3) is stated valid for at least 1 m², so a smaller one is refused rather than extrapolated. A panel used to qualify a facility has to exceed 1 m² (A.1).
temperatureAir temperature theta, in degrees Celsius.
static_pressureStatic pressure B, in pascals.

Returns: The calculated sound reduction index per band, in dB.

Raises

ExceptionWhen
ValueErrorfor a non-finite or non-positive frequency, surface mass, area below 1 m², or a climate the formulas cannot be evaluated in.

low_frequency_element_normalized_difference

Section titled “low_frequency_element_normalized_difference”
low_frequency_element_normalized_difference(
lp_surface: Sequence[float] | np.ndarray,
l_in: Sequence[float] | np.ndarray,
*,
measurement_area: float,
elements: int = 1,
l_p: Sequence[float] | np.ndarray | None = None,
frequencies: Sequence[float] | np.ndarray | None = None,
absorbing_specimen_surface: bool = False,
) -> LowFrequencyElementResult

Element normalized level difference at low frequencies (ISO 15186-3).

Clause 3.9, Formula (8), for small building elements measured with the surface-pressure method of this part:

with the reference absorption area m². Two things separate it from its part 1 sibling (intensity_element_normalized_difference): the 9 dB of the surface measurement in place of 6, and the sign of the term, which this part prints as the derivable one. Part 1 prints it subtracted, which is registered in docs/ERRATA.md; the two parts disagree on the page, and this is the one that agrees with the physics.

Parameters

NameDescription
lp_surfaceSound pressure levels over the surface of the test specimen in the source room, LpS, in dB. One value per band, or a (positions, bands) array that is energy-averaged.
l_inNormal sound intensity levels over the measurement surface in the receiving room, in dB.
measurement_areaMeasurement-surface area Sm, in m².
elementsNumber N of identical element units installed within the measurement surface, at least 1.
l_pSound pressure levels on the measurement surface in the receiving room, measured alongside l_in (Clause 6.4.2), in dB, or None when they were not.
frequenciesMid-band frequencies, in hertz, or None. Clause 6.6 admits 50 Hz to 160 Hz and nothing else.
absorbing_specimen_surfaceTrue when the test specimen presents a sound-absorbing surface in the receiving room, which tightens the Clause 6.4.2 limit from 10 dB to 6 dB.

Returns: LowFrequencyElementResult.

Raises

ExceptionWhen
ValueErrorif the band counts differ, if the measurement area is not positive, if elements is not a positive integer, if any level is non-finite, or if frequencies carries a band outside the range this part is defined for.
low_frequency_intensity_reduction(
lp_surface: Sequence[float] | np.ndarray,
l_in: Sequence[float] | np.ndarray,
*,
measurement_area: float,
area: float,
l_p: Sequence[float] | np.ndarray | None = None,
frequencies: Sequence[float] | np.ndarray | None = None,
absorbing_specimen_surface: bool = False,
) -> LowFrequencyIntensityResult

Intensity sound reduction index at low frequencies (ISO 15186-3:2002).

Below 100 Hz a source room has too few modes for its average pressure to describe what reaches the specimen, so this part measures the pressure on the surface of the specimen instead and the receiving side with an intensity probe as before (Clause 3.8, Formula (7)):

The 9 dB is the whole difference from intensity_sound_reduction, which subtracts 6: close to a rigid boundary a diffuse field carries twice the mean-square pressure it carries away from one, so the surface average sits three decibels above the room average of the same field.

Clause 7 requires the surface-pressure intensity indicator (Formula (5)) to be reported beside the index, and Clause 6.4.2 refuses the measurement surface where it exceeds 10 dB for a sound-reflecting test specimen, or 6 dB for a specimen with a sound-absorbing surface in the receiving room. Those bands come back flagged rather than dropped, because the standard’s answer to them is to improve the measurement environment, not to discard the band.

Both levels of Formula (5) are read on the measurement surface in the receiving room, so the indicator needs l_p and not the source-room surface levels Formula (7) is built from. Clause 6.4.2 asks for that second measurement “if possible”, so it is optional here and its absence leaves the indicator and the qualification unanswered rather than guessed.

Clause 6.4.2 refuses a negative measured intensity for the same reason, which a level cannot carry: pass the signed sub-area intensities through combine_subareas first, which is where the sign lives.

lp_surface and l_in may be one value per band or a (positions, bands) array, in which case the positions are energy-averaged. Sub-areas scanned separately are combined first with combine_subareas, which is Formulas (9) and (10) here.

Parameters

NameDescription
lp_surfaceSound pressure levels over the surface of the test specimen in the source room, LpS, in dB.
l_inNormal sound intensity levels over the measurement surface in the receiving room, in dB.
measurement_areaMeasurement-surface area Sm, in m².
areaTest-object area S, in m².
l_pSound pressure levels on the measurement surface in the receiving room, measured alongside l_in (Clause 6.4.2), in dB, or None when they were not. They are what Formula (5) subtracts l_in from; without them no band can be qualified.
frequenciesMid-band frequencies, in hertz, or None. Clause 6.6 requires at least the 50 Hz, 63 Hz and 80 Hz one-third octaves and allows 100 Hz, 125 Hz and 160 Hz; a band outside 50 Hz to 160 Hz is refused, because this method is defined for the low-frequency range alone.
absorbing_specimen_surfaceTrue when the test specimen presents a sound-absorbing surface in the receiving room, which tightens the Clause 6.4.2 limit from 10 dB to 6 dB. A specimen absorbing on one side only is mounted with that side towards the source room (Clause 5.3), so this is the two-absorbing-sides case.

Returns: LowFrequencyIntensityResult.

Raises

ExceptionWhen
ValueErrorif the band counts differ, if either area is not positive, if any level is non-finite, or if frequencies carries a band outside the range this part is defined for.
LowFrequencyElementResult(
d_i_n_e: np.ndarray,
surface_pressure_intensity: np.ndarray | None,
qualified: np.ndarray | None,
frequencies: np.ndarray | None,
measurement_area: float,
elements: int,
absorbing_specimen_surface: bool,
)

Per-band element normalized level difference at low frequencies.

The result of ISO 15186-3:2002, Clause 3.9, Formula (8), the small-element counterpart of LowFrequencyIntensityResult. No single-number rating accompanies it: Clause 6.6 stops at 160 Hz, six one-third octaves, and ISO 717-1 needs sixteen.

Attributes

NameDescription
d_i_n_eIntensity element normalized level difference per band, in dB.
surface_pressure_intensitySurface-pressure intensity indicator per band, in dB (Formula (5)), or None where the receiving-side pressure level was not measured alongside the intensity.
qualifiedThe Clause 6.4.2 verdict per band, or None throughout when the indicator itself is None.
frequenciesMid-band frequencies, in hertz, or None.
measurement_areaMeasurement-surface area Sm, in m².
elementsNumber N of element units installed within the measurement surface.
absorbing_specimen_surfaceWhich of the two Clause 6.4.2 limits was applied.

property

The Clause 6.4.2 limit on FpI that this result was judged by.

Returns: 6.0 dB when the specimen presents a sound-absorbing surface in the receiving room, 10.0 dB when it is sound-reflecting.

LowFrequencyElementResult.plot(
ax: Axes | None = None,
language: str = 'en',
**kwargs: Any,
) -> Axes

Draw DI,n,e per band, hatching any band Clause 6.4.2 refuses.

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to the band bar.

Returns: The axes.

LowFrequencyIntensityResult(
r_i: np.ndarray,
surface_pressure_intensity: np.ndarray | None,
qualified: np.ndarray | None,
frequencies: np.ndarray | None,
area: float,
measurement_area: float,
absorbing_specimen_surface: bool,
)

Per-band intensity sound reduction index at low frequencies.

The result of ISO 15186-3:2002, Clause 3.8, Formula (7). It differs from its part 1 sibling in where the source-room pressure is measured and so in what has to be subtracted from it: 9 dB against the surface of the specimen, where part 1 subtracts 6 dB from a room average.

Attributes

NameDescription
r_iIntensity sound reduction index per band, in dB.
surface_pressure_intensitySurface-pressure intensity indicator per band, in dB (Formula (5)), which Clause 7 requires to be reported beside the index, or None where the receiving-side pressure level was not measured alongside the intensity. Clause 6.4.2 only asks for that measurement “if possible”.
qualifiedTrue in each band whose FpI is within the limit Clause 6.4.2 sets, False where the measurement surface is not qualified and the index is not a result the standard admits, and None throughout when the indicator itself is None.
frequenciesMid-band frequencies, in hertz, or None.
areaTest-object area S, in m².
measurement_areaMeasurement-surface area Sm, in m².
absorbing_specimen_surfaceWhich of the two Clause 6.4.2 limits was applied, 6 dB when the specimen presents a sound-absorbing surface in the receiving room and 10 dB when it is sound-reflecting.

LowFrequencyIntensityResult.indicator_limit

Section titled “LowFrequencyIntensityResult.indicator_limit”

property

The Clause 6.4.2 limit on FpI that this result was judged by.

Reported beside the indicator, and drawn by plot so the figure does not have to restate which of the two limits applies.

Returns: 6.0 dB when the specimen presents a sound-absorbing surface in the receiving room, 10.0 dB when it is sound-reflecting.

LowFrequencyIntensityResult.plot(
ax: Axes | None = None,
language: str = 'en',
**kwargs: Any,
) -> Axes

Draw the index per band, hatching any band Clause 6.4.2 refuses.

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to the band bar.

Returns: The axes.

surface_pressure_intensity_indicator(
lp: Sequence[float] | np.ndarray,
l_in: Sequence[float] | np.ndarray,
) -> np.ndarray

Surface pressure-intensity indicator FpI (ISO 15186-1, Formula (10)).

Returns per band from the surface- and time-averaged sound pressure level Lp and normal sound intensity level LIn on the measurement surface (Clause 3.6 / 6.4.2). The measurement surface is adequately qualified when FpI does not exceed 10 dB for a sound-reflecting specimen, or 6 dB when the receiving side is sound absorbing (Clause 6.4.2 flags dB / dB as not satisfactory); in addition the probe’s pressure-residual intensity index must exceed dB (Clause 4.1).

Parameters

NameDescription
lpSurface-averaged sound pressure levels, in dB.
l_inNormal sound intensity levels on the surface, in dB.

Returns: The indicator FpI per band, in dB.

Raises

ExceptionWhen
ValueErrorIf the shapes differ or contain non-finite values.