geoschem / geos-chem

GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs).
http://geos-chem.org
Other
161 stars 155 forks source link

Issues with updating new emission inventories #2117

Open jinlx opened 5 months ago

jinlx commented 5 months ago

Name and Institution (Required)

Name: Lixu Jin Institution: University of Montana

Description of your issue or question

I am trying to update a population-based building emission inventory for a newly added compound, i.e., FURFUR, in the GC14.2.3. The data has been tested by the isCoards script and the results are provided below.

I have set up corresponding setting in HEMCO config and diagn files and the data is read as suggested by log file. However, the diagn file suggests 0 values. I am not sure how to resolve it and any suggestions are appreciated! Both config and diag files are attached just in case. Thanks!

HEMCO: Opening /projects/atmoschem/geos-chem/ExtData/HEMCO/LJ_popluation/Population_based_emission_flux_2020.nc

isCoards results:

===========================================================================
Filename: Population_based_emission_flux_2020_025.nc
===========================================================================

The following items adhere to the COARDS standard:
---------------------------------------------------------------------------
-> Dimension "time" adheres to standard usage
-> Dimension "lon" adheres to standard usage
-> Dimension "lat" adheres to standard usage
-> Dimension "time" uses only lowercase letters (requirement for GCHP)
-> time(time)
-> time is a single value
-> time[0] = 0 (requirement for GCHP)
-> time:axis = "T"
-> time:calendar = "standard"
-> time:long_name = "Time"
-> time:units = "hours since 2020-01-01 00:00:00 GMT"
-> "time:units" does not contain decimals (requirement for GCHP)
-> Dimension "lon" uses only lowercase letters (requirement for GCHP)
-> lon(lon)
-> lon is monotonically increasing
-> lon:axis = "X"
-> lon:long_name = "longitude"
-> lon:units = "degrees_east"
-> Dimension "lat" uses only lowercase letters (requirement for GCHP)
-> lat(lat)
-> lat is monotonically increasing
-> lat:axis = "Y"
-> lat:long_name = "latitude"
-> lat:units = "degrees_north"
-> Furfural_Building(time,lat,lon)
-> Furfural_Building has proper dimension ordering (requirement for GCHP)
-> Furfural_Building:long_name = "Sheu et al. (2021) and NYC mobile measurement: 0.06 kg/person-yr for 2-furfural from buildings"
-> Furfural_Building:units = "kg/m2/s"
-> Furfural_Building:long_name = -9999.
-> Furfural_Building:missing_value = -9999.
-> conventions: "COARDS"
-> history: "Fri Sep 08 02:50:31 2023: cdo remapbil,../GFED4/v2020-02/2018/GFED4_gen.025x025.201801.nc Population_based_emission_flux_2020.nc Population_based_emission_flux_2020_025.nc"
-> title: "Population-based emission"
-> format: "NetCDF"

The following items DO NOT ADHERE to the COARDS standard:
---------------------------------------------------------------------------

The following optional items are RECOMMENDED:
---------------------------------------------------------------------------
-> Consider adding the "references" global attribute

---------------------------------------------------------------------------
For detailed instructions on how to edit netCDF files, see:
 1. "Work with netCDF files" and
 2. "Prepare COARDS-compliant netCDF files"
at the GEOS-Chem manual (geos-chem.readthedocs.io).
--------------------------------------------------------------------------

Below goes relative configuration for config and diag files. HEMCO_Config.txt

HEMCO_Diagn.txt

yantosca commented 5 months ago

Thanks for writing @jinlx. I think I see the problem. The entries for CEDS are within the NEI2016_MONMEAN section, which is turned off:

# Industrial (biofuel), other fuel-types are not considred due to a lack of emission information, 75% of the total will not be considered
# Check if cat and hier is right
0 CEDS_GBDMAPS_FUR_bIND                  $ROOT/CEDS/v2020-08/2017/CO-em-solid-biofuel_CEDS_2017.nc                        CO_ind             2017-2022/1-12/1/0 C xy kg/m2/s FUR       26/700/3002/1007     1 50

0 CEDS_GBDMAPS_FURFUR_bIND               $ROOT/CEDS/v2020-08/2017/CO-em-solid-biofuel_CEDS_2017.nc                        CO_ind             2017-2022/1-12/1/0 C xy kg/m2/s FURFUR    26/701/3002/1007     1 50
)))NEI2016_MONMEAN
yantosca commented 5 months ago

Also the HUMAN_BODY and CIGARETTES emissions are switched off in your HEMCO_Config.rc.

jinlx commented 5 months ago

Thanks for checking the code Bob! I should have described it in more details. I should also have pointed that the HUMAN_BODY and CIGARETTES are waiting for testing and thus being turned off. The anthropogenic emission is doing well and it is set to CEDS_GBDMAPS_byFuelType for this 4x5 simulation.

I was trying to test if GC is having the building emission of furfural I newly added. Here is following edition I did for HEMCO_Config.

# ----- BUILDING EMISSIONS ----------------------------------------------------
# This is population based, same method can be applied to VCP and others
    --> BUILDING               :       true     # 2020
