Ir al contenido

Exposición al ruido en el trabajo (ISO 9612)

Normas aplicables: ISO 9612Directive 2003/10/ECDHHS/NIOSH Publication No. 98-126

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) 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 laboral. El módulo occupational_exposure añade las tres estrategias de medición y el presupuesto de incertidumbre del anexo C sobre la maquinaria del promediado en energía.

Izquierda: un trabajador con un exposímetro sonoro personal (IEC 61252), con el micrófono montado unos 0,04 m por encima del hombro y a al menos 0,1 m de la entrada del canal auditivo del oído más expuesto, según el apartado 12.3 de la ISO 9612. Derecha: las tres estrategias de medición dibujadas como líneas de tiempo sobre una jornada de ocho horas: basada en tareas (la jornada dividida en tareas etiquetadas, al menos tres muestras y una duración por tarea), basada en la función (cinco o más muestras aleatorias repartidas sobre el grupo de exposición homogéneo) y jornada completa (todo el turno medido al menos tres veces), que desembocan todas en el LEX,8h y su incertidumbre del anexo C, eligiendo por patrón de trabajo según la Tabla B.1Izquierda: un trabajador con un exposímetro sonoro personal (IEC 61252), con el micrófono montado unos 0,04 m por encima del hombro y a al menos 0,1 m de la entrada del canal auditivo del oído más expuesto, según el apartado 12.3 de la ISO 9612. Derecha: las tres estrategias de medición dibujadas como líneas de tiempo sobre una jornada de ocho horas: basada en tareas (la jornada dividida en tareas etiquetadas, al menos tres muestras y una duración por tarea), basada en la función (cinco o más muestras aleatorias repartidas sobre el grupo de exposición homogéneo) y jornada completa (todo el turno medido al menos tres veces), que desembocan todas en el LEX,8h y su incertidumbre del anexo C, eligiendo por patrón de trabajo según la Tabla B.1

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

Sección titulada «¿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 incertidumbre expandida = 2,7 dB, así que el upper_limit unilateral al 95 % es 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)

Sección titulada «1. Las tres estrategias de medición (apartados 9-11)»

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

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 (o tres jornadas completas) muestras aleatorias sobre un grupo de exposición homogéneo y normalizan la duración efectiva de la jornada. 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.

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 presupuesto 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
Exposición por tareas del anexo D de la ISO 9612: las tres contribuciones de tarea a LEX,8h como barras, la línea del LEX,8h diario sumado en energía y la banda del límite superior unilateral al 95 % LEX,8h + U por encimaExposición por tareas del anexo D de la ISO 9612: las tres contribuciones de tarea a LEX,8h como barras, la línea del LEX,8h diario sumado en energía y la banda del límite superior unilateral al 95 % LEX,8h + U por encima
Mostrar el código de esta figura
import matplotlib.pyplot as plt
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()

2. El presupuesto de incertidumbre del anexo C

Sección titulada «2. El presupuesto de incertidumbre del anexo C»

Conviene detallar dos sutilezas. Primero, el factor de cobertura es para un intervalo unilateral al 95 % (apartado 14), porque al higienista solo le importa la cota superior: res.upper_limit = 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 (Ec. C.6) divide la suma de desviaciones al cuadrado entre (el error típico de la media, menor en un factor ), mientras que la incertidumbre de muestreo por función/jornada completa (Ec. C.12) es la desviación típica muestral simple con denominador , cuya contribución se lee luego de la Tabla C.4 en función de . La misma dispersión bruta infla, por tanto, más la estimación por función, que es la penalización que el estándar impone a un muestreo más grueso y con menos muestras. (El por función impreso es dB donde el anexo E declara : el estándar redondea el nivel de jornada efectiva a antes de la normalización de la duración; la biblioteca lo mantiene sin redondear.)

