Hi, I am trying to run CMAQv5.2 simulations at the western US with 12km resolution. I have everything prepared in 12km resolution except the “inline” emission files I got from some sources are 36km. Without re-running SMOKE, is it possible to directly use these 36-km inline emissions files for the inline plume rise calculations in my 12km CMAQ simulations? If not, is there a way, without re-running SMOKE, to quickly adjust the inline emission files (such as XLOCA, YLOCA, ROW, COL, and the global attributes of XORIG, YORIG) for my 12km runs? The XCENT, YCENT, P_ALP, P_BET, and P_GAM are the same for both resolutions.
I checked the CMAQ codes and the inline stack information is read and computed by calculating the X and Y values to the XORIG and YORIG then divided by the XCELL and YCELL (the resolution) in the STAK_PARAMS.F.
X = ( XLOCA( S ) - REAL( XORIG_GD, 4 ) ) / REAL( XCELL_GD, 4 )
Y = ( YLOCA( S ) - REAL( YORIG_GD, 4 ) ) / REAL( YCELL_GD, 4 )
I wonder if the following modifications work or not
X = ( XLOCA( S ) - REAL( XORIG_GD, 4 ) ) / ( REAL( XCELL_GD, 4 ) - 9 ) *3
Y = ( YLOCA( S ) - REAL( YORIG_GD, 4 ) ) / ( REAL( YCELL_GD, 4 ) - 13 ) *3
We _think _ that you do not need to change the code as you suggest and can use the system as-is. This could be confirmed with a quick test run and looking to be sure the emissions are appearing where you would expect. We believe the stack column and rows are recalculated from the stack projected coordinates (XLOCA/YLOCA) using the run grid origin and grid size (XORIG/YORIG_GD and XCELL/YCELL_GD). If that is correct then the existing code should do what you want assuming that both the stack groups file and the run grid is on the same map projection.
Note that all emissions that you want to include the run would need to be within the original domain: so using 12US1 inline files for a 12US2 run is fine since 12US1 is bigger, but not the other way around.
You can give this a try and see what happens or ask one of the CMAQ developers this question,
Thank you very much for the information. My 36km inline emission files have the global attributes as follows
XORIG = -2736000
YORIG = -2088000
XCELL = 36000
YCELL = 36000
and the targeted 12km needs to be
XORIG = -2412000
YORIG = -1620000
XCELL = 12000
YCELL = 12000
All other attributes and the projection type are exactly the same for both resolutions. Hence, to shift the 36km origin to 12km origin, could I simply add 324000 to XLOCA and add 468000 to YLOCA in the stack group files? Or I can just use the same XLOCA and YLOCA by just modifying the global attributes of XORIG, YORIG, XCELL, and YCELL? I think the later one should be more promising.
I forwarded this to someone in the CMAQ group but haven’t heard back. When we quickly looked at the code, it looked like the origin would be recomputed on the fly, so you may not need to do anything. You can submit your question to a CMAQ-related thread and perhaps get a quicker answer. In the meantime, you could try using it as-is and see if it looks like the sources are in the right places. I can’t really offer anything else on this topic.
Thank you for your reply. I had tested by changing the global attributes of XORIG, YORIG, XCELL, and YCELL to the 12km setup, the PT3D diagnostic emission outputs showed exactly the same results. Hence, you are right about using the 36km inline emission as-is for my 12km simulations. So I guess what really matters is the XCENT, YCENT, P_ALP, P_BET, P_GAM, and the projection method. As long as the 12km and 36km inline emissions have the same settings, they should be OK to use for either resolution. Thank you again for your help!
Thank you, Ken. I encountered the same problem (using coarse resolution emission inventory for simulation of nested fine resolution) with CMAQ 5.4 and solved it with the method you provided (simply modify the XORIG, YORIG, XCELL, and YCELL of the coarse inventory without regridding the datasets).
To be clear, as long at the map projection information (GDTYP, XCENT, YCENT, P_ALP, P_BET, P_GAM) is the same between the two grids, inline files prepared for the coarse grid can be used for the fine grid without any modification to the grid parameters XORIG, YORIG, XCELL, and YCELL defined in the file. As discussed above, the CCTM code uses the projection-dependent (but grid-independent) XLOCA and YLOCA variables from the coarse grid to determine the location of each source in any nested fine grid sharing the same projection information. XLOCA and YLOCA are not offsets relative to some specific grid origin, but rather x and y locations on the projected plane relative to the projection center which is why the approach discussed above works.
For gridded emission files, emissions prepared for a coarse grid cannot be reused for a nested fine grid and have to be reprocessed (by the emissions processor or potentially by regridding tools) specifically for the fine grid.
Thank you very much for pointing out my mistake. Actually, I am using gridded emission file.
By the way, are there any tools which can regrid the coarse emission file (in netcdf format) ? Since it was not processed by myself. I looked up the IOAPI manual, but I didn’t find one tool for this purpose.
@cjcoats , would m3cple also work for the task of regridding emissions from a coarser large domain to a finer small domain sharing the same projection, using an appropriate SCALEFAC environment variable to account for the per-grid-cell mass dependency of SMOKE generated emission files? Is there a corresponding variable to account for this when using mtxcalc and mtxcple?
m3cple would also work, for going from a coarser grid to a finer grid. For the reverse, it “loses” data from many of the fine-grid cells: e.g., if the coarse grid is 5x coarser than the fine grid, only fine-grid cells containing the coarse-grid cell-centers would be used, ignoring the data from the remaining 5*5-4=21 fine grid cells covering a given coarse-grid cell.
mtxcalc (which produces the sparse-matrices for mtxcple) prompts you whether to do area-weighting (as for emissions) or not. Since it does sub-sampling, it does a more accurate job in the comparable-cellsize or the fine-grid-to-coarse case.