Skip to content

Feature request: Mass-conserving vertical regridding function #242

@yantosca

Description

@yantosca

Discussed in https://github.com/geoschem/gcpy/discussions/241

Originally posted by pennelise July 31, 2023
GCPy doesn't currently have a post-processing vertical regridding function. A mass conserving post-processing vertical regridding function for GEOS-Chem would be useful for:

  • Applying satellite averaging kernels in post-processing (for the IMI, we now apply almost all of our operators in post, but only TROPOMI currently has a post-processing operator)
  • Interpolating concentrations from 72 -> 47 levels in post
  • Comparing concentrations between two different models (is this something we do?)
  • Help users avoid common pitfalls which do not conserve mass (e.g., using np.interp)

Hannah Nesser & I have developed python & FORTRAN code for mass-conserving vertical regridding based on the methodology in Keppens et. al, 2019, using code from Hannah's TROPOMI operator and my GOSAT + AIRS operators. Currently we are refactoring it for use as a general satellite observation operator, but we believe this code (or at least the vertical regridding portion) may belong in GCPy. Here is a link to the draft repository.

Here is a basic outline of the functionality:

  • Inputs: nobs x nedges for 1) satellite observations and 2) corresponding GEOS-Chem columns (requires GEOS-Chem LevelEdgeDiags output).
  • Outputs: GEOS-Chem concentrations interpolated to the satellite layer centers (nobs x nlayers) or satellite layer edges (nobs x nedges)
  • The code will be parallelized so it should be reasonably fast in Python as well as FORTRAN.

Our questions:

  • Is this something that belongs in GCPy?
  • Is GCST interested in only the vertical regridding aspect, or also the satellite operator aspects (e.g., applying the pressure weighting + averaging kernel for individual satellites)
  • If so, at what stage of the project should we start developing off the GCPy codebase rather than a separate branch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions