HEMCO
HEMCO copied to clipboard
How standalone HEMCO handle MEGAN with YUAN_MODIS_LAI
Name and Institution (Required)
Name: Yuanjian Zhang Institution: WashU
Confirm you have reviewed the following documentation
- [ ] Support guidelines
- [ ] User manuals
- [ ] Debugging GEOS-Chem and HEMCO errors
- [ ] Current and past Github issues
Description of your issue or question
I am generating biogenic VOC emission using MEGAN in standalone HEMCO with YUAN_MODIS_LAI option. But it seems that HEMCO is trying to use LAI provided by meteorology fields instead.
I search through the source code and find that XLAI is only calculated combined with external atmospheric models through GeosCore/modis_lai_mod.F90. Also in HEMCO_sa_Config.rc, OLSON_LANDTYPE and YUAN_MODIS_LAI are disabled by default and labeled needing input from geos-chem.
My question is, does it mean that I need to run a full GEOS-Chem simulation instead of standalone HEMCO to get the Yuan_MODIS_LAI driven biogenic voc emission or did I miss anything?
Tagging @YanshunLi-washu and @yidant
Hi @yuanjianz I checked the HEMCO_sa_Config.rc file and found there is a YUAN_MODIS_LAI item under the "NON-EMISSIONS DATA" category. If you put YUAN_MODIS_LAI as true, it should work. Would you mind uploading your HEMCO_sa_Config.rc? I'm happy to take a look.
Sure! Using the GCST offline emission maintainence HEMCO you provided. I ran tests for 201607 w/ and w/o Yuan's MODIS LAI. Also confirmed in HEMCO log w/ and w/o that whether Yuan's LAI is read or not. (Check the hyperlink)
The results show that emissions for 201607 make no difference:
monthly_emis=0
DAYSINMONTH=[31,29,31,30,31,30,31,31,30,31,30,31]
for mon in range(7,8):
for day in range(1,DAYSINMONTH[mon-1]+1):
for time in range(24):
filename='./OutputDir/merra2_05x0625_no_yuanlai.2016'+ \
'{mon:02d}{day:02d}{time:02d}00.nc'.format(mon=mon,day=day,time=time)
ds=xr.open_dataset(filename)
area=ds['AREA'].values
emis_rate=ds['ISOP_MEGAN'].values
secs=3600
daily_emis=np.sum(np.sum(emis_rate,0)*area*secs)
monthly_emis+=daily_emis
ds.close()
print(monthly_emis/1e9)
---
40.37151861971345
monthly_emis=0
DAYSINMONTH=[31,29,31,30,31,30,31,31,30,31,30,31]
for mon in range(7,8):
for day in range(1,DAYSINMONTH[mon-1]+1):
for time in range(24):
filename='./OutputDir/merra2_05x0625.2016'+ \
'{mon:02d}{day:02d}{time:02d}00.nc'.format(mon=mon,day=day,time=time)
ds=xr.open_dataset(filename)
area=ds['AREA'].values
emis_rate=ds['ISOP_MEGAN'].values
secs=3600
daily_emis=np.sum(np.sum(emis_rate,0)*area*secs)
monthly_emis+=daily_emis
ds.close()
print(monthly_emis/1e9)
---
40.37151861971345
I am not sure how much difference Yuan’s LAI would cause, but I think HEMCO standalone here takes LAI in the met field directly and ignore Yuan's LAI even though being read. The reason is that MODIS LAI processing code would only be found in geos-chem.
Hi @yuanjianz Since you mentioned HEMCO kept using LAI in metfields, I noticed there is a line in the configuration file:
- LAI $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.nc4 LAI 1980-2021/1-12/1-31/*/+30minute EFY xy 1 * - 1 1
I guess if you replace $METDIR/$YYYY/$MM/$MET.$YYYY$MM$DD.A1.$RES.nc4 with files listed in the YUAN_MODIS_LAI data collection, there should be differences in your stand-alone simulations.
But not sure whether this is the right way to use YUAN LAI. @yantosca Do you have any suggestions?
@YanshunLi-washu: I believe the metfield LAI does not have an interannual variability, which is why we prefer using the XLAI in GEOS-Chem.
Maybe this is something we haven't paid too much attention to. HEMCO standalone might be able to interpolate the Yuan LAI but we might need to add another set of entries in the HEMCO_sa_Config.rc file to do that.
Hi @yantosca @YanshunLi-washu, to confirm my guess. I turned off all operations in GCClassics and ran only for emissions with Yuan's LAI turned on, and compared with results from HEMCO standalone with Yuan's LAI turned on. For 201907, HEMCO standalone produces 38.4Tg
and GCClassics produces 37.9Tg
for isoprene. Both are under MERRA2 0.5x0.625 and I manually changed GCClassics emission timestep to 3600s to match HEMCO standalone.
Here is what I found, both of them will read LAI from met field at initialization, but in GCClassics' main program and GCHP's geoschem chunk, the modis_lai_mod
from GeosCore
is used to update XLAI
for dry deposition and MODISLAI
for SoilNOx and MEGAN. (I did not find a way to run GCClassics without Yuan's LAI either).
Hi @lizziel, I am generating a Yuan's MODIS LAI product that can be used in HEMCO standalone for offline emission. But I found something on the WiKi page
Lizzie Lundgren wrote: I believe the hard-coded regridding of MODIS LAI from fine to coarse resolution within GEOS-Chem Classic is due to the dependence on the Olson land map for regridding. I don’t think HEMCO currently has the capacity to do this, but Christoph please correct me if I am wrong. We actually bypass the hard-coded regridding entirely in GCHP and use MAPL ExtData instead. However, this required GMAO to implement a fractional regridding algorithm within ExtData which GMAO graciously did for us. I wonder if we could do something similar in HEMCO?
I am confused here. It seems to me that LAI in m2/m2 should be correctly regridded by conservative regridding method. Or judging from the following comment, is it the correspondent Olson land type that needs to be treated differently?
Christoph Keller wrote: What I did in GEOS-5 (prior to the ExtData update) was to create a separate mask for every Olson land type, which can then be regridded using the regular regridding routines. This could be a workaround for GC classic.
@yantosca To my understanding, there are two XLAI in geos-chem/GeosCore/modis_lai_mod.F90. XLAI
for dry deposition and MODISLAI
for MEGAN and soilNOx. It seems to me the MODISLAI
should be irrelevant to olson land type. Based on here, can I can just use the summation of XLAI00-73 for MEGAN and soilNOx calculation?