CMAQv5.0.2 Integrated Source Apportionment
Release Date: April 2014
Source culpability assessments are useful to develop emissions control plans. Emission-based approach generally provides a physical ground for source tracking results, as opposed to observation-based approach whose credibility is built upon statistical significance. Chemical transport modeling (CTM) is emission-based. Therefore it is desirable to have an instrumented tool that follows through the physical and chemical transformation in the CTM. The CMAQ Integrated Source Apportionment Method (CMAQ ISAM) is such an instrumented tool implemented within CMAQv5.0.2 framework to track contributions from source groups and/or regions to ambient levels and deposited amounts of pollutants; namely, ozone and inorganic PM2.5. In addition to standard CTM input data (total emissions, initial/boundary conditions, meteorology), provision of emissions data from constituent sectors and an optional regional map should enable ISAM to calculate the contributions.
The CMAQv5.0.2 ISAM installation includes a build script for compiling a version of the CCTM instrumented with ISAM. For installing CMAQ-ISAM, first download, install, and build the base version of the model. Then download the CMAQ ISAM tar file and untar into the CMAQv5.0.2 home directory:
cd $M3HOME/../ tar xvzf CMAQv5.0.2_ISAM.Apr2014.tar.gz
Use the bldit.cctm.isam script as you would the base cctm build script.
cd $M3HOME/scripts/cctm_isam ./bldit.cctm.isam |& tee bldit.cctm.isam.log
Note that you will need to have the libraries (I/O API, netCDF, MPI, Stenex, and Pario) and model builder (bldmake) required by the base model to compile this version of the code. See the base model README for instructions on building these components.
A sample run script is provided in the ISAM release package under $M3HOME/scripts/cctm_isam. Along with the run time options for the base CCTM, this script includes the ISAM configuration options shown in Table 1.
The CMAQ ISAM test run uses the same input data as the base CMAQv5.0.2 distribution package. To run the CMAQ ISAM test case:
- Download the base CMAQv5.0.2 distribution, including the model and input data to obtain/prepare inputs for CMAQ ISAM.
- Run the ICON and BCON processors from the base model package to create initial and boundary conditions input files for the CMAQ ISAM test case.
- Point the CMAQ ISAM run script to the emissions and ICBC data from the base CMAQv5.0.2 distribution
- Execute the CMAQ ISAM run script the same way that you would run the base model
|CTM_PT3DEMIS||Y/N||This is a setting in the base CCTM; set to "Y" for tagging inline point sources|
|LETSPRINT||Y/N||Set to Y to write ISAM logging to a file|
|DO_RENORM||Y/N||Set to Y to do renormalization; set to N otherwise|
|YES_OXLOSS||Y/N||Set to N for production and loss of O3 alone; Y for O3+NO2, but result accuracy is not guaranteed.|
CMAQ ISAM Input/Output Data
SRC_CONTROL_FILE is a required input to ISAM. It is a text file that specifies the emission tagging inputs for ISAM. An example control file, sa_input_ctrl.txt, is provided in the release package.
SRC_APP_MAP is an optional input to ISAM that defines emissions tagging source regions. The I/O API gridded map file can be created using the Spatial Allocator with an input shapefile to compute an area percentage for each state or other region of interest. An example shapefile (statefp_mask_all.*) containing the State Abbreviations and the corresponding STATEFP code with the value for that state set to 1 and the value for all other states set to zero has been provided in a src_app_map.tar.gz file available for download (added 1/7/2015) with the CMAQ-ISAM distribution. An example alloc_create_areapercent.csh script is provided to calculate an area percentage from the shapefile to create a src_app_map file for the benchmark case. The variable names in the src_app_map file are typically state or county names and are limited to 16 characters. An example map file for the state of NC, state_NC_CMAQ-BENCHMARK.ncf, is provided in the release package. The values of the variables are the fractions of each state or county in each model grid cell, NC_0 contains the fractions outside of NC, NC_1 contains the fractions within NC. The file is grid-dependent, two-dimensional and time independent. The NC_1 variable can be used as the REGION in the SA Control File.
SA Control File
The SA Control File (SRC_CONTROL_FILE) is used to generate a list of tags in a temporary text file "sa_io_list.tmp". This text file will be read by the CCTM instrumented with ISAM to determine the number of tags, the tracking species, and the total number of the combined tags and species.
Suppose there are eight groups of emissions to be tagged, five inline point sectors (1-5) and three surface emissions sectors (6-8). The CCTM ISAM run script sets the environment variables for the tagged emission files SG01, SGO2,...,SG08, and for the corresponding stack group files STK01, STK02, ..., STK08. All inline point source emissions (SG01 to SG05) must be paired to their corresponding stack group files (STK01 to STK05). The gridded surface emission sectors (SG06 to SG08) do not need any stack group files, so STK06 to STK08 would be left blank. An example of how these variables are set in the script is shown below.
setenv SG01 $STK_EMIS_01;setenv STK01 $STK_GRPS_01 setenv SG02 $STK_EMIS_02;setenv STK02 $STK_GRPS_02 setenv SG03 $STK_EMIS_03;setenv STK03 $STK_GRPS_03 setenv SG04 $STK_EMIS_04;setenv STK04 $STK_GRPS_04 setenv SG05 $STK_EMIS_05;setenv STK05 $STK_GRPS_05 setenv SG06 $EMIS_ONROAD;setenv STK06 setenv SG07 $EMIS_OFFROAD;setenv STK07 setenv SG08 $EMIS_BIOG;setenv STK08
The example SA Control File below shows how this group of eight emissions sources would be tagged for ISAM.
cat << eof > $RUNDIR/sa_io_list_$CASE.tmp TAG NAME |ANTHr45 TAG CLASSES |OZONE PM25_IONS REGION(S) |NC FILENAME(S) |SG01,SG02,SG03,SG04,SG05,SG06,SG07 STACK FILE(S) |STK01,STK02,STK03,STK04,STK05,STK06,STK07 TAG NAME |MOBILE TAG CLASSES |EC,OC,CO,AMMONIUM REGION(S) |EVERYWHERE FILENAME(S) |SG06,SG07 STACK FILE(S) |STK06,STK07 TAG NAME |POINT TAG CLASSES |SULFATE REGION(S) |EVERYWHERE FILENAME(S) |SG01,SG02,SG03 STACK FILE(S) |STK01,STK02,STK03 TAG NAME |BIOG TAG CLASSES |OZONE REGION(S) |EVERYWHERE FILENAME(S) |SG08 STACK FILE(S) |STK08 ENDLIST eof
In this example there are four ISAM tag names (ANTHr45, MOBILE, POINT, BIOG). ISAM will supplement the emissions tags with BCON, OTHR, and ICON tags, so that the tag total for each species conserves the bulk concentration. As the nomenclature suggests, BCON comes from lateral boundary conditions, ICON from initial conditions at the very first hour of the entire simulation period, and OTHR is the remaining "untagged" emissions sources, which is derived by subtracting emissions in the tags from the total model emissions.
SA Control File Format
- Each tag is separated by a blank line.
- Each tag consists of the following attributes: TAG NAME, TAG CLASSES, REGION(S), FILENAME(S), and STACK FILE(S).
- Attribute are 16 characters long; if less than 16 characters, the attribute name must be supplemented with blank characters (not tabs) up to and including the 16th column. A "|" sign should be put at the 17th column.
- The value of the TAG NAME attribute must be 7 characters or less.
- Except for TAG NAME, each attribute can have one or more entries, separated by a comma.
- The first entry for each attribute must immediately follow the "|" sign, with no white space.
- Only alphanumeric characters are allowed for the TAG NAME; the attribute value is case-insensitive.
- Valid entries for TAG CLASSES are EC, OC, SULFATE, NITRATE, AMMONIUM, OZONE, PM25_IONS, and CO.
- A valid entry for REGION(S) is either a variable name from $SRC_APP_MAP file, a reserved word "EVERYWHERE", or just left blank. An empty entry is equivalent to "EVERYWHERE", which instructs the program to track the emission sector over the entire domain. The empty entry is used only when $SRC_APP_MAP file is not available.
- A blank line follows the last tag, which in turn is followed by the expression "ENDLIST".
There are restrictions on the nature of emission sectors.
- If there are no inline point source emissions (CTM_PT3DEMIS = N)
- The gridded base model emission EMIS_1 must be three-dimensional.
- Gridded emission sectors SG?? can be two- or three-dimensional.
- No inline point source emissions are tracked by ISAM.
- If inline point source emissions are include as base model emissions (CTM_PT3DEMIS = Y)
- The variable EMIS_1 must point to a two-dimensional gridded surface emissions file
- Gridded emission sectors SG?? must also be two-dimensional
- Any inline point sources to be tracked by ISAM must come from one of the inline point source emissions for base model run.
- Excessive number of tagged emission files will exceed the limit of netCDF files opened by Models3 IO/API which is 64. Try optimizing the number of tagged files.
SA Control File for Labeled Inline Emissions
ISAM can optionally track emissions point sources if point source identifiers are included in the emissions stack group files. SMOKEv3.5.1 can optionally write point source group IDs to the stack groups file, assigning the variable name "IGROUP" for use by ISAM. The variable IGROUP in the stack groups file is an integer, with each value representing a different group of sources (i.e. fires, electricity generating units, etc). The point source group ID's are independent of and do not require the region map $SRC_APP_MAP. See the SMOKEv3.5.1 manual Section 4.4.24 for details on how to label the emissions species for use with CMAQ ISAM.
To illustrate the usage of source IDs, consider another example with the inline emission file $STK_EMIS_01 and the corresponding stack group file $STK_GRPS_01. The input control file is constructed as follows:
setenv SG01 $STK_EMIS_01 setenv STK01 $STK_GRPS_01 cat << eof > $RUNDIR/sa_io_list_$CASE.tmp TAG NAME |NIPM TAG CLASSES |OZONE REGION(S) |INLINE,22 FILENAME(S) |SG01 STACK FILE(S) |STK01 ENDLIST eof
To track the inline point sources identified in the emissions file STK_GRPS_01 as IGROUP=22, enter "INLINE,22" for the REGION(S) tag in the control file. The source group tracking capability is not limited to one IGROUP value in one point source. It is also valid to have:
- Multiple inline point sources with multiple common IGROUP values
- One inline point source with multiple IGROUP values
- Multiple inline point sources with a single common IGROUP value
Additional rules for constructing inline point source tracking include:
- A comma must separate the "INLINE" and IGROUP values
- IGROUP can be either a single- or double-digit integer
- You cannot combine "INLINE" and gridded emissions sectors in a single ISAM simulation; to activate inline tagging (and deactivate gridded emissions tagging), set REGION(S) to "INLINE" and provide an IGROUP value from the stack groups file
- You may only combine inline point sources with gridded emission sectors when IGROUP is not used. In this case, set REGION(S) to either "EVERYWHERE" or a variable name from $SRC_APP_MAP; REGION(S) may not be set to "INLINE" when considering gridded emissions tagging.
ISAM Tag Classes
The ISAM TAG CLASSES consist of generic chemical names that determine what model species will be tracked by the algorithm. For example, by specifying SULFATE the program will fetch model species SO2, ASO4I and ASO4J for tracking and emission species SULF for updating ASO4J. When the tag class OZONE is selected, certain CB05 VOC species as well as the tag class NITRATE is automatically tracked for that tag. Selecting NITRATE again for the OZONE tag will cause the program stop with a double-counting error. See Table 3 for the complete list of TAG CLASSES.
|TAG CLASS||Species in EMISfile||Species in IC/BC, CGRID, DRYDEP, WETDEP|
|OC||POC, PNCOM||APOCI, APOCJ, APNCOMI, APNCOMJ|
|SULFATE||SO2, SULF, PSO4||SO2, SULF, ASO4I, ASO4J, SULRXN|
|NITRATE||PNO3, NO2, NO, HONO||ANO3I, ANO3J, HNO3, NTR, NO2, NO, NO3, HONO, N2O5, PNA, PAN, PANX|
|AMMONIUM||NH3, PNH4||NH3, ANH4I, ANH4J|
|OZONE||PNO3, NO2, NO, HONO
ALD2, ALDX, ETH, EHTA, ETOH
FORM, IOLE, ISOP, MEOH, OLE
PAR, TERP, TOL, XYL
ANO3I, ANO3J,HNO3, NTR, NO2, NO, NO3, HONO, N2O5, PNA, PAN, PANX
|PM25_IONS||PCL, PNA, PMG, PK, PCA
PFE, PAL, PSI, PTI, PMN
|ACLI, ACLJ, ANAI, ANAJ, AMGJ, AKJ, ACAJ|
AFEJ, AALJ, ASIJ, ATIJ, AMNJ
ISAM Output Files
|File||Description||Base Model Analog|
|SA_ACONC||Averaged hourly concentrations of tagged tracer species. List defined by 'AVG_CONC_SPCS' variable in the run script||ACONC|
|SA_CGRID||Last hour's concentration fields of tagged tracer species to be used as initial conditions for the following time period||CGRID|
|SA_CONC||Instantaneous hourly concentrations of tagged tracer species||CONC|
|SA_DRYDEP||Hourly dry deposition fields of tagged tracer species||DRYDEP|
|SA_WETDEP1||Hourly wet deposition fields of tagged tracer species||WETDEP1|
Kwok, R.H.F, S.L. Napelenok,K.R. Baker (2013) Implementation and evaluation of PM2.5 source contribution analysis in a photochemical model, Atmospheric Environment, Volume 80, 398–407, http://dx.doi.org/10.1016/j.atmosenv.2013.08.017
Kwok, R.H.F, K.R. Baker, S.L. Napelenok, G.S. Tonnesen (2014) Photochemical grid model implementation of VOC, NOx, and O3 source apportionment. Submitted to Geoscientific Model Development.
Roger H.F. Kwok or Sergey L. Napelenok, Atmospheric Modeling and Analysis Division, U.S. EPA