How to activate VBS in CMAQ v5.2?

Shigan,

@eyth.alison can answer more definitively, but I’ll do my best. The chemical compound to mechanism species mapping that EPA uses is stored in the SpeciateTool.[1] The typical work flow is something like this:

  1. export Speciate (or reuse an export)
  2. Use the SpeciateTool to create SMOKE gspro and gscnv inputs
  3. Run SMOKE.

The gspro files contain the mapping from a lumped emission (e.g., TOG, PM2_5, etc) to mechanism species, which is specific to a “profile.” Each “profile” may be used for one or more SCC.

Your process sounds different. Since you have already decomposed NMVOC to explicit chemical compounds, you need the mappings from chemical compounds to mechanism species. Those mappings are in the “Mechanism Mapping” file.[2] In that file, the first column is mechanism, the second is chemical compound, the third is mechanism species, and the fourth is a multiplier. The chemical compound is encoded by an ID, which is described in the “Species Properties” file.[3] So, the two files need to be joined on the ID.

The code below does a very basic connection to produce a compound to mechanism table.

import pandas as pd
import os
from urllib.request import urlretrieve

mechmapurl = 'https://raw.githubusercontent.com/CMASCenter/Speciation-Tool/master/import_data/mechanism_forImport_11Feb2020_speciate5_0_withSOAALK_13mar2020_v0.csv'
mechmappath = os.path.basename(mechmapurl)
spcpropurl = 'https://raw.githubusercontent.com/CMASCenter/Speciation-Tool/master/import_data/speciate5.1_exports/export_species_properties.txt'
spcproppath = os.path.basename(spcpropurl)

if not os.path.exists(mechmappath):
    urlretrieve(mechmapurl, filename=mechmappath)

if not os.path.exists(spcproppath):
    urlretrieve(spcpropurl , filename=spcproppath)


outpath = 'compound2mech.csv'
mechmap = pd.read_csv(mechmappath, names=['mech', 'compound_id', 'mech_id', 'factor']).query('mech == "CB6R3_AE7"')
spcprop = pd.read_csv(spcproppath, names=['compound_id', 'compound_name', 'cas', 'epaid', 'saroad', 'pams', 'haps', 'symbol', 'molecular_weight', 'non_voctog', 'non_vol_wt', 'unknown_wt', 'unassign_wt', 'exempt_wt', 'volatile_mw', 'num_carbons', 'epa_etn', 'comment', 'vp_epi', 'vp_um'], index_col='compound_id')
compound2mech = mechmap.join(spcprop, on='compound_id', lsuffix='_spc')
compound2mech.to_csv(outpath)

The “compound2mech.csv” file should have the type of information you’re looking for.

References

  1. Speciate Tool
  2. Speciate Tool - Mechanism Mapping
  3. Speciate Tool - Species Properties
4 Likes