Add 3D GFAS emission as optional fire inventory #3288
Conversation
yantosca
left a comment
There was a problem hiding this comment.
@yuanjianz thanks for this update. The file modifications look good.
Would it be possible to concatenate the daily files into monthly files? We have found that the largest I/O penalty is in the opening and regridding of files. The more files there are to open the more I/O operations there are. I am concerned that reading daily files would impact the performance of GEOS-Chem Classic.
Also tagging @msulprizio @lizziel
|
@yuanjianz: Question for you. Are the GFAS files produced in near-real time? If so then we might want to stick with the daily files, or else users might need to wait a month to get all the data. Am thinking of applications like the Integrated Methane Inversion. Let me know. |
|
Yes! It should be produced in near-real time! |
|
Thanks @yuanjianz, that's fine. In that case we'll keep it as daily. I'll approve the PR. |
yantosca
left a comment
There was a problem hiding this comment.
Thanks @yuanjianz, good to merge.
|
@yuanjianz is it OK if I rebase this atop the current 14.8.0 in development and push back to your branch? Will that affect your work? |
|
No worries, please go ahead! |
|
@yuanjianz: I noticed that some of the biomass burning species that we currently have in GFED aren't included in GFAS. This might have a big impact on the benchmark results. Is this quantified in the paper that you cited? Species only in GFED: MEK, C2H2, MTPA, NAP, EOH, MOH, FURA, PHEN, MVK, ACTA, MGLY, GLYX, RCHO Species only in GFAS: CH3OH, CO2, CH4, pFe, DMS Species in both: NO, CO, ALK4, ACET, ALD2, PRPE, C2H4, C3H8, CH2O, C2H6, SO2, NH3, BCPO, BCPI, OCPO, OCPI, POG1, POG2, BENZ, TOLU, XYLE, SOAP, ISOP Just wanted to do my due diligence here. |
|
@yantosca: Thanks for the question. The paper I mentioned did not quantify impacts other than aerosol. I may have a benchmark comparison somewhere. I will post it here if that's helpful. Or will GCST do the benchmark anyway for 14.8.0? |
|
@yuanjianz We'll do the benchmark but if you have a quickie plot handy to post on the PR that might be good. Also I realized that we will have to update the HEMCO_Diagn.rc files to reflect the change in extension number. I've started on this... |
|
@yuanjianz, have you tested this with both GC-Classic and GCHP and done a comparison? I notice in the PR that only ExtData.rc for fullchem is updated, and wonder if that has been run. |
|
@lizziel my benchmark (still trying to find it) only uses GCHP. But I did update HEMCO_Config.rc entries for GCC in this PR. |
lizziel
left a comment
There was a problem hiding this comment.
Thanks for this update. I put a few minor requests for change.
lizziel
left a comment
There was a problem hiding this comment.
Thanks for making the updates @yuanjianz! I approve.
|
@yuanjianz: I was speaking w/ Daniel, who suggested that we need to also carry biomass emissions for the species that are in GFED but not in GFAS: MEK, C2H2, MTPA, NAP, EOH, FURA, PHEN, MVK, ACTA, MGLY, GLYX, RCHO. Would you be able to do this for us? The GFED scale factors are located in hcox_gfed_include_gfed4.H. There are different scale factors for the different land types. But for GFAS I imagine we'd have to a scale factor from from either burnt carbon or CO2. |
|
@yuanjianz never mind, I'm working on the scale factors |
|
@yantosca Thanks for your help! |
|
Hi @yuanjianz @lizziel: I am running into an error reading in the data when using the GFAS emissions in GC-Classic: HEMCO: Opening /n/holylfs06/LABS/jacob_lab/Everyone/GEOS-CHEM/gcgrid/gcdata/ExtData/HEMCO/GFAS/v2025-05/2019/07/GFAS-smoke-20190701.nc
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
In Ncrd_4d_R4 #2: NetCDF: Start+count exceeds dimension bound
65536 17
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Code stopped from DO_ERR_OUT (in module NcdfUtil/m_do_err_out.F90)
This is an error that was encountered in one of the netCDF I/O modules,
which indicates an error in writing to or reading from a netCDF file!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Also I updated the entries for GFAS and added scale factors for the GFED species. But I don't think these are causing the file read issue. #==============================================================================
# --- GFAS biomass burning ---
#
# For species that were in GFED4 but not in GFAS, we have applied
# scale factors (w/r/t CO) based on the GFED4_CLIMATOLOGY data.
#==============================================================================
(((GFAS
0 GFAS_ACET $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c3h6ofire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s ACET 75 5 3
0 GFAS_ALD2 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c2h4ofire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s ALD2 75 5 3
0 GFAS_ALK4 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc hialkanesfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s ALK4 75 5 3
0 GFAS_BCPI $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc bcfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s BCPI 70/75 5 3
0 GFAS_BCPO $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc bcfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s BCPO 71/75 5 3
0 GFAS_BENZ $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c6h6fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s BENZ 75 5 3
0 GFAS_CO $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc cofire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s CO 75 5 3
0 GFAS_ACR - - - - - - ACR 350/75 5 3
0 GFAS_ACTA - - - - - - ACTA 351/75 5 3
0 GFAS_C2H2 - - - - - - C2H2 352/75 5 3
0 GFAS_FURA - - - - - - FURA 353/75 5 3
0 GFAS_GLYX - - - - - - GLYX 354/75 5 3
0 GFAS_HCOOH - - - - - - HCOOH 355/75 5 3
0 GFAS_MEK - - - - - - MEK 356/75 5 3
0 GFAS_MGLY - - - - - - MGLY 357/75 5 3
0 GFAS_MTPA - - - - - - MTPA 358/75 5 3
0 GFAS_MVK - - - - - - MVK 359/75 5 3
0 GFAS_NAP - - - - - - NAP 360/75 5 3
0 GFAS_PHEN - - - - - - PHEN 361/75 5 3
0 GFAS_RCHO - - - - - - RCHO 362/75 5 3
0 GFAS_STYR - - - - - - STYR 363/75 5 3
0 GFAS_C2H4 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c2h4fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s C2H4 75 5 3
0 GFAS_C2H6 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c2h6fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s C2H6 75 5 3
0 GFAS_C3H8 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c3h8fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s C3H8 75 5 3
0 GFAS_CH2O $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc ch2ofire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s CH2O 75 5 3
0 GFAS_CH3OH $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc ch3ohfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s MOH 75 5 3
0 GFAS_CH4 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc ch4fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s CH4 75 5 3
0 GFAS_CO2 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc co2fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s CO2 75 5 3
0 GFAS_DMS $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c2h6sfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s DMS 75 5 3
0 GFAS_EOH $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c2h5ohfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s EOH 75 5 3
0 GFAS_ISOP $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c5h8fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s ISOP 75 5 3
0 GFAS_NH3 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc nh3fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s NH3 75 5 3
0 GFAS_NO $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc noxfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s NO 75 5 3
0 GFAS_OCPI $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc ocfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s OCPI 72/75 5 3
0 GFAS_OCPO $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc ocfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s OCPO 73/75 5 3
0 GFAS_POG1 - - - - - - POG1 74/76/75 5 3
0 GFAS_POG2 - - - - - - POG2 74/77/75 5 3
0 GFAS_pFe $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc so2fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s pFe 75/66 5 3
0 GFAS_PRPE1 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc hialkenesfire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s PRPE 75 5 3
0 GFAS_PRPE2 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c3h6fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s PRPE 75 5 3
0 GFAS_SO2 $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc so2fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s SO2 75 5 3
0 GFAS_SOAP $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc cofire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s SOAP 75/281 5 3
0 GFAS_TOLU $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c7h8fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s TOLU 75 5 3
0 GFAS_XYLE $ROOT/GFAS/v2025-05/$YYYY/$MM/GFAS-smoke-$YYYY$MM$DD.nc c8h10fire 2003-2025/1-12/1-31/0 EFY xyz kg/m2/s XYLE 75 5 3
)))GFAS
...
#==============================================================================
# --- GFED4 to GFAS emission factors (monthly mean) ---
#
# These are needed for certain species that are in GFED4 but not in GFAS.
# Factors (relative to CO) were generated from the GFED4_CLIMATOLOGY.
#==============================================================================
(((GFAS
350 GFED4_TO_GFAS_ACR 6.39749e-03/6.20227e-03/5.94238e-03/5.64619e-03/4.42609e-03/4.15477e-03/3.80694e-03/4.44921e-03/4.93859e-03/5.55772e-03/6.07656e-03/6.34820e-03 - */1/1/0 C xy 1 1
351 GFED4_TO_GFAS_ACTA 3.41277e-02/3.38923e-02/3.45653e-02/3.96220e-02/3.40438e-02/3.09550e-02/3.06457e-02/3.07750e-02/2.97932e-02/3.23636e-02/3.44937e-02/3.35070e-02 - */1/1/0 C xy 1 1
352 GFED4_TO_GFAS_C2H2 3.98423e-03/3.79296e-03/3.55676e-03/3.36024e-03/2.91970e-03/2.86895e-03/2.72160e-03/2.98063e-03/3.06215e-03/3.36610e-03/3.74767e-03/4.02345e-03 - */1/1/0 C xy 1 1
353 GFED4_TO_GFAS_FURA 8.16994e-03/8.09806e-03/8.24765e-03/9.62641e-03/8.20648e-03/7.34930e-03/7.25318e-03/7.28675e-03/7.19630e-03/7.82505e-03/8.36209e-03/8.07918e-03 - */1/1/0 C xy 1 1
354 GFED4_TO_GFAS_GLYX 4.45527e-03/4.45423e-03/4.41829e-03/4.25076e-03/4.45400e-03/4.57399e-03/4.58951e-03/4.56926e-03/4.56245e-03/4.48504e-03/4.42279e-03/4.47312e-03 - */1/1/0 C xy 1 1
355 GFED4_TO_GFAS_HCOOH 3.63992e-03/3.69033e-03/4.23188e-03/5.38145e-03/5.94800e-03/5.76582e-03/6.27409e-03/5.49677e-03/3.92972e-03/3.62016e-03/3.89719e-03/3.59749e-03 - */1/1/0 C xy 1 1
356 GFED4_TO_GFAS_MEK 2.51839e-03/2.72404e-03/3.12801e-03/3.32461e-03/2.28266e-03/1.79858e-03/1.67232e-03/2.07568e-03/2.42858e-03/2.64014e-03/2.67567e-03/2.29732e-03 - */1/1/0 C xy 1 1
357 GFED4_TO_GFAS_MGLY 5.29486e-03/5.10406e-03/4.90839e-03/5.09673e-03/4.70454e-03/4.63184e-03/4.57899e-03/4.59869e-03/4.28949e-03/4.64506e-03/5.04617e-03/5.27605e-03 - */1/1/0 C xy 1 1
358 GFED4_TO_GFAS_MTPA 1.82825e-03/1.73659e-03/2.22979e-03/3.82106e-03/6.44630e-03/6.88672e-03/7.98668e-03/6.05174e-03/2.86886e-03/1.88388e-03/2.11145e-03/2.01790e-03 - */1/1/0 C xy 1 1
359 GFED4_TO_GFAS_MVK 3.30928e-03/3.27024e-03/3.26404e-03/3.22649e-03/2.18246e-03/1.83970e-03/1.60373e-03/2.08364e-03/2.49451e-03/2.91255e-03/3.21185e-03/3.21688e-03 - */1/1/0 C xy 1 1
360 GFED4_TO_GFAS_NAP 2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04/2.61905e-04 - */1/1/0 C xy 1 1
361 GFED4_TO_GFAS_PHEN 5.57873e-03/5.23695e-03/4.87955e-03/5.96921e-03/5.71180e-03/5.51150e-03/5.57615e-03/5.11641e-03/4.33623e-03/4.83028e-03/5.40141e-03/5.65810e-03 - */1/1/0 C xy 1 1
362 GFED4_TO_GFAS_RCHO 1.58656e-02/1.53300e-02/1.45586e-02/1.43528e-02/1.16213e-02/1.09386e-02/1.01548e-02/1.13880e-02/1.24669e-02/1.39850e-02/1.51875e-02/1.58352e-02 - */1/1/0 C xy 1 1
363 GFED4_TO_GFAS_STYR 6.79343e-04/6.25924e-04/5.68759e-04/6.53689e-04/7.81553e-04/8.25916e-04/8.66420e-04/7.57642e-04/5.76306e-04/5.80106e-04/6.42521e-04/7.07672e-04 - */1/1/0 C xy 1 1
)))GFAS |
|
Ah OK. It's because C2H5OH (EOH) is 2D and not 3D. My bad. |
|
Emmm... All species should be 3D in the smoke as we apply the same vertical structure to all needed species.
I see, these species are not in the original GFAS species. I did not apply this 3D structure to all species but only the needed species in the original GFAS to save space since daily 3D files are quite large. Do you think I should reprocess the files so that every species get a 3D profile instead? @yantosca |
|
@yuanjianz: I think we're OK. I've computed scale factors (total emissions of species / total emissions of CO) for each month from the GFED4_CLIMATOLOGY. Let's keep the files as-is. @msulprizio @lizziel: I just rebased this PR atop 14.8.0-alpha.9 and added scale factors for the GFED-only species. Am running integration tests and will post the results here. Please re-review this PR at your convenience. |
|
@yuanjianz @lizziel @mcdon1718-h: FYI, the additional GFAS entries in ExtData.rc caused my test GCHP simulation to fail with an out-of-memory error (due to the memory leak issue). [2026-05-12T11:45:19.054] error: Detected 2 oom_kill events in StepId=12570656.0. Some of the step tasks have been OOM Killed.
srun: error: holy8a27110: task 20: Out Of Memory
[2026-05-12T11:45:20.044] error: mpi/pmix_v5: _errhandler: holy8a27110 [0]: pmixp_client_v2.c:226: Error handler invoked: status = -61, source = [slurm.pmix.12570656.0:20]
[2026-05-12T11:45:20.651] error: *** STEP 12570656.0 ON holy8a27110 CANCELLED AT 2026-05-12T11:45:20 DUE to SIGNAL Killed ***
srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
[2026-05-12T11:45:23.985] error: mpi/pmix_v5: _errhandler: holy8a27110 [0]: pmixp_client_v2.c:226: Error handler invoked: status = -61, source = [slurm.pmix.12570656.0:23]
[2026-05-12T11:45:26.954] error: mpi/pmix_v5: _errhandler: holy8a27110 [0]: pmixp_client_v2.c:226: Error handler invoked: status = -61, source = [slurm.pmix.12570656.0:16]In my gchp.run script I was using: #!/bin/bash
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -c 1
#SBATCH -t 0-0:30
#SBATCH -p sapphire,huce_ice,huce_cascade,seas_compute,shared
#SBATCH --mem=180000
#SBATCH --mail-type=ENDI will need to bump up the amount of memory in the |
|
@yuanjianz @lizziel: I had to bump up the memory requested from 180GB to 225GB and then the job ran OK. Log files from the 225GB run are here. There is a huge jump in memory used between 00:00z and 00:10z, presumably due to ExtData I/O. Log files: |
|
Also here are log files from an "out-of-the-box" run that used 180GB in the run script. This one failed. |
|
@yuanjianz: I noticed that there is some roundoff error in the longitude coordinate in the GFAS-smoke files: lon = -179.95, -179.85, -179.75, -179.65, -179.55, -179.45, -179.35,
-179.25, -179.15, -179.05, -178.95, -178.85, -178.75, -178.65, -178.55,
-178.45, -178.35, -178.25, -178.15, -178.05, -177.95, -177.85, -177.75,
-177.65, -177.55, -177.45, -177.35, -177.25, -177.15, -177.05, -176.95,
...
-100.05, -99.95001, -99.85001, -99.75, -99.64999, -99.54999, -99.45001,
-99.35001, -99.25, -99.14999, -99.04999, -98.95001, -98.85001, -98.75,
-98.64999, -98.54999, -98.45001, -98.35001, -98.25, -98.14999, -98.04999,
-97.95001, -97.85001, -97.75, -97.64999, -97.54999, -97.45001, -97.35001,
-97.25, -97.14999, -97.04999, -96.95001, -96.85001, -96.75, -96.64999,
-96.54999, -96.45001, -96.35001, -96.25, -96.14999, -96.04999, -95.95001,
-95.85001, -95.75, -95.64999, -95.54999, -95.45001, -95.35001, -95.25,
-95.14999, -95.04999, -94.95001, -94.85001, -94.75, -94.64999, -94.54999,
-94.45001, -94.35001, -94.25, -94.14999, -94.04999, -93.95001, -93.85001,
-93.75, -93.64999, -93.54999, -93.45001, -93.35001, -93.25, -93.14999,
-93.04999, -92.95001, -92.85001, -92.75, -92.64999, -92.54999, -92.45001,
-92.35001, -92.25, -92.14999, -92.04999, -91.95001, -91.85001, -91.75,
-91.64999, -91.54999, -91.45001, -91.35001, -91.25, -91.14999, -91.04999,
-90.95001, -90.85001, -90.75, -90.64999, -90.54999, -90.45001, -90.35001,
-90.25, -90.14999, -90.04999, -89.95001, -89.85001, -89.75, -89.64999,
-89.54999, -89.45001, -89.35001, -89.25, -89.14999, -89.04999, -88.95001,
-88.85001, -88.75, -88.64999, -88.54999, -88.45001, -88.35001, -88.25,
-88.14999, -88.04999, -87.95001, -87.85001, -87.75, -87.64999, -87.54999,
-87.45001, -87.35001, -87.25, -87.14999, -87.04999, -86.95001, -86.85001,
-86.75, -86.64999, -86.54999, -86.45001, -86.35001, -86.25, -86.14999,
-86.04999, -85.95001, -85.85001, -85.75, -85.64999, -85.54999, -85.45001,
-85.35001, -85.25, -85.14999, -85.04999, -84.95001, -84.85001, -84.75,
-84.64999, -84.54999, -84.45001, -84.35001, -84.25, -84.14999, -84.04999,
-83.95001, -83.85001, -83.75, -83.64999, -83.54999, -83.45001, -83.35001,
-83.25, -83.14999, -83.04999, -82.95001, -82.85001, -82.75, -82.64999,
-82.54999, -82.45001, -82.35001, -82.25, -82.14999, -82.04999, -81.95001,
-81.85001, -81.75, -81.64999, -81.54999, -81.45001, -81.35001, -81.25,
-81.14999, -81.04999, -80.95001, -80.85001, -80.75, -80.64999, -80.54999,
-80.45001, -80.35001, -80.25, -80.14999, -80.04999, -79.95001, -79.85001,
-79.75, -79.64999, -79.54999, -79.45001, -79.35001, -79.25, -79.14999,
-79.04999, -78.95001, -78.85001, -78.75, -78.64999, -78.54999, -78.45001,
-78.35001, -78.25, -78.14999, -78.04999, -77.95001, -77.85001, -77.75,
-77.64999, -77.54999, -77.45001, -77.35001, -77.25, -77.14999, -77.04999,
-76.95001, -76.85001, -76.75, -76.64999, -76.54999, -76.45001, -76.35001,
-76.25, -76.14999, -76.04999, -75.95001, -75.85001, -75.75, -75.64999,
-75.54999, -75.45001, -75.35001, -75.25, -75.14999, -75.04999, -74.95001,
-74.85001, -74.75, -74.64999, -74.54999, -74.45001, -74.35001, -74.25,
-74.14999, -74.04999, -73.95001, -73.85001, -73.75, -73.64999, -73.54999,
-73.45001, -73.35001, -73.25, -73.14999, -73.04999, -72.95001, -72.85001,
-72.75, -72.64999, -72.54999, -72.45001, -72.35001, -72.25, -72.14999,
-72.04999, -71.95001, -71.85001, -71.75, -71.64999, -71.54999, -71.45001,
-71.35001, -71.25, -71.14999, -71.04999, -70.95001, -70.85001, -70.75,
-70.64999, -70.549
...I wonder if this may be causing issues with the regridding. Is it possible for you to round these values off to say 3 or 4 decimal places? Sorry for not catching this sooner. |
|
@yuanjianz @lizziel @msulprizio: I was able to do a GC-Classsic benchmark simulation reading the GFAS-3D data. As I feared the reading of the daily files causes a huge increase in the time spent in HEMCO I/O: Timer Ref [%] Dev [%]
-------------------------------------------------------------------------------
GEOS-Chem 100.000 100.000
HEMCO 14.038 32.624 <<<
All chemistry 34.493 29.973
=> Gas-phase chem 18.029 17.112
=> Photolysis 4.459 3.153
=> Aerosol chem 10.449 8.309
=> Linearized chem 0.139 0.128
Transport 10.627 7.377
Convection 12.351 7.244
Boundary layer mixing 7.768 8.678
Dry deposition 0.387 0.288
Wet deposition 5.799 2.938
Diagnostics 11.257 7.934
Unit conversions 3.752 3.239Also there are huge percentage differences in the emission totals. I'm not sure this is to be expected,,,perhaps GFED overestimates? #########################################################################################################
### Emissions totals for species ACET [Tg] ###
### Ref = gcc.14.8.0-alpha.9 ###
### Dev = gcc+GFAS3D ###
#########################################################################################################
Ref Dev Dev - Ref % diff
ACET BioBurn : 0.726313 0.315148 -0.411164 -56.609827
ACR BioBurn : 0.321235 0.171415 -0.149820 -46.638725 scaled from GFED
ACTA BioBurn : 2.341801 1.379561 -0.962239 -41.089719 scaled from GFED
ALD2 BioBurn : 0.702363 0.455461 -0.246902 -35.152994
ALK4 BioBurn : 0.165693 0.107460 -0.058232 -35.144848
BCPI BioBurn : 0.066152 0.053927 -0.012224 -18.479314
BCPO BioBurn : 0.264606 0.215709 -0.048897 -18.479314
BENZ BioBurn : 0.330388 0.227760 -0.102627 -31.062750
C2H2 BioBurn : 0.223354 0.122532 -0.100821 -45.139756 scaled from GFED
C2H4 BioBurn : 0.871743 0.558508 -0.313235 -35.932037
C2H6 BioBurn : 0.528776 0.293738 -0.235038 -44.449483
C3H8 BioBurn : 0.173225 0.122386 -0.050839 -29.348645
C4H6 BioBurn : 0.074030 0.000000 -0.074030 -100.000000 missing emissions?
CH2O BioBurn : 1.151798 0.755056 -0.396742 -34.445461
CO BioBurn : 75.243178 45.015513 -30.227665 -40.173297
EOH BioBurn : 0.036752 0.022000 -0.014752 -40.138525 scaled from GFED
FURA BioBurn : 0.550316 0.326515 -0.223802 -40.667814 scaled from GFED
GLYX BioBurn : 0.344750 0.206597 -0.138153 -40.073310 scaled from GFED
HCOOH BioBurn : 0.443029 0.282371 -0.160658 -36.263465 scaled from GFED
ISOP BioBurn : 0.071656 0.047521 -0.024134 -33.681066
MEK BioBurn : 0.132533 0.075300 -0.057233 -43.183995
MGLY BioBurn : 0.360321 0.206130 -0.154190 -42.792516 scaled from GFED
MOH BioBurn : 1.434252 0.983033 -0.451219 -31.460243
MTPA BioBurn : 0.536370 0.359389 -0.176981 -32.996041 scaled from GFED
MVK BioBurn : 0.140951 0.072223 -0.068728 -48.760153 scaled from GFED
NH3 BioBurn : 1.163269 0.734606 -0.428663 -36.849834
NO BioBurn : 1.882279 1.417948 -0.464331 -24.668549
OCPI BioBurn : 2.162043 1.542145 -0.619898 -28.671846
OCPO BioBurn : 2.162043 1.542145 -0.619898 -28.671846
PHEN BioBurn : 0.425323 0.250998 -0.174326 -40.986626 scaled from GFED
PRPE BioBurn : 0.719410 0.491188 -0.228222 -31.723466
RCHO BioBurn : 0.838261 0.457217 -0.381044 -45.456501 scaled from GFED
SO2 BioBurn : 0.555350 0.348990 -0.206360 -37.158580
SOAP BioBurn : 0.978164 0.585202 -0.392962 -40.173429
STYR BioBurn : 0.064409 0.038997 -0.025412 -39.454749 scaled from GFED
TOLU BioBurn : 0.197594 0.156072 -0.041523 -21.014053
XYLE BioBurn : 0.073871 0.016703 -0.057168 -77.389288 Also here is the difference plot for biomass burning emissions: Are these differences consistent with what you saw? I'm thinking that with the large performance hit (and memory issue in GCHP) we should probably not bring this into 14.8.0 as the default setting. (We can add it as an option). What do you think? |
|
Thanks @yantosca! I think it makes sense to bring this in as an option for now since so much work has been put into it. We can discuss with the Emissions WG and others to see if we should turn it on as a default in a later pull request. |
|
@yantosca I only looked at OC/BC emission before and it is expected for GFAS to have less emissions than GFED. As for other species, some studies have found GFAS to be of lower bound of BB emissions as well. An example is https://acp.copernicus.org/articles/23/5969/2023/, where they use a 3 times scaling factor to constrain its emission. But this is more like a scientific question that needs discussion for Emission WG. A possible reason for the bad performance for HEMCO to read these files are probably because they are heavily compressed, since they are basically 3D daily 36L profiles at 0.1x0.1 degree, which are a lot. |
b8cbe76 to
6fa87ee
Compare
|
For now I have reverted GFED to the default biomass burning option while keeping the GFAS updates in the configuration files. I've also made some documentation updates to the |
run/CESM/HEMCO_Config.rc run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/WRF/fullchem/HEMCO_Config.rc - Alphabetized GFAS emissions entries - Apply scale factors to GFAS CO for ACR, ACTA, C2H2, FURA, GLYX, HCOOH, MEK, MGLY, MTPA, MVK, NAP, PHEN, RCHO, STYR - Restored EOH (aka C2H5OH aka Ethanol) GFAS biomass emissions - Added monthly-mean scale factors based on GFED4_CLIMATOLOGY run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.aerosol run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem - Changed ExtNr from 111 to 5 and Cat from -1 to 3 run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.aerosol - Alphabetized GFAS entries run/GCHP/ExtData.rc.templates/ExtData.rc.fullchem - Alphabetized GFAS entries - Restored EOH (aka C2H5OH aka Ethanol) GFAS biomass emissions CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
run/CESM/HEMCO_Config.rc run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/WRF/fullchem/HEMCO_Config.rc - Do not read GFAS_EOH from the data files, as this field is only 2D. Instead, for GFAS_EOH, apply a scale factor from GFAS_CO Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
run/GCHP/ExtData.rc.templates/ExtData.rc.carbon - Add entries for GFAS_CH4 and GFAS_CO2 (GFAS_CO was there already) run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.carbon - Add entries for GFAS_CH4 and GFAS_CO2 (GFAS_CO was there already) - Use 2100 as the end date in the time range so we don't need to keep updating it as new emissions are added. - Removed GFAS_EMITL scale factor, it's no longer needed. CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
run/CESM/HEMCO_Config.rc run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.aerosol run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/WRF/fullchem/HEMCO_Config.rc - Change time range from 2003-2025 to 2023-2100 for GFAS biomass burning entries. Because GFAS data is near-real-time, this will prevent us having to keep updating HEMCO_Config.rc files when new GFAS data becomes available. The HEMCO_Config.rc.carbon files were updated in the previous commit. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
run/shared/settings/gcap2_hemco.txt run/shared/settings/gmao_hemco.txt - Changed RUNDIR_GFED_EXT from "off" to "on " - Changed RUNDIR_GFAS from "true " to "false" run/CESM/HEMCO_Config.rc run/WRF/fullchem/HEMCO_Config.rc - Turn off GFAS and turn on GFED4 Added documentation with instructions on how to set ExtNr, Cat, Hier when switching between offline & online emissions in: - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.aerosol - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.aerosol.onlineE - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem.onlineE - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.carbon - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem - run/WRF/fullchem/HEMCO_Diagn.rc Also removed revision history from documentation headers in these files: - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.metals - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.POPs - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.tagO3 - run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers - run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.TransportTracers CHANGELOG.md - Updated accordingly Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This merge brings PR #362 (HEMCO extension: 3D GFAS biomass burning emission, by @yuanjianz) into the HEMCO 3.13.0 development stream. PR #362 adds a HEMCO extension to address the performance issue of reading all GFAS species in their full 3D profiles (see details in geoschem/geos-chem#3288). This PR aims to deal with this issue by only reading 3D profiles for a reference species (e.g. CO) and applying this vertical structure to all other species. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This commit informs the GCClassic superproject about the following commits that were pushed to the GitHub geoschem/HEMCO repository: e3396c3 Merge PR 362: HEMCO extension for 3D GFAS biomass PR #362 adds a HEMCO extension to address the performance issue of reading all GFAS species in their full 3D profiles (see details in geoschem/geos-chem#3288). This PR aims to deal with this issue by only reading 3D profiles for a reference species (e.g. CO) and applying this vertical structure to all other species. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
This commit informs the GCHP superproject about the following commits that were pushed to the GitHub geoschem/geos-chem repository: e3396c3 Merge PR 362: HEMCO extension for 3D GFAS biomass PR #362 adds a HEMCO extension to address the performance issue of reading all GFAS species in their full 3D profiles (see details in geoschem/geos-chem#3288). This PR aims to deal with this issue by only reading 3D profiles for a reference species (e.g. CO) and applying this vertical structure to all other species. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Name and Institution (Required)
Name: Yuanjian Zhang
Institution: WashU
Describe the update
This PR replaces the default fire inventory from GFED to GFAS with 3D emission profile.
Here we describe an updated implementation of GFAS to better represent the vertical profile of biomass burning emissions. Specifically, we assume a guassian distribution for fire emission around its injection height.
Expected changes
This implementation is motivated by Singh et al. (2025), who show how implementation of fire plume height improves the simulation of AOD and surface PM2.5 during North American wildfires.
Reference(s)
Singh, I., Martin, R.V., van Donkelaar, A., Li, C., Zhang, Y., Zhu, H., Zhang, D. and Lyapustin, A., 2025. Effects of Fire Plume Height on the Geophysical Estimation of Surface Fine Particulate Matter from Satellite Aerosol Optical Depth during North American Wildfires. ACS ES&T Air, 2(10), pp.2071-2080.
Related Github Issue
This PR is an different implementation than #2358.