Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Industrial Hygiene

Industrial Hygienists

Industrial hygienists are typically part of the safety and health team in a company. They are responsible for identifying, evaluating, and controlling workplace hazards together with workers and management.

Industrial Hygienist in Chemical Plant

Figure 1:Picture of an Industrial Hygienist in a Chemical Plant https://images.app.goo.gl/EmTPJxCdSidwUoXQ6

The four steps of industrial hygiene are:

  1. Anticipation: Identifying potential hazards before they occur.

  2. Recognition: Identifying hazards that are present.

  3. Evaluation: Determining the magnitude of the exposure and the response.

  4. Control: Implementing measures to control the hazards.

Common Tools used by Industrial Hygienists

Industrial Hygiene Tools

Figure 2:Industrial Hygiene Tools

Quantifying Exposures

TWA, time-weighted average, is the most common way to quantify exposures. It is the exposure averaged over an 8-hour workday.

Gases and Vapors

TWA=i=1nCiTi8=1808C(t)dt\text{TWA} = \frac{\sum_{i=1}^{n} C_i \cdot T_i}{8} = \frac{1}{8} \int_{0}^{8} C(t) dt

where CiC_i is the concentration of the chemical at time ii and TiT_i is the time the concentration is present.

Example Concentration Profile

Time (hours)Concentration (ppm)
00
110
215
518
620
810
930
1040
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#example discrete concentration profile
data = {'time (hr)': [0, 1, 2, 5, 6, 8, 9, 10],
        'concentration (ppm)': [0,10,15,18,20,10,30,40]}
df = pd.DataFrame(data)
df.plot(x='time (hr)', y='concentration (ppm)', kind = 'bar')
plt.show()
<Figure size 640x480 with 1 Axes>
#TWA Calculation; Method 1 (assume the current measure is the same for the previous interval)
TWA_1 = 0; ti_1 = 0;
#loop through each time interval
for i in range(1, len(df)):
    #calculate TWA for each interval
    C_i = df['concentration (ppm)'][i]
    t_i = df['time (hr)'][i]
    TWA_1 += C_i*(t_i-ti_1)
    ti_1 = t_i; 
print(f'TWA_1 = {TWA_1/8:.1f} ppm')
TWA_1 = 23.6 ppm
#TWA Calculation; Method 2 (use the trapezoidal rule)
TWA_trap = 0;
#loop through each time interval
for i in range(1, len(df)):
    #calculate TWA for each interval
    C_i = df['concentration (ppm)'][i]
    C_i_1 = df['concentration (ppm)'][i-1]
    t_i = df['time (hr)'][i]
    t_i_1 = df['time (hr)'][i-1]
    TWA_trap += (C_i+C_i_1)*(t_i-t_i_1)/2
print(f'TWA_trap = {TWA_trap/8:.1f} ppm')
TWA_trap = 21.4 ppm
#TWA Calculation; Method 3 (fit a polynomial to the data and integrate with cspline1d_integral)
from scipy.interpolate import CubicSpline
#fit a polynomial to the data
cs = CubicSpline(df['time (hr)'], df['concentration (ppm)'])
#integrate the polynomial with quad
from scipy.integrate import quad
TWA_CSpline, err = quad(cs, 0, 10)
print(f'TWA_CSpline = {TWA_CSpline/8:.1f} ppm')
TWA_CSpline = 21.1 ppm
#fit a polynomial to the data
p = np.polyfit(df['time (hr)'], df['concentration (ppm)'], 3)
#integrate the polynomial
TWA_poly = quad(np.poly1d(p), 0, 10)[0]
print(f'TWA_poly = {TWA_poly/8:.1f} ppm')
TWA_poly = 22.1 ppm
#plot the data and the polynomial fit
t = np.linspace(0, 10, 100)
C = np.poly1d(p)(t)
plt.plot(t, cs(t), label='cubic spline')
plt.plot(t, C, label = 'polynomial fit')
plt.bar(df['time (hr)'], df['concentration (ppm)'], label = 'data')
plt.xlabel('time (hr)')
plt.ylabel('concentration (ppm)')
plt.legend()
plt.show()
<Figure size 640x480 with 1 Axes>
#tabular display of the results
print('Method\tTWA (ppm)')
print(f'1\t\t{TWA_1/8:.1f}')
print(f'trapezoid\t{TWA_trap/8:.1f}')
print(f'CSpline\t\t{TWA_CSpline/8:.1f}')
print(f'Polynomial_3\t{TWA_poly/8:.1f}')
Method	TWA (ppm)
1		23.6
trapezoid	21.4
CSpline		21.1
Polynomial_3	22.1

Was the worker over exposed?

If the TLV-TWA is 20 ppm for the above chemical, then YES, the worker was over exposed.

Multiple Gaseous Chemicals

What if there are multiple hazardous vapors present?

Overexposure can be determined by the below equation:

i=1nCiTLV-TWAi>1?\sum_{i=1}^{n} \frac{C_i}{\text{TLV-TWA}_i} > 1?

The TLV-TWA for gaseous mixtures can be found by:

TLV-TWAmixture=i=1nCii=1nCiTLV-TWAi\text{TLV-TWA}_{\text{mixture}} = \frac{\sum_{i=1}^{n} C_i}{\sum_{i=1}^{n} \frac{C_i}{\text{TLV-TWA}_i}}

Dusts

Dusts are treated the same way but instead of using ppm, mg/m^3 is used.