Qué domina el presupuesto. El anexo C combina cuatro fuentes en cuadratura (Tabla C.1): la incertidumbre de muestreo (/), la de duración (, solo por tareas), la del instrumento (, Tabla C.5) y la de la posición del micrófono (, apartado C.6). Las dos últimas son pequeñas y aproximadamente fijas ( dB para un sonómetro de clase 1, 1,5 dB para uno de clase 2 o un exposímetro personal, y dB por defecto), así que en la práctica casi siempre domina el término de muestreo: escala con la dispersión de los niveles medidos, que en un puesto real alcanza con facilidad varios decibelios y, entrando en cuadratura, arrasa con los términos subdecibélicos de instrumento y posición. La consecuencia práctica: un presupuesto en cuadratura lo fija su término mayor, así que subir de clase de instrumento aporta poco una vez que la dispersión de muestreo es grande; la jugada productiva son más muestras (el error típico cae como o ), que es exactamente hacia donde empujan los avisos de los apartados 9.3 / 10.4. Como el pico 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 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 niveles de pico se declaran sin incertidumbre (el anexo C no da método para ellos, Tabla C.5, Nota 1), así que la incertidumbre de pico queda fuera del alcance. 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.

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

Sección titulada «Parámetros de task_based_exposure() / job_based_exposure() / full_day_exposure()»
ParámetroSe aplica aTipoUnidadesRango / def.Notas
taskstarealista de Task≥ 1Cada Task tiene samples, duration_hours, duration_range/duration_samples opcionales, label, instrument
samplesfunción / jornadasecuenciadB≥ 2 (≥ 5 / ≥ 3 recomendado)Muestras aleatorias Lp,A,eqT
effective_duration_hoursfunción / jornadafloath> 0Duración efectiva de la jornada
instrumenttodasstr'class1', 'class2', 'personal_exposimeter' (def.)Selecciona (Tabla C.5)
u3todasfloatdBdef. 1.0Incertidumbre de posición del micrófono (apartado C.6)
include_duration_uncertaintytareabooldef. TrueFalse omite el término (anexo D caso a)
n_workers / sample_duration_hoursfunciónint / float— / hdef. NoneComprobación de duración acumulada de la Tabla 1
warntodasbooldef. TrueEmitir OccupationalExposureWarning para los avisos de muestreo

Las tres devuelven un ExposureResult con lex_8h, combined_standard_uncertainty , expanded_uncertainty , upper_limit = , 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 y del límite superior (solo resultados por tareas: las otras estrategias no llevan desglose por tarea).

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 y contribuciones para un resultado por tareas (con su gráfica de contribuciones), o el resumen del muestreo con el presupuesto de la fórmula C.9 para los resultados por puesto o de jornada completa) y el en caja con , 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 medido no incluye. verbose=True añade las columnas de incertidumbre por tarea del anexo C (, , ), y language="es" produce la ficha en español (nivel de exposición diario equivalente, valor límite de exposición, con coma decimal).

from phonometry import hearing, ReportMetadata
# 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="Ejemplo de referencia de 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 en la vista previa para abrir el PDF.

Informe de ejemplo de exposición al ruido en el trabajo ISO 9612 (PDF)

Ficha de exposición al ruido en el trabajo ISO 9612 de una página: una cabecera con la empresa, el grupo de exposición de soldadores, el lugar de trabajo y la instrumentación con su trazabilidad de calibración, la tabla de análisis del trabajo por tareas (planificación/descansos, soldadura, corte/amolado con duraciones, número de muestras, niveles de tarea y contribuciones LEX,8h cerrada por la fila de totales de la jornada nominal), la gráfica de contribuciones por tarea, el LEX,8h = 84,3 dB en caja con U = 3,2 dB, k = 1,65 y el límite superior de 87,5 dB, y la tabla de evaluación de la Directiva 2003/10/CE donde el valor inferior de acción de 80 dB(A) se supera, el valor superior de 85 dB(A) y el valor límite de 87 dB(A) no, terminando en un veredicto CUMPLE.

Descargar el informe (PDF)

Ficha de exposición al ruido en el trabajo (ExposureResult.report), la jornada por tareas del anexo D de ISO 9612 con el análisis del trabajo del apartado 15 y la evaluación de la Directiva 2003/10/CE.
  • Niveles: las primitivas de dosis lex_8h / sound_exposure (IEC 61252) y el LCpeak que estas estrategias declaran al lado.
  • Incertidumbre de medición: la maquinaria GUM que sustenta las incertidumbres combinadas y expandidas.
  • Teoría: la derivación de las fórmulas de las estrategias y del presupuesto del anexo C.
  • Referencia de la API: hearing.occupational_exposure.