Skip to content

Volatile Organic Compounds Analyzer (VOC)

The VOC analyzer measures concentrations of various volatile organic compounds in air.

Data Format

  • File format: CSV file
  • Sampling frequency: Variable
  • File naming pattern: *.csv
  • Data structure:
    • Datetime index
    • VOC species columns
    • Special values:
      • '-' treated as NA
      • 'N.D.' (Not Detected) treated as NA

Measurement Parameters

The VOC analyzer provides:

  • Multiple VOC species measurements
  • Concentration data for each compound
  • Supported species list required
  • Species-specific detection limits

Supported VOC Species

The analyzer supports the following VOC species:

class Species MIR MW SOAP KOH
aromatic Benzene 0.72 78.11 92.9 1.22
Toluene 4.0 92.14 100.0 5.63
Ethylbenzene 3.04 106.17 111.6 7.0
m/p-Xylene 7.8 106.2 75.8 18.95
o-Xylene 7.64 106.16 95.5 13.6
alkane Ethane 0.28 30.07 0.1 0.248
Propane 0.49 44.1 0.0 1.09
Isobutane 1.23 58.12 0.0 2.12
n-Butane 1.15 58.12 0.3 2.36
Isopentane 1.45 72.15 0.2 3.6
n-Pentane 1.31 72.15 0.3 3.8
n-Hexane 1.24 86.18 0.1 5.2
n-Heptane 1.07 100.21 0.1 6.76
n-Octane 0.9 114.23 0.8 8.11
n-Nonane 0.78 128.2 1.9 9.7
n-Decane 0.68 142.29 7.0 11.0
n-Undecane 0.61 156.31 16.2 12.3
n-Dodecane 0.55 null null null
alkene Ethylene 9.0 28.05 1.3 8.52
Propylene (Propene) 11.66 42.08 1.6 26.3
1-Butene 9.73 56.1 1.2 31.4
t-2-Butene 15.16 56.1 3.1 56.4
cis-2-Butene 14.24 56.1 3.6 64.0
1-Pentene 7.21 70.13 0.0 31.4
t-2-Pentene 10.56 70.13 4.0 67.0
cis-2-Pentene 10.38 70.13 3.6 65.0
1-Hexene 5.49 null null null
Isoprene 10.61 68.1 1.9 100.0
alkyne Acetylene 0.95 26.04 0.1 0.85
alkane Cyclopentane 2.39 70.1 0.0 4.97
Methylcyclopentane 2.19 84.16 0.0 5.2
Cyclohexane 1.25 84.16 0.0 6.97
Methylcyclohexane 1.7 98.19 0.0 4.97
2,2-Dimethylbutane 1.17 86.17 0.0 2.23
2,3-Dimethylbutane 0.97 86.18 0.0 5.78
2-Methylpentane 1.5 86.18 0.0 5.4
3-Methylpentane 1.8 86.18 0.2 5.2
2,3-Dimethylpentane 1.34 100.2 0.4 1.5
2,4-Dimethylpentane 1.55 100.2 0.0 4.77
2-Methylhexane 1.19 100.2 0.0 5.65
3-Methylheptane 1.24 114.23 0.0 5.6
2,2,4-Trimethylpentane 1.26 114.23 0.0 3.34
2,3,4-Trimethylpentane 1.03 114.23 0.0 6.6
2-Methylheptane 1.07 114.23 0.0 7.0
3-Methylhexane 1.61 100.2 0.0 7.0
aromatic Styrene 1.73 104.15 212.3 58.0
Isopropylbenzene 2.52 120.19 95.5 6.3
n-Propylbenzene 2.03 null null null
m-Ethyltoluene 7.39 120.19 100.6 11.8
p-Ethyltoluene 4.44 120.19 69.7 18.6
o-Ethyltoluene 5.59 120.19 94.8 11.9
m-Diethylbenzene 7.1 134.22 0.0 32.5
p-Diethylbenzene 4.43 134.22 0.0 32.7
1,3,5-Trimethylbenzene 11.76 120.19 13.5 56.7
1,2,4-Trimethylbenzene 8.87 120.19 20.6 32.5
1,2,3-Trimethylbenzene 11.97 120.19 43.9 32.7
1,3-Butadiene 12.61 54.1 1.8 66.6
1-Octene 3.25 112.2 null 30.0
2-Ethyltoluene 5.59 120.2 94.8 11.9
3,4-Ethyltoluene 5.92 120.2 85.2 15.2
OVOC Acetaldehyde 6.54 44.1 0.6 15.0
OVOC Acetone 0.36 58.1 0.3 0.17
OVOC Butyl Acetate 0.83 116.2 0.0 null
OVOC Ethanol 1.53 46.1 0.6 3.2
OVOC Ethyl Acetate 0.63 88.1 0.1 null
OVOC IPA 0.61 60.1 0.4 5.1
ClVOC 1,2-DCB 0.18 147.0 null null
ClVOC 1,4-DCB 0.18 147.0 null null
ClVOC PCE 0.03 165.8 null 0.16
ClVOC TCE 0.64 131.4 null 1.9
ClVOC VCM 2.83 62.5 null null

Species Parameters:

  • MIR: Maximum Incremental Reactivity
  • MW: Molecular Weight
  • SOAP: Secondary Organic Aerosol Potential
  • KOH: Rate constant for the reaction with OH radicals

Data Processing

Data Reading

  • Processes CSV files with datetime index
  • Handles special values as NA
  • Standardizes column names
  • Filters based on supported species list
  • Warns about unsupported species
  • Removes duplicate timestamps

Quality Control

  • Basic file validation
  • No additional QC currently implemented
  • Future QC possibilities:
    • Minimum detection limit filtering
    • Value range checks
    • Time-based outlier detection
    • Correlation checks between species

Output Data

The processed data contains:

  • Time index: Data acquisition time
  • VOC species: Concentrations of supported compounds
  • All measurements in standard units
  • Validated species names

Usage Example

from datetime import datetime as dtm
from pathlib import Path

from AeroViz.dataProcess import *
from AeroViz.rawDataReader import *

start, end = dtm(2024, 2, 1), dtm(2024, 7, 31, 23)

path_raw = Path('data')
path_prcs = Path('prcs')

# read data
dt_VOC = RawDataReader('VOC', path_raw / 'VOC', reset=False, start=start, end=end)
dt_VOC.rename(columns={'isoprene': 'Isoprene', 'm,p-Xylene': 'm/p-Xylene'}, inplace=True)

voc_prcs = DataProcess('VOC', path_out=path_prcs, excel=False, csv=True)

df = voc_prcs.VOC_basic(dt_VOC)

Notes

  • Critical for air quality assessment
  • Important for photochemical reaction studies
  • Helps identify secondary organic aerosol sources
  • Requires predefined species list
  • Species name standardization essential
  • Some species may have missing parameters (marked as "null")
  • Analysis includes concentration, MIR, SOAP, and KOH values