geoschem / HEMCO

The Harmonized Emissions Component (HEMCO), developed by the GEOS-Chem Support Team.
https://hemco.readthedocs.io
Other
15 stars 31 forks source link

How standalone HEMCO handle MEGAN with YUAN_MODIS_LAI #270

Open yuanjianz opened 3 months ago

yuanjianz commented 3 months ago

Name and Institution (Required)

Name: Yuanjian Zhang Institution: WashU

Confirm you have reviewed the following documentation

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?

yantosca commented 3 months ago

Tagging @YanshunLi-washu and @yidant

YanshunLi-washu commented 3 months ago

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.

yuanjianz commented 3 months ago

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.

YanshunLi-washu commented 3 months ago

Hi @yuanjianz Since you mentioned HEMCO kept using LAI in metfields, I noticed there is a line in the configuration file:

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?

yantosca commented 3 months ago

@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.

yuanjianz commented 3 months ago

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).

yuanjianz commented 1 month ago

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?