<!-- canonical: https://jmrplens.github.io/phonometry/es/perception/hearing/occupational-exposure/ -->
Source: https://jmrplens.github.io/phonometry/es/perception/hearing/occupational-exposure/

Una jornada laboral rara vez se mide de una sola toma: el nivel de exposición
diario sobre el que actúa la normativa hay que componerlo a partir de
*muestras* de un turno real, y declararlo con una incertidumbre que un
higienista pueda defender. `lex_8h` (en
[Niveles](/phonometry/es/signals/levels/levels/)) convierte *una* grabación en un nivel
diario. La ISO 9612:2009, el método de ingeniería (clase de exactitud 2), es el
diseño de la medición *en torno* a esa primitiva: cómo muestrear una jornada
laboral real, cómo combinar las partes y cómo adjuntar la incertidumbre
normativa que necesita todo informe de higiene industrial. El módulo
`occupational_exposure` añade las tres **estrategias de medición** y el
balance de incertidumbre del **anexo C** sobre la maquinaria del promediado
en energía.

## ¿Cómo calculo el nivel de exposición diario LEX,8h de ISO 9612 con Python?

Describe cada actividad como una `hearing.Task` con sus muestras y su duración
y llama a `hearing.task_based_exposure(tasks)`. Para la jornada del soldador
del anexo D que se usa abajo devuelve `lex_8h` = 84,3 dB con una
`expanded_uncertainty` $U = 3{,}2$ dB, así que el `upper_limit` unilateral al
95 % es 87,5 dB, porque por defecto se incluye el término de duración $u_{1b}$
del anexo C construido a partir del `duration_range` de cada tarea. El
fragmento del apartado 1 pasa `include_duration_uncertainty=False` para
reproducir el caso a del anexo D, donde las duraciones se tratan como exactas,
y eso es lo que baja $U$ a 2,7 dB y el límite superior a 87,0 dB.
Las jornadas sin estructura usan `job_based_exposure()` o `full_day_exposure()`
sobre muestras aleatorias.

## 1. Las tres estrategias de medición (apartados 9-11)

La estrategia *basada en tareas* (apartado 9) divide la jornada nominal en
tareas, toma $I \ge 3$ muestras por tarea y suma en energía las contribuciones de
cada tarea

$$
L_{\mathrm{EX,8h},m} = L_{p,\mathrm{A,eq}T,m} + 10 \log_{10}(T_m/T_0), \qquad T_0 = 8\ \text{h},
$$

de modo que una tarea ruidosa pero corta contribuye poco. Las estrategias
*basadas en la función* (apartado 10) y *de jornada completa* (apartado 11) toman
en cambio muestras aleatorias sobre un grupo de exposición homogéneo — $N \ge 5$
muestras para la estrategia basada en la función, al menos tres turnos completos
para la de jornada completa —, las promedian en energía y normalizan ese promedio
a la jornada nominal de ocho horas con la duración efectiva de la jornada $T_\mathrm{e}$
en el mismo término $10\log_{10}(T_\mathrm{e}/T_0)$. El nivel
diario es el mismo en ambos casos; las estrategias difieren en cómo se construye
la **incertidumbre**.

**Elegir estrategia.** La Tabla B.1 de la ISO 9612 elige la estrategia según el
*patrón de trabajo*, no por conveniencia, y el compromiso es cobertura frente a
esfuerzo. La estrategia **basada en tareas** es el valor por defecto
recomendado cuando la jornada se descompone en un número pequeño de tareas bien
definidas: como mide cada tarea por separado, explica *de dónde* sale la dosis
(el desglose por tarea de más arriba) y permite muestrear bien una tarea corta
y ruidosa sin alargar toda la campaña, pero necesita un análisis del trabajo
fiable, y su incertidumbre crece si las duraciones de las tareas son a su vez
inciertas. La estrategia **basada en la función** conviene al trabajador móvil
con patrón impredecible o a un grupo homogéneo que hace «el mismo trabajo»: las
muestras aleatorias sobre el grupo promedian la variabilidad en lugar de
resolverla, lo que resulta robusto cuando la jornada no puede cortarse
limpiamente en tareas, pero ciego a qué actividad domina. La estrategia de
**jornada completa** (un dosímetro portado que captura todo el turno, repetido
varios días) exige el mínimo análisis y lo captura todo, incluido lo
inesperado, a costa del mayor número de días de porte y del menor valor
diagnóstico (un número por día, sin desglose, y las contribuciones falsas, como
golpes al micrófono, son difíciles de detectar). Como regla: resuelve la dosis
con la estrategia por tareas cuando puedas, recurre a la basada en la función
para trabajo irregular y usa la jornada completa cuando el patrón desafíe toda
descripción o se quiera una comprobación independiente de todo el turno.

