drewpendergrass / CHEEREIO

This repository contains the code for CHEEREIO, which supports data assimilation and emissions inversions for arbitrary runs of the GEOS-Chem chemical transport model via an ensemble approach (i.e. without the model adjoint).
MIT License
10 stars 4 forks source link

Documentation Status

DOI

CHEEREIO

The CHEmistry and Emissions REanalysis Interface with Observations (CHEEREIO) is a set of Python and shell scripts that support data assimilation and emissions inversions for arbitrary runs of the GEOS-Chem chemical transport model via an ensemble approach (i.e. without the model adjoint). CHEEREIO follows four design principles:

  1. Easy to customize: Assimilate anything, in any GEOS-Chem configuration or simulation.
  2. Easy to maintain: Science automatically aligned with latest model version.
  3. Easy to deploy: One configuration file controls installation and settings
  4. Easy to link observations: Object-oriented observation operator implementation allows the user to rapidly add new kinds of data with minimal programming required.

Installation

Follow the guide on the documentation for installation. When you clone this repository, we recommend that you check out the latest release of CHEEREIO rather than using the main branch; this ensures reproducibility and minimizes bugs.

Documentation

Detailed documentation is available on ReadTheDocs, including installation instructions. If you encounter any problems not covered by the documentation, please open an issue on GitHub.

About CHEEREIO

The CHEmistry and Emissions REanalysis Interface with Observations (CHEEREIO) is a package that wraps the GEOS-Chem chemical transport model source code. After a simple modification of a single configuration file (ens_config.json), CHEEREIO automatically produces and compiles a template GEOS-Chem run directory, which it then copies into an ensemble. Each ensemble member comes with a randomized set of gridded emissions scaling factors for species specified by the user. As the ensemble of runs progresses, CHEEREIO will periodically pause the ensemble, compare with a set of observations (i.e. satellite, surface, and/or aircraft), and update relevant emissions scaling factors and chemical concentrations to best match reality given the uncertainties of measurements and model. CHEEREIO calculates this update via the 4D Asynchronous Localized Ensemble Transform Kalman Filter (4D-LETKF) as described in Hunt. et. al., [2007]. Because this approach is model agnostic (specifically, it does not rely on the adjoint), CHEEREIO supports emissions updates and chemical concentration corrections for arbitrary configurations of the GEOS-Chem model. However, the current CHEEREIO codebase assumes that GEOS-Chem code is version 13.0.0 or later (version 14 is supported)!