emission.workstation
La referencia de la API se publica en inglés en los dos idiomas: se genera a partir de los docstrings del código, que son su texto original.
What the ISO 11200 group shares: the emission sound pressure level at a work station, its two corrections and its uncertainty.
The sound power level says how much noise a machine makes. The emission sound pressure level says how much of it reaches the person working at it, and it is the number a machine is declared and bought by. ISO 4871 already has this library declaring ; nothing computed it until now.
Five standards determine it, and they differ only in how they get rid of the room:
====================== ===================================================== ISO 11201:2010 Free field over a reflecting plane, so there is no room to get rid of and . ISO 11202:2010 Two approximate routes to , one for a machine with a dominating source and one from the directivity the work station sees. ISO 11203:1995 No sound-pressure measurement at the work station: the level is derived from the sound power level, which was itself determined somehow. ISO 11204:2010 The same piecewise as ISO 11202 method A.2, reached accurately rather than approximately. ISO 11205:2003 By sound intensity, and not implemented here. ====================== =====================================================
Everything they share is in this module, transcribed once, and each part’s own method sits beside it in its own module.
The quantity. ISO 11201:2010 Equation (7), ISO 11202:2010 Equation (10) and ISO 11204:2010 Equation (9) print one law three times,
where is what the meter read, removes the background noise and removes the reflections the room sent back. ISO 11201 prints it without the term because its environment is qualified so that the term is negligible, which is the same equation with a zero in it.
Peak levels take no correction at all. ISO 11204:2010 clause 7 and
ISO 11202:2010 clause 8 both say so: is reported as
measured. A correction derived from mean-square pressures has no meaning for a
single largest excursion. Nothing here can tell a peak level from any other,
since both arrive as a number of decibels, so this is a rule for the caller and
not a guard: do not put a peak level through
emission_sound_pressure_level.
The background correction is the same expression the sound-power side
already uses, ISO 3744:2010 Equation (16), but this group sets its own
thresholds: 15 dB of margin makes it negligible, and 6 dB (grade 2) or 3 dB
(grade 3) is as far down as a result may be claimed. Below that the correction
is clamped and the level becomes an upper bound, which is why
background_noise_correction_at_workstation returns the clamp rather than
raising: the reading is still worth reporting, it just stops being a
determination.
The local environmental correction is where the group divides. Both ISO 11202 Equation (A.5) and ISO 11204 Equations (A.2)/(A.5) print the same piecewise function of one dimensionless ratio ,
and differ only in how is reached. The two branches meet: at the middle branch gives dB, so the 7 dB cap is the curve’s own value rounded, not a discontinuity.
The uncertainty is one pair of equations in all three measuring parts (ISO 11201 Equations (10) and (11), ISO 11202 (13) and (14), ISO 11204 (12) and (13)):
with the reproducibility of the method and the instability of the machine itself, estimated from repeated measurements by Equation (C.1).
Sources (clean-room, implemented from the standard texts): ISO 11201:2010, ISO 11202:2010 and its Amendment 1:2020, ISO 11203:1995 and its Amendment 1:2020, ISO 11204:2010, with the worked examples of ISO 11200:2014 Annex B.
Auto-generated from the source docstrings by
scripts/generate_api_docs.py(make api-docs). Do not edit by hand.
background_noise_correction_at_workstation
Section titled “background_noise_correction_at_workstation”background_noise_correction_at_workstation( measured_level_db: ArrayLike, background_level_db: ArrayLike, *, grade: Grade = 'engineering',) -> tuple[float | NDArray[np.float64], bool]Background-noise correction for the ISO 11200 group.
ISO 11201:2010 Equation (5), ISO 11202:2010 Equation (8) and
ISO 11204:2010 Equation (7), one expression printed three times. It is the
same closed form as ISO 3744:2010 Equation (16) on the sound-power side, and
this group puts its own thresholds around it: above
NEGLIGIBLE_BACKGROUND_MARGIN_DB the correction is taken as zero, and
below the grade’s entry in MINIMUM_BACKGROUND_MARGIN_DB it is held
at the value it has there. A held correction does not fail the measurement;
it makes the level an upper bound, which the second return value reports and
the caller must carry into what it publishes.
Parameters
| Name | Description |
|---|---|
measured_level_db | The reading with the machine running, , in decibels; a scalar or one value per band. |
background_level_db | The reading with it stopped, , in decibels, of the same shape. |
grade | 'engineering' (grade 2, 6 dB) or 'survey' (grade 3, 3 dB), which sets how far down a determination may be claimed. |
Returns: The correction in decibels, and whether any value was clamped.
Raises
| Exception | When |
|---|---|
| ValueError | If the two arguments do not have the same shape, or the grade is neither of the two. |
DEFAULT_COVERAGE_FACTOR
Section titled “DEFAULT_COVERAGE_FACTOR”Constant (float).
DEFAULT_COVERAGE_FACTOR = 1.6emission_expanded_uncertainty
Section titled “emission_expanded_uncertainty”emission_expanded_uncertainty( total_standard_deviation_db: float, coverage_factor: float = 1.6,) -> floatExpanded uncertainty .
ISO 11201:2010 Equation (11), ISO 11202:2010 Equation (14) and ISO 11204:2010 Equation (13). The coverage factor is the caller’s to choose: gives the two-sided 95 % interval of a normal distribution, while the worked examples of ISO 11200:2014 Annex B all print , which is the one-sided factor used when the result is compared with a limit value, and is this function’s default.
Parameters
| Name | Description |
|---|---|
total_standard_deviation_db | in decibels. |
coverage_factor | (default DEFAULT_COVERAGE_FACTOR). |
Returns: in decibels.
Raises
| Exception | When |
|---|---|
| ValueError | If either argument is negative. |
emission_sound_pressure_level
Section titled “emission_sound_pressure_level”emission_sound_pressure_level( measured_level_db: ArrayLike, *, background_correction_db: ArrayLike = 0.0, local_correction_db: ArrayLike = 0.0,) -> float | NDArray[np.float64]The emission sound pressure level, reading less both corrections.
ISO 11201:2010 Equation (7) (which prints no because its environment makes the term negligible), ISO 11202:2010 Equation (10) and ISO 11204:2010 Equation (9).
Never call this for a peak level. ISO 11202:2010 clause 8 and ISO 11204:2010 clause 7 both forbid correcting , which is reported exactly as measured: neither correction has a meaning for a single largest excursion, both being derived from mean-square pressures. A peak level reaches this function as an ordinary number of decibels and cannot be recognised, so the rule is the caller’s to keep.
Parameters
| Name | Description |
|---|---|
measured_level_db | The uncorrected reading , in decibels. |
background_correction_db | in decibels (default 0). |
local_correction_db | in decibels (default 0). |
Returns: in decibels, of the broadcast shape.
EmissionPressureResult
Section titled “EmissionPressureResult”EmissionPressureResult( level_db: float | NDArray[np.float64], measured_level_db: float | NDArray[np.float64], background_correction_db: float | NDArray[np.float64], local_correction_db: float | NDArray[np.float64], grade: Grade, *, upper_bound: bool, standard: str,)An emission sound pressure level and the two corrections behind it.
Attributes
| Name | Description |
|---|---|
level_db | Emission sound pressure level , in decibels re 20 uPa: what the meter read, less both corrections. |
measured_level_db | The uncorrected reading , in decibels. |
background_correction_db | , in decibels. |
local_correction_db | , in decibels. |
grade | Accuracy grade the determination earns. |
upper_bound | True when the background margin fell below the grade’s minimum, so the level is an upper bound rather than a determination. |
standard | The part of the group the determination followed. |
EmissionPressureResult.plot()
Section titled “EmissionPressureResult.plot()”EmissionPressureResult.plot( ax: Axes | None = None, *, language: str = 'en', **kwargs: Any,) -> AxesPlot the reading, the two corrections and what is left of them.
environmental_ratio_from_absorption
Section titled “environmental_ratio_from_absorption”environmental_ratio_from_absorption( absorption_area_m2: ArrayLike, measurement_surface_m2: float, directivity_index_db: ArrayLike = 0.0,) -> float | NDArray[np.float64]The ratio from the equivalent sound absorption area.
ISO 11204:2010 Equation (A.6). It is the same quantity
environmental_ratio_from_k2 returns, reached without going through
: under the ISO 3744 definition
the two are identically equal, which is
why ISO 11204 A.1.2 says the two routes rest on the same assumptions.
Parameters
| Name | Description |
|---|---|
absorption_area_m2 | Equivalent sound absorption area of the test room, in square metres, strictly positive. |
measurement_surface_m2 | Area of the reference measurement surface, in square metres, strictly positive. |
directivity_index_db | in decibels (default 0). |
Returns: The ratio .
Raises
| Exception | When |
|---|---|
| ValueError | If either area is not strictly positive. |
environmental_ratio_from_k2
Section titled “environmental_ratio_from_k2”environmental_ratio_from_k2( environmental_correction_db: ArrayLike, directivity_index_db: ArrayLike = 0.0,) -> float | NDArray[np.float64]The ratio from the environmental correction of the test room.
ISO 11202:2010 Equation (A.4) and ISO 11204:2010 Equation (A.3).
is the average environmental correction of the reference measurement
surface, the quantity environmental_correction
computes for the sound-power methods, and is the
apparent directivity index the work station sees.
With no directivity to speak of the expression collapses to
, so : a work station that sees
the machine no more strongly than the measurement surface does needs the
same correction the surface needed. That holds until the cap bites, at
dB; above it the local correction stays at
MAX_K3_DB however large the environmental one grows, which is the
piecewise function of local_environmental_correction and not a
limitation here.
Parameters
| Name | Description |
|---|---|
environmental_correction_db | in decibels, non-negative. |
directivity_index_db | in decibels (default 0, no directivity). |
Returns: The ratio , of the broadcast shape.
GRADE_2_MAX_K3_DB
Section titled “GRADE_2_MAX_K3_DB”Constant (float).
GRADE_2_MAX_K3_DB = 4.0grade_from_local_correction
Section titled “grade_from_local_correction”grade_from_local_correction(local_correction_db: ArrayLike) -> GradeThe accuracy grade a local environmental correction earns.
ISO 11202:2010 A.1.3 puts the boundary at
GRADE_2_MAX_K3_DB: a greatest possible of 4 dB or less
is grade 2 (engineering), and more than that is grade 3 (survey). Method A.2
reaches the same boundary by a different road, Condition (A.6), which is
algebraically the same 4 dB once (A.4) and (A.5) are substituted into it.
The worst band decides, since a determination is only as good as its weakest part.
Parameters
| Name | Description |
|---|---|
local_correction_db | in decibels; a scalar or one value per band. |
Returns: 'engineering' or 'survey'.
local_environmental_correction
Section titled “local_environmental_correction”local_environmental_correction( ratio: ArrayLike,) -> float | NDArray[np.float64]Local environmental correction from the ratio .
ISO 11202:2010 Equation (A.5) and ISO 11204:2010 Equations (A.2) and (A.5),
the same three lines printed three times; only the route to
differs between them, and that is environmental_ratio_from_k2 and
environmental_ratio_from_absorption.
The cap is the curve’s own value, not a separate rule: dB, so the function is continuous where the 7 dB takes over. The upper branch is a floor for the same reason a correction cannot be negative: the room can only add to the reading.
Parameters
| Name | Description |
|---|---|
ratio | The dimensionless , strictly positive; a scalar or one value per band. |
Returns: in decibels, of the same shape.
Raises
| Exception | When |
|---|---|
| ValueError | If any value is not strictly positive. |
MAX_K3_DB
Section titled “MAX_K3_DB”Constant (float).
MAX_K3_DB = 7.0MINIMUM_BACKGROUND_MARGIN_DB
Section titled “MINIMUM_BACKGROUND_MARGIN_DB”Constant (mapping).
MINIMUM_BACKGROUND_MARGIN_DB = {'engineering': 6.0, 'survey': 3.0}NEGLIGIBLE_BACKGROUND_MARGIN_DB
Section titled “NEGLIGIBLE_BACKGROUND_MARGIN_DB”Constant (float).
NEGLIGIBLE_BACKGROUND_MARGIN_DB = 15.0operating_standard_deviation
Section titled “operating_standard_deviation”operating_standard_deviation(levels_db: ArrayLike) -> floatStandard deviation of the operating and mounting conditions.
Equation (C.1), identical in ISO 11201:2010, ISO 11202:2010 and ISO 11204:2010. It is the sample standard deviation of levels measured under the same nominal conditions, and it answers how repeatable the machine is rather than how good the method is: the measurements are made in situ, so the readings need no correction before going in.
The divisor is , as printed. The two worked examples of
ISO 11200:2014 Annex B disagree with each other about that, and
docs/ERRATA.md records it; this library follows the equation.
Parameters
| Name | Description |
|---|---|
levels_db | Repeated readings under the same conditions, in decibels; at least two. |
Returns: in decibels.
Raises
| Exception | When |
|---|---|
| ValueError | If fewer than two readings are given. |
subinterval_level
Section titled “subinterval_level”subinterval_level(levels_db: ArrayLike, durations_s: ArrayLike) -> floatOne level for a cycle made of operating periods of different lengths.
ISO 11201:2010 Equation (8), ISO 11202:2010 Equation (11) and ISO 11204:2010 Equation (10). A machine that idles, cuts and returns spends a different length of time in each state, so the states are energy-averaged weighted by how long each lasts, not by how many there are.
Parameters
| Name | Description |
|---|---|
levels_db | The level of each sub-interval, in decibels. |
durations_s | How long each lasted, in seconds, strictly positive and of the same length. |
Returns: The level of the whole interval, in decibels.
Raises
| Exception | When |
|---|---|
| ValueError | If the two are of different lengths, or a duration is not strictly positive. |
total_standard_deviation
Section titled “total_standard_deviation”total_standard_deviation( reproducibility_db: float, operating_db: float = 0.0,) -> floatTotal standard deviation of the determination.
ISO 11201:2010 Equation (10), ISO 11202:2010 Equation (13) and ISO 11204:2010 Equation (12). The two components are taken as statistically independent, which is what lets them add in quadrature: one is a property of the method and the other of the machine.
Parameters
| Name | Description |
|---|---|
reproducibility_db | of the method, in decibels. |
operating_db | of the machine, in decibels (default 0, a source whose emission does not wander). |
Returns: in decibels.
Raises
| Exception | When |
|---|---|
| ValueError | If either component is negative. |