How do I compute PM2.5, PM10 or PM1 from CMAQ output?

I do not see PM2.5 listed in the CMAQ ACONC file. How do I compute these species to compare to observational data?

There are multiple chemical mechanisms available with the CMAQ system. Each chemical mechanism has a corresponding “Species Definition” file that prescribes how model output variables should be combined to predict different gas, particle and deposition species.

When you download the CMAQ code for version 5.2 or later, these definition files are automatically included under the subdirectory “CCTM/src/MECHS”. You can also view these files online by going directly to the EPA’s CMAQ GitHub repository.

Select “Branch: 5.2.1” and then browse to CCTM -> src -> MECHS. Within each of the listed mechanism folders, you will find files “SpecDef_MECH_NAME.txt” and “SpecDef_dep_MECH_NAME.txt” that contain a long list of species definitions and corresponding documentation.

For example, to find how to calculate PM2.5 using the CB05e51_ae6 mechanism, open the file “SpecDef_cb05e51_ae6_aq.txt” and read the documentation on PM2.5 calculations. The species definition file will indicate which species should be included in PM2.5 (for example: sulfate, ammonium, and organic carbon) as well as factors to obtain the fraction of each CMAQ size distribution mode that corresponds to 2.5 micron (diameter) and smaller particles. Similar information is available for calculating PM10 and PM1.

These species definition files are designed to be used with the combine and sitecmp utilities to match air pollutant measurements with the appropriate model predicted output. Information on combine, sitecmp and other post-processing utilities can also be found on the CMAQ GitHub repository for version 5.2 under the directory “POST”.


For example, for cb6r3_ae6_aq Chemical Mechanism the formula is:

(ASO4I[1]+ANO3I[1]+ANH4I[1]+ANAI[1]+ACLI[1]+AECI[1]+ALVOO1I[1] + ALVOO2I[1] + ASVOO1I[1] + ASVOO2I[1] +

ALVPO1I[1] + ASVPO1I[1] + ASVPO2I[1]+ AOTHRI[1])*PM25AT[2]+ (ASO4J[1]+ANO3J[1]+ANH4J[1]+ANAJ[1]+ACLJ[1]+

AECJ[1]+ AXYL1J[1] + AXYL2J[1] + AXYL3J[1] + ATOL1J[1] +ATOL2J[1] + ATOL3J[1] + ABNZ1J[1] + ABNZ2J[1]

+ABNZ3J[1] + AISO1J[1] + AISO2J[1] + AISO3J[1] +ATRP1J[1] + ATRP2J[1] + ASQTJ[1] + AALK1J[1] +

AALK2J[1] + APAH1J[1] + APAH2J[1] + APAH3J[1] +AORGCJ[1] + AOLGBJ[1] + AOLGAJ[1]+ALVOO1J[1] + ALVOO2J[1]

  • ASVOO1J[1] + ASVOO2J[1]+ASVOO3J[1] + APCSOJ[1] + ALVPO1J[1] + ASVPO1J[1] + ASVPO2J[1] +ASVPO3J[1] +

AIVPO1J[1]+ AOTHRJ[1]+AFEJ[1]+ASIJ[1]+ ATIJ[1]+ACAJ[1]+AMGJ[1]+AMNJ[1]+AALJ[1]+AKJ[1])* PM25AC[2]+(ASOIL[1]+

ACORS[1]+ASEACAT[1]+ACLK[1]+ASO4K[1] +ANO3K[1]+ANH4K[1])* PM25CO[2]

The term “[1]” means from CCTM_ACONC* file ant “[2]” is from CCT_APMDIAG* file.
So, you need to use verdi and input with those files in that order. Then you have to put the formula mentioned before in the formulas section, and then, you will figure total PM2.5 .

Each chemical mechanism has its own deffinition. I extracted this just for example, but you have to check every variable inside.

Hope this help to you.


1 Like