'''
(((BUILDING
0 BUILDING     $ROOT/LJ_popluation/Population_based_emission_flux_2020.nc Furfural_Building 2020/1/1/0 C xy kg/m2/s FURFUR - 15 1
)))BUILDING

Corresponding editions have been also made for HEMCO_Diagn.rc

###############################################################################
#####  FURFUR emissions                                                      #####
###############################################################################
EmisFURFUR_Total     FURFUR    -1    -1  -1   3   kg/m2/s  FURFUR_emission_flux_from_all_sectors
EmisFURFUR_BioBurn   FURFUR   111    -1  -1   2   kg/m2/s  FURFUR_emission_flux_from_biomass_burning
EmisFURFUR_Anthro    FURFUR   0      1   -1   3   kg/m2/s  FURFUR_emission_flux_from_anthropogenic
EmisFURFUR_Building  FURFUR   0      15  -1   3   kg/m2/s  FURFUR_emission_flux_from_building_emissions

The simultion goes well however the values of EmisFURFUR_Building in the diag output are not right (all 0 values). It seems that GC is reading the emission input data (suggested by the GC.log) but somehow not calculate it right. Do you have any insights on what may cause the 0 values output when adding a new emission inventory?

Thanks, Lixu

yantosca commented 5 months ago

Hi @jinlx. Thanks for the clarification. Sorry if I wasn't clear before. I think you need to move the FURFUR entries CEDS_GBDMAPS_FUR_bIND and CEDS_GBDMAPS_FURFUR_bIND to this section of the HEMCO_Config.rc file:

#==============================================================================
# --- CEDS GBD-MAPS ---
#
# NOTES:
#  -- Reference: McDuffie et al. (2020, Earth System Science Data)
#  -- Anthropogenic source sectors: agriculture, energy, industry, road transport,
#       non-road/off-road transport, residential, commercial, other energy use,
#       solvents, waste, international shipping
#  -- Fuel categories: the combustion of total coal, solid biofuel, liquid oil
#       and gas, and all remaining sources
#       **To use, enable CEDS_byFuelType and CEDS_SHIP_byFuelType**
#==============================================================================
(((CEDS_GBDMAPS
>>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS.rc
)))CEDS_GBDMAPS

(((CEDS_GBDMAPS_byFuelType
(((.not.CEDS_GBDMAPS
(((.not.CEDSv2
>>>include $ROOT/CEDS/v2020-08/HEMCO_Config.CEDS_GBDMAPS_byFuelType.rc

# Industrial (biofuel), other fuel-types are not considred due to a lack of emission information, 75% of the total will not be considered
# Check if cat and hier is right
0 CEDS_GBDMAPS_FUR_bIND                  $ROOT/CEDS/v2020-08/2017/CO-em-solid-biofuel_CEDS_2017.nc                        CO_ind             2017-2022/1-12/1/0 C xy kg/m2/s FUR       26/700/3002/1007     1 50

0 CEDS_GBDMAPS_FURFUR_bIND               $ROOT/CEDS/v2020-08/2017/CO-em-solid-biofuel_CEDS_2017.nc                        CO_ind             2017-2022/1-12/1/0 C xy kg/m2/s FURFUR    26/701/3002/1007     1 50

))).not.CEDSv2
))).not.CEDS_GBDMAPS
)))CEDS_GBDMAPS_byFuelType

Otherwise I think HEMCO will not see the these entries.

jinlx commented 5 months ago

Thanks for the suggestions Bob! Any insights on that the building emission is not caculated right?

yantosca commented 5 months ago

@jinlx, the only thing that I can see is that the container name is BUILDING but that is also the name of the brackets (((BUILDING and )))BUILDING. Try changing the container name to BULDING_FURFUR or something like that.

Also have you turned on the Verbose: true output? That should give you a lot of output and you should see if the building emissions are being picked up by the diagnostics.

jinlx commented 5 months ago

Thanks Bob! After updating the container name and turn on the Verbose, I can confirm that the new emission datat is read by GEOS-Chem. The GC thinks the all values in the input netcdf are 0 or negative (snippet provided). However the input data does have resonable values through a quick ncdump check. The full GC log and the corresponding netcdf data is attached. Do you happen to know any scenarios that HEMCO will process the input data as 0 values like this?

 Register_Base: Checking BUILDING_FURFUR
...
    -->Source file     : $ROOT/LJ_popluation/Population_based_emission_flux_2020.nc
    -->ncRead?            T
    -->Source parameter: Furfural_Building
    -->SpaceDim        :            2
    -->Array dimension :            0           0
    -->Array sum       :    0.00000000
    -->Array min & max :    0.00000000       0.00000000
 ...
    -->Species name    : FURFUR
    -->HEMCO species ID:           71
    -->Category        :           15
    -->Hierarchy       :            1
Container BUILDING_FURFUR
    -->Source file     : $ROOT/LJ_popluation/Population_based_emission_flux_2020.nc
    -->ncRead?            T
    -->Source parameter: Furfural_Building
    -->SpaceDim        :            2
    -->Array dimension :           72          46
    -->Array sum      

 :   -3.16802201E+34
    -->Array min & max :   -9.99999985E+30   0.00000000
    -->Concentration?     F
    -->Species name    : FURFUR

Emssion input: Building_emission.zip GC log: GClog.zip

stale[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity. If there are no updates within 7 days it will be closed. You can add the "never stale" tag to prevent the Stale bot from closing this issue.

yantosca commented 1 month ago

Closing out this issue

msulprizio commented 3 weeks ago

Can you run isCoards on the file and provide the output here?