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

How to replace ship emission in GEOS-Chem with my own data #301

Open
hetingkun opened this issue Jan 4, 2025 · 5 comments
Open

How to replace ship emission in GEOS-Chem with my own data #301

hetingkun opened this issue Jan 4, 2025 · 5 comments
Labels
category: Question Further information is requested topic: Configuration Files Related to HEMCO configuration files

Comments

@hetingkun
Copy link

Your name

Tingkun

Your affiliation

Tsinghua University

Please provide a clear and concise description of your question or discussion topic.

I built a global ship emission inventory based on my own model. Emission data are in csv format with longitude, latitude and monthly emission of routine pollutants and GHGs (PM, NOx, SOx, HC, CO, CO2 etc.) with a spatial resolution of 0.1° × 0.1°. I want to use this data in GEOS-Chem, but i met a few problems.

  1. Where can i get the official speciation used in GEOS-Chem?I currently used the data from US EPA SPECIATE v5.3, and followed the definition in GEOS-Chem. Or is there any other tools i can use, such as the HEMCO module, to generated a user-defined ship emission. Please let me know if there's any detailed information.
  2. Is it possible to define the size distribution of ship emitted particles on my own. I suppose in GEOS-Chem only the size distribution of sea salt or dust is separately defined, while the rest sources shared a common modal distribution. But i want to focus solely on ship emission aerosols, and I read a paper using GEOS-Chem to simulate the micro-plastics, where they defined the size of this new entity. So I wonder where i can get more detailed instructions of doing so.

Many Thanks !

@hetingkun hetingkun added the category: Question Further information is requested label Jan 4, 2025
@yantosca yantosca added the topic: Configuration Files Related to HEMCO configuration files label Jan 6, 2025
@yantosca
Copy link
Contributor

yantosca commented Jan 6, 2025

Thanks for writing @hetingkun. A couple of thoughts:

  1. You will need to convert the csv files to COARDS-compliant netCDF, in order to be read by HEMCO. You might be able to do this in Python, you can read the csv file into a Pandas Dataframe and then convert that to an xArray Dataset. Then save the Dataset to netCDF. For more information please see our ReadTheDocs supplemental guides:
  1. For questions about the speciation, I would defer to the Emissions Working Group. Tagging @eamarais, @jaegle.

  2. I am not familiar with the paper on microplastics that you mentioned. That is not included in the standard GEOS-Chem model at this time. I would recommend that you contact the paper's authors.

@hetingkun
Copy link
Author

Thanks!
I actually tried to make a nc file, and I noticed that the emission data in GEOS-Chem is defined as the emission rate in kg/m2/s, so I wonder how can I get the grid area defined in the GEOS-Chem, considering the distortion of grids near the polar area.
And as for the speciation, I still need help from the Emission working group!

@yantosca
Copy link
Contributor

yantosca commented Jan 9, 2025

Thanks for the update @hetingkun. I just pushed a fix to GCPy (dev branch) so you can compute the grid box areas with that.

git clone https://github.com/geoschem/gcpy
git checkout dev

then you can use these functions, as in this example script

#!/usr/bin/env python3

import numpy as np
import gcpy

# Longitude parameters
lon_stride = 0.25
center_at_180 = True

# Latitude parameters
lat_stride = 0.3125
half_polar_grid = True

# Grid box lon & lat edges
lon_edge = gcpy.grid.calc_rectilinear_lon_edge(lon_stride, center_at_180)
lat_edge = gcpy.grid.calc_rectilinear_lat_edge(lat_stride, half_polar_grid)

# Grid box area
area = gcpy.grid.calc_rectilinear_grid_area(lon_edge, lat_edge)

print(f"Sum of global surface area [m2]: {np.sum(area)}")

@hetingkun
Copy link
Author

Thanks for your help. I've solved the problem in area calculation. And I still need the help from Emissions Working Group.

@eamarais
Copy link

I'd suggest taking a look at other emission inventories for guidance on speciation. For more formal guidance leading to co-authorship, please reach out to us via email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Question Further information is requested topic: Configuration Files Related to HEMCO configuration files
Projects
None yet
Development

No branches or pull requests

3 participants