### 1.1 Tomar las muestras

Todo lo que hay debajo de esta línea ocurre antes de que un solo número llegue a
una `Task`, y aquí viven las tres formas más habituales de invalidar una
campaña.

**Cuánto dura cada muestra (apartado 9.3).** La medición de una tarea debe durar
al menos 5 min; si la propia tarea dura menos de 5 min, la medición dura lo que
dure la tarea. Solo puede acortarse cuando se comprueba que el nivel es
constante o repetible, o cuando la tarea aporta poco a la exposición total. El
ruido cíclico se muestrea sobre **al menos tres ciclos bien definidos**, con un
mínimo de 5 min, y siempre sobre un número entero de ciclos: un ciclo a medias
sesga el nivel de la tarea en la parte del ciclo que sobremuestrea. El ruido de
fluctuación aleatoria se muestrea el tiempo suficiente para ser representativo,
lo que es un juicio que el informe tiene que dejar por escrito.

**Cuántas, y tomadas cuándo (apartado 9.3).** Al menos tres mediciones por
tarea, y la norma recomienda tomarlas en momentos distintos de la tarea o sobre
distintos trabajadores del grupo, para que la dispersión que alimenta $u_{1a}$
sea variabilidad real y no un minuto afortunado. La jornada del anexo D del
fragmento de abajo es exactamente esa regla en acción: la soldadura se queda con
sus tres muestras, mientras que el corte/amolado tiene seis, porque las tres
primeras abarcaban más de 3 dB. Y hay que ver qué se compra con ello: la
Ec. C.6 divide la dispersión entre $I(I-1)$, así que lo que encoge el término de
muestreo es el *número* de muestras, no su duración.

**Dónde va el micrófono.** Dos configuraciones, y el diagrama de apertura de la
guía dibuja solo la primera:

- **Instrumento portado (apartado 12.3).** Sobre lo alto del hombro, a al menos
  0,1 m de la entrada del conducto auditivo externo del lado más expuesto, unos
  0,04 m por encima del hombro, con el micrófono y el cable sujetos de modo que
  la ropa no pueda taparlos ni rozarlos. El apantallamiento del cuerpo y las
  reflexiones que eso introduce son justo lo que paga el término
  $u_3 = 1{,}0$ dB del balance del anexo C; cuando el oído está cerca de una
  fuente pequeña, la NOTA 1 sugiere medir a ambos lados de la cabeza para
  averiguar cuál es de verdad el oído más expuesto.
- **Sonómetro (apartado 12.4).** Con el trabajador ausente, el micrófono va en
  la posición de su cabeza, preferiblemente en el plano medio de la cabeza, en
  línea con los ojos y con el eje paralelo a su línea de visión; cuando la
  posición de la cabeza no está bien definida, a 1,55 m ± 0,075 m sobre el suelo
  para un trabajador de pie y a 0,80 m ± 0,05 m sobre el centro del plano del
  asiento para uno sentado. El promedio del puesto puede obtenerse en su lugar
  barriendo a velocidad constante una trayectoria en forma de signo de infinito.
  Con el trabajador presente, el micrófono se sostiene entre 0,1 m y 0,4 m de la
  entrada del conducto auditivo del lado más expuesto, y si el trabajo hace
  imposible mantener los 0,4 m la norma recomienda pasarse al instrumento
  portado.

**Las dos comprobaciones que deciden si los datos sobreviven.** Una calibración
de campo con ajuste antes de cada serie y al comienzo de cada serie diaria, y
una calibración de campo *sin* ajuste al final de cada una; si ambas lecturas
difieren en más de **0,5 dB** a cualquier frecuencia, los resultados de esa
serie deben descartarse (apartado 12.2). Eso es lo que afirman las
«verificaciones de campo dentro de 0,3 dB» de la ficha de ejemplo. Después, y
antes de dar la jornada por buena, se compara el registro de nivel frente al
tiempo con las notas de observación: un dosímetro registra un golpe o un roce en
el micrófono como un suceso genuino de nivel alto (apartado 13.2), y un solo
artefacto de esos puede mover el $L_\mathrm{EX,8h}$ de la jornada; todo pico
inexplicado debe investigarse y la medición repetirse si el resultado queda
afectado de forma significativa, y con un instrumento sin registro, repetirse
sin más.

**Y el resto de las reglas de rechazo.** Hay que evitar los flujos de aire
elevados y equipar los sonómetros de mano con una pantalla antiviento de al
menos 60 mm de diámetro (apartado 13.3; una pantalla de 60 mm evita que un flujo
de hasta unos 10 m/s afecte de forma significativa a un nivel de 80 dB). Hay que
observar al trabajador, o reconstruir las actividades a partir de entrevistas y
registros de trabajo y declarar que se hizo así (apartado 9.3). El ruido de
radio, voz y alarmas cuenta como relevante si el análisis del trabajo dice que
forma parte de las condiciones normales de trabajo; excluirlo está permitido,
pero es una *decisión declarable*, no una edición silenciosa, y el
comportamiento no típico durante la medición hay que evaluarlo y, si importa,
volver a medir (apartado 13.4).

```python
from phonometry import hearing

# ISO 9612 anexo D — la jornada de un soldador dividida en tres tareas. El nivel
# de cada tarea es el promedio en energía de sus muestras Lp,A,eqT; las
# duraciones llevan un rango medido.
tasks = [
    hearing.Task(samples=(70.0,), duration_hours=1.5, label="planning/breaks"),
    hearing.Task(samples=(80.1, 82.2, 79.6), duration_hours=5.0,
         duration_range=(4.0, 6.0), label="welding"),
    hearing.Task(samples=(86.5, 92.4, 89.3, 93.2, 87.8, 86.2), duration_hours=1.5,
         duration_range=(1.0, 2.0), label="cutting/grinding"),
]
res = hearing.task_based_exposure(tasks, include_duration_uncertainty=False, warn=False)
print(f"LEX,8h = {res.lex_8h:.1f} dB   U = {res.expanded_uncertainty:.1f} dB")
# LEX,8h = 84.3 dB   U = 2.7 dB
print(f"límite superior unilateral 95 % LEX,8h + U = {res.upper_limit:.1f} dB")   # 87.0 dB
for t in res.tasks:
    print(f"  {t.label:<16} Lp,A,eqT = {t.lp_aeqt:5.1f}   aporta {t.lex_8h_contribution:5.1f} dB")
#   planning/breaks  Lp,A,eqT =  70.0   aporta  62.7 dB
#   welding          Lp,A,eqT =  80.8   aporta  78.7 dB
#   cutting/grinding Lp,A,eqT =  90.1   aporta  82.8 dB

# La misma jornada medida basada en la función (anexo E) y de jornada completa
# (anexo F): ambas usan el balance de muestreo Ec C.9 / Tabla C.4 con
# k = 1.65 (unilateral 95 %).
job = hearing.job_based_exposure([88.1, 86.1, 89.7, 86.5, 91.1, 86.7], effective_duration_hours=7.5)
full = hearing.full_day_exposure([88.0, 91.9, 87.6, 90.4, 89.0, 88.4], effective_duration_hours=9.25)
print(f"función          LEX,8h = {job.lex_8h:.1f} dB   U = {job.expanded_uncertainty:.1f} dB")
# función          LEX,8h = 88.2 dB   U = 3.8 dB
print(f"jornada completa LEX,8h = {full.lex_8h:.1f} dB   U = {full.expanded_uncertainty:.1f} dB")
# jornada completa LEX,8h = 90.1 dB   U = 3.4 dB

res.plot()   # la figura de abajo: contribuciones por tarea con LEX,8h y LEX,8h + U
```

