Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding CEDS at 0.1 degree as a global emission inventory #1745

Open
1Dandan opened this issue Apr 8, 2023 · 11 comments · May be fixed by #2171
Open

Adding CEDS at 0.1 degree as a global emission inventory #1745

1Dandan opened this issue Apr 8, 2023 · 11 comments · May be fixed by #2171
Assignees
Labels
category: Feature Request New feature or request help needed: Open Research Problem An issue that is a matter of open scientific research rather than a code issue. topic: Configuration Files Related to GEOS-Chem configuration files topic: Input Data Related to input data

Comments

@1Dandan
Copy link
Contributor

1Dandan commented Apr 8, 2023

Name and Institution (Required)

Name: Dandan Zhang
Institution: Washington University in St. Louis

New GEOS-Chem feature

Hi, I am writing to request adding CEDS at 0.1 degree as a global emission inventory to support high-resolution global or regional simulations.

Original dataset of CEDS at 0.1 degree from year 1980 to 2019 can be requested and downloaded from https://data.pnnl.gov/group/nodes/dataset/13488, which includes fine-scale emission fluxes on the top of CEDS v2 at 0.5 degree. I have downloaded and processed the dataset to be readily usable by GEOS-Chem.

Process dataset is available at: http://geoschemdata.wustl.edu/ExtData/HEMCO/CEDS/v2023-04/,
where
subdirectories at each year contains monthly emission fluxes for each species;
config/ contains HEMCO_Config.rc and ExtData.rc files modified to facilitate using CEDS at 0.1 degree for GCHP version 13.4.1;
scripts/ contains processing scripts.

To verify it, I regrid processed CEDS at 0.1 to 0.5 degree by area-weighted regridding to maintain same emission fluxes at different resolutions and compare it with the current CEDS v2 at 0.5 degree (http://geoschemdata.wustl.edu/ExtData/HEMCO/CEDS/v2021-06/) for annual mean emissions in year 2018.
Comparison plots:
Comp_Emissions_CEDS01_vs_CEDSv2_2018_AnnMean.pdf
Above plots show that the differences between the two are negligible as expected. Thus the processed dataset should be readily usable.

@yantosca
Copy link
Contributor

Thanks @1Dandan. A couple of questions:

  1. Have you run the isCoards script (from https://github.com/geos-chem/netcdf-scripts) on the CEDS data files to make sure that they are COARDS-compliant and will also be compatible with GCHP?
  2. Do you have a sample HEMCO_Config.rc file with the entries that will read in CEDS?

@yantosca yantosca added category: Feature Request New feature or request topic: Input Data Related to input data topic: Configuration Files Related to GEOS-Chem configuration files labels Apr 10, 2023
@1Dandan
Copy link
Contributor Author

1Dandan commented Apr 10, 2023

Hi @yantosca,
For 1), I just ran the isCoards scripts and the output is:

(base) dandan.z@compute1-exec-7:/ExtData/HEMCO/CEDS/v2023-04/2018$ isCoards CEDS_NO_0.1x0.1_2018.nc
===========================================================================
Filename: CEDS_NO_0.1x0.1_2018.nc
===========================================================================

The following items adhere to the COARDS standard:
---------------------------------------------------------------------------
-> Dimension "time" adheres to standard usage
-> Dimension "lat" adheres to standard usage
-> Dimension "lon" adheres to standard usage
-> 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" 
-> 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 "time" uses only lowercase letters (requirement for GCHP)
-> time(time)
-> time is monotonically increasing
-> time[0] = 0 (requirement for GCHP)
-> time:axis = "T" 
-> time:calendar = "standard" 
-> time:long_name = "Time" 
-> time:units = "days since 2018-01-01 00:00:00" 
-> "time:units" does not contain decimals (requirement for GCHP)
-> NO_agr(time,lat,lon)
-> NO_agr has proper dimension ordering (requirement for GCHP)
-> NO_agr:long_name = "NO emission in sector agr" 
-> NO_agr:units = "kg/m2/s" 
-> NO_agr:long_name = NaNf 
-> NO_ene(time,lat,lon)
-> NO_ene has proper dimension ordering (requirement for GCHP)
-> NO_ene:long_name = "NO emission in sector ene" 
-> NO_ene:units = "kg/m2/s" 
-> NO_ene:long_name = NaNf 
-> NO_ind(time,lat,lon)
-> NO_ind has proper dimension ordering (requirement for GCHP)
-> NO_ind:long_name = "NO emission in sector ind" 
-> NO_ind:units = "kg/m2/s" 
-> NO_ind:long_name = NaNf 
-> NO_tra(time,lat,lon)
-> NO_tra has proper dimension ordering (requirement for GCHP)
-> NO_tra:long_name = "NO emission in sector tra" 
-> NO_tra:units = "kg/m2/s" 
-> NO_tra:long_name = NaNf 
-> NO_rco(time,lat,lon)
-> NO_rco has proper dimension ordering (requirement for GCHP)
-> NO_rco:long_name = "NO emission in sector rco" 
-> NO_rco:units = "kg/m2/s" 
-> NO_rco:long_name = NaNf 
-> NO_slv(time,lat,lon)
-> NO_slv has proper dimension ordering (requirement for GCHP)
-> NO_slv:long_name = "NO emission in sector slv" 
-> NO_slv:units = "kg/m2/s" 
-> NO_slv:long_name = NaNf 
-> NO_wst(time,lat,lon)
-> NO_wst has proper dimension ordering (requirement for GCHP)
-> NO_wst:long_name = "NO emission in sector wst" 
-> NO_wst:units = "kg/m2/s" 
-> NO_wst:long_name = NaNf 
-> NO_shp(time,lat,lon)
-> NO_shp has proper dimension ordering (requirement for GCHP)
-> NO_shp:long_name = "NO emission in sector shp" 
-> NO_shp:units = "kg/m2/s" 
-> NO_shp:long_name = NaNf 
-> conventions: "COARDS" 
-> title: "COARDS/netCDF file containing monthly emissions of NO" 

The following items DO NOT ADHERE to the COARDS standard:
---------------------------------------------------------------------------
-> The "history" global attribute is missing

The following optional items are RECOMMENDED:
---------------------------------------------------------------------------
-> Consider adding NO_agr:missing_value
-> Consider adding NO_ene:missing_value
-> Consider adding NO_ind:missing_value
-> Consider adding NO_tra:missing_value
-> Consider adding NO_rco:missing_value
-> Consider adding NO_slv:missing_value
-> Consider adding NO_wst:missing_value
-> Consider adding NO_shp:missing_value
-> Consider adding the "format" global attribute
-> 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).
---------------------------------------------------------------------------

