Difference between revisions of "EPA/NEI05 North American emissions"
(→Behavior prior to v9-01-01)
(→In GEOS-Chem versions prior to v10-01)
|Line 119:||Line 119:|
--[[User:Bmy|Bob Y.]] 13:18, 3 March 2015 (EST)
--[[User:Bmy|Bob Y.]] 13:18, 3 March 2015 (EST)
=== Modifications in nei2005_anthro_mod.f ===
=== Modifications in nei2005_anthro_mod.f ===
Revision as of 20:32, 16 September 2022
- 1 Overview
- 2 Bug fix for low VOC emissions in NEI 2005
- 3 Original validation by Philippe Le Sager
- 4 Fix for seasonal scaling factors
- 5 Updated totals
- 6 Comparison of NOx emissions during INTEXA period
- 7 Updated NH3 seasonal scaling factors in v9-02
- 8 References
- 9 Previous issues that have now been resolved
Philippe Le Sager / Aaron van Donkelaar wrote:
The EPA/NEI2005 data were processed by Aaron van Donkelaar onto 1 x 1 and 1/2 x 2/3 degree grids, with 5 vertical levels. Original gridded data on a 4 km x 4km grid as provided as input for WRFCHEM (available from ftp://aftp.fsl.noaa.gov/divisions/taq/emissions_data_2005). Four (4) related masks have been created by Philippe Le Sager. These emissions were first implemented into GEOS-Chem v8-02-04.
Others should feel free to add to this description ...
The source code for the EPA/NEI2005 emissions is located in module nei2005_anthro_mod.f.
For more information about the data, please see the following README file: GEOS_1x1/NEI2005_200910/readme.txt
--Bob Y. 13:34, 24 February 2010 (EST)
Recommended emissions settings
We recommend that you turn on the EPA/NEI05 emissions, which will override the default underlying global emissions (e.g. EDGAR) over the United States. To select these emissions inventories, you will have to modify the EMISSIONS MENU section of the input.geos input file. For detailed instructions, please see Section 22.214.171.124 of the GEOS-Chem Users' Guide.
Behavior of EPA emissions options
Like all regional emissions in GEOS-Chem, the EPA emissions have no default value. They must be explicitly selected. You must select one of the following options in the input.geos file.
You must do one of the following:
- Select EPA/NEI05
- Select EPA/NEI99
- Select neither EPA/NEI05 nor EPA/NEI99
NOTE: If you by chance happen to select both EPA/NEI05 and EPA/NEI99, then GEOS-Chem will use the EPA/NEI05 emissions. A warning message will be printed to the log file.
For more information, please see Section 126.96.36.199 of the GEOS-Chem Users' Guide.
--Bob Y. 16:34, 2 November 2010 (EDT)
The EPA/NEI05 North American emissions inventory contains updated anthropogenic emissions for the lower 48 states. This inventory does not have biofuel emissions.
Biofuel emissions for black carbon and organic carbon aerosols are taken from the Tami Bond et al (2007) inventory, and are thus not affected by the bug described below.
Behavior in v9-01-01 and higher versions
In GEOS-Chem v9-01-01 and higher versions, the program logic shall be as follows:
- If you select the EPA/NEI05 option:
- Anthropogenic emissions over N. America will be taken from EPA/NEI05
- Biofuel emissions over N. America will be taken from EPA/NEI99
- If you select the EPA/NEI99 option:
- Anthropogenic emissions over N. America will be taken from EPA/NEI99
- Biofuel emissions will over N. America be taken from EPA/NEI99
--Bob Y. 11:23, 8 February 2011 (EST)
Bug fix for low VOC emissions in NEI 2005
Dylan Millet wrote:
- I think there may be some issue with the NEI05 anthropogenic hydrocarbon emissions as implemented currently. I did some comparisons with the raw input files, and the VOC emissions for NEI2005 were up to 10-20x lower depending on compound. So I did a model run, saving out the anthro emissions, and checked again to see if I wasn't doing something silly or missing some on-the-fly adjustment. In particular the ALK4, C3H8, C2H6, and PRPE emissions seem too different. The CO seems ok (lower for NEI99 b/c of the ICARTT scaling).
- I looked at this b/c I'm dealing with adjusted NEI2005 emissions from a different source for some sensitivity runs, and wanted to check against the GC implementation. The fluxes I get for the other data source are generally fairly similar to the NEI99 values.
Aaron van Donkelaar wrote:
- This bug also affected primary aerosol emissions. To give you an idea of the impact, previous NEI2005 emissions for December 2005 outputted to the log file as:
=============================================================================== N. E. I. 2005 U. S. A. E M I S S I O N S NEI2005 anthro NOx for year 2005: 6.1692 [Tg N ] NEI2005 anthro CO for year 2005: 77.0859 [Tg CO ] NEI2005 anthro SO2 for year 2005: 7.9142 [Tg S ] NEI2005 anthro SO4 for year 2005: 0.0470 [Tg S ] NEI2005 anthro NH3 for year 2005: 1.0753 [Tg NH3] NEI2005 anthro OC for year 2005: 0.0864 [Tg C] NEI2005 anthro BC for year 2005: 0.0393 [Tg C] NEI2005 anthro ALK4 for year 2005: 0.3358 [Tg C] NEI2005 anthro ACET for year 2005: 0.0274 [Tg C] NEI2005 anthro MEK for year 2005: 0.0278 [Tg C] NEI2005 anthro PRPE for year 2005: 0.0553 [Tg C] NEI2005 anthro C3H8 for year 2005: 0.0648 [Tg C] NEI2005 anthro CH2O for year 2005: 0.0282 [Tg C] NEI2005 anthro C2H6 for year 2005: 0.0859 [Tg C] NEI2005 anthro ALD2 for year 2005: 0.0028 [Tg C] ===============================================================================
- The new files produce emissions of:
=============================================================================== N. E. I. 2005 U. S. A. E M I S S I O N S NEI2005 anthro NOx for year 2005: 6.1692 [Tg N ] NEI2005 anthro CO for year 2005: 77.0859 [Tg CO ] NEI2005 anthro SO2 for year 2005: 7.9142 [Tg S ] NEI2005 anthro SO4 for year 2005: 0.0590 [Tg S ] NEI2005 anthro NH3 for year 2005: 1.0753 [Tg NH3] NEI2005 anthro OC for year 2005: 0.5511 [Tg C] NEI2005 anthro BC for year 2005: 0.3320 [Tg C] NEI2005 anthro ALK4 for year 2005: 4.9507 [Tg C] NEI2005 anthro ACET for year 2005: 0.3290 [Tg C] NEI2005 anthro MEK for year 2005: 0.1069 [Tg C] NEI2005 anthro PRPE for year 2005: 0.5965 [Tg C] NEI2005 anthro C3H8 for year 2005: 0.3211 [Tg C] NEI2005 anthro CH2O for year 2005: 0.0939 [Tg C] NEI2005 anthro C2H6 for year 2005: 0.4577 [Tg C] NEI2005 anthro ALD2 for year 2005: 0.0528 [Tg C] ===============================================================================
Updated data files
In GEOS-Chem v10-01 and newer versions
In GEOS-Chem v10-01 and newer versions, the EPA/NEI 2005 emissions are read with the HEMCO emissions component. We have created new EPA/NEI05 data files (in COARDS-compliant netCDF format) for use with HEMCO. These new data files are contained in the HEMCO data directory tree. For detailed instructions on how to download these data files to your disk server, please see our Downloading the HEMCO data directories wiki post.
--Bob Y. 13:18, 3 March 2015 (EST)
Modifications in nei2005_anthro_mod.f
You will have to make the following modifications to your source code to change the directory names.
In routine EMISS_NEI2005_ANTHRO of nei2005_anthro_mod.f, change this line:
! File name FILENAME = TRIM( DATA_DIR_1x1 ) // 'NEI2005_200910/' //
! File name FILENAME = TRIM( DATA_DIR_1x1 ) // 'NEI2005_201007/' //
And in routine: EMISS_NEI2005_ANTHRO_05x0666 of nei2005_anthro_mod.f, change this line:
! File name FILENAME = TRIM( DATA_DIR ) // 'NEI2005_200910/' //
! File name FILENAME = TRIM( DATA_DIR ) // 'NEI2005_201007/' //
--Bob Y. 11:19, 12 July 2010 (EDT)
Original validation by Philippe Le Sager
Philippe Le Sager wrote:
- I have made the modifications in the current code to deal with NEI2005, based on the preliminary work of Aaron. I had to rewrite the PBL mixing of the NOx/SOx/NH3 emissions, since these emissions are given distributed into 5 model levels. I had to create several masks for correct overlaps, since the inventory covers both Mexico and Canada.
- I made a one month run and simply run the benchmark comparison with the last version of the code (v8-02-03, which used the older EPA/NEI99 emissions).
- The main difference is in CO (note that the reference v8-02-03 uses Rynda correction to EPA99 for CO and NOx). Here are the emissions totals that change:
ANTHROPOGENIC Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== NOx 1.957 1.927 0.029 Tg N CO 31.460 28.455 3.005 Tg ALK4 1.392 1.966 -0.573 Tg C ACET 0.054 0.065 -0.012 Tg C MEK 0.045 0.047 -0.002 Tg C PRPE 0.591 0.667 -0.076 Tg C C3H8 1.720 1.853 -0.133 Tg C C2H6 1.054 1.142 -0.087 Tg C SO2 4.280 4.323 -0.043 Tg S SO4 0.090 0.096 -0.006 Tg S BIOFUELS Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== NOx 0.188 0.186 0.002 Tg N CO 14.707 14.547 0.160 Tg ALK4 0.064 0.063 0.001 Tg C ACET 0.021 0.021 0.000 Tg C MEK 0.111 0.110 0.001 Tg C ALD2 0.055 0.054 0.001 Tg C PRPE 0.531 0.525 0.006 Tg C C3H8 0.078 0.077 0.001 Tg C CH2O 0.101 0.100 0.001 Tg C2H6 0.173 0.171 0.002 Tg C ACETONE SINKS Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== ACETol 0.902 0.913 -0.011 Tg C CO SOURCES Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== COanth 31.460 28.455 3.005 Tg CObf 14.707 14.547 0.160 Tg NOx SOURCES Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== NOx-an 1.957 1.927 0.029 Tg N NOx-bf 0.188 0.186 0.002 Tg N SO2 SOURCES Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== SO2-an 4.280 4.323 -0.043 Tg S SO4 SOURCES Tracer nei05 v8-02-03 nei05 - v8-02-03 ===================================================== SO4-an 0.090 0.096 -0.006 Tg S
- I put all the plots into PDF files. I think this is fine and we can go forward.
Fix for seasonal scaling factors
NOTE: The code used by Philippe Le Sager to create the emission totals and plots listed above had a minor error. The seasonality imposed on the EPI/NEI05 emissions species (see file nei05_anthro_mod.f) was an annual average instead. However, due to the way the EPA/NEI05 emissions were constructed, the emsissions species needed to be scaled to "ozone season" (i.e. August). This discrepancy has now been fixed in the GEOS-Chem v8-02-04 mainline source code. Please follow the email trail below for more information:
Dylan Millet wrote:
- The NEI documentation (e.g. ftp://aftp.fsl.noaa.gov/divisions/taq/emissions_data_2005/Weekday_emissions/readme.txt) states that emissions are provided for a "typical summer / August" conditions. Saturday, Sunday, and Weekday files are provided, which I assume Aaron has weighted and averaged to generate the bpch files being read into GEOS-Chem v8-02-04.
- In the nei2005_anthro_mod.f that Philippe gave me, NEI-99 seasonal scaling is applied to the non-NOx tracers, and for NOx the VISTAS seasonal scaling and then an O3-season scaling is applied according to the ARP files in the VISTAS directory. I guess this is b/c the VISTAS seasonality does not account for recent summertime reductions?
- So as I understand it the seasonality will be wrong for NOx and non-NOx tracers as well.
- How about leaving the input files alone and making the following simple fix in the nei2005 module:
- For non-NOx tracers, the seasonality factor is changed to (NEI99 current month) / (NEI99 august) instead of (NEI99 current month) / (NEI99 annual average)
- For NOx, first apply an ozone season scaling (ARP current month / ARP august) and then a seasonal scaling of (VISTAS current month / VISTAS august).
- P.S. One other point:
- "The area inventory does not include wildfire or prescribed forest or rangeland burns. It does, however, include non-forest agricultural fire estimates from each state, which are usually at a minimum during the summer months."
- So there may be a bit of double counting when we combine this with a biomass burning inventory. A small effect?
Aaron Van Donkelaar replied:
- Thanks for catching this (and for offering to help correct it).
- The data files as I received them contain only weekday emissions, so there is no weighted average being applied. nei2005_mod.f applies the weekend/weekday ratios from nei99.
- The VISTAS inventory was specific to 2002, so it includes some reduction associated with ozone season, but is prior to the more full reductions presently employed. To that end, during the VISTAS implementation, I created scalars that accounted for changes in NOx emissions relative to the 2002 levels for each month and year (these are the ARP scalars).
- The scalings you suggest for both NOx and non-NOx species sound appropriate.
Bob Yantosca replied:
- Here are the results of emissions-only runs, with and without the NEI fix that Dylan & Aaron sent:
ANTHROPOGENIC Tracer with fix w/o fix with fix - w/o fix ===================================================== NOx 23.630 23.414 0.215 Tg N CO 371.149 373.066 -1.917 Tg ALK4 16.688 16.705 -0.018 Tg C ACET 0.631 0.631 -0.000 Tg C MEK 0.532 0.532 -0.000 Tg C PRPE 7.058 7.063 -0.004 Tg C C3H8 20.544 20.545 -0.001 Tg C C2H6 12.414 12.416 -0.002 Tg C
- See this PDF file for plots. I think the fix is in the good direction, NOx goes up, and CO & VOC's decrease slightly (not a huge effect).
Dylan Millet replied:
- Looks reasonable to me. A fairly big effect for NOx over the Ohio River Valley, but less important elsewhere and for other tracers.
Aaron Van Donkelaar replied:
- I think one of the larger complications is that we don't have NEI99 seasonality of NH3, which may explain some of the excessively high nitrate values I've been seeing in winter. This will need to be addressed at some point. I've attached an investigation I came across into the seasonality of these emissions (pg. 15, Inverse modeling to estimate seasonal NH3 emission estimates, Gilliland et al, CMAQ Model Peer Review Meeting, 17 Dec 2003. (Click here for PDF file.)
Lin Zhang replied:
- Thanks for the suggestion. I was looking through the old NH3 emission seasonality in the model, which was compared well with Gilliland's estimates according to Park et al. 2004. I can get the scalar numbers for each month, and with these numbers the annual US NH3 emissions are 2.3 Tg yr-1, compared with 4.3 Tg yr-1 without the scaling.
- So based on your modification, So we may change within GET_NEI99_SEASON to
ELSEIF ( TRACER .eq. IDTNH3 ) THEN NH3_SCALE = (/0.226d0, 0.236d0, & 0.279d0, 0.381d0, 0.626d0, 0.768d0, 1.007d0, 1.d0, 0.837d0, & 0.470d0, 0.303d0, 0.236d0/) AS(:,:,:) = 1.d0 * NH3_SCALE(ThisMN) RETURN ENDIF
Aaron Van Donkelaar replied:
- That generally seems like a good approach to use. I've made two modifications:
- The scalars should be adjusted relative to August, so I divide the scalar by the August value.
- Directly using the scalars from the NEI99 implimentation assumes that we have the same bias (i.e. 4.3 Tg/yr should be 2.3 Tg/yr). I'm not prepared to make such an adjustment yet. NEI2005 collection methods have advanced since the NEI99 inventory, so hopefully there is not an inherant bias in the emissions. To that end, I've normalized the scalars such that the total annual adjustment is 1.
- These changes play out to the following (as applied in the attached):
ELSEIF ( TRACER .eq. IDTNH3 ) THEN NH3_SCALE = (/0.426d0, 0.445d0, & 0.526d0, 0.718d0, 1.179d0, 1.447d0, 1.897d0, 1.884d0, 1.577d0, & 0.886d0, 0.571d0, 0.445d0/) AS(:,:,:) = NH3_SCALE(ThisMN) / NH3_SCALE(8) RETURN ENDIF
A 1-month (July 2005) emissions run with the seasonal scaling fixed as described above yields these totals:
ANTHROPOGENIC Tracer with fix v8-02-03 with fix - v8-02-03 ===================================================== NOx 1.929 1.927 0.002 Tg N CO 31.095 28.455 2.641 Tg ALK4 1.401 1.966 -0.565 Tg C ACET 0.054 0.065 -0.012 Tg C MEK 0.045 0.047 -0.002 Tg C PRPE 0.592 0.667 -0.075 Tg C C3H8 1.721 1.853 -0.132 Tg C C2H6 1.054 1.142 -0.087 Tg C SO2 4.250 4.323 -0.073 Tg S SO4 0.090 0.096 -0.007 Tg S NH3 4.040 4.027 0.013 Tg BIOFUELS Tracer with fix v8-02-03 with fix - v8-02-03 ===================================================== NOx 0.188 0.186 0.002 Tg N CO 14.707 14.547 0.160 Tg ALK4 0.064 0.063 0.001 Tg C ACET 0.021 0.021 0.000 Tg C MEK 0.111 0.110 0.001 Tg C ALD2 0.055 0.054 0.001 Tg C PRPE 0.531 0.525 0.006 Tg C C3H8 0.078 0.077 0.001 Tg C CH2O 0.101 0.100 0.001 Tg C2H6 0.173 0.171 0.002 Tg C SO2 0.023 0.023 0.000 Tg S NH3 0.160 0.160 0.000 Tg CO SOURCES Tracer with fix v8-02-03 with fix - v8-02-03 ===================================================== COanth 31.095 28.455 2.641 Tg CObf 14.707 14.547 0.160 Tg NOx SOURCES Tracer with fix v8-02-03 with fix - v8-02-03 ===================================================== NOx-an 1.929 1.927 0.002 Tg N NOx-bf 0.188 0.186 0.002 Tg N SO2 SOURCES Tracer with fix v8-02-03 with fix - v8-02-03 ===================================================== SO2-an 4.250 4.323 -0.073 Tg S SO4 SOURCES Tracer with fix v8-02-03 with fix - v8-02-03 ===================================================== SO4-an 0.090 0.096 -0.007 Tg S
- Totals for GEOS-Chem v8-02-03 were taken from the 1-month benchmark output. This version used the older EPA/NEI99 emissions.
- Note that the differences in NOx is much smaller than without the seasonality fix because we are scaling to the August "ozone season" values. The difference between July and August is smaller than the difference between July and the annual average.
--Bob Y. 09:53, 17 December 2009 (EST)
Comparison of NOx emissions during INTEXA period
Note: The EPA/NEI99 anthropogenic emissions files have been reprocessed from scratch by Philippe Le Sager on 10 Aug 2007, in order to fix the lack of emissions from the transport sector in California.
Conclusion: NEI05 appears to have less NOx emission over Southeast US than NEI99.
--Jmao 12:05, 17 June 2011 (EDT)
Updated NH3 seasonal scaling factors in v9-02
! seasonal scalar for NH3 emission (lzh, amv, 12/11/2009) REAL*8, PARAMETER :: NH3_SCALE(12) = (/ & 0.426d0, 0.445d0, 0.526d0, 0.718d0, 1.179d0, 1.447d0, & 1.897d0, 1.884d0, 1.577d0, 0.886d0, 0.571d0, 0.445d0 /)
are replaced with:
! New seasonal NH3 emission scalar based on Zhang et al. ACP 2012 (lzh, 03/2012) REAL*8, PARAMETER :: NH3_SCALE(12) = (/ & 0.216d0, 0.418d0, 0.622d0, 0.815d0, 0.982d0, 0.974d0, & 1.000d0, 0.900d0, 0.960d0, 0.600d0, 0.280d0, 0.236d0 /)
In addition, the scaling factors array is modified from:
AS = NH3_SCALE(ThisMN) / NH3_SCALE(8) ! Normalize to August
AS = NH3_SCALE(ThisMN) ! (lzh, 03/2012)
--Melissa Payer 16:43, 22 March 2013 (EDT)
NEED CITATIONS PLEASE!
Previous issues that have now been resolved
Fix for offline simulations in nei2005_anthro_mod.f
NOTE: This issue was ultimately resolved in GEOS-Chem v9-01-03g.
Routines EMISS_NEI2005_ANTHRO and EMISS_NEI2005_ANTHRO_05x0666 in nei2005_anthro_mod.f contained similar errors to the errors in emep_mod.f described above. Again, the crux of the problem is that the IDTxxxx tracer flags are being used for the indices of tracers in the binary punch file. And as described above, the various IDTxxxx flags will have different values for an aerosol-only simulation as for a full-chemistry simulation.
The fix is to keep a separate array of tracer indices in the code, and use those for aerosol-only simulations:
! list of ID of available species SPECIES_ID = (/ IDTNOX, IDTCO, IDTSO2, IDTSO4, IDTNH3, & IDTACET, IDTALK4, IDTC2H6, IDTC3H8, IDTOCPI, & IDTBCPI, IDTALD2, IDTCH2O, IDTPRPE, IDTMEK /) ! ID #'s for that are not tied to IDTxxxx flags OFFLINE_ID = (/ 1, 4, 26, 27, 30, & 9, 5, 21, 19, 35, & 34, 11, 20, 18, 10 /) ! Loop over species DO KLM = 1, SIZE( SPECIES_ID ) ! Species ID (IDT* flags) SNo = SPECIES_ID( KLM ) ! Skip undefined tracers (bmy, 4/11/11) IF ( SNo == 0 ) CYCLE ! Pick the proper tracer # for fullchem or offline simulations ! This prevents crashes for e.g. offline aersol sims (bmy, 4/11/11) IF ( ITS_A_FULLCHEM_SIM() ) THEN BPCH_ID = Sno ELSE BPCH_ID = OFFLINE_ID(KLM) ENDIF
where BPCH_ID is the index for the given species in the binary punch file. If you are running the full-chemistry simulation, then BPCH_ID is defined from the IDTxxxx flags. If you are running an offline aerosol-only simulation, then BPCH_ID is defined from the values in the OFFLINE_ID array.
Update 7/28/11: Implementing this change causes the 1-month standard benchmark simulation to have divergent results than the previous version. Therefore, we should understand the source of these differences before we add this update into the standard repository.
--Bob Y. 15:42, 28 July 2011 (EDT)
Update 2/27/12: This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.
Bug fix in nei2005_anthro_mod.F
This update was tested in the 1-month benchmark simulation v9-02b and approved on 29 Oct 2012.
Sajeev Philip wrote:
- Bug fix in subroutine: GET_NEI99_SEASON_05x0666
! Regrid to current model resolution [unitless] DO L = 1, 5 INGRID = ARRAY(:,:,L) CALL DO_REGRID_A2A( LLFILENAME, I1x1, J1x1, & INGRID, OUTGRID, PERAREA=1, & netCDF=.TRUE.
- should be
& INGRID, OUTGRID, PERAREA=0, & netCDF=.TRUE.
- Bug fix in subroutine: GET_VISTAS_SEASON_05x0666
! Regrid to current model resolution [unitless] DO L = 1, 5 INGRID = ARRAY(:,:,L) CALL DO_REGRID_A2A( LLFILENAME, I1x1, J1x1, & INGRID, OUTGRID, PERAREA=1, & netCDF=.TRUE. )
- should be
& INGRID, OUTGRID, PERAREA=0, & netCDF=.TRUE. )
- Otherwise, all NEI emissions will be reduced to 1/3rd of the original values.
--Bob Y. 11:10, 20 December 2012 (EST)
Bug fix for NEI2005 SO4 emissions in sulfate_mod.F
This update was included as a last-minute fix in GEOS-Chem v9-02 and approved on 14 Jan 2014.
Jenny Fisher wrote:
- I discovered a bug in sulfate_mod.F in the use of NEI05 emissions.
- In SRCSO4, there is a line
IF ( NEI05_MASK( I, J) < 0d0 ) THEN
- If I'm not mistaken, that should be
IF ( NEI05_MASK( I, J) > 0d0 ) THEN
- In other words, we should be applying the NEI05 emissions when we are inside the US mask region, not outside it.
--Bob Y. 10:58, 16 January 2014 (EST)