**Cómo leer los números por función y de jornada completa.** El caso por tareas
tiene su desglose por tarea; los otros dos merecen el mismo repaso, porque en
ambos la respuesta la mueve un término que no es un nivel medido. $T_\mathrm{e}$ es la
**duración efectiva de la jornada laboral** que establece el análisis del
trabajo: el tiempo que el trabajador está realmente expuesto, con las pausas
fuera del ruido excluidas y las que transcurren dentro de él incluidas. Las seis
muestras por función promedian en energía 88,4 dB, y con $T_\mathrm{e} = 7{,}5$ h la
normalización $10\log_{10}(7{,}5/8)$ resta 0,3 dB, así que $L_\mathrm{EX,8h}$ = 88,2 dB,
*por debajo* del promedio muestreado. Las seis muestras de jornada completa
promedian en energía 89,5 dB, pero ese turno dura 9,25 h, así que el mismo
término suma $10\log_{10}(9{,}25/8)$ = 0,6 dB y $L_\mathrm{EX,8h}$ = 90,1 dB, que es más
alto que cuatro de las seis muestras individuales. Eso no es un error:
normalizar un turno largo a una jornada nominal de ocho horas *debe*
penalizarlo. Equivócate en $T_\mathrm{e}$ por un factor y todo el resultado se mueve en
su $10\log_{10}$, y por eso la estrategia por tareas lleva un término aparte de
incertidumbre de duración $u_{1b}$ para exactamente esa magnitud.

<details>
<summary>Mostrar el código de esta figura</summary>

```python

from phonometry import hearing

# La jornada del soldador del anexo D de la ISO 9612 del fragmento anterior.
tasks = [
    hearing.Task(samples=(70.0,), duration_hours=1.5, label="planning/breaks"),
    hearing.Task(samples=(80.1, 82.2, 79.6), duration_hours=5.0,
         duration_range=(4.0, 6.0), label="welding"),
    hearing.Task(samples=(86.5, 92.4, 89.3, 93.2, 87.8, 86.2), duration_hours=1.5,
         duration_range=(1.0, 2.0), label="cutting/grinding"),
]
res = hearing.task_based_exposure(tasks, include_duration_uncertainty=False, warn=False)

# En una línea: barras de contribución por tarea más las líneas de
# LEX,8h y LEX,8h + U.
res.plot(language="es")
plt.show()
```

</details>

### 1.2 Planificar la campaña

La ISO 9612 es tanto una norma de planificación como de cálculo, y las dos
preguntas que se hace un higienista *antes* de ir a la instalación están a una
llamada de distancia. ¿Cuántas horas tiene que cubrir la campaña para un grupo
de este tamaño? La Tabla 1 fija la duración acumulada mínima de medición para un
grupo de exposición homogéneo en función de su tamaño, y
`minimum_cumulative_duration_hours` la lee:

```python
for n in (4, 10, 25, 50):
    print(n, hearing.minimum_cumulative_duration_hours(n))
# 4 5.0
# 10 7.5
# 25 12.5
# 50 17.0
```

Tres regímenes y un techo: 5 h hasta cinco trabajadores, después media hora por
trabajador adicional hasta quince, después un cuarto de hora por trabajador
hasta cuarenta, y después 17 h fijas; más allá de cuarenta el consejo de la
norma es dividir el grupo en lugar de medir más tiempo. Pasa las cifras
previstas como `n_workers=` y `sample_duration_hours=` a `job_based_exposure` y
el resultado lanza el aviso cuando la cobertura se queda corta.

La segunda pregunta es cuántas muestras necesita el término de muestreo.
`table_c4_contribution(n_samples, u1)` interpola la Tabla C.4, así que la
respuesta puede elegirse contra un objetivo en lugar de descubrirse después:

```python
print([round(hearing.table_c4_contribution(n, 3.0), 1) for n in (3, 5, 10, 20, 30)])
# [11.5, 3.3, 1.5, 0.9, 0.7]
```

Para una dispersión de muestras de 3 dB, la contribución $c_1 u_1$ se desploma
de 11,5 dB con tres muestras a 3,3 dB con cinco y 1,5 dB con diez, y luego se
aplana: pasar de cinco a diez muestras compra 1,8 dB, y pasar de veinte a
treinta compra 0,2 dB. Ahí está el umbral de aviso de 3,5 dB del apartado 10.4
(una campaña por función sobre un grupo con 3 dB de dispersión lo cruza por
debajo de las cinco muestras), y es la forma cuantitativa de la regla «más
muestras, no mejor instrumento» del apartado 2. Ojo a que las filas $N = 3$ y
$N = 4$ de la Tabla C.4 se aplican solo a mediciones de jornada completa
(Tabla C.4, NOTA 1).

## 2. El balance de incertidumbre del anexo C

Conviene detallar dos sutilezas. Primero, el factor de cobertura es $k = 1{,}65$
para un intervalo **unilateral** al 95 % (apartado 14), porque al higienista solo
le importa la cota *superior*: `res.upper_limit` = $L_\mathrm{EX,8h} + U$ es el valor por
debajo del cual queda el 95 % de las mediciones, el número que se compara con un
valor de acción. Segundo, los métodos por tareas y por función ponderan de forma
distinta la *misma* dispersión de muestras. La incertidumbre de muestreo de la
tarea $u_{1a}$ (Ec. C.6) divide la suma de desviaciones al cuadrado entre
$I(I-1)$ (el error típico de la media, menor en un factor $\sqrt{I}$), mientras
que la incertidumbre de muestreo por función/jornada completa $u_1$ (Ec. C.12) es
la desviación típica muestral simple con denominador $N-1$, cuya contribución
$c_1 u_1$ se lee luego de la **Tabla C.4** en función de $(N, u_1)$. La misma
dispersión bruta infla, por tanto, más la estimación por función, que es la
penalización que la norma impone a un muestreo más grueso y con menos
muestras. (El $L_\mathrm{EX,8h}$ por función impreso es $88{,}2$ dB donde el anexo E
declara $88{,}1$: la norma redondea el nivel de jornada efectiva a $88{,}4$ antes
de la normalización de la duración; la biblioteca lo mantiene sin redondear.)

**Qué domina el balance.** El anexo C combina cuatro fuentes en cuadratura
(Tabla C.1): la incertidumbre de **muestreo** ($u_{1a}$/$u_1$), la de
**duración** ($u_{1b}$, solo por tareas), la del **instrumento** ($u_2$,
Tabla C.5) y la de la **posición del micrófono** ($u_3$, apartado C.6). Las dos
últimas son pequeñas y aproximadamente fijas ($u_2 = 0{,}7$ dB para un
sonómetro de clase 1, 1,5 dB para uno de clase 2 o un exposímetro personal, y
$u_3 = 1{,}0$ dB por defecto), lo que las convierte en un **suelo** por debajo
del cual no baja ningún diseño de campaña: con un exposímetro personal,
$U = 1{,}65\sqrt{1{,}5^2 + 1{,}0^2} = 3{,}0$ dB aunque todas las muestras
hubieran salido idénticas. Todo lo que hay por encima de ese suelo son los
términos de muestreo y de duración, que son además los dos únicos que controla
quien mide.

*Dos cosas que dice la figura y que no dicen las fórmulas.* Primera: cada
término va ponderado por $c_{1a}$, la parte de la energía diaria que le
corresponde a la tarea, así que el balance sigue la dosis y no el reloj: el
corte y amolado son 1,5 h de las ocho y se lleva el **91 %** de la varianza, las
cinco horas de soldadura se llevan el 9 % y la tarea tranquila de planificación
no se lleva nada medible. Segunda: «domina el término de muestreo» es una regla
aproximada, no una identidad. Con el exposímetro personal por defecto, el
término de muestreo de la tarea solo adelanta al del instrumento cuando la
desviación típica muestral supera $1{,}5\sqrt{I}$, unos 3,7 dB con seis
muestras, y en esta jornada del anexo D no lo hace: el corte y amolado dispersa
3,0 dB sobre seis muestras, así que $u_{1a} = 1{,}2$ dB frente a
$u_2 = 1{,}5$ dB. El mayor segmento suelto de aquí es en realidad la
**duración** de esa tarea corta y ruidosa, porque
$c_{1b} = 4{,}34\,c_{1a}/\bar{T}_m$ crece a medida que la tarea se acorta, así
que una incertidumbre de $\pm 0{,}5$ h sobre una tarea de 1,5 h cuesta más que
el término de muestreo o el del instrumento.

<details>
<summary>Mostrar el código de esta figura</summary>

```python

# `hearing` y `res` (la jornada del anexo D, con incertidumbre de duración)
# vienen de los fragmentos de arriba; aquí se reconstruye con el término de
# duración incluido.
res_d = hearing.task_based_exposure(tasks, warn=False)
for t in res_d.tasks:
    print(f"{t.label:<16} muestreo {(t.c1a * t.u1a) ** 2:5.3f}  "
          f"duración {(t.c1b * t.u1b) ** 2:5.3f}  "
          f"instrumento {(t.c1a * t.u2) ** 2:5.3f}  "
          f"posición {(t.c1a * t.u3) ** 2:5.3f}")

counts = np.arange(3, 31)
u2, u3, scatter = 1.5, 1.0, 3.0
expanded = lambda term: 1.65 * np.sqrt(np.asarray(term) ** 2 + u2**2 + u3**2)
fig, ax = plt.subplots()
ax.plot(counts, expanded(scatter / np.sqrt(counts)), label="por tareas")
ax.plot(counts, expanded([hearing.table_c4_contribution(int(n), scatter)
                          for n in counts]), "--", label="por función")
ax.axhline(expanded(0.0))            # el suelo de instrumento + posición
ax.legend()
plt.show()
```

</details>

La consecuencia práctica sigue en pie, y el panel derecho le da forma: un
balance en cuadratura lo fija su término mayor, así que subir de clase de
instrumento no aporta nada mientras el término de muestreo esté por encima del
suelo, y la jugada productiva son más muestras, con un rendimiento que decae
deprisa. Con una dispersión de 3 dB, la $U$ por tareas pasa por 4,1 dB con tres
muestras, 3,4 dB con diez y 3,1 dB con treinta, mientras que la estrategia por
función paga una penalización mucho más dura por una $N$ pequeña (19,2 dB con
tres, 6,2 dB con cinco, 3,9 dB con diez), porque la Tabla C.4 no divide sin más
entre $\sqrt{N}$. Esa diferencia es la penalización que la norma lleva
incorporada para un muestreo más grueso y con menos muestras, y es contra lo que
empujan los avisos de los apartados 9.3 / 10.4. Como el pico $L_{p,\mathrm{Cpeak}}$ no
tiene modelo de muestreo en el anexo C (Tabla C.5, Nota 1), se declara sin
incertidumbre, no con una incertidumbre nula.

Cuando las muestras de una tarea abarcan **3 dB o más** (apartado 9.3), o la
contribución por función $c_1 u_1$ supera 3,5 dB (apartado 10.4), o se cubren
demasiado pocos trabajadores (duración acumulada de la Tabla 1), el resultado fija
`sampling_advisory=True` y, con `warn=True`, emite una
`OccupationalExposureWarning` que recomienda más mediciones. Los tres ejemplos
resueltos de
los anexos D/E/F anteriores se reproducen con la precisión impresa de la norma
(el redondeo final del anexo E se explica más arriba), y la teoría se deriva
en la página de [Teoría](/phonometry/es/reference/theory/environment-transport/).

### Parámetros de `task_based_exposure()` / `job_based_exposure()` / `full_day_exposure()`

| Parámetro | Se aplica a | Tipo | Unidades | Rango / def. | Notas |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `tasks` | tarea | lista de `Task` | — | $\ge 1$ | Cada `Task` tiene `samples`, `duration_hours`, `duration_range`/`duration_samples` opcionales, `label`, `instrument` |
| `samples` | función / jornada | secuencia | dB | $\ge 2$ ($\ge 5$ / $\ge 3$ recomendado) | Muestras aleatorias $L_{p,\mathrm{A,eq}T}$ |
| `effective_duration_hours` | función / jornada | float | h | $> 0$ | Duración efectiva de la jornada $T_\mathrm{e}$ |
| `instrument` | todas | str | — | `'class1'`, `'class2'`, `'personal_exposimeter'` (def.) | Selecciona $u_2$ (Tabla C.5) |
| `u3` | todas | float | dB | def. `1.0` | Incertidumbre de posición del micrófono (apartado C.6) |
| `include_duration_uncertainty` | tarea | bool | — | def. `True` | `False` omite el término $(c_{1b}u_{1b})^2$ (anexo D caso a) |
| `n_workers` / `sample_duration_hours` | función | int / float | — / h | def. `None` | Comprobación de duración acumulada de la Tabla 1 |
| `warn` | todas | bool | — | def. `True` | Emitir `OccupationalExposureWarning` para los avisos de muestreo |

Las tres devuelven un `ExposureResult` con `lex_8h`, `combined_standard_uncertainty`
$u$, `expanded_uncertainty` $U = 1{,}65\ u$, `upper_limit` = $L_\mathrm{EX,8h} + U$,
`sampling_advisory` y (basada en tareas) el desglose por tarea en `tasks`; el
`.plot()` del resultado dibuja las barras de contribución por tarea con las
líneas de $L_\mathrm{EX,8h}$ y del límite superior (solo resultados por tareas: las
otras estrategias no llevan desglose por tarea).

## 3. El informe de medición (apartado 15)

Una determinación de la exposición termina en un *documento*: el apartado 15
de la ISO 9612 enumera lo que debe declarar el informe de medición, desde la
estrategia aplicada y el análisis del trabajo hasta el requisito de que el
nivel de exposición al ruido y la incertidumbre de medición se declaren *como
valores separados*, cada uno redondeado a un decimal.
`ExposureResult.report()` escribe ese informe como una ficha PDF de una página
con el formato de un servicio de prevención: la línea de base normativa con la
estrategia aplicada, una cabecera (empresa, trabajador(es)/puesto, lugar de
trabajo, y la instrumentación y la trazabilidad de calibración del
apartado 15 c), el análisis del trabajo (la tabla por tareas con duraciones,
niveles $L_{p,\mathrm{A,eq}T,m}$ y contribuciones $L_{\mathrm{EX,8h},m}$ para un resultado por
tareas (con su gráfica de contribuciones), o el resumen del muestreo con el
balance de la fórmula C.9 para los resultados por función o de jornada
completa) y el $L_\mathrm{EX,8h}$ en caja con $U$, $k$ y el límite superior
unilateral al 95 %.

Como el número existe para compararse con la ley, la ficha evalúa después el
resultado frente a la **Directiva 2003/10/CE** (artículo 3; en España,
RD 286/2006): los valores inferior y superior de exposición que dan lugar a
una acción (80 y 85 dB(A)) y el valor límite de exposición (87 dB(A)), cada
uno marcado superado / no superado sobre el valor tal como se muestra, con un
veredicto CUMPLE/NO CUMPLE frente al valor límite. Una nota impresa recuerda
que el valor límite se aplica a la exposición *efectiva*, teniendo en cuenta
la atenuación de los protectores auditivos utilizados, que el $L_\mathrm{EX,8h}$
medido no incluye. `verbose=True` añade las columnas de incertidumbre por
tarea del anexo C ($u_{1a}$, $u_{1b}$, $u_2$), y `language="es"` produce la
ficha en español (*nivel de exposición diario equivalente*, *valor límite de
exposición*, con coma decimal).

```python
from phonometry import ReportMetadata, hearing

# La jornada de los soldadores del anexo D de la sección 1, con
# incertidumbre de duración.
res = hearing.task_based_exposure(tasks, warn=False)

res.report(
    "lex8h.pdf",
    language="es",
    metadata=ReportMetadata(
        client="Taller de calderería de ejemplo",
        specimen="Soldadores (grupo homogéneo de exposición, 4 trabajadores)",
        test_room="Nave de montaje de acero, línea 2",
        instrumentation="Dosímetro personal (IEC 61252), n/s 0042",
        calibration="Calibrador IEC 60942 clase 1; verificaciones de campo dentro de 0,3 dB",
        test_date="2026-07-20",
        laboratory="Laboratorio de referencia Phonometry",
        report_id="EXAMPLE-9612",
    ),
)   # LEX,8h = 84,3 dB, U = 3,2 dB -> valor inferior de acción superado, límite CUMPLE
```

La ficha de ejemplo se regenera con `make reports` y se conserva renderizada en
el repositorio; pulsa la vista previa para abrir el PDF.

## Qué cubre esta guía

Las tres estrategias de medición de los apartados 9-11 de la ISO 9612:2009,
`task_based_exposure`, `job_based_exposure` y `full_day_exposure`, con las
reglas de muestreo del apartado 9.3 y la geometría del micrófono de los
apartados 12.3 / 12.4 enunciadas aquí como el procedimiento que produce sus
entradas; el balance de incertidumbre del anexo C (Ecuaciones C.6, C.9 y C.12
con las Tablas C.4 y C.5, y $u_3$ del apartado C.6); el factor de cobertura
unilateral $k = 1{,}65$ del apartado 14; los avisos de los apartados 9.3 /
10.4 y de la Tabla 1, alcanzables antes de la campaña mediante
`minimum_cumulative_duration_hours` y `table_c4_contribution`; y el informe de
medición del apartado 15 a través de `ExposureResult.report()`, con la
evaluación de la Directiva 2003/10/CE encima. Se reproducen los tres ejemplos
resueltos de los anexos D, E y F.

El análisis del trabajo del apartado 7 y la colocación del micrófono de los
apartados 12.3 / 12.4 son procedimientos, no cálculos: quedan en manos de
quien mide, y esta guía los documenta para que los números que se le dan a una
`Task` signifiquen algo. La Tabla B.1 se reproduce como orientación y es quien
llama el que elige la estrategia; aquí no se aplica ninguna. La atenuación de
los protectores auditivos (la serie ISO 4869) no se aplica, así que el
$L_\mathrm{EX,8h}$ que se calcula aquí, y la comparación con el valor límite que la
ficha imprime sobre él, son la exposición **sin protección**, que es además la
que quiere el modelo de pérdida auditiva de la ISO 1999. Y el anexo C no
ofrece modelo de incertidumbre para $L_{p,\mathrm{Cpeak}}$ (Tabla C.5, Nota 1), y por
eso el pico se declara sin ella en lugar de con una incertidumbre nula.

## Véase también

- [Niveles](/phonometry/es/signals/levels/levels/): las primitivas de dosis `lex_8h` /
  `sound_exposure` (IEC 61252) y el $L_{p,\mathrm{Cpeak}}$ que estas estrategias declaran al
  lado.
- [Incertidumbre de medición](/phonometry/es/signals/metrology/gum-uncertainty/): la
  maquinaria GUM que sustenta las incertidumbres combinadas y expandidas.
- [Teoría](/phonometry/es/reference/theory/environment-transport/): la derivación de las fórmulas de
  las estrategias y del balance del anexo C.
- Referencia de la API: [`hearing.occupational_exposure`](/phonometry/es/reference/api/hearing/occupational-exposure/).