I did not use nco or cdo for formatting netCDF files. Do you think I need to add history attribute to all files?

For 2), Yes, as indicated in above original description, the sample HEMCO_Config.rc and ExtData.rc files are at http://geoschemdata.wustl.edu/ExtData/HEMCO/CEDS/v2023-04/config which will read all corresponding entries into the base emission called CEDS01

@yantosca
Copy link
Contributor

Hi @1Dandan, this looks good! The biggest thing is that the data is now on the standard calendar, and that time[0] = 0, which facilitates GCHP input. I would say this is good to go.

@1Dandan
Copy link
Contributor Author

1Dandan commented Apr 10, 2023

Hi @yantosca, thanks. I may add the attributes of missing_value and _FillValue of 1.e+20f to be consistent with the original dataset. I will let you know when it's ready.

@1Dandan
Copy link
Contributor Author

1Dandan commented Apr 12, 2023

Hi @yantosca, just to let you know that missing_value and _FillValue have been added to all emission files.
The output of isCoards is:

dandan.z@compute1-exec-3:/ExtData/HEMCO/CEDS/v2023-04/2018$ isCoards CEDS_NO_0.1x0.1_2018.nc 
===========================================================================
Filename: CEDS_NO_0.1x0.1_2018.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 monotonically increasing
-> time[0] = 0 (requirement for GCHP)
-> time:axis = "T" 
-> time:calendar = "standard" 
-> time:long_name = "Time" 
-> time:units = "days since 2018-01-01 00:00:00" 
-> "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" 
-> NO_agr(time,lat,lon)
-> NO_agr has proper dimension ordering (requirement for GCHP)
-> NO_agr:long_name = "NO emission in sector agr" 
-> NO_agr:units = "kg/m2/s" 
-> NO_agr:long_name = 1.e+20f 
-> NO_agr:missing_value = 1.e+20f 
-> NO_ene(time,lat,lon)
-> NO_ene has proper dimension ordering (requirement for GCHP)
-> NO_ene:long_name = "NO emission in sector ene" 
-> NO_ene:units = "kg/m2/s" 
-> NO_ene:long_name = 1.e+20f 
-> NO_ene:missing_value = 1.e+20f 
-> NO_ind(time,lat,lon)
-> NO_ind has proper dimension ordering (requirement for GCHP)
-> NO_ind:long_name = "NO emission in sector ind" 
-> NO_ind:units = "kg/m2/s" 
-> NO_ind:long_name = 1.e+20f 
-> NO_ind:missing_value = 1.e+20f 
-> NO_tra(time,lat,lon)
-> NO_tra has proper dimension ordering (requirement for GCHP)
-> NO_tra:long_name = "NO emission in sector tra" 
-> NO_tra:units = "kg/m2/s" 
-> NO_tra:long_name = 1.e+20f 
-> NO_tra:missing_value = 1.e+20f 
-> NO_rco(time,lat,lon)
-> NO_rco has proper dimension ordering (requirement for GCHP)
-> NO_rco:long_name = "NO emission in sector rco" 
-> NO_rco:units = "kg/m2/s" 
-> NO_rco:long_name = 1.e+20f 
-> NO_rco:missing_value = 1.e+20f 
-> NO_slv(time,lat,lon)
-> NO_slv has proper dimension ordering (requirement for GCHP)
-> NO_slv:long_name = "NO emission in sector slv" 
-> NO_slv:units = "kg/m2/s" 
-> NO_slv:long_name = 1.e+20f 
-> NO_slv:missing_value = 1.e+20f 
-> NO_wst(time,lat,lon)
-> NO_wst has proper dimension ordering (requirement for GCHP)
-> NO_wst:long_name = "NO emission in sector wst" 
-> NO_wst:units = "kg/m2/s" 
-> NO_wst:long_name = 1.e+20f 
-> NO_wst:missing_value = 1.e+20f 
-> NO_shp(time,lat,lon)
-> NO_shp has proper dimension ordering (requirement for GCHP)
-> NO_shp:long_name = "NO emission in sector shp" 
-> NO_shp:units = "kg/m2/s" 
-> NO_shp:long_name = 1.e+20f 
-> NO_shp:missing_value = 1.e+20f 
-> conventions: "COARDS" 
-> history: "Mon Apr 10 20:34:21 2023: cdo setmissval,1e+20 /ExtData/HEMCO/CEDS/v2023-04/2018/CEDS_NO_0.1x0.1_2018.nc tmp.nc" 
-> title: "COARDS/netCDF file containing monthly emissions of NO" 

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

The following optional items are RECOMMENDED:
---------------------------------------------------------------------------
-> Consider adding the "format" global attribute
-> 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).
---------------------------------------------------------------------------

Copy link
Contributor

Thanks @1Dandan!

@msulprizio
Copy link
Contributor

This update is now marked as delivered on the Model Development Priority page as well.

@yantosca yantosca self-assigned this Feb 29, 2024
@yantosca yantosca added this to the 14.4.0 milestone Feb 29, 2024
@yantosca yantosca linked a pull request Feb 29, 2024 that will close this issue
1 task
@Ruijun-Dang
Copy link

Hi @1Dandan, thank you for preparing the data! I noticed reversed seasonality in v2023-04 compared to v2021-06. The figure provides an example of the global mean NH3 emission rate from the agricultural sector. This reversed seasonality is observed in other species as well, including NO. It might worth a double-check.

image

@yantosca
Copy link
Contributor

Thanks @Ruijun-Dang and @1Dandan. I will hold off on implementing this until we resolve the seasonality issue.

@yantosca yantosca added the help needed: Open Research Problem An issue that is a matter of open scientific research rather than a code issue. label Mar 14, 2024
@yantosca yantosca linked a pull request Mar 20, 2024 that will close this issue
1 task
@yantosca yantosca removed this from the 14.4.0 milestone Mar 20, 2024
@1Dandan
Copy link
Contributor Author

1Dandan commented Mar 20, 2024

Thanks @Ruijun-Dang for your caution and patience and thanks @yantosca for reminding. I also noticed that the seasonality of all species from all sectors is flipped for CEDS at 0.1 degree from CEDS at 0.5 degree, which is originated from the original dataset from PNNL. The attached plots show that the seasonality for CEDS at 0.1 degree is flipped from CEDS at 0.5 degree for an example year of 2017. The map is plotted from original dataset downloaded from PNNL DataHub (https://data.pnnl.gov/group/nodes/dataset/13488 for CEDS at 0.1, and https://data.pnnl.gov/dataset/CEDS-4-21-21 for CEDS at 0.5) for the absolute differences between May and Sep in the year of 2017, which also confirms the problem.

I contacted Steven J. Smith and computing supports from PNNL and they are currently checking into it. I will keep you posted with any further progress.

Comp_seasonality_CEDS_0.5_0.1_2017_MonMean_GL.pdf

@1Dandan
Copy link
Contributor Author

1Dandan commented Jun 21, 2024

Hi @yantosca @msulprizio @Ruijun-Dang, I have received the fixed CEDS at 0.1 degree dataset from PNNL and processed it. The fixed dataset shows consistent seasonality versus CEDS v2 at 0.5 degree:
TimeSeries_CEDS_fixed_species_2017_MonMean_GL.pdf

The processed dataset is available at:
http://geoschemdata.wustl.edu/ExtData/HEMCO/CEDS/v2024-06/
The isCoards outputs also show adherence to COARDS convention:

===========================================================================
Filename: CEDS_ALD2_0.1x0.1_2019.nc
===========================================================================

The following items adhere to the COARDS standard:
---------------------------------------------------------------------------
-> Dimension "time" adheres to standard usage
-> Dimension "lat" adheres to standard usage
-> Dimension "lon" adheres to standard usage
-> 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" 
-> 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 "time" uses only lowercase letters (requirement for GCHP)
-> time(time)
-> time is monotonically increasing
-> time[0] = 0 (requirement for GCHP)
-> time:axis = "T" 
-> time:calendar = "standard" 
-> time:long_name = "Time" 
-> time:units = "days since 2019-01-01 00:00:00" 
-> "time:units" does not contain decimals (requirement for GCHP)
-> ALD2_agr(time,lat,lon)
-> ALD2_agr has proper dimension ordering (requirement for GCHP)
-> ALD2_agr:long_name = "ALD2 emission in sector agr" 
-> ALD2_agr:units = "kg/m2/s" 
-> ALD2_agr:long_name = 1.e+15f 
-> ALD2_agr:missing_value = 1.e+15 
-> ALD2_ene(time,lat,lon)
-> ALD2_ene has proper dimension ordering (requirement for GCHP)
-> ALD2_ene:long_name = "ALD2 emission in sector ene" 
-> ALD2_ene:units = "kg/m2/s" 
-> ALD2_ene:long_name = 1.e+15f 
-> ALD2_ene:missing_value = 1.e+15 
-> ALD2_ind(time,lat,lon)
-> ALD2_ind has proper dimension ordering (requirement for GCHP)
-> ALD2_ind:long_name = "ALD2 emission in sector ind" 
-> ALD2_ind:units = "kg/m2/s" 
-> ALD2_ind:long_name = 1.e+15f 
-> ALD2_ind:missing_value = 1.e+15 
-> ALD2_tra(time,lat,lon)
-> ALD2_tra has proper dimension ordering (requirement for GCHP)
-> ALD2_tra:long_name = "ALD2 emission in sector tra" 
-> ALD2_tra:units = "kg/m2/s" 
-> ALD2_tra:long_name = 1.e+15f 
-> ALD2_tra:missing_value = 1.e+15 
-> ALD2_rco(time,lat,lon)
-> ALD2_rco has proper dimension ordering (requirement for GCHP)
-> ALD2_rco:long_name = "ALD2 emission in sector rco" 
-> ALD2_rco:units = "kg/m2/s" 
-> ALD2_rco:long_name = 1.e+15f 
-> ALD2_rco:missing_value = 1.e+15 
-> ALD2_slv(time,lat,lon)
-> ALD2_slv has proper dimension ordering (requirement for GCHP)
-> ALD2_slv:long_name = "ALD2 emission in sector slv" 
-> ALD2_slv:units = "kg/m2/s" 
-> ALD2_slv:long_name = 1.e+15f 
-> ALD2_slv:missing_value = 1.e+15 
-> ALD2_wst(time,lat,lon)
-> ALD2_wst has proper dimension ordering (requirement for GCHP)
-> ALD2_wst:long_name = "ALD2 emission in sector wst" 
-> ALD2_wst:units = "kg/m2/s" 
-> ALD2_wst:long_name = 1.e+15f 
-> ALD2_wst:missing_value = 1.e+15 
-> ALD2_shp(time,lat,lon)
-> ALD2_shp has proper dimension ordering (requirement for GCHP)
-> ALD2_shp:long_name = "ALD2 emission in sector shp" 
-> ALD2_shp:units = "kg/m2/s" 
-> ALD2_shp:long_name = 1.e+15f 
-> ALD2_shp:missing_value = 1.e+15 
-> conventions: "COARDS" 
-> title: "COARDS/netCDF file containing monthly emissions of ALD2" 

The following items DO NOT ADHERE to the COARDS standard:
---------------------------------------------------------------------------
-> The "history" global attribute is missing

The following optional items are RECOMMENDED:
---------------------------------------------------------------------------
-> Consider adding the "format" global attribute
-> 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).
---------------------------------------------------------------------------

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Feature Request New feature or request help needed: Open Research Problem An issue that is a matter of open scientific research rather than a code issue. topic: Configuration Files Related to GEOS-Chem configuration files topic: Input Data Related to input data
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants