<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-16-4793-2023</article-id><title-group><article-title>CHEEREIO 1.0: a versatile and user-friendly ensemble-based chemical data assimilation and emissions inversion platform<?xmltex \hack{\break}?> for the GEOS-Chem chemical transport model</article-title><alt-title>CHEEREIO 1.0</alt-title>
      </title-group><?xmltex \runningtitle{CHEEREIO 1.0}?><?xmltex \runningauthor{D.~C.~Pendergrass~et~al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Pendergrass</surname><given-names>Drew C.</given-names></name>
          <email>pendergrass@g.harvard.edu</email>
        <ext-link>https://orcid.org/0000-0002-8210-4983</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Jacob</surname><given-names>Daniel J.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Nesser</surname><given-names>Hannah</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-6778-037X</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Varon</surname><given-names>Daniel J.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-3207-5731</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Sulprizio</surname><given-names>Melissa</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Miyazaki</surname><given-names>Kazuyuki</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-1466-4655</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Bowman</surname><given-names>Kevin W.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-8659-1117</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>School of Engineering and Applied Sciences, Harvard University, Cambridge, MA, USA</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>NASA Jet Propulsion Laboratory, Pasadena, CA, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Drew C. Pendergrass (pendergrass@g.harvard.edu)</corresp></author-notes><pub-date><day>24</day><month>August</month><year>2023</year></pub-date>
      
      <volume>16</volume>
      <issue>16</issue>
      <fpage>4793</fpage><lpage>4810</lpage>
      <history>
        <date date-type="received"><day>30</day><month>March</month><year>2023</year></date>
           <date date-type="accepted"><day>20</day><month>July</month><year>2023</year></date>
           <date date-type="rev-recd"><day>10</day><month>July</month><year>2023</year></date>
           <date date-type="rev-request"><day>19</day><month>April</month><year>2023</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2023 Drew C. Pendergrass et al.</copyright-statement>
        <copyright-year>2023</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023.html">This article is available from https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d1e144">We present a versatile, powerful, and user-friendly chemical data assimilation toolkit for simultaneously optimizing emissions and concentrations of
chemical species based on atmospheric observations from satellites or suborbital platforms. The CHemistry and Emissions REanalysis Interface with
Observations (CHEEREIO) exploits the GEOS-Chem chemical transport model and a localized ensemble transform Kalman filter algorithm (LETKF) to
determine the Bayesian optimal (posterior) emissions and/or concentrations of a set of species based on observations and prior information using an
easy-to-modify configuration file with minimal changes to the GEOS-Chem or LETKF code base. The LETKF algorithm readily allows for nonlinear
chemistry and produces flow-dependent posterior error covariances from the ensemble simulation spread. The object-oriented Python-based design of
CHEEREIO allows users to easily add new observation operators such as for satellites. CHEEREIO takes advantage of the Harmonized Emissions Component (HEMCO) modular structure of
input data management in GEOS-Chem to update emissions from the assimilation process independently from the GEOS-Chem code. It can seamlessly
support GEOS-Chem version updates and is adaptable to other chemical transport models with similar modular input data structure. A post-processing
suite combines ensemble output into consolidated NetCDF files and supports a wide variety of diagnostic data and visualizations. We demonstrate
CHEEREIO's capabilities with an out-of-the-box application, assimilating global methane emissions and concentrations at weekly temporal resolution
and 2<inline-formula><mml:math id="M1" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M2" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M3" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> spatial resolution for 2019 using TROPOspheric Monitoring Instrument (TROPOMI) satellite observations. CHEEREIO achieves a 50-fold improvement in
computational performance compared to the equivalent analytical inversion of TROPOMI observations.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>National Aeronautics and Space Administration</funding-source>
<award-id>80NSSC21K1057</award-id>
</award-group>
<award-group id="gs2">
<funding-source>National Science Foundation</funding-source>
<award-id>n/a</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e181">Data assimilation is a field of applied mathematics that studies the most probable combination of a physical model, observational data, and prior
information to define the state of a system. Many modern data assimilation algorithms have been motivated by problems in numerical weather prediction
(Kalnay, 2003), and the field has more recently expanded to address problems in atmospheric chemistry (Elbern and Schmidt, 2001; Kahnert, 2008;
Bocquet et al., 2015). The physical model, also called the forward model, predicts the observations on the basis of knowledge of the state of the
system. For assimilation of chemical concentrations (chemical data assimilation), this forward model is a chemical transport model (CTM) that
simulates the 3D fields of species concentrations by solving the corresponding continuity equations (Brasseur and Jacob, 2017). With the advent of
satellite constellations measuring atmospheric composition together with increasingly dense networks of surface observations, chemical data
assimilation is now commonly used to quantify emissions (Miyazaki et al., 2017; Jiang et al., 2018; Qu et al., 2019), to construct 3D concentration
fields for chemical<?pagebreak page4794?> reanalyses and forecasts (Miyazaki et al., 2015, 2020; Flemming et al., 2015; Ma et al., 2019), and to diagnose CTM biases (Emili
et al., 2014; Stanevich et al., 2021). The use of chemical data assimilation to quantify emissions is commonly referred to as an inversion in the
atmospheric chemistry community.</p>
      <p id="d1e184">Most data assimilation algorithms involve the optimization of a Bayesian scalar cost function <inline-formula><mml:math id="M4" display="inline"><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> assuming Gaussian error probability density
functions (PDFs) (Brasseur and Jacob, 2017).
          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M5" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo>-</mml:mo><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mi mathvariant="bold">R</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo>-</mml:mo><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e319">Here <inline-formula><mml:math id="M6" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> is the state vector   to be optimized (consisting of emissions and/or concentrations), <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is the initial prediction of the state vector based
on prior information or a forward model forecast, <inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is the prior (also called background or forecast) error covariance matrix,
<inline-formula><mml:math id="M9" display="inline"><mml:mi mathvariant="bold-italic">y</mml:mi></mml:math></inline-formula> is the suite of observed atmospheric concentrations arranged as a vector, <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal" class="Radical">⚫</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is an observation operator that transforms the
state vector <inline-formula><mml:math id="M11" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> from the state space to the observation space, and <inline-formula><mml:math id="M12" display="inline"><mml:mi mathvariant="bold">R</mml:mi></mml:math></inline-formula> is the observational error covariance matrix. In the case of a
state vector of emission fluxes, the observation operator <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal" class="Radical">⚫</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is a CTM mapping emissions to the observed concentrations. Solving for the
minimum of the cost function (<inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) defines the optimized posterior (also called analysis) estimate <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> for the
state vector.</p>
      <p id="d1e432">In the case in which <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi class="Radical" mathvariant="normal">⚫</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is linear (i.e., representable by a matrix), an analytic solution is available with closed-form characterization of
the posterior error covariance matrix (Rodgers, 2000). In nonlinear or high-dimensional linear cases, a variational approach can be used instead to
iteratively minimize the cost function by numerical methods. The three-dimensional variational approach (3D-Var) calculates the gradient of the cost
function for observations <inline-formula><mml:math id="M17" display="inline"><mml:mi mathvariant="bold-italic">y</mml:mi></mml:math></inline-formula> in a time window sufficiently short that the time evolution of the physical system can be neglected (Asch et al.,
2016). Four-dimensional variational assimilation (4D-Var) accounts for nonlinear evolution of the system over the course of an assimilation time
window through use of the adjoint of the physical model, which requires construction of the tangent linear model (TLM) for the CTM; the TLM aligns the
model state with observations in time while preserving the correct evolution of the physical system (Courtier et al., 1994).</p>
      <p id="d1e457">Kalman filters are a general class of data assimilation systems where the time evolution of the state vector is optimized by sequential assimilation
of a time series of observations in which the optimal solution at a given time step serves as a basis for the prior estimate in the next time
step. Assimilation thus proceeds over successive assimilation time windows, though the Kalman filter can also be run backward (Rodgers, 2000). The
original Kalman filter requires a linear forward model, but it can be combined with the TLM of the physical model to form the extended Kalman filter
(EKF), which applies to nonlinear problems. The EKF has been used for atmospheric chemistry problems such as quantifying emissions of nitrogen oxides
(<inline-formula><mml:math id="M18" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M19" display="inline"><mml:mo>≡</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M20" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">NO</mml:mi></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M21" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M22" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) from <inline-formula><mml:math id="M23" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> satellite data (Mijling and van der A, 2012; Ding et al., 2017).</p>
      <p id="d1e516">Ensemble Kalman filters for chemical data assimilation, including the localized ensemble transform Kalman filter (LETKF) used in this work (Hunt
et al., 2007), apply an ensemble of CTM simulations over successive assimilation time windows to approximate the prior error covariance
matrix <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> and its evolution over time. Like EKF and 4D-Var, LETKF can be readily applied to nonlinear problems; however, it
avoids the need for a TLM because it is powered by an ensemble of CTM simulations which capture the nonlinearity of the system. Each ensemble member
is initialized with random perturbations applied to emissions or concentrations of interest, and the ensemble is evolved for the assimilation time
window using the CTM. At assimilation time, the ensemble spread is used to approximate the prior error covariance matrix <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> and
from there solve for the minimum of the cost function. The ensemble is then updated to reflect the optimized state, including emissions and
concentrations, and the cycle repeats as in the case of the classic Kalman filter. Localization in LETKF means that optimization of a given state
vector element is done using only observations in a localized domain of influence in order to make the problem computationally tractable. In practice,
even though the state vector optimized is quite large, the ensemble can be of modest size (typically 32 or 48 members) and the LETKF will converge on
the correct solution as time progresses (Hunt et al., 2007).</p>
      <p id="d1e541">LETKF has been used extensively in chemical data assimilation and has benefits compared with other algorithms, most notably the ease of
implementation for a wide variety of simulations. LETKF and related ensemble Kalman filter methods have been used for <inline-formula><mml:math id="M26" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> flux inversions
(Liu et al., 2016; Kong et al., 2022); single-species studies of <inline-formula><mml:math id="M27" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M28" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M29" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> emissions (Miyazaki et al., 2012a;
Dai et al., 2021; van der Graaf et al., 2022); and analysis of methane emission trends (Feng et al., 2022; Zhu et al., 2022). Multi-species
assimilation, 4D assimilation of temporally scattered observations, and flexibility in state vector definition are easy to implement under the LETKF
framework; the algorithm also provides detailed error characterization including correlations as part of the solution. However, because ensemble
methods rely on a relatively small number of simulations to simulate the problem space, the benefits of the LETKF come with issues of undersampling,
which will be discussed in Sect. 2.2.</p>
      <p id="d1e588">The ability of LETKF to simultaneously assimilate concentrations and emissions is of special importance to atmospheric chemists. In chemical data
assimilation for operational forecasting, updates are often only applied to concentrations, but this fails to address the root issue of incorrect
emissions, an especially acute problem for species with short lifetimes such as <inline-formula><mml:math id="M30" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (Inness et al., 2015). On the other<?pagebreak page4795?> hand, inverse
studies focused on optimizing emissions attribute all systematic discrepancies between the model and observations to emissions, even though CTM
transport or observing errors may be responsible; indeed, <inline-formula><mml:math id="M31" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> flux estimates calculated via inverse methods have been shown to be sensitive
to transport errors (Schuh et al., 2019; 2022). Optimizing concentrations as well as emissions allows the data assimilation system to address both
issues, assuming that prior error settings are posed appropriately. While this is possible to do with other algorithms, it is easy to do with LETKF
due to the ability to add any additional parameter to the prior error covariance matrix and apply variable localization methods to optimize the
application of observational constraints on different sets of concentrations and emissions.</p>
      <p id="d1e613">Here we present the CHemistry and Emissions REanalysis Interface with Observations (CHEEREIO), a user-friendly tool that provides a platform for
versatile LETKF chemical data assimilation powered by the widely used GEOS-Chem CTM. Implemented as a lightweight wrapper for GEOS-Chem, CHEEREIO
gives users the ability to design and run chemical data assimilation applications without modifying model source code or learning a new
code base. CHEEREIO's flexibility and simple design are enabled by the LETKF algorithm and the modular structure of GEOS-Chem, in particular its Harmonized Emissions Component (HEMCO)
data input component (Keller et al., 2014; Lin et al., 2021). CHEEREIO is designed to be easily configurable for a range of applications including
multi-species data assimilation, joint optimization of emissions and concentrations, and near-real-time monitoring of emissions. Coded in Python with
an object-oriented framework, CHEEREIO readily accommodates new observation operators such as for new satellite instruments. CHEEREIO and all of its
components are open-source, ensuring scientific transparency. CHEEREIO complements existing open-source inversion tools including the Joint Effort for
Data Assimilation Integration (JEDI), a C<inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:math></inline-formula> and Fortran-based platform for model-generic data assimilation (Trémolet and Auligné, 2020), and
PyOSSE, another Python-based platform using GEOS-Chem for observing system simulation experiments
(<uri>https://www.geos.ed.ac.uk/~lfeng/</uri>, last access: 22 August 2023) (Feng et al., 2023). For atmospheric chemistry applications,
CHEERIO is simpler to use than JEDI and more versatile than PyOSSE. This paper provides a high-level overview and demonstration of CHEEREIO; detailed
documentation and user support are available online (cheereio.readthedocs.io).</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>CHEEREIO components</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>The physical model: GEOS-Chem</title>
      <p id="d1e644">GEOS-Chem is a three-dimensional CTM driven by assimilated meteorological data from the Goddard Earth Observation System (GEOS) of the NASA Global
Modeling and Assimilation Office (GMAO). Two alternative data sets can be used, either the GEOS Fast Processing (GEOS-FP) data at
0.25<inline-formula><mml:math id="M33" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M34" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 0.3125<inline-formula><mml:math id="M35" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> native resolution or the GEOS Modern-Era Retrospective Analysis for Research and Applications version 2
(MERRA-2) data at 0.5<inline-formula><mml:math id="M36" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M37" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 0.625<inline-formula><mml:math id="M38" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> native resolution. Both have 1 <inline-formula><mml:math id="M39" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">h</mml:mi></mml:mrow></mml:math></inline-formula> temporal resolution for transport (archived winds)
and extend from the surface to the mesopause. GEOS-Chem  simulates atmospheric species concentrations by solving the coupled 3D Eulerian continuity equations
on a global or user-selected nested domain at the native grid resolution of the GEOS data or at degraded resolution for computational economy. Input
data files are regridded on the fly to user-specified resolution using the Harmonized Emissions Component (HEMCO) (Keller et al., 2014; Lin et al.,
2021). CHEEREIO supports all GEOS-Chem applications from version 13.0.0 and later including oxidant–aerosol chemistry, aerosol only, carbon gases, and
mercury, either as global or nested-grid regional simulations. GEOS-Chem High Performance (GCHP) (Eastham et al., 2018; Martin et al., 2022), which
uses distributed memory rather than shared memory for parallelization, is not currently supported.</p>
      <p id="d1e706">HEMCO is a critical GEOS-Chem module enabling the interface with CHEEREIO. It can apply gridded scaling factors stored in NetCDF files to any input
field, such as emissions. This allows emissions updates calculated by CHEEREIO to be seamlessly loaded into GEOS-Chem without modification of source
code.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>The data assimilation algorithm: localized ensemble transform Kalman filter (LETKF)</title>
      <p id="d1e717">The LETKF algorithm optimizes a state vector of emissions and concentrations to minimize the cost function in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) (Hunt et al., 2007). We
initialize <inline-formula><mml:math id="M40" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> ensemble members at time <inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>o</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and run the forward model (GEOS-Chem) in parallel for a user-specified time (termed the assimilation
window) for each of these ensemble members. Ensemble members can be thought of as a Monte Carlo sample representing the spread of atmospheric
conditions resulting from our uncertainty in prior emissions; each member represents the atmospheric conditions from a random emissions perturbation
sampled from a user-specified PDF. Before assimilation begins, the ensemble is run for a spin-up period to ensure the propagation of information from
the perturbed emissions. Alternatively, the problem can also be set up by perturbing concentrations to represent prior uncertainty in the atmospheric
state. Ensemble size is typically between 24 and 48, with the exact number to be determined by sensitivity testing,<?pagebreak page4796?> where the user identifies a size
that balances error minimization with computational feasibility. Because ensemble methods randomly sample the parameter space, increasing ensemble
size gradually yields diminishing return. This is unlike the analytical approach to inversions, where the number of simulations is set by the size of
the state vector and diminishing return is defined by the rank of the problem (Nesser et al., 2021). In general, fewer ensemble members are required
if there are fewer parameters to optimize (Miyazaki et al., 2012b; Liu et al., 2019). After the runs are complete, we construct the state vectors
<inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> representing the concentrations and/or emissions to be optimized for each of the <inline-formula><mml:math id="M43" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> ensemble members (indexed
by <inline-formula><mml:math id="M44" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>).</p>
      <p id="d1e768">The LETKF algorithm, which we describe in the remainder of this section, is typically applied to very large state vectors, for which global
optimization would be computationally prohibitive. The solution of Hunt et al. (2007) is to localize the calculation within a certain radius of the
grid cell being optimized, considering only observations within that radius. Localized state vectors are formed by concatenating emissions at a given
grid cell with concentrations within a given radius. Beyond reducing state vector size, this approach creates an embarrassingly parallel problem,
where the cost function can be minimized independently for every localized point. The Hunt et al.  (2007) localization approach also minimizes
spurious correlations, which emerge in ensemble approaches due to a limited sample size; because the Monte Carlo sample is far smaller than the
dimensionality of the state vector, random points will be spuriously correlated in the prior covariance matrix <inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> encoded by
the ensemble, leading to an incorrect assimilation increment. The spurious correlation problem is especially pronounced between distant grid cells
where we would expect correlations to be near zero, a problem eliminated by appropriate localization. Such localization in space is not generally
useful in the analytical inversion approach, where distant correlations are set to zero and observations are ingested sequentially (Brasseur and
Jacob, 2017). The precise radius used for localization should be determined by the user via sensitivity tests, considering that longer-lived species
require larger localization radii; indeed, within a single inversion, multiple localization radii can be used for different components of the state
vector (Miyazaki et al., 2012b). For the remainder of the equations in this section, all vectors and matrices are localized and computations are
performed in parallel.</p>
      <p id="d1e782">To optimize the emissions and concentrations of a given grid cell, we first construct the ensemble state vectors <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> using
model data. From these prior state vectors the prior perturbation matrix <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is formed from the <inline-formula><mml:math id="M48" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> vector columns
<inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">X</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.
            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M50" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">X</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>m</mml:mi></mml:msubsup><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></disp-formula></p>
      <?pagebreak page4797?><p id="d1e899">Here <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">X</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> represents the <inline-formula><mml:math id="M52" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th column of the <inline-formula><mml:math id="M53" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> <inline-formula><mml:math id="M54" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M55" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> matrix <inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M57" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the length of
the state vector; each column of <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> consists of the state vector from an ensemble member minus the mean state vector. The prior
covariance matrix <inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> can be constructed by multiplying <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> with its transpose (specifically,
<inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:msup><mml:mo>)</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>), but this is not used directly in LETKF
calculations.
<?xmltex \hack{\newpage}?>
The model predictions made during the assimilation window must be compared to observations. Hence we construct prior vectors of simulated observations
<inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and a corresponding simulated observation perturbation matrix <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> formed from the <inline-formula><mml:math id="M64" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> vector columns
<inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.
            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M66" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>;</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>;</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>m</mml:mi></mml:msubsup><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e1191">4D-LETKF, the method used in CHEEREIO, constructs <inline-formula><mml:math id="M67" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> such that all simulated observations are timed to line up as closely as
possible with actual observations (Hunt et al., 2007). 3D assimilation, by contrast, only aligns observations in space but uses a single model state
(in particular, the state at assimilation time) to construct <inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, leading to significant representation error. For 4D-LETKF,
we load in model history files closest in time to the observation of interest and accept a modest representation error; the user can specify the time
resolution via the CHEEREIO configuration file. Hence in practice we apply the operator <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal" class="Radical">⚫</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> to the forward model history, not to the state
vector which represents the model state at a specific point in time. Methods which make use of the TLM, like 4D-Var and EKF, avoid temporal
representation error due to the continuous ingestion of observations on the internal time step of the TLM, but they require major time investment in
TLM development and maintenance.</p>
      <p id="d1e1234">Computation of the cost function in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) involves inversion of the prior error covariance matrix <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, but this is not
possible in the state space (of dimension <inline-formula><mml:math id="M71" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> because by construction <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is of rank <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> (the columns of the
<inline-formula><mml:math id="M74" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> <inline-formula><mml:math id="M75" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M76" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> matrix <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> sum to the 0 vector). Hence a posterior error covariance matrix <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> must be
estimated in the <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> dimensional subspace <inline-formula><mml:math id="M80" display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula> spanned by the ensemble perturbations, where the inverse is well-defined. The mathematics simplify by
treating <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> as a linear transformation from some <inline-formula><mml:math id="M82" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula>-dimensional space <inline-formula><mml:math id="M83" display="inline"><mml:mover accent="true"><mml:mi>S</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> to <inline-formula><mml:math id="M84" display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula>, allowing us to redefine the cost
function optimization in <inline-formula><mml:math id="M85" display="inline"><mml:mover accent="true"><mml:mi>S</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> where the relevant quantities are well-behaved (Hunt et al., 2007). The posterior error covariance in <inline-formula><mml:math id="M86" display="inline"><mml:mover accent="true"><mml:mi>S</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula>
noted with a tilde <inline-formula><mml:math id="M87" display="inline"><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> is an <inline-formula><mml:math id="M88" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> <inline-formula><mml:math id="M89" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M90" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> matrix computed as follows.
            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M91" display="block"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold">R</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:mfenced><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e1515">The full derivation of <inline-formula><mml:math id="M92" display="inline"><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> is given in Hunt et al. (2007). Here <inline-formula><mml:math id="M93" display="inline"><mml:mi mathvariant="bold">I</mml:mi></mml:math></inline-formula> is the <inline-formula><mml:math id="M94" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> <inline-formula><mml:math id="M95" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M96" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> identity matrix,
<inline-formula><mml:math id="M97" display="inline"><mml:mi mathvariant="bold">R</mml:mi></mml:math></inline-formula> is the observational error covariance matrix, and <inline-formula><mml:math id="M98" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> is a regularization constant set by the user. <inline-formula><mml:math id="M99" display="inline"><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> plays
the same role in LETKF assimilation as the posterior covariance matrix <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> plays in the classical Kalman filter, connecting the
state vector entries so that the calculated update is consistent with the internal correlations of the system. The regularization constant effectively
scales observational errors and is designed to balance the weight given to observations within the assimilation window. <inline-formula><mml:math id="M101" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula> is an inflation
factor specified by the user, usually between 0 and 0.1, which accounts for overconfidence in the assimilated ensemble; <inline-formula><mml:math id="M102" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula>  does not affect
the ensemble mean but it does increase the ensemble spread, with larger values pushing ensemble members away from the ensemble mean. In practice,
ensemble spread can decrease with each assimilation cycle to values so small that the system is no longer able to update (nearly infinite confidence is
given to the prior term, so subsequent observations carry no weight). Indeed, if <inline-formula><mml:math id="M103" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> balances the weight given to observations within the
present assimilation window, <inline-formula><mml:math id="M104" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula> can be thought of as a term that balances the weight given to observations from all previous assimilation
windows.</p>
      <p id="d1e1629">The mean posterior state vector in the original space is then given by
            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M105" display="block"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:mi mathvariant="italic">γ</mml:mi><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">Y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold">R</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M106" display="inline"><mml:mi mathvariant="bold-italic">y</mml:mi></mml:math></inline-formula> is the vector of observations. The posterior perturbation matrix is given by
            <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M107" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mstyle scriptlevel="+1"><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e1768">From here, the new ensemble state vectors can be constructed by adding <inline-formula><mml:math id="M108" display="inline"><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> back to each column of
<inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. The LETKF gives error characterization from the assimilation; to obtain this, we need to transform <inline-formula><mml:math id="M110" display="inline"><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula>
back from the space <inline-formula><mml:math id="M111" display="inline"><mml:mover accent="true"><mml:mi>S</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> to the original state space. Since we defined <inline-formula><mml:math id="M112" display="inline"><mml:mover accent="true"><mml:mi>S</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> with the linear transformation <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>,
the posterior error covariance matrix is given by
            <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M114" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:mover accent="true"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e1882">With the ensemble updated and errors characterized, the ensemble can be evolved using GEOS-Chem for the next assimilation window. Importantly, the
ensemble is not re-initialized for these new runs; the assimilated state of the previous assimilation window becomes the initial prior state of the
next assimilation window. When the runs in the new assimilation window are complete, the whole LETKF cycle begins again.</p>
      <?pagebreak page4798?><p id="d1e1886">Many variations of the ensemble Kalman filter algorithms have been developed in the chemical data assimilation literature, each designed to better
handle the behaviors of certain atmospheric constituents. For example, the Carbon Tracker <inline-formula><mml:math id="M115" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> system handles the assimilation of long-lived
<inline-formula><mml:math id="M116" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> via a sliding-window approach, where surface fluxes from a given time period are estimated several times using a varying set of
observations that evolve in time (Peters et al., 2005; Bruhwiler et al., 2014). Similarly, the run-in-place method changes the behavior of the
assimilation window to better handle long-lived gases like <inline-formula><mml:math id="M117" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> (Liu et al., 2019). With the run-in-place functionality activated, the LETKF assimilation
update is calculated using a long period of observations (e.g., 1 week) but the assimilation window is advanced forward for a smaller amount of time
(e.g., 1 <inline-formula><mml:math id="M118" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>). Run-in-place simulations thus maintain linear growth in posterior perturbations and allow the period in which the assimilation update
is calculated to experience the emissions adjustment, giving the system more time to correct assimilation errors. CHEEREIO supports many of these
variations on the LETKF, as discussed in Sect. 3.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Description of the CHEEREIO platform</title>
      <p id="d1e1939">In this section, we describe the implementation of the LETKF in the CHEEREIO platform. We designed this tool to ensure maximum scientific flexibility
for a diverse user base, while maintaining an abstracted interface to make the tool easy to use.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1" specific-use="star"><?xmltex \currentcnt{1}?><?xmltex \def\figurename{Figure}?><label>Figure 1</label><caption><p id="d1e1944">Schematic of the CHEEREIO workflow, divided into three steps: initialization, runtime, and post-processing. All simulations are initialized with a template GEOS-Chem run directory generated by CHEEREIO according to user-specified settings, which is then copied into an ensemble of <inline-formula><mml:math id="M119" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> run directories, one per ensemble member, each with a unique set of emissions perturbed according to user settings. At runtime, GEOS-Chem simulates atmospheric concentrations reflecting these perturbed emissions for each ensemble member, which are then compared to observations to generate an assimilated suite of concentrations and emissions via the LETKF procedure. After the specified period is assimilated, CHEEREIO post-processing scripts consolidate the ensemble into a set of data files, figures, animations, and statistics for user analysis. Input data files are shown by dark blue cylinders on the left, while user settings are shown on the right.</p></caption>
        <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023-f01.png"/>

      </fig>

<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>General workflow</title>
      <p id="d1e1967">Figure 1 shows a schematic of the CHEEREIO workflow including initialization, spin-up, sequential GEOS-Chem forward model runs and LETKF assimilation,
and post-processing. Here we give a high-level overview of how CHEEREIO can be customized and deployed for any chemical data assimilation applications
with GEOS-Chem. In subsequent sections, we will offer more detailed descriptions of the software design and structure, omitting technical details
provided in the web documentation (<uri>https://cheereio.readthedocs.io</uri>, last access: 22 August 2023).</p>
      <?pagebreak page4799?><p id="d1e1973">The CHEEREIO software package includes a suite of shell and Python scripts for assimilation, run management, observation operations, and
post-processing, which can be separated into three main sequential periods in the CHEEREIO workflow, as shown in Fig. 1: initialization time, runtime,
and post-processing time. Before initialization begins, users specify the simulation they would like to run via an ensemble configuration file
(ens_config.json). CHEEREIO generates a template GEOS-Chem run directory based on user settings, which is copied into an ensemble of
<inline-formula><mml:math id="M120" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> run directories, one per ensemble member, each with a unique set of emissions perturbed according to user settings (Sect. 3.2). After the ensemble
is initialized, the user submits a batch script which launches an ensemble of jobs, each running an instance of GEOS-Chem. Once the model simulation
for the assimilation window is complete, CHEEREIO gathers model output files and observation data and performs the LETKF assimilation. The cycle of
GEOS-Chem runs and LETKF assimilation repeats until the assimilation is complete for the entire user-specified period. Run management and LETKF
implementation are discussed in Sect. 3.3. Upon completion, the user can execute a post-process workflow job to make a default set of figures, movies,
and consolidated data files; they can also deploy pre-written functions to produce custom output and statistics (Sect. 3.4). In the coming sections,
we expand on each of these components of the CHEEREIO workflow.
<?xmltex \hack{\newpage}?></p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Ensemble initialization</title>
      <p id="d1e1993">The CHEEREIO ensemble initialization workflow is divided into four phases, as shown in Fig. 1: (1) template run directory creation, (2) spin-up of
template run directory, (3) ensemble initialization and prior emissions sampling, and (4) spin-up of the ensemble spread.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1" specific-use="star"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e1999">Selected parameters set by the CHEEREIO configuration file.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="justify" colwidth="120mm"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Parameter</oasis:entry>
         <oasis:entry colname="col2">Description</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">General parameters</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">sim_name</oasis:entry>
         <oasis:entry colname="col2">Type of GEOS-Chem simulation (oxidant–aerosol chemistry, aerosol only, carbon species, mercury)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">res</oasis:entry>
         <oasis:entry colname="col2">Horizontal resolution</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">region</oasis:entry>
         <oasis:entry colname="col2">For nested simulations, specifications for the nested domain</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">start_date, end_date</oasis:entry>
         <oasis:entry colname="col2">Start and end dates for the assimilation</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">burn_in_end</oasis:entry>
         <oasis:entry colname="col2">Discard results prior to this date</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">assim_time</oasis:entry>
         <oasis:entry colname="col2">Length of the assimilation window</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">State vector settings</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">state_vector_conc</oasis:entry>
         <oasis:entry colname="col2">Species concentrations in state vector</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">control_vector_emis</oasis:entry>
         <oasis:entry colname="col2">2D emissions in state vector</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">state_vector_conc_representation</oasis:entry>
         <oasis:entry colname="col2">Representation of concentrations in the state vector (all 3D values, column sums, surface values, etc.)</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Output configuration</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">HistorySpeciesConcToSave</oasis:entry>
         <oasis:entry colname="col2">Species concentrations to save to history files</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">HemcoDiagsToProcess</oasis:entry>
         <oasis:entry colname="col2">Which HEMCO diagnostics to include in post-processing, such as total anthropogenic emissions of a given species.</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Observation configuration</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">observed_species</oasis:entry>
         <oasis:entry colname="col2">Species observed</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">OBSERVER_dirs</oasis:entry>
         <oasis:entry colname="col2">Directory storing observation files</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">LETKF settings</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">regularizing_factor_gamma</oasis:entry>
         <oasis:entry colname="col2">Parameter <inline-formula><mml:math id="M121" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula>, adjusts weight assigned to observations</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">inflation_factor</oasis:entry>
         <oasis:entry colname="col2">Ensemble inflation factor <inline-formula><mml:math id="M122" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">LOCALIZATION_RADIUS_km</oasis:entry>
         <oasis:entry colname="col2">Localization radius, in kilometers (km)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><?xmltex \gdef\@currentlabel{1}?></table-wrap>

      <?pagebreak page4800?><p id="d1e2226">Initialization begins when the user specifies the simulation they would like to run by modifying a configuration file (ens_config.json), which
includes all model and assimilation settings. Table 1 lists important parameters that can be tuned in this configuration file. LETKF results respond
strongly to the localization radius (LOCALIZATION_RADIUS_km), the regularization factor <inline-formula><mml:math id="M123" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> (regularization_factor_gamma), and the ensemble
inflation factor <inline-formula><mml:math id="M124" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula> (inflation_factor), all of which modulate the weight given to observations in the assimilation calculation. The
assimilation window length (assim_time) governs the timescale of the response of the LETKF system to changes in observations and also strongly
influences results. Detailed instructions on all settings are in the online documentation (cheereio.readthedocs.io). CHEEREIO then creates a template
GEOS-Chem run directory reflecting user settings, which will eventually be copied into an ensemble of <inline-formula><mml:math id="M125" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> run directories, one per ensemble member; if
users modify the template before the ensemble is created, such as to customize emissions inventories, their adjustments will be reflected in each
ensemble member. Hence the template run directory allows users to customize their simulations beyond the parameters available in the ens_config.json
configuration file. Like any atmospheric model, CHEEREIO must be spun up before any run begins so that it reflects realistic atmospheric conditions;
spinning up the template run directory allows the user to run one universal spin-up simulation for all <inline-formula><mml:math id="M126" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> ensemble members.</p>
      <p id="d1e2258">With the template initialized, compiled, and spun up, CHEEREIO copies the template into an ensemble of <inline-formula><mml:math id="M127" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> run directories. Each ensemble member is
differentiated by a unique initial perturbation to user-specified emissions, reflecting prior uncertainty in emissions. For example, users interested
in assimilating <inline-formula><mml:math id="M128" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> observations might specify that they have some prior uncertainty in <inline-formula><mml:math id="M129" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> emissions; CHEEREIO will then
initialize unique grids of <inline-formula><mml:math id="M130" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> emissions in each ensemble member run directory by drawing samples from a user-specified PDF that
perturb existing emissions inventories. These prior errors can be sampled from a normal distribution and can include spatial correlations specified by
a correlation distance.</p>
      <p id="d1e2301">Users can choose to use emissions sampled from either a normal or lognormal spread. If users opt for lognormal emissions, then CHEEREIO samples
multiplicative perturbations from a normal distribution centered on zero and then exponentiates to obtain a lognormally distributed sample with a mode
of one (i.e., the prior). To meet the LETKF algorithm assumptions, in the lognormal case emissions are transformed back into a normal distribution
during the LETKF calculation, before being exponentiated back to a lognormal<?pagebreak page4801?> for use in GEOS-Chem. Benefits of using a lognormal spread include
natural protection against negative scaling factors (the lognormal distribution is positive) and a more realistic representation of high-tail
uncertainties in emissions inventories.</p>
      <p id="d1e2304">CHEEREIO grants wide flexibility to users in how emissions perturbations are defined across the ensemble. Users can group emissions of multiple
species together into one consolidated entry in the state vector (e.g., <inline-formula><mml:math id="M131" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), updated at once at assimilation time. Users can also
differentiate emissions by source by separately perturbing subsets of emissions, such as methane from oil and gas and methane from agriculture. The
resulting assimilation will provide the user with separate emissions updates for each source, allowing users to easily run source attribution
studies. Sectoral separation of emissions is implemented naturally in the LETKF formulation by defining the state vector so that separate source
sectors have separate 2D representations; if sources overlap in space, the assimilation update will increment both according to the correlation
strength in the prior error covariance matrix, which the user must keep in mind while interpreting source separation results.</p>
      <p id="d1e2318">Before the assimilation cycle begins, users must run a CHEEREIO-specific spin-up process to create a spread in simulated atmospheric conditions across
ensemble members, reflecting the initial perturbations in emissions. Because the LETKF algorithm uses spreads in simulated concentrations across the
ensemble to approximate the prior error covariance matrix <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, the model must be run for some period before assimilation begins
in order to ensure that variations in concentrations across ensemble members reflect variations in emissions. If this ensemble-wide spin-up is
neglected or run for too short a period, <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> will be too small and observations will be neglected (because they will be weighted
negligibly in the cost function).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2" specific-use="star"><?xmltex \currentcnt{2}?><?xmltex \def\figurename{Figure}?><label>Figure 2</label><caption><p id="d1e2345">Schematic of CHEEREIO runtime routines and job control procedures. CHEEREIO is run as an array of <inline-formula><mml:math id="M134" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> separate jobs on a computational cluster, one for each ensemble member. These <inline-formula><mml:math id="M135" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs, operating in parallel, alternate between running GEOS-Chem and running the LETKF algorithm for a subset of grid cells, as shown by the light yellow boxes; the <inline-formula><mml:math id="M136" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs are coordinated by a single job controller shared by the entire ensemble (shown in light red), ensuring that the ensemble remains synchronized. Boxes in blue show data input into CHEEREIO processes.</p></caption>
          <?xmltex \igopts{width=369.885827pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023-f02.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Runtime</title>
      <p id="d1e2383">Figure 2 shows a schematic of the CHEEREIO runtime processes. From a computational cluster perspective, CHEEREIO is an array of <inline-formula><mml:math id="M137" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs, where <inline-formula><mml:math id="M138" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> is
the number of ensemble members specified by the user; each job is allocated <inline-formula><mml:math id="M139" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> cores as specified by the user. Each job alternates between running
GEOS-Chem for an ensemble member and running assimilation scripts for a subset of grid cells – each parallelized separately across the <inline-formula><mml:math id="M140" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> cores
allocated to each job. In this section, we discuss the implementation and control of this complex of processes.</p>
<sec id="Ch1.S3.SS3.SSS1">
  <label>3.3.1</label><title>Job control</title>
      <p id="d1e2421">As shown in Fig. 2, CHEEREIO begins when the user submits a job array initializing <inline-formula><mml:math id="M141" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs, one for each ensemble member, each consisting of <inline-formula><mml:math id="M142" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>cores within a single node. Within each of the <inline-formula><mml:math id="M143" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs, the CHEEREIO runtime process is implemented as a shell loop that repeats until the
user-specified period of interest is processed, switching smoothly between running GEOS-Chem and running LETKF assimilation calculations. Because the
LETKF algorithm is an embarrassingly parallel algorithm, there is no need for complex cross-node parallelization schemes powered by the Message
Passing Interface (MPI). Instead, each of the <inline-formula><mml:math id="M144" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs (parallelized independently across <inline-formula><mml:math id="M145" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> cores) is coordinated by a job controller, which
executes the processes shown in light red in Fig. 2. The job controller synchronizes GEOS-Chem runs and LETKF assimilation routines across the
ensemble, ensuring that all jobs remain connected to one another.</p>
      <p id="d1e2459">At the start of a given assimilation window, each of the <inline-formula><mml:math id="M146" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs calls GEOS-Chem for the current assimilation window. GEOS-Chem is parallelized
within each job across <inline-formula><mml:math id="M147" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> cores with OpenMP. After completing GEOS-Chem for the assimilation window, each individual job hangs until the job
controller indicates that assimilation can begin. Once all GEOS-Chem runs are complete, the job controller initializes the LETKF routine. Each
computational core within each job (a total of <italic>mp</italic> cores) is pre-assigned a set of grid cells to assimilate, as the LETKF algorithm is
embarrassingly parallel by grid cell. As a result, the LETKF can make use of multi-node parallelization without MPI; assimilated grid cells are
written to a temporary directory, which will be used to update the entire ensemble once all <italic>mp</italic> cores finish the LETKF calculation. Internal
parallelization of <inline-formula><mml:math id="M148" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> cores within each of the <inline-formula><mml:math id="M149" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> jobs is handled by GNU Parallel (Tange, 2018). Once all expected grid cells are present, the job
controller gathers assimilated grid cell files, which represent assimilated concentrations and emissions, and overwrites GEOS-Chem restart files
(representing initial concentrations) and emissions for each ensemble member. The job controller then cleans up temporary files, advances the time
period of interest to the next assimilation window, and signals the job array to begin another GEOS-Chem run. If the entire period of interest is
complete, then the job controller ends the job array. Different LETKF options, activated from the configuration file, change the behavior of the job
control scripts; for example, with the run-in-place functionality activated (Sect. 2.2), CHEEREIO computes the LETKF assimilation update using a long period of
observations (e.g., 1 week) but advances the assimilation forward for a smaller amount of time (e.g., 1 <inline-formula><mml:math id="M150" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>).</p>
      <p id="d1e2505">CHEEREIO can easily handle emissions updates without GEOS-Chem source code modification because of the HEMCO input module (Keller et al., 2014; Lin
et al., 2021). Emission updates are represented by a gridded set of scaling factors, initially randomized for each ensemble member in the
initialization process, which are present in each ensemble member run directory in gridded COARDS-compliant NetCDF format. After each assimilation
calculation, the file is updated by CHEEREIO to include the latest scaling factors and corresponding time stamp. HEMCO can read and regrid these latest
scaling factors on the fly, apply them to the emissions fields, and feed the scaled emissions directly<?pagebreak page4802?> into GEOS-Chem, enabling seamless
interoperability across CHEEREIO runtime processes.</p>
</sec>
<sec id="Ch1.S3.SS3.SSS2">
  <label>3.3.2</label><title>Assimilation computation</title>
      <p id="d1e2516">LETKF assimilation is implemented in CHEEREIO using a structure of nested Python objects, designed primarily to ensure that new observation operators
can immediately plug into CHEEREIO and work automatically, without requiring users to have deep knowledge of the CHEEREIO code structure. We use
Python because of its familiarity to a broad user base, because of its ease of use, and because the object-oriented structure of the language makes it
well-suited to the modular design of CHEEREIO.</p>
      <p id="d1e2519">CHEEREIO works by creating a suite of objects called translators, which load data from gridded NetCDF files used by GEOS-Chem runs, form
one-dimensional ensemble state vectors <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and prior vectors of simulated observations <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> that are
acceptable to the CHEEREIO LETKF routine, and convert assimilated state vectors back into a format acceptable to HEMCO for input into
GEOS-Chem. Translator objects are assembled in a nested structure, with low-level translators performing I/O operations and basic calculations to form
vectors like <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, which are then passed to objects that operate at a higher level of
abstraction. Abstract objects do the actual LETKF calculations without any knowledge of the GEOS-Chem simulation or even the user-defined rules on how
to construct the state vector, enabled by the fully general nature of the LETKF. Because all the details of a specific simulation are handled by
low-level translators, which are designed to easily expand to include new capabilities added by the community, users are able to modify only one small
part of CHEEREIO without compromising the overall workflow.</p>
      <p id="d1e2574">For example, CHEEREIO handles observations by using objects inheriting from the Observation_Translator class, a low-level translator which loads
observations from file and compares them to GEOS-Chem output. In object-oriented programming, inheritance can be thought of as a sophisticated form of
templating. Indeed, the Observation_Translator class itself is mostly empty and contains instructions to the user on how to write two standardized
methods to (1) read observations from file and process them into a Python dictionary formatted for CHEEREIO and (2) generate simulated observations
<inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">y</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> from GEOS-Chem output. Users can easily write their own class inheriting from Observation_Translator for a specific use
case (like a particular surface or satellite instrument) by implementing these<?pagebreak page4803?> two methods, optionally employing a provided observation toolkit. Any
class written with this strict template will then plug in automatically to the rest of the CHEEREIO workflow and can be activated from the main
configuration file. CHEEREIO also comes with some pre-written observation operators (such as for the TROPOspheric Monitoring Instrument – TROPOMI – and the Ozone Monitoring Instrument – OMI). Many
different observation operators can be used simultaneously, making it straightforward to perform multi-species data assimilation or assimilation using
both surface and satellite data within the CHEEREIO framework. Again, because Observation_Translators handle the details of interpreting a specific
observation type, the rest of CHEEREIO can remain ignorant of specifics and operate in a fully abstract environment that can be reused for all
simulations.</p>
      <p id="d1e2590">The Observation_Translator template includes tools that support aggregating observations into “super-observations” (Eskes et al.,
2003; Miyazaki et al., 2012a). If super-observations are enabled, CHEEREIO will average observations
onto the GEOS-Chem spatiotemporal grid. Users can opt to supply a relative or absolute error for observations and opt to either (1) apply these values
consistently regardless of whether observations are aggregated or (2) reduce errors as observations are aggregated following a square root law or
another functional form supplied by the user (such as an empirical curve) to account for correlations and model transport error. Users can also use
error statistics supplied with the observations (such as retrieval errors), with the super-observation error standard deviation calculated according
to a function they specify. The default super-observation error standard deviation <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">super</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated as follows.
              <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M157" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mtext>super</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msup><mml:mfenced close="]" open="["><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mi>c</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mtext>transport</mml:mtext><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:msqrt></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e2677">Here <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is an individual observation error standard deviation (in the same units as the observation), <inline-formula><mml:math id="M159" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the number of observations
aggregated into a super-observation, <inline-formula><mml:math id="M160" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> is the error correlation between the individual observations averaged into the super-observation, and
<inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mtext>transport</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> represents model transport errors that can be supplied by the user. Model transport error is included as a separate term
because transport errors are perfectly correlated for a given model grid cell and therefore irreducible by averaging. Model transport errors in
GEOS-Chem can be estimated by the residual error method (Heald et al., 2004; Lu et al., 2021; Chen et al., 2023), though this does not account for any
systematic biases from GEOS meteorology or the chemical mechanism. Biases in meteorology could be addressed in the future by using the online version
of GEOS-Chem coupled to the GEOS model (Long et al., 2015; Hu et al., 2018; Keller et al., 2021).</p>
</sec>
</sec>
<sec id="Ch1.S3.SS4">
  <label>3.4</label><title>Post-processing</title>
      <p id="d1e2725">When the CHEEREIO runtime is process complete, users can execute the post-process batch script to automatically consolidate GEOS-Chem diagnostic and
emissions output into NetCDF files, along with a file pairing actual observations with simulated observations from the ensemble. Users can also run a
control (“prior”) simulation with no assimilation within the CHEEREIO environment; output from this run is automatically handled by the
post-processing utility to produce plots and data that compare assimilated output to control output. CHEEREIO also produces a suite of graphs and
animations depicting a variety of output including scaling factors, concentrations, emissions, and observation information. All plots of results in
Sect. 4 of this paper are generated by the CHEEREIO post-processing utility with no additional code. To facilitate additional analysis, a
post-processing toolkit is provided for user processing of both consolidated output files and raw ensemble output.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Example application: global optimization of methane emissions</title>
      <p id="d1e2737">Here we demonstrate an end-to-end example application of CHEEREIO to the problem of optimizing global emissions of methane with high temporal (weekly)
resolution by assimilation of TROPOMI satellite observations for the full year of 2019. The application uses the standard CHEEREIO configuration
files, and all figures and statistics are automatically produced by CHEEREIO with no additional programming. There are weaknesses in the inversion
parameters that we identify but do not try to resolve as the application is for demonstration purposes only.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Demonstration simulation setup</title>
      <p id="d1e2747">For our demonstration, we use the methane simulation from GEOS-Chem version 14.0.2 (<ext-link xlink:href="https://doi.org/10.5281/zenodo.7383492" ext-link-type="DOI">10.5281/zenodo.7383492</ext-link>, The International GEOS-Chem User Community, 2022) at
2.0<inline-formula><mml:math id="M162" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M163" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M164" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> spatial resolution and following the setup described by Qu et al. (2021). Methane emissions come from
anthropogenic sources including livestock, oil and gas, coal mining, landfills, wastewater, and rice cultivation, as well as from natural sources including
wetlands and termites. Loss is primarily due to oxidation by OH, with additional minor terms from oxidation by Cl atoms, stratospheric oxidation, and
soil uptake.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3" specific-use="star"><?xmltex \currentcnt{3}?><?xmltex \def\figurename{Figure}?><label>Figure 3</label><caption><p id="d1e2780">TROPOMI observations used in the CHEEREIO demo for weekly inversion of methane emissions. <bold>(a)</bold> Average TROPOMI <inline-formula><mml:math id="M165" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> for 2019, after filtering as described in the text. <bold>(b)</bold> Number of TROPOMI observations used. Values are plotted on the GEOS-Chem 2<inline-formula><mml:math id="M166" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M167" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M168" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> grid.</p></caption>
          <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023-f03.png"/>

        </fig>

      <p id="d1e2832">Methane observations used for data assimilation are from the TROPOspheric Monitoring Instrument (TROPOMI) scientific product 2.2.0, shown in Fig. 3
(Lorente et al., 2021a). TROPOMI retrieves daily global dry methane column mixing ratios (<inline-formula><mml:math id="M169" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) at 5.5 <inline-formula><mml:math id="M170" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M171" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 7 <inline-formula><mml:math id="M172" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>
nadir pixel resolution at <inline-formula><mml:math id="M173" display="inline"><mml:mo>∼</mml:mo></mml:math></inline-formula> 13:30 local solar time. In our demonstration, we filter TROPOMI observations to include only those over land below
60<inline-formula><mml:math id="M174" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> latitude with a quality assurance value <inline-formula><mml:math id="M175" display="inline"><mml:mo>&gt;</mml:mo></mml:math></inline-formula> 0.5,<?pagebreak page4804?> shortwave infrared (SWIR) albedo between 0.05 and 0.4 to avoid biases over dark scenes
or highly reflective (often desert) scenes, a low blended albedo (<inline-formula><mml:math id="M176" display="inline"><mml:mo lspace="0mm">&lt;</mml:mo></mml:math></inline-formula> 0.75) to avoid snow-covered scenes (Wunch et al., 2011; Lorente et al., 2021a),
and SWIR aerosol optical thickness less than 0.1. As shown in Fig. 3, retrieval count after filtering varies strongly by location. CHEEREIO regrids
the native <inline-formula><mml:math id="M177" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> observations on the fly to the GEOS-Chem grid resolution, as discussed later in this section.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T2"><?xmltex \currentcnt{2}?><label>Table 2</label><caption><p id="d1e2915">Selected parameters from the CHEEREIO configuration file for methane demonstration.</p></caption><oasis:table frame="topbot"><?xmltex \begin{scaleboxenv}{.88}[.88]?><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Parameter<inline-formula><mml:math id="M181" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Value</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">General parameters</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">sim_name</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M182" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">res</oasis:entry>
         <oasis:entry colname="col2">2.0<inline-formula><mml:math id="M183" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M184" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M185" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">start_date, end_date</oasis:entry>
         <oasis:entry colname="col2">20181101, 20200101</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">burn_in_end</oasis:entry>
         <oasis:entry colname="col2">20181225</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">assim_time</oasis:entry>
         <oasis:entry colname="col2">168<inline-formula><mml:math id="M186" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">State vector settings</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">state_vector_conc</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M187" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">control_vector_emis</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M188" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">state_vector_conc_representation</oasis:entry>
         <oasis:entry colname="col2">3D</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Output configuration</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">HemcoDiagsToProcess</oasis:entry>
         <oasis:entry colname="col2">Emis<inline-formula><mml:math id="M189" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>_Total</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Observation configuration</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">observed_species<inline-formula><mml:math id="M190" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M191" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>_TROPOMI : <inline-formula><mml:math id="M192" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">TROPOMI_dirs<inline-formula><mml:math id="M193" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M194" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> : /path/to/tropomi/netcdf/files</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">LETKF settings</oasis:entry>
         <oasis:entry colname="col2"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">regularizing_factor_gamma</oasis:entry>
         <oasis:entry colname="col2">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">inflation_factor</oasis:entry>
         <oasis:entry colname="col2">0.03</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">LOCALIZATION_RADIUS_km</oasis:entry>
         <oasis:entry colname="col2">500</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup><?xmltex \end{scaleboxenv}?></oasis:table><?xmltex \begin{scaleboxenv}{.9}[.9]?><table-wrap-foot><p id="d1e2918"><inline-formula><mml:math id="M178" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula> Parameter descriptions are in Table 1. <inline-formula><mml:math id="M179" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula> Hours, equal to 1 week. <inline-formula><mml:math id="M180" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula> Many parameters are supplied in key : value form; details in the online documentation.</p></table-wrap-foot><?xmltex \end{scaleboxenv}?><?xmltex \gdef\@currentlabel{2}?></table-wrap>

      <p id="d1e3264">A subset of the assimilation settings for this demonstration, passed to CHEEREIO through the configuration file, is listed in Table 2. The state
vector includes weekly time-dependent global 3D concentrations as well as emissions on the 2<inline-formula><mml:math id="M195" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M196" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M197" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> grid over land excluding
poleward of 60<inline-formula><mml:math id="M198" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>. We use a 24-member ensemble, consistent with the LETKF ensemble size used for carbon fluxes in Liu et al. (2019). Each
ensemble member is initialized with randomized methane emissions on the 2<inline-formula><mml:math id="M199" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M200" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M201" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> grid that range from approximately 50 %
to 150 % of prior values, based on a user-specified prior error parameter. Initial emissions for individual members are sampled from a normal
distribution with spatial correlation and are normalized so that the initial ensemble mean emissions equal the prior emissions on the
2.0<inline-formula><mml:math id="M202" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M203" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M204" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> grid. We spin up the model for each ensemble member for 4 months with these initial emissions and then
further multiplicatively increase the ensemble standard deviation of methane concentrations by a factor of 5; the goal of this scaling is to
emulate a much longer spin-up run of GEOS-Chem. We then adjust each ensemble member by the same global multiplicative factor so that the ensemble mean
methane concentrations are equal to TROPOMI observations at the start of the assimilation period. Furthermore, we discard the first 2 months of
assimilated output; we find that the LETKF system has a lag time between when assimilation begins (November 2018) and when emissions updates begin to
stabilize, which we call the burn-in period. To reduce the time required for burn-in, for November and December 2018 we use a high regularization
constant of <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> to artificially increase the weight of observations during the burn-in period.</p>
      <p id="d1e3364">The user does not specify how assimilation increments are split between emissions and concentrations: the LETKF formalism simultaneously updates
different aspects of the state vector, emissions and concentrations included, solely according to the correlations between state vector elements
represented in the prior error covariance matrix <inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, which is determined by the spread of the CTM ensemble. The prior error in
concentrations is determined by the spread in concentrations resulting from the perturbed emissions in each ensemble member. Nevertheless, performance
can be enhanced by establishing different parameters for different components of the state vector, such as using different localization radii or
inflation schemes (Miyazaki et al., 2012b; Bisht et al., 2023).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4" specific-use="star"><?xmltex \currentcnt{4}?><?xmltex \def\figurename{Figure}?><label>Figure 4</label><caption><p id="d1e3380">Time-dependent corrections to global methane concentrations and emissions from the weekly LETKF assimilation of TROPOMI observations as demonstrated by CHEEREIO. Panel <bold>(a)</bold> shows the global mean methane dry column mixing ratios (<inline-formula><mml:math id="M207" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) in the TROPOMI observations, the control simulation using prior emissions, and the simulation using posterior emissions. Panel <bold>(b)</bold> shows the global prior and posterior emissions. Posterior values are ensemble means from the assimilation (standard deviations from ensemble members as dotted lines). The assimilation was conducted for  1 year from January through December 2019. </p></caption>
          <?xmltex \igopts{width=355.659449pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023-f04.png"/>

        </fig>

      <p id="d1e3406">Following ensemble spin-up and the burn-in months, we<?pagebreak page4805?> run the model with assimilation for 1 year (2019). We simultaneously assimilate
3D concentrations of methane as well as emissions; the LETKF algorithm natively computes prior error variance from the ensemble spread (for example,
accounting for strong error correlation in the vertical). We use an assimilation period of 1 week and optimize grid cells following a horizontal
localization radius of 500 <inline-formula><mml:math id="M208" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>. We use an inflation factor <inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.03</mml:mn></mml:mrow></mml:math></inline-formula> and a regularization constant <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. Moreover, we impose a
zero floor on emissions; a lognormal emissions spread (Sect. 3.2) would be a better way to prevent negative emissions (Maasakkers et al., 2019). We
aggregate TROPOMI methane observations into super-observations on the GEOS-Chem 2.0<inline-formula><mml:math id="M211" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M212" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M213" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> grid, reducing errors
following Eq. (<xref ref-type="disp-formula" rid="Ch1.E8"/>), with individual observation error <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M215" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 17 <inline-formula><mml:math id="M216" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">ppb</mml:mi></mml:mrow></mml:math></inline-formula>, transport error
<inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mtext>transport</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M218" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 6.1 <inline-formula><mml:math id="M219" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">ppb</mml:mi></mml:mrow></mml:math></inline-formula>, and error correlation <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.28</mml:mn></mml:mrow></mml:math></inline-formula>, which are values empirically determined for TROPOMI methane by Chen
et. al. (2023).</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Posterior solution and evaluation</title>
      <p id="d1e3542">Figure 4 shows the adjustment of global methane concentrations (Fig. 4a) and emissions (Fig. 4b) from
the assimilation calculation relative to the prior emission inventory used in the control simulation. The control simulation produces methane
concentrations slightly higher than observed by TROPOMI in January–June, leading to a downward correction of emissions. In July the situation reverses
sharply as the control simulation falls well below TROPOMI observations, likely because of a seasonal underestimate of prior emissions from boreal
wetlands and rice cultivation (Maasakkers et al., 2019). The assimilation responds with increased emissions but with a 1-month time lag reflecting the
need to accumulate sufficient observations to inform the state vector. CHEEREIO's run-in-place capability (Sect. 3.3.1) would allow the LETKF
algorithm to mitigate this lag, as would a sliding-window approach such as that used by the Carbon Tracker <inline-formula><mml:math id="M221" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> system (Bruhwiler et al.,
2014; Liu et al., 2019).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5" specific-use="star"><?xmltex \currentcnt{5}?><?xmltex \def\figurename{Figure}?><label>Figure 5</label><caption><p id="d1e3558">Prior and posterior estimates of methane emissions in December 2019, as well as error standard deviations for the posterior estimates. The posterior estimates are the means of the 24-member ensemble, and the posterior error standard deviations are defined by the spread in the ensemble.</p></caption>
          <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023-f05.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6" specific-use="star"><?xmltex \currentcnt{6}?><?xmltex \def\figurename{Figure}?><label>Figure 6</label><caption><p id="d1e3569">Comparison of simulated dry column mixing ratios (<inline-formula><mml:math id="M222" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) with prior or posterior emissions to TROPOMI observations for December 2019. Values are monthly mean differences between the simulated <inline-formula><mml:math id="M223" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> (with TROPOMI observation operator applied) and TROPOMI observations. Mean bias and standard deviation are given in the inset.</p></caption>
          <?xmltex \igopts{width=384.112205pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/4793/2023/gmd-16-4793-2023-f06.png"/>

        </fig>

      <p id="d1e3601">Figure 5 shows the prior and posterior emissions for December 2019, along with the posterior error standard deviation. Figure 6 evaluates the ability
of the posterior simulation to better fit the TROPOMI observations in that same month. Model bias is reduced by the LETKF assimilation procedure, with
a mean bias of 1.2 <inline-formula><mml:math id="M224" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 10.6 <inline-formula><mml:math id="M225" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">ppb</mml:mi></mml:mrow></mml:math></inline-formula> in the ensemble (assimilated) mean  compared to <inline-formula><mml:math id="M226" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>16.1 <inline-formula><mml:math id="M227" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 12.3 <inline-formula><mml:math id="M228" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">ppb</mml:mi></mml:mrow></mml:math></inline-formula> in the prior (no
assimilation) simulation.</p>
      <p id="d1e3641">The use of CHEEREIO to optimize methane emissions represents a substantial improvement in computational performance relative to an analytical
inversion approach. Qu et al. (2021) previously applied the analytical approach with GEOS-Chem to optimize global methane emissions at
2<inline-formula><mml:math id="M229" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> <inline-formula><mml:math id="M230" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5<inline-formula><mml:math id="M231" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> resolution for 2019. Their formulation had 4190 state vector elements, which required a total of 4190 perturbed
GEOS-Chem simulations. By contrast, our approach only required 24 GEOS-Chem simulations to form the ensemble. Within CHEEREIO, the model spent an
average of 29.8 % of wall time running GEOS-Chem and 70.2 % running LETKF routines. The relatively high overhead of LETKF routines occurs in
part because the methane GEOS-Chem simulations are relatively fast; full oxidant–aerosol chemistry simulations are considerably more expensive but
will have a similar LETKF overhead cost. Accounting for the relatively high LETKF overhead of CHEEREIO, we achieve a factor of 52<inline-formula><mml:math id="M232" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> reduction in
computational costs relative to an equivalent analytical inversion. On an annual basis, our results suggest a 6.5 % increase in global emissions
relative to the prior, while Qu et al. (2021) suggest an increase of 2.6 % in global emissions for 2019, but they also decreased global
tropospheric OH by 5.7 % (86 % of the total methane sink). Thus, our results are globally consistent. Some spatial patterns are consistent
between the two inversions (increases in South and East Asia), while others are not (North<?pagebreak page4806?> America and Europe). Qu et al. (2021) used an older version
of TROPOMI data more subject to retrieval artifacts, as documented by Lorente et al. (2021a). Further comparison of LETKF and analytical inversions
using the same observations would be of interest.</p>
</sec>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusions and future development</title>
      <p id="d1e3686">We presented the CHemistry and Emissions REanalysis Interface with Observations (CHEEREIO), a user-friendly Python-based tool that supports localized
ensemble transform Kalman filter (LETKF) chemical data assimilation (including emissions inversion) powered by the GEOS-Chem chemical transport model
(CTM). CHEEREIO provides application-ready and versatile software for users to exploit observations of atmospheric composition from satellites and
other platforms to infer emissions and optimize 3D concentration fields, including error characterization. The CHEEREIO source code is available for
download at <uri>https://github.com/drewpendergrass/CHEEREIO</uri> (last access: 22 August 2023) and is documented at
<uri>https://cheereio.readthedocs.io</uri> (last access: 22 August 2023).</p>
      <p id="d1e3695">We choose the LETKF algorithm because of its general applicability for linear and nonlinear problems, multiple<?pagebreak page4807?> observational data streams, flexible
state vector definition, and error characterization of the solution. Its ensemble-based structure is well-suited to developing a simple but powerful
tool that requires neither the forward model adjoint nor modifications to model source code and that can be run on supercomputing clusters as an
embarrassingly parallel task. Use of GEOS-Chem as a forward model allows a wide range of applications to tropospheric and stratospheric chemistry, as
well as simpler linear problems (such as <inline-formula><mml:math id="M233" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> or methane inversions), on regional scales with spatial resolution down to 25 <inline-formula><mml:math id="M234" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>
(native resolution of GEOS-Chem) as well as global scales. A critical component of GEOS-Chem is its data input module HEMCO, which allows emissions
updates from the assimilation steps to pass seamlessly to GEOS-Chem without code modification.</p>
      <p id="d1e3717">We designed CHEEREIO so that users can specify their data assimilation problem through a basic configuration file expressing the state vector to be
optimized, the prior information, the GEOS-Chem specifications (type of simulation, resolution, assimilation period), and the LETKF parameter
information. LETKF implementation is handled under the hood by a suite of CHEEREIO scripts that do not require user familiarity. Users can readily add
new observation operators as needed without modifying the rest of the CHEEREIO code base.</p>
      <p id="d1e3720">We demonstrated CHEEREIO's ability with an example application of assimilating concentrations and emissions of atmospheric methane for 1 full year
using observations from TROPOMI. The entire demonstration was run out of the box, with no additional coding beyond the base
CHEEREIO code. Output figures and statistics presented here were auto-generated by the CHEEREIO post-processing utility. Accounting for the relatively
high overhead of the LETKF computation in the methane case, our approach represents a factor of 52 reduction in computational cost relative to an
equivalent analytical inversion. Because of computational cost savings, we envision CHEEREIO's methane data assimilation serving as a global
complement to the regional nested-grid simulations offered by the Integrated Methane Inversion (IMI), a similar software platform designed for
analytical methane inversions (Varon et al., 2022).</p>
      <p id="d1e3724">More work can be done to improve CHEEREIO and expand its capability. Although CHEEREIO is designed as a lightweight software wrapper that is
accessible to the GEOS-Chem community, future development will incorporate software components from the Joint Effort for Data Assimilation Integration
(JEDI). In  particular, we plan to support observation operators implemented as part of the JEDI Unified
Forward Operator (UFO) initiative, allowing users to leverage the wide library of instruments supported by JEDI without duplicating code
themselves. The LETKF algorithm is agnostic to the forward model, making it practical in theory to use any chemical transport model as a forward model
for CHEEREIO. In practice, models that use HEMCO for emissions input would be easiest to support. The NASA GEOS and NCAR CESM Earth system models have
adopted HEMCO (Lin et al., 2021), and the LETKF approach implemented in CHEEREIO would allow optimization of emissions as part of chemical data
assimilation in these models. A benefit of assimilation within coupled meteorology–chemistry models is that transport errors could be explicitly
represented.</p>
      <p id="d1e3727">Because CHEEREIO is designed to take advantage of the embarrassingly parallel LETKF algorithm without using shared memory, it is reasonably
straightforward to extend the system to models parallelized with MPI such as the high-performance version of GEOS-Chem (GCHP). Further improvements to
the LETKF parallelization routine, in particular methods to share memory resources within Python, can also be applied to reduce I/O overhead, reduce
memory use, and improve assimilation wall time. CHEEREIO can be ported on the cloud, taking advantage of GEOS-Chem and satellite data already hosted
there (Zhuang et al., 2019, 2020; Varon et al., 2022), thus bringing computing capacity to big data rather than requiring cumbersome data
downloads. Cloud implementation would facilitate the development of near-real-time chemical data assimilation products for emissions monitoring and
air quality forecasts.</p>
</sec>

      
      </body>
    <back><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d1e3734">The CHEEREIO 1.0 source code is available at <uri>https://github.com/drewpendergrass/CHEEREIO</uri> (last access: 22 August 2023) and is documented at <uri>https://cheereio.readthedocs.io</uri> (last access: 22 August 2023). The version of CHEEREIO used in this paper is archived at <ext-link xlink:href="https://doi.org/10.5281/zenodo.7781437" ext-link-type="DOI">10.5281/zenodo.7781437</ext-link> (Pendergrass, 2023a). GEOS-Chem version 14.0.2 source code is archived at <ext-link xlink:href="https://doi.org/10.5281/zenodo.7383492" ext-link-type="DOI">10.5281/zenodo.7383492</ext-link> (The International GEOS-Chem User Community, 2022).</p>
  </notes><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d1e3752">The CHEEREIO model output from the “Demonstration simulation setup” section of the paper is available at <ext-link xlink:href="https://doi.org/10.5281/zenodo.7806312" ext-link-type="DOI">10.5281/zenodo.7806312</ext-link> (Pendergrass, 2023b) and contains all necessary data for reproducing Figs. 3–6 including prior methane emissions, posterior methane emissions, and TROPOMI <inline-formula><mml:math id="M235" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> paired with simulated prior and posterior GEOS-Chem <inline-formula><mml:math id="M236" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The raw TROPOMI science data fed into CHEEREIO are available from SRON (<uri>https://ftp.sron.nl/open-access-data-2/TROPOMI/tropomi/ch4/</uri>, last access: 6 April 2023, Lorente et al., 2021b) or on request.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d1e3786">DCP and DJJ contributed to the study conceptualization. DCP developed the model code, with contributions from DJV, HN, and MS. KM, KWB, DJJ, and DCP contributed to the method development. DCP performed the data analysis. DCP wrote the original draft, and all authors reviewed and edited the paper.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e3792">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d1e3798">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e3804">We thank the two anonymous reviewers for their comments. Part of the research was conducted at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with NASA.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d1e3809">This research has been supported by the National Aeronautics and Space Administration (NASA; Carbon Monitoring System; grant no. 80NSSC21K1057). Drew C. Pendergrass was funded by an NSF Graduate Research Fellowship Program (GRFP) grant.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e3815">This paper was edited by Po-Lun Ma and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bib1"><label>1</label><?label 2?><mixed-citation>Asch, M., Bocquet, M., and Nodet, M.:
Data Assimilation, in: Fundamentals of Algorithms, Society for Industrial and Applied Mathematics, <ext-link xlink:href="https://doi.org/10.1137/1.9781611974546" ext-link-type="DOI">10.1137/1.9781611974546</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib2"><label>2</label><?label 1?><mixed-citation>Bisht, J. S. H., Patra, P. K., Takigawa, M., Sekiya, T., Kanaya, Y., Saitoh, N., and Miyazaki, K.: Estimation of CH<inline-formula><mml:math id="M237" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:math></inline-formula> emission based on an advanced 4D-LETKF assimilation system, Geosci. Model Dev., 16, 1823–1838, <ext-link xlink:href="https://doi.org/10.5194/gmd-16-1823-2023" ext-link-type="DOI">10.5194/gmd-16-1823-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib3"><label>3</label><?label 7?><mixed-citation>Bocquet, M., Elbern, H., Eskes, H., Hirtl, M., Žabkar, R., Carmichael, G. R., Flemming, J., Inness, A., Pagowski, M., Pérez Camaño, J. L., Saide, P. E., San Jose, R., Sofiev, M., Vira, J., Baklanov, A., Carnevale, C., Grell, G., and Seigneur, C.:
Data assimilation in atmospheric chemistry models: current status and future prospects for coupled chemistry meteorology models, Atmos. Chem. Phys., 15, 5325–5358, <ext-link xlink:href="https://doi.org/10.5194/acp-15-5325-2015" ext-link-type="DOI">10.5194/acp-15-5325-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib4"><label>4</label><?label 6?><mixed-citation>Brasseur, G. and Jacob, D.:
Modeling of Atmospheric Chemistry, Cambridge University Press, <ext-link xlink:href="https://doi.org/10.1017/9781316544754" ext-link-type="DOI">10.1017/9781316544754</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib5"><label>5</label><?label 8?><mixed-citation>Bruhwiler, L., Dlugokencky, E., Masarie, K., Ishizawa, M., Andrews, A., Miller, J., Sweeney, C., Tans, P., and Worthy, D.:
<inline-formula><mml:math id="M238" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">CarbonTracker</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>:</mml:mo></mml:mrow></mml:math></inline-formula> an assimilation system for estimating emissions of atmospheric methane, Atmos. Chem. Phys., 14, 8269–8293, <ext-link xlink:href="https://doi.org/10.5194/acp-14-8269-2014" ext-link-type="DOI">10.5194/acp-14-8269-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib6"><label>6</label><?label 9?><mixed-citation>Chen, Z., Jacob, D. J., Gautam, R., Omara, M., Stavins, R. N., Stowe, R. C., Nesser, H., Sulprizio, M. P., Lorente, A., Varon, D. J., Lu, X., Shen, L., Qu, Z., Pendergrass, D. C., and Hancock, S.:
Satellite quantification of methane emissions and oil–gas methane intensities from individual countries in the Middle East and North Africa: implications for climate action, Atmos. Chem. Phys., 23, 5945–5967, <ext-link xlink:href="https://doi.org/10.5194/acp-23-5945-2023" ext-link-type="DOI">10.5194/acp-23-5945-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib7"><label>7</label><?label 10?><mixed-citation>Courtier, P., Thépaut, J.-N., and Hollingsworth, A.:
A strategy for operational implementation of 4D-Var, using an incremental approach, Q. J. Roy. Meteor. Soc., 120, 1367–1387, <ext-link xlink:href="https://doi.org/10.1002/qj.49712051912" ext-link-type="DOI">10.1002/qj.49712051912</ext-link>, 1994.</mixed-citation></ref>
      <ref id="bib1.bib8"><label>8</label><?label 11?><mixed-citation>Dai, T., Cheng, Y., Goto, D., Li, Y., Tang, X., Shi, G., and Nakajima, T.:
Revealing the sulfur dioxide emission reductions in China by assimilating surface observations in WRF-Chem, Atmos. Chem. Phys., 21, 4357–4379, <ext-link xlink:href="https://doi.org/10.5194/acp-21-4357-2021" ext-link-type="DOI">10.5194/acp-21-4357-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib9"><label>9</label><?label 12?><mixed-citation>Ding, J., van der A, R. J., Mijling, B., and Levelt, P. F.:
Space-based <inline-formula><mml:math id="M239" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> emission estimates over remote regions improved in DECSO, Atmos. Meas. Tech., 10, 925–938, <ext-link xlink:href="https://doi.org/10.5194/amt-10-925-2017" ext-link-type="DOI">10.5194/amt-10-925-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib10"><label>10</label><?label 13?><mixed-citation>Eastham, S. D., Long, M. S., Keller, C. A., Lundgren, E., Yantosca, R. M., Zhuang, J., Li, C., Lee, C. J., Yannetti, M., Auer, B. M., Clune, T. L., Kouatchou, J., Putman, W. M., Thompson, M. A., Trayanov, A. L., Molod, A. M., Martin, R. V., and Jacob, D. J.:
GEOS-Chem High Performance (GCHP v11-02c): a next-generation implementation of the GEOS-Chem chemical transport model for massively parallel applications, Geosci. Model Dev., 11, 2941–2953, <ext-link xlink:href="https://doi.org/10.5194/gmd-11-2941-2018" ext-link-type="DOI">10.5194/gmd-11-2941-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib11"><label>11</label><?label 15?><mixed-citation>Elbern, H. and Schmidt, H.:
Ozone episode analysis by four-dimensional variational chemistry data assimilation, J. Geophys. Res.-Atmos., 106, 3569–3590, <ext-link xlink:href="https://doi.org/10.1029/2000JD900448" ext-link-type="DOI">10.1029/2000JD900448</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bib12"><label>12</label><?label 14?><mixed-citation>Emili, E., Barret, B., Massart, S., Le Flochmoen, E., Piacentini, A., El Amraoui, L., Pannekoucke, O., and Cariolle, D.:
Combined assimilation of IASI and MLS observations to constrain tropospheric and stratospheric ozone in a global chemical transport model, Atmos. Chem. Phys., 14, 177–198, <ext-link xlink:href="https://doi.org/10.5194/acp-14-177-2014" ext-link-type="DOI">10.5194/acp-14-177-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib13"><label>13</label><?label 1?><mixed-citation>Eskes, H. J., Velthoven, P. F. J. V., Valks, P. J. M., and Kelder, H. M., Assimilation of GOME total-ozone satellite observations in a three-dimensional tracer-transport model, Q. J. Roy. Meteor. Soc., 129, 1663–1681, <ext-link xlink:href="https://doi.org/10.1256/qj.02.14" ext-link-type="DOI">10.1256/qj.02.14</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bib14"><label>14</label><?label 17?><mixed-citation>Feng, L., Palmer, P. I., Zhu, S., Parker, R. J., and Liu, Y.:
Tropical methane emissions explain large fraction of recent changes in global atmospheric methane growth rate, Nat. Commun., 13, 1378, <ext-link xlink:href="https://doi.org/10.1038/s41467-022-28989-z" ext-link-type="DOI">10.1038/s41467-022-28989-z</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib15"><label>15</label><?label 18?><mixed-citation>Feng, L., Palmer, P. I., Parker, R. J., Lunt, M. F., and Bösch, H.:
Methane emissions are predominantly responsible for record-breaking atmospheric methane growth rates in 2020 and 2021, Atmos. Chem. Phys., 23, 4863–4880, <ext-link xlink:href="https://doi.org/10.5194/acp-23-4863-2023" ext-link-type="DOI">10.5194/acp-23-4863-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib16"><label>16</label><?label 19?><mixed-citation>Flemming, J., Huijnen, V., Arteta, J., Bechtold, P., Beljaars, A., Blechschmidt, A.-M., Diamantakis, M., Engelen, R. J., Gaudel, A., Inness, A., Jones, L., Josse, B., Katragkou, E., Marecal, V., Peuch, V.-H., Richter, A., Schultz, M. G., Stein, O., and Tsikerdekis, A.:
Tropospheric chemistry in the Integrated Forecasting System of ECMWF, Geosci. Model Dev., 8, 975–1003, <ext-link xlink:href="https://doi.org/10.5194/gmd-8-975-2015" ext-link-type="DOI">10.5194/gmd-8-975-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib17"><label>17</label><?label 22?><mixed-citation>Heald, C. L., Jacob, D. J., Jones, D. B. A., Palmer, P. I., Logan, J. A., Streets, D. G., Sachse, G. W., Gille, J. C., Hoffman, R. N., and Nehrkorn, T.:
Comparative inverse analysis of satellite (MOPITT) and aircraft (TRACE-P) observations to estimate Asian sources of carbon monoxide, J. Geophys. Res.-Atmos., 109, D23306, <ext-link xlink:href="https://doi.org/10.1029/2004JD005185" ext-link-type="DOI">10.1029/2004JD005185</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bib18"><label>18</label><?label 24?><mixed-citation>Hu, L., Keller, C. A., Long, M. S., Sherwen, T., Auer, B., Da Silva, A., Nielsen, J. E., Pawson, S., Thompson, M. A., Trayanov, A. L., Travis, K. R., Grange, S. K., Evans, M. J., and Jacob, <?pagebreak page4809?>D. J.:
Global simulation of tropospheric chemistry at 12.5 km resolution: performance and evaluation of the GEOS-Chem chemical module (v10-1) within the NASA GEOS Earth system model (GEOS-5 ESM), Geosci. Model Dev., 11, 4603–4620, <ext-link xlink:href="https://doi.org/10.5194/gmd-11-4603-2018" ext-link-type="DOI">10.5194/gmd-11-4603-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib19"><label>19</label><?label 25?><mixed-citation>Hunt, B. R., Kostelich, E. J., and Szunyogh, I.:
Efficient data assimilation for spatiotemporal chaos: A local ensemble transform Kalman filter, Physica D, 230, 112–126, <ext-link xlink:href="https://doi.org/10.1016/j.physd.2006.11.008" ext-link-type="DOI">10.1016/j.physd.2006.11.008</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bib20"><label>20</label><?label 26?><mixed-citation>Inness, A., Blechschmidt, A.-M., Bouarar, I., Chabrillat, S., Crepulja, M., Engelen, R. J., Eskes, H., Flemming, J., Gaudel, A., Hendrick, F., Huijnen, V., Jones, L., Kapsomenakis, J., Katragkou, E., Keppens, A., Langerock, B., de Mazière, M., Melas, D., Parrington, M., Peuch, V. H., Razinger, M., Richter, A., Schultz, M. G., Suttie, M., Thouret, V., Vrekoussis, M., Wagner, A., and Zerefos, C.:
Data assimilation of satellite-retrieved ozone, carbon monoxide and nitrogen dioxide with ECMWF's Composition-IFS, Atmos. Chem. Phys., 15, 5275–5303, <ext-link xlink:href="https://doi.org/10.5194/acp-15-5275-2015" ext-link-type="DOI">10.5194/acp-15-5275-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib21"><label>21</label><?label 29?><mixed-citation>Jiang, Z., McDonald, B. C., Worden, H., Worden, J. R., Miyazaki, K., Qu, Z., Henze, D. K., Jones, D. B. A., Arellano, A. F., Fischer, E. V., Zhu, L., and Boersma, K. F.:
Unexpected slowdown of US pollutant emission reduction in the past decade, P. Natl. Acad. Sci. USA, 115, 5099–5104, <ext-link xlink:href="https://doi.org/10.1073/pnas.1801191115" ext-link-type="DOI">10.1073/pnas.1801191115</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib22"><label>22</label><?label 30?><mixed-citation>Kahnert, M.:
Variational data analysis of aerosol species in a regional CTM: Background error covariance constraint and aerosol optical observation operators, Tellus B, 60, 753–770, <ext-link xlink:href="https://doi.org/10.1111/j.1600-0889.2008.00377.x" ext-link-type="DOI">10.1111/j.1600-0889.2008.00377.x</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bib23"><label>23</label><?label 31?><mixed-citation>Kalnay, E.:
Atmospheric Modeling, Data Assimilation and Predictability, Cambridge University Press, Cambridge, <ext-link xlink:href="https://doi.org/10.1017/CBO9780511802270" ext-link-type="DOI">10.1017/CBO9780511802270</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bib24"><label>24</label><?label 32?><mixed-citation>Keller, C. A., Long, M. S., Yantosca, R. M., Da Silva, A. M., Pawson, S., and Jacob, D. J.:
HEMCO v1.0: a versatile, ESMF-compliant component for calculating emissions in atmospheric models, Geosci. Model Dev., 7, 1409–1417, <ext-link xlink:href="https://doi.org/10.5194/gmd-7-1409-2014" ext-link-type="DOI">10.5194/gmd-7-1409-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib25"><label>25</label><?label 33?><mixed-citation>Keller, C. A., Knowland, K. E., Duncan, B. N., Liu, J., Anderson, D. C., Das, S., Lucchesi, R. A., Lundgren, E. W., Nicely, J. M., Nielsen, E., Ott, L. E., Saunders, E., Strode, S. A., Wales, P. A., Jacob, D. J., and Pawson, S.:
Description of the NASA GEOS Composition Forecast Modeling System GEOS-CF v1.0, J. Adv. Model. Earth Sy., 13, e2020MS002413, <ext-link xlink:href="https://doi.org/10.1029/2020MS002413" ext-link-type="DOI">10.1029/2020MS002413</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib26"><label>26</label><?label 34?><mixed-citation>Kong, Y., Zheng, B., Zhang, Q., and He, K.:
Global and regional carbon budget for 2015–2020 inferred from OCO-2 based on an ensemble Kalman filter coupled with GEOS-Chem, Atmos. Chem. Phys., 22, 10769–10788, <ext-link xlink:href="https://doi.org/10.5194/acp-22-10769-2022" ext-link-type="DOI">10.5194/acp-22-10769-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib27"><label>27</label><?label 35?><mixed-citation>Lin, H., Jacob, D. J., Lundgren, E. W., Sulprizio, M. P., Keller, C. A., Fritz, T. M., Eastham, S. D., Emmons, L. K., Campbell, P. C., Baker, B., Saylor, R. D., and Montuoro, R.:
Harmonized Emissions Component (HEMCO) 3.0 as a versatile emissions component for atmospheric models: application in the GEOS-Chem, NASA GEOS, WRF-GC, CESM2, NOAA GEFS-Aerosol, and NOAA UFS models, Geosci. Model Dev., 14, 5487–5506, <ext-link xlink:href="https://doi.org/10.5194/gmd-14-5487-2021" ext-link-type="DOI">10.5194/gmd-14-5487-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib28"><label>28</label><?label 37?><mixed-citation>Liu, J., Bowman, K. W., and Lee, M.:
Comparison between the Local Ensemble Transform Kalman Filter (LETKF) and 4D-Var in atmospheric <inline-formula><mml:math id="M240" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> flux inversion with the Goddard Earth Observing System-Chem model and the observation impact diagnostics from the LETKF, J. Geophys. Res.-Atmos., 121, 13066–13-087, <ext-link xlink:href="https://doi.org/10.1002/2016JD025100" ext-link-type="DOI">10.1002/2016JD025100</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib29"><label>29</label><?label 38?><mixed-citation>Liu, Y., Kalnay, E., Zeng, N., Asrar, G., Chen, Z., and Jia, B.:
Estimating surface carbon fluxes based on a local ensemble transform Kalman filter with a short assimilation window and a long observation window: an observing system simulation experiment test in GEOS-Chem 10.1, Geosci. Model Dev., 12, 2899–2914, <ext-link xlink:href="https://doi.org/10.5194/gmd-12-2899-2019" ext-link-type="DOI">10.5194/gmd-12-2899-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib30"><label>30</label><?label 39?><mixed-citation>Long, M. S., Yantosca, R., Nielsen, J. E., Keller, C. A., da Silva, A., Sulprizio, M. P., Pawson, S., and Jacob, D. J.:
Development of a grid-independent GEOS-Chem chemical transport model (v9-02) as an atmospheric chemistry module for Earth system models, Geosci. Model Dev., 8, 595–602, <ext-link xlink:href="https://doi.org/10.5194/gmd-8-595-2015" ext-link-type="DOI">10.5194/gmd-8-595-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib31"><label>31</label><?label 40?><mixed-citation>Lorente, A., Borsdorff, T., Butz, A., Hasekamp, O., aan de Brugh, J., Schneider, A., Wu, L., Hase, F., Kivi, R., Wunch, D., Pollard, D. F., Shiomi, K., Deutscher, N. M., Velazco, V. A., Roehl, C. M., Wennberg, P. O., Warneke, T., and Landgraf, J.:
Methane retrieved from TROPOMI: improvement of the data product and validation of the first 2 years of measurements, Atmos. Meas. Tech., 14, 665–684, <ext-link xlink:href="https://doi.org/10.5194/amt-14-665-2021" ext-link-type="DOI">10.5194/amt-14-665-2021</ext-link>, 2021a.</mixed-citation></ref>
      <ref id="bib1.bib32"><label>32</label><?label 1?><mixed-citation>Lorente,  A.,  Borsdorff, T.,  aan de Brugh, J., Landgraf, J., and  Hasekamp, O.:  SRON S5P – RemoTeC scientific TROPOMI XCH4 dataset, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.4447228" ext-link-type="DOI">10.5281/zenodo.4447228</ext-link>, 2021b.</mixed-citation></ref>
      <ref id="bib1.bib33"><label>33</label><?label 41?><mixed-citation>Lu, X., Jacob, D. J., Zhang, Y., Maasakkers, J. D., Sulprizio, M. P., Shen, L., Qu, Z., Scarpelli, T. R., Nesser, H., Yantosca, R. M., Sheng, J., Andrews, A., Parker, R. J., Boesch, H., Bloom, A. A., and Ma, S.:
Global methane budget and trend, 2010–2017: complementarity of inverse analyses using in situ (GLOBALVIEWplus <inline-formula><mml:math id="M241" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> ObsPack) and satellite (GOSAT) observations, Atmos. Chem. Phys., 21, 4637–4657, <ext-link xlink:href="https://doi.org/10.5194/acp-21-4637-2021" ext-link-type="DOI">10.5194/acp-21-4637-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib34"><label>34</label><?label 44?><mixed-citation>Ma, C., Wang, T., Mizzi, A. P., Anderson, J. L., Zhuang, B., Xie, M., and Wu, R.:
Multiconstituent Data Assimilation With WRF-Chem/DART: Potential for Adjusting Anthropogenic Emissions and Improving Air Quality Forecasts Over Eastern China, J. Geophys. Res.-Atmos., 124, 7393–7412, <ext-link xlink:href="https://doi.org/10.1029/2019JD030421" ext-link-type="DOI">10.1029/2019JD030421</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib35"><label>35</label><?label 46?><mixed-citation>Maasakkers, J. D., Jacob, D. J., Sulprizio, M. P., Scarpelli, T. R., Nesser, H., Sheng, J.-X., Zhang, Y., Hersher, M., Bloom, A. A., Bowman, K. W., Worden, J. R., Janssens-Maenhout, G., and Parker, R. J.:
Global distribution of methane emissions, emission trends, and OH concentrations and trends inferred from an inversion of GOSAT satellite data for 2010–2015, Atmos. Chem. Phys., 19, 7859–7881, <ext-link xlink:href="https://doi.org/10.5194/acp-19-7859-2019" ext-link-type="DOI">10.5194/acp-19-7859-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib36"><label>36</label><?label 47?><mixed-citation>Martin, R. V., Eastham, S. D., Bindle, L., Lundgren, E. W., Clune, T. L., Keller, C. A., Downs, W., Zhang, D., Lucchesi, R. A., Sulprizio, M. P., Yantosca, R. M., Li, Y., Estrada, L., Putman, W. M., Auer, B. M., Trayanov, A. L., Pawson, S., and Jacob, D. J.:
Improved advection, resolution, performance, and community access in the new generation (version 13) of the high-performance GEOS-Chem global atmospheric chemistry model (GCHP), Geosci. Model Dev., 15, 8731–8748, <ext-link xlink:href="https://doi.org/10.5194/gmd-15-8731-2022" ext-link-type="DOI">10.5194/gmd-15-8731-2022</ext-link>, 2022.</mixed-citation></ref>
      <?pagebreak page4810?><ref id="bib1.bib37"><label>37</label><?label 48?><mixed-citation>Mijling, B. and van der A, R. J.:
Using daily satellite observations to estimate emissions of short-lived air pollutants on a mesoscopic scale, J. Geophys. Res.-Atmos., 117,  D17302, <ext-link xlink:href="https://doi.org/10.1029/2012JD017817" ext-link-type="DOI">10.1029/2012JD017817</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bib38"><label>38</label><?label 49?><mixed-citation>Miyazaki, K., Eskes, H. J., and Sudo, K.:
Global <inline-formula><mml:math id="M242" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> emission estimates derived from an assimilation of OMI tropospheric <inline-formula><mml:math id="M243" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> columns, Atmos. Chem. Phys., 12, 2263–2288, <ext-link xlink:href="https://doi.org/10.5194/acp-12-2263-2012" ext-link-type="DOI">10.5194/acp-12-2263-2012</ext-link>, 2012a.</mixed-citation></ref>
      <ref id="bib1.bib39"><label>39</label><?label 50?><mixed-citation>Miyazaki, K., Eskes, H. J., Sudo, K., Takigawa, M., van Weele, M., and Boersma, K. F.:
Simultaneous assimilation of satellite <inline-formula><mml:math id="M244" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M245" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> CO, and <inline-formula><mml:math id="M246" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">HNO</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> data for the analysis of tropospheric chemical composition and emissions, Atmos. Chem. Phys., 12, 9545–9579, <ext-link xlink:href="https://doi.org/10.5194/acp-12-9545-2012" ext-link-type="DOI">10.5194/acp-12-9545-2012</ext-link>, 2012b.</mixed-citation></ref>
      <ref id="bib1.bib40"><label>40</label><?label 51?><mixed-citation>Miyazaki, K., Eskes, H. J., and Sudo, K.:
A tropospheric chemistry reanalysis for the years 2005–2012 based on an assimilation of OMI, MLS, TES, and MOPITT satellite data, Atmos. Chem. Phys., 15, 8315–8348, <ext-link xlink:href="https://doi.org/10.5194/acp-15-8315-2015" ext-link-type="DOI">10.5194/acp-15-8315-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib41"><label>41</label><?label 52?><mixed-citation>Miyazaki, K., Eskes, H., Sudo, K., Boersma, K. F., Bowman, K., and Kanaya, Y.:
Decadal changes in global surface <inline-formula><mml:math id="M247" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NO</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> emissions from multi-constituent satellite data assimilation, Atmos. Chem. Phys., 17, 807–837, <ext-link xlink:href="https://doi.org/10.5194/acp-17-807-2017" ext-link-type="DOI">10.5194/acp-17-807-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib42"><label>42</label><?label 53?><mixed-citation>Miyazaki, K., Bowman, K., Sekiya, T., Eskes, H., Boersma, F., Worden, H., Livesey, N., Payne, V. H., Sudo, K., Kanaya, Y., Takigawa, M., and Ogochi, K.:
Updated tropospheric chemistry reanalysis and emission estimates, TCR-2, for 2005–2018, Earth Syst. Sci. Data, 12, 2223–2259, <ext-link xlink:href="https://doi.org/10.5194/essd-12-2223-2020" ext-link-type="DOI">10.5194/essd-12-2223-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib43"><label>43</label><?label 57?><mixed-citation>Nesser, H., Jacob, D. J., Maasakkers, J. D., Scarpelli, T. R., Sulprizio, M. P., Zhang, Y., and Rycroft, C. H.:
Reduced-cost construction of Jacobian matrices for high-resolution inversions of satellite observations of atmospheric composition, Atmos. Meas. Tech., 14, 5521–5534, <ext-link xlink:href="https://doi.org/10.5194/amt-14-5521-2021" ext-link-type="DOI">10.5194/amt-14-5521-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib44"><label>44</label><?label 1?><mixed-citation>Pendergrass, D.:  drewpendergrass/CHEEREIO: CHEEREIO v1.0.0 release (v1.0.0), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.7781437" ext-link-type="DOI">10.5281/zenodo.7781437</ext-link>, 2023a.</mixed-citation></ref>
      <ref id="bib1.bib45"><label>45</label><?label 1?><mixed-citation>Pendergrass, D.:  Replication Data for: CHEEREIO 1.0: a versatile and user-friendly ensemble-based chemical data assimilation and emissions inversion platform for the GEOS-Chem chemical transport model, Zenodo  [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.7806312" ext-link-type="DOI">10.5281/zenodo.7806312</ext-link>, 2023b.</mixed-citation></ref>
      <ref id="bib1.bib46"><label>46</label><?label 58?><mixed-citation>Peters, W., Miller, J. B., Whitaker, J., Denning, A. S., Hirsch, A., Krol, M. C., Zupanski, D., Bruhwiler, L., and Tans, P. P.:
An ensemble data assimilation system to estimate <inline-formula><mml:math id="M248" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> surface fluxes from atmospheric trace gas observations, J. Geophys. Res.-Atmos., 110,  D24304,  <ext-link xlink:href="https://doi.org/10.1029/2005JD006157" ext-link-type="DOI">10.1029/2005JD006157</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bib47"><label>47</label><?label 59?><mixed-citation>Qu, Z., Henze, D. K., Li, C., Theys, N., Wang, Y., Wang, J., Wang, W., Han, J., Shim, C., Dickerson, R. R., and Ren, X.:
<inline-formula><mml:math id="M249" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> Emission Estimates Using OMI <inline-formula><mml:math id="M250" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> Retrievals for 2005–2017, J. Geophys. Res.-Atmos., 124, 8336–8359, <ext-link xlink:href="https://doi.org/10.1029/2019JD030243" ext-link-type="DOI">10.1029/2019JD030243</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib48"><label>48</label><?label 61?><mixed-citation>Qu, Z., Jacob, D. J., Shen, L., Lu, X., Zhang, Y., Scarpelli, T. R., Nesser, H., Sulprizio, M. P., Maasakkers, J. D., Bloom, A. A., Worden, J. R., Parker, R. J., and Delgado, A. L.:
Global distribution of methane emissions: a comparative inverse analysis of observations from the TROPOMI and GOSAT satellite instruments, Atmos. Chem. Phys., 21, 14159–14175, <ext-link xlink:href="https://doi.org/10.5194/acp-21-14159-2021" ext-link-type="DOI">10.5194/acp-21-14159-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib49"><label>49</label><?label 62?><mixed-citation>Rodgers, C. D.: Inverse Methods for Atmospheric Sounding: Theory and Practice, Series on Atmospheric, Oceanic and Planetary Physics – Vol. 2, World Scientific Publishing Co. Pte. Ltd., Singapore, <ext-link xlink:href="https://doi.org/10.1142/3171" ext-link-type="DOI">10.1142/3171</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bib50"><label>50</label><?label 65?><mixed-citation>Schuh, A. E., Jacobson, A. R., Basu, S., Weir, B., Baker, D., Bowman, K., Chevallier, F., Crowell, S., Davis, K. J., Deng, F., Denning, S., Feng, L., Jones, D., Liu, J., and Palmer, P. I.:
Quantifying the Impact of Atmospheric Transport Uncertainty on <inline-formula><mml:math id="M251" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> Surface Flux Estimates, Global Biogeochem. Cy., 33, 484–500, <ext-link xlink:href="https://doi.org/10.1029/2018GB006086" ext-link-type="DOI">10.1029/2018GB006086</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib51"><label>51</label><?label 66?><mixed-citation>Schuh, A. E., Byrne, B., Jacobson, A. R., Crowell, S. M. R., Deng, F., Baker, D. F., Johnson, M. S., Philip, S., and Weir, B.:
On the role of atmospheric model transport uncertainty in estimating the Chinese land carbon sink, Nature, 603, E13–E14, <ext-link xlink:href="https://doi.org/10.1038/s41586-021-04258-9" ext-link-type="DOI">10.1038/s41586-021-04258-9</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib52"><label>52</label><?label 68?><mixed-citation>Stanevich, I., Jones, D. B. A., Strong, K., Keller, M., Henze, D. K., Parker, R. J., Boesch, H., Wunch, D., Notholt, J., Petri, C., Warneke, T., Sussmann, R., Schneider, M., Hase, F., Kivi, R., Deutscher, N. M., Velazco, V. A., Walker, K. A., and Deng, F.:
Characterizing model errors in chemical transport modeling of methane: using GOSAT <inline-formula><mml:math id="M252" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> data with weak-constraint four-dimensional variational data assimilation, Atmos. Chem. Phys., 21, 9545–9572, <ext-link xlink:href="https://doi.org/10.5194/acp-21-9545-2021" ext-link-type="DOI">10.5194/acp-21-9545-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib53"><label>53</label><?label 69?><mixed-citation>Tange, O.:
GNU Parallel 2018, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.1146014" ext-link-type="DOI">10.5281/zenodo.1146014</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib54"><label>54</label><?label 1?><mixed-citation>The International GEOS-Chem User Community:  geoschem/GCClassic: GEOS-Chem Classic 14.0.2 (14.0.2), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.7383492" ext-link-type="DOI">10.5281/zenodo.7383492</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib55"><label>55</label><?label 70?><mixed-citation>Trémolet, Y. and Auligné, T.:
The Joint Effort for Data Assimilation Integration (JEDI), JCSDA Quarterly Newsletter, 66, 1–5, <ext-link xlink:href="https://doi.org/10.25923/RB19-0Q26" ext-link-type="DOI">10.25923/RB19-0Q26</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib56"><label>56</label><?label 71?><mixed-citation>van der Graaf, S., Dammers, E., Segers, A., Kranenburg, R., Schaap, M., Shephard, M. W., and Erisman, J. W.:
Data assimilation of CrIS <inline-formula><mml:math id="M253" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> satellite observations for improving spatiotemporal <inline-formula><mml:math id="M254" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> distributions in LOTOS-EUROS, Atmos. Chem. Phys., 22, 951–972, <ext-link xlink:href="https://doi.org/10.5194/acp-22-951-2022" ext-link-type="DOI">10.5194/acp-22-951-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib57"><label>57</label><?label 73?><mixed-citation>Varon, D. J., Jacob, D. J., Sulprizio, M., Estrada, L. A., Downs, W. B., Shen, L., Hancock, S. E., Nesser, H., Qu, Z., Penn, E., Chen, Z., Lu, X., Lorente, A., Tewari, A., and Randles, C. A.:
Integrated Methane Inversion (IMI 1.0): a user-friendly, cloud-based facility for inferring high-resolution methane emissions from TROPOMI satellite observations, Geosci. Model Dev., 15, 5787–5805, <ext-link xlink:href="https://doi.org/10.5194/gmd-15-5787-2022" ext-link-type="DOI">10.5194/gmd-15-5787-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib58"><label>58</label><?label 77?><mixed-citation>Wunch, D., Wennberg, P. O., Toon, G. C., Connor, B. J., Fisher, B., Osterman, G. B., Frankenberg, C., Mandrake, L., O'Dell, C., Ahonen, P., Biraud, S. C., Castano, R., Cressie, N., Crisp, D., Deutscher, N. M., Eldering, A., Fisher, M. L., Griffith, D. W. T., Gunson, M., Heikkinen, P., Keppel-Aleks, G., Kyrö, E., Lindenmaier, R., Macatangay, R., Mendonca, J., Messerschmidt, J., Miller, C. E., Morino, I., Notholt, J., Oyafuso, F. A., Rettinger, M., Robinson, J., Roehl, C. M., Salawitch, R. J., Sherlock, V., Strong, K., Sussmann, R., Tanaka, T., Thompson, D. R., Uchino, O., Warneke, T., and Wofsy, S. C.:
A method for evaluating bias in global measurements of <inline-formula><mml:math id="M255" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> total columns from space, Atmos. Chem. Phys., 11, 12317–12337, <ext-link xlink:href="https://doi.org/10.5194/acp-11-12317-2011" ext-link-type="DOI">10.5194/acp-11-12317-2011</ext-link>, 2011.</mixed-citation></ref>
      <?pagebreak page4811?><ref id="bib1.bib59"><label>59</label><?label 80?><mixed-citation>Zhu, S., Feng, L., Liu, Y., Wang, J., and Yang, D.:
Decadal Methane Emission Trend Inferred from Proxy GOSAT <inline-formula><mml:math id="M256" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCH</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> Retrievals: Impacts of Transport Model Spatial Resolution, Adv. Atmos. Sci., 39, 1343–1359, <ext-link xlink:href="https://doi.org/10.1007/s00376-022-1434-6" ext-link-type="DOI">10.1007/s00376-022-1434-6</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib60"><label>60</label><?label 81?><mixed-citation>Zhuang, J., Jacob, D. J., Gaya, J. F., Yantosca, R. M., Lundgren, E. W., Sulprizio, M. P., and Eastham, S. D.:
Enabling Immediate Access to Earth Science Models through Cloud Computing: Application to the GEOS-Chem Model, B. Am. Meteorol. Soc., 100, 1943–1960, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-18-0243.1" ext-link-type="DOI">10.1175/BAMS-D-18-0243.1</ext-link>, 2019.
</mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bib61"><label>61</label><?label 82?><mixed-citation>Zhuang, J., Jacob, D. J., Lin, H., Lundgren, E. W., Yantosca, R. M., Gaya, J. F., Sulprizio, M. P., and Eastham, S. D.:
Enabling High-Performance Cloud Computing for Earth Science Modeling on Over a Thousand Cores: Application to the GEOS-Chem Atmospheric Chemistry Model, J. Adv. Model. Earth Sy., 12, e2020MS002064, <ext-link xlink:href="https://doi.org/10.1029/2020MS002064" ext-link-type="DOI">10.1029/2020MS002064</ext-link>, 2020.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>CHEEREIO 1.0: a versatile and user-friendly ensemble-based chemical data assimilation and emissions inversion platform for the GEOS-Chem chemical transport model</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>1</label><mixed-citation>
      
Asch, M., Bocquet, M., and Nodet, M.:
Data Assimilation, in: Fundamentals of Algorithms, Society for Industrial and Applied Mathematics, <a href="https://doi.org/10.1137/1.9781611974546" target="_blank">https://doi.org/10.1137/1.9781611974546</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>2</label><mixed-citation>
      
Bisht, J. S. H., Patra, P. K., Takigawa, M., Sekiya, T., Kanaya, Y., Saitoh, N., and Miyazaki, K.: Estimation of CH<sub>4</sub> emission based on an advanced 4D-LETKF assimilation system, Geosci. Model Dev., 16, 1823–1838, <a href="https://doi.org/10.5194/gmd-16-1823-2023" target="_blank">https://doi.org/10.5194/gmd-16-1823-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>3</label><mixed-citation>
      
Bocquet, M., Elbern, H., Eskes, H., Hirtl, M., Žabkar, R., Carmichael, G. R., Flemming, J., Inness, A., Pagowski, M., Pérez Camaño, J. L., Saide, P. E., San Jose, R., Sofiev, M., Vira, J., Baklanov, A., Carnevale, C., Grell, G., and Seigneur, C.:
Data assimilation in atmospheric chemistry models: current status and future prospects for coupled chemistry meteorology models, Atmos. Chem. Phys., 15, 5325–5358, <a href="https://doi.org/10.5194/acp-15-5325-2015" target="_blank">https://doi.org/10.5194/acp-15-5325-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>4</label><mixed-citation>
      
Brasseur, G. and Jacob, D.:
Modeling of Atmospheric Chemistry, Cambridge University Press, <a href="https://doi.org/10.1017/9781316544754" target="_blank">https://doi.org/10.1017/9781316544754</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>5</label><mixed-citation>
      
Bruhwiler, L., Dlugokencky, E., Masarie, K., Ishizawa, M., Andrews, A., Miller, J., Sweeney, C., Tans, P., and Worthy, D.:
CarbonTracker − CH<sub>4</sub> :  an assimilation system for estimating emissions of atmospheric methane, Atmos. Chem. Phys., 14, 8269–8293, <a href="https://doi.org/10.5194/acp-14-8269-2014" target="_blank">https://doi.org/10.5194/acp-14-8269-2014</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>6</label><mixed-citation>
      
Chen, Z., Jacob, D. J., Gautam, R., Omara, M., Stavins, R. N., Stowe, R. C., Nesser, H., Sulprizio, M. P., Lorente, A., Varon, D. J., Lu, X., Shen, L., Qu, Z., Pendergrass, D. C., and Hancock, S.:
Satellite quantification of methane emissions and oil–gas methane intensities from individual countries in the Middle East and North Africa: implications for climate action, Atmos. Chem. Phys., 23, 5945–5967, <a href="https://doi.org/10.5194/acp-23-5945-2023" target="_blank">https://doi.org/10.5194/acp-23-5945-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>7</label><mixed-citation>
      
Courtier, P., Thépaut, J.-N., and Hollingsworth, A.:
A strategy for operational implementation of 4D-Var, using an incremental approach, Q. J. Roy. Meteor. Soc., 120, 1367–1387, <a href="https://doi.org/10.1002/qj.49712051912" target="_blank">https://doi.org/10.1002/qj.49712051912</a>, 1994.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>8</label><mixed-citation>
      
Dai, T., Cheng, Y., Goto, D., Li, Y., Tang, X., Shi, G., and Nakajima, T.:
Revealing the sulfur dioxide emission reductions in China by assimilating surface observations in WRF-Chem, Atmos. Chem. Phys., 21, 4357–4379, <a href="https://doi.org/10.5194/acp-21-4357-2021" target="_blank">https://doi.org/10.5194/acp-21-4357-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>9</label><mixed-citation>
      
Ding, J., van der A, R. J., Mijling, B., and Levelt, P. F.:
Space-based NO<sub><i>x</i></sub> emission estimates over remote regions improved in DECSO, Atmos. Meas. Tech., 10, 925–938, <a href="https://doi.org/10.5194/amt-10-925-2017" target="_blank">https://doi.org/10.5194/amt-10-925-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>10</label><mixed-citation>
      
Eastham, S. D., Long, M. S., Keller, C. A., Lundgren, E., Yantosca, R. M., Zhuang, J., Li, C., Lee, C. J., Yannetti, M., Auer, B. M., Clune, T. L., Kouatchou, J., Putman, W. M., Thompson, M. A., Trayanov, A. L., Molod, A. M., Martin, R. V., and Jacob, D. J.:
GEOS-Chem High Performance (GCHP v11-02c): a next-generation implementation of the GEOS-Chem chemical transport model for massively parallel applications, Geosci. Model Dev., 11, 2941–2953, <a href="https://doi.org/10.5194/gmd-11-2941-2018" target="_blank">https://doi.org/10.5194/gmd-11-2941-2018</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>11</label><mixed-citation>
      
Elbern, H. and Schmidt, H.:
Ozone episode analysis by four-dimensional variational chemistry data assimilation, J. Geophys. Res.-Atmos., 106, 3569–3590, <a href="https://doi.org/10.1029/2000JD900448" target="_blank">https://doi.org/10.1029/2000JD900448</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>12</label><mixed-citation>
      
Emili, E., Barret, B., Massart, S., Le Flochmoen, E., Piacentini, A., El Amraoui, L., Pannekoucke, O., and Cariolle, D.:
Combined assimilation of IASI and MLS observations to constrain tropospheric and stratospheric ozone in a global chemical transport model, Atmos. Chem. Phys., 14, 177–198, <a href="https://doi.org/10.5194/acp-14-177-2014" target="_blank">https://doi.org/10.5194/acp-14-177-2014</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>13</label><mixed-citation>
      
Eskes, H. J., Velthoven, P. F. J. V., Valks, P. J. M., and Kelder, H. M., Assimilation of GOME total-ozone satellite observations in a three-dimensional tracer-transport model, Q. J. Roy. Meteor. Soc., 129, 1663–1681, <a href="https://doi.org/10.1256/qj.02.14" target="_blank">https://doi.org/10.1256/qj.02.14</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>14</label><mixed-citation>
      
Feng, L., Palmer, P. I., Zhu, S., Parker, R. J., and Liu, Y.:
Tropical methane emissions explain large fraction of recent changes in global atmospheric methane growth rate, Nat. Commun., 13, 1378, <a href="https://doi.org/10.1038/s41467-022-28989-z" target="_blank">https://doi.org/10.1038/s41467-022-28989-z</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>15</label><mixed-citation>
      
Feng, L., Palmer, P. I., Parker, R. J., Lunt, M. F., and Bösch, H.:
Methane emissions are predominantly responsible for record-breaking atmospheric methane growth rates in 2020 and 2021, Atmos. Chem. Phys., 23, 4863–4880, <a href="https://doi.org/10.5194/acp-23-4863-2023" target="_blank">https://doi.org/10.5194/acp-23-4863-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>16</label><mixed-citation>
      
Flemming, J., Huijnen, V., Arteta, J., Bechtold, P., Beljaars, A., Blechschmidt, A.-M., Diamantakis, M., Engelen, R. J., Gaudel, A., Inness, A., Jones, L., Josse, B., Katragkou, E., Marecal, V., Peuch, V.-H., Richter, A., Schultz, M. G., Stein, O., and Tsikerdekis, A.:
Tropospheric chemistry in the Integrated Forecasting System of ECMWF, Geosci. Model Dev., 8, 975–1003, <a href="https://doi.org/10.5194/gmd-8-975-2015" target="_blank">https://doi.org/10.5194/gmd-8-975-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>17</label><mixed-citation>
      
Heald, C. L., Jacob, D. J., Jones, D. B. A., Palmer, P. I., Logan, J. A., Streets, D. G., Sachse, G. W., Gille, J. C., Hoffman, R. N., and Nehrkorn, T.:
Comparative inverse analysis of satellite (MOPITT) and aircraft (TRACE-P) observations to estimate Asian sources of carbon monoxide, J. Geophys. Res.-Atmos., 109, D23306, <a href="https://doi.org/10.1029/2004JD005185" target="_blank">https://doi.org/10.1029/2004JD005185</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>18</label><mixed-citation>
      
Hu, L., Keller, C. A., Long, M. S., Sherwen, T., Auer, B., Da Silva, A., Nielsen, J. E., Pawson, S., Thompson, M. A., Trayanov, A. L., Travis, K. R., Grange, S. K., Evans, M. J., and Jacob, D. J.:
Global simulation of tropospheric chemistry at 12.5&thinsp;km resolution: performance and evaluation of the GEOS-Chem chemical module (v10-1) within the NASA GEOS Earth system model (GEOS-5 ESM), Geosci. Model Dev., 11, 4603–4620, <a href="https://doi.org/10.5194/gmd-11-4603-2018" target="_blank">https://doi.org/10.5194/gmd-11-4603-2018</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>19</label><mixed-citation>
      
Hunt, B. R., Kostelich, E. J., and Szunyogh, I.:
Efficient data assimilation for spatiotemporal chaos: A local ensemble transform Kalman filter, Physica D, 230, 112–126, <a href="https://doi.org/10.1016/j.physd.2006.11.008" target="_blank">https://doi.org/10.1016/j.physd.2006.11.008</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>20</label><mixed-citation>
      
Inness, A., Blechschmidt, A.-M., Bouarar, I., Chabrillat, S., Crepulja, M., Engelen, R. J., Eskes, H., Flemming, J., Gaudel, A., Hendrick, F., Huijnen, V., Jones, L., Kapsomenakis, J., Katragkou, E., Keppens, A., Langerock, B., de Mazière, M., Melas, D., Parrington, M., Peuch, V. H., Razinger, M., Richter, A., Schultz, M. G., Suttie, M., Thouret, V., Vrekoussis, M., Wagner, A., and Zerefos, C.:
Data assimilation of satellite-retrieved ozone, carbon monoxide and nitrogen dioxide with ECMWF's Composition-IFS, Atmos. Chem. Phys., 15, 5275–5303, <a href="https://doi.org/10.5194/acp-15-5275-2015" target="_blank">https://doi.org/10.5194/acp-15-5275-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>21</label><mixed-citation>
      
Jiang, Z., McDonald, B. C., Worden, H., Worden, J. R., Miyazaki, K., Qu, Z., Henze, D. K., Jones, D. B. A., Arellano, A. F., Fischer, E. V., Zhu, L., and Boersma, K. F.:
Unexpected slowdown of US pollutant emission reduction in the past decade, P. Natl. Acad. Sci. USA, 115, 5099–5104, <a href="https://doi.org/10.1073/pnas.1801191115" target="_blank">https://doi.org/10.1073/pnas.1801191115</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>22</label><mixed-citation>
      
Kahnert, M.:
Variational data analysis of aerosol species in a regional CTM: Background error covariance constraint and aerosol optical observation operators, Tellus B, 60, 753–770, <a href="https://doi.org/10.1111/j.1600-0889.2008.00377.x" target="_blank">https://doi.org/10.1111/j.1600-0889.2008.00377.x</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>23</label><mixed-citation>
      
Kalnay, E.:
Atmospheric Modeling, Data Assimilation and Predictability, Cambridge University Press, Cambridge, <a href="https://doi.org/10.1017/CBO9780511802270" target="_blank">https://doi.org/10.1017/CBO9780511802270</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>24</label><mixed-citation>
      
Keller, C. A., Long, M. S., Yantosca, R. M., Da Silva, A. M., Pawson, S., and Jacob, D. J.:
HEMCO v1.0: a versatile, ESMF-compliant component for calculating emissions in atmospheric models, Geosci. Model Dev., 7, 1409–1417, <a href="https://doi.org/10.5194/gmd-7-1409-2014" target="_blank">https://doi.org/10.5194/gmd-7-1409-2014</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>25</label><mixed-citation>
      
Keller, C. A., Knowland, K. E., Duncan, B. N., Liu, J., Anderson, D. C., Das, S., Lucchesi, R. A., Lundgren, E. W., Nicely, J. M., Nielsen, E., Ott, L. E., Saunders, E., Strode, S. A., Wales, P. A., Jacob, D. J., and Pawson, S.:
Description of the NASA GEOS Composition Forecast Modeling System GEOS-CF v1.0, J. Adv. Model. Earth Sy., 13, e2020MS002413, <a href="https://doi.org/10.1029/2020MS002413" target="_blank">https://doi.org/10.1029/2020MS002413</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>26</label><mixed-citation>
      
Kong, Y., Zheng, B., Zhang, Q., and He, K.:
Global and regional carbon budget for 2015–2020 inferred from OCO-2 based on an ensemble Kalman filter coupled with GEOS-Chem, Atmos. Chem. Phys., 22, 10769–10788, <a href="https://doi.org/10.5194/acp-22-10769-2022" target="_blank">https://doi.org/10.5194/acp-22-10769-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>27</label><mixed-citation>
      
Lin, H., Jacob, D. J., Lundgren, E. W., Sulprizio, M. P., Keller, C. A., Fritz, T. M., Eastham, S. D., Emmons, L. K., Campbell, P. C., Baker, B., Saylor, R. D., and Montuoro, R.:
Harmonized Emissions Component (HEMCO) 3.0 as a versatile emissions component for atmospheric models: application in the GEOS-Chem, NASA GEOS, WRF-GC, CESM2, NOAA GEFS-Aerosol, and NOAA UFS models, Geosci. Model Dev., 14, 5487–5506, <a href="https://doi.org/10.5194/gmd-14-5487-2021" target="_blank">https://doi.org/10.5194/gmd-14-5487-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>28</label><mixed-citation>
      
Liu, J., Bowman, K. W., and Lee, M.:
Comparison between the Local Ensemble Transform Kalman Filter (LETKF) and 4D-Var in atmospheric CO<sub>2</sub> flux inversion with the Goddard Earth Observing System-Chem model and the observation impact diagnostics from the LETKF, J. Geophys. Res.-Atmos., 121, 13066–13-087, <a href="https://doi.org/10.1002/2016JD025100" target="_blank">https://doi.org/10.1002/2016JD025100</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>29</label><mixed-citation>
      
Liu, Y., Kalnay, E., Zeng, N., Asrar, G., Chen, Z., and Jia, B.:
Estimating surface carbon fluxes based on a local ensemble transform Kalman filter with a short assimilation window and a long observation window: an observing system simulation experiment test in GEOS-Chem 10.1, Geosci. Model Dev., 12, 2899–2914, <a href="https://doi.org/10.5194/gmd-12-2899-2019" target="_blank">https://doi.org/10.5194/gmd-12-2899-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>30</label><mixed-citation>
      
Long, M. S., Yantosca, R., Nielsen, J. E., Keller, C. A., da Silva, A., Sulprizio, M. P., Pawson, S., and Jacob, D. J.:
Development of a grid-independent GEOS-Chem chemical transport model (v9-02) as an atmospheric chemistry module for Earth system models, Geosci. Model Dev., 8, 595–602, <a href="https://doi.org/10.5194/gmd-8-595-2015" target="_blank">https://doi.org/10.5194/gmd-8-595-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>31</label><mixed-citation>
      
Lorente, A., Borsdorff, T., Butz, A., Hasekamp, O., aan de Brugh, J., Schneider, A., Wu, L., Hase, F., Kivi, R., Wunch, D., Pollard, D. F., Shiomi, K., Deutscher, N. M., Velazco, V. A., Roehl, C. M., Wennberg, P. O., Warneke, T., and Landgraf, J.:
Methane retrieved from TROPOMI: improvement of the data product and validation of the first 2 years of measurements, Atmos. Meas. Tech., 14, 665–684, <a href="https://doi.org/10.5194/amt-14-665-2021" target="_blank">https://doi.org/10.5194/amt-14-665-2021</a>, 2021a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>32</label><mixed-citation>
      
Lorente,  A.,  Borsdorff, T.,  aan de Brugh, J., Landgraf, J., and  Hasekamp, O.:  SRON S5P – RemoTeC scientific TROPOMI XCH4 dataset, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.4447228" target="_blank">https://doi.org/10.5281/zenodo.4447228</a>, 2021b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>33</label><mixed-citation>
      
Lu, X., Jacob, D. J., Zhang, Y., Maasakkers, J. D., Sulprizio, M. P., Shen, L., Qu, Z., Scarpelli, T. R., Nesser, H., Yantosca, R. M., Sheng, J., Andrews, A., Parker, R. J., Boesch, H., Bloom, A. A., and Ma, S.:
Global methane budget and trend, 2010–2017: complementarity of inverse analyses using in situ (GLOBALVIEWplus CH<sub>4</sub> ObsPack) and satellite (GOSAT) observations, Atmos. Chem. Phys., 21, 4637–4657, <a href="https://doi.org/10.5194/acp-21-4637-2021" target="_blank">https://doi.org/10.5194/acp-21-4637-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>34</label><mixed-citation>
      
Ma, C., Wang, T., Mizzi, A. P., Anderson, J. L., Zhuang, B., Xie, M., and Wu, R.:
Multiconstituent Data Assimilation With WRF-Chem/DART: Potential for Adjusting Anthropogenic Emissions and Improving Air Quality Forecasts Over Eastern China, J. Geophys. Res.-Atmos., 124, 7393–7412, <a href="https://doi.org/10.1029/2019JD030421" target="_blank">https://doi.org/10.1029/2019JD030421</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>35</label><mixed-citation>
      
Maasakkers, J. D., Jacob, D. J., Sulprizio, M. P., Scarpelli, T. R., Nesser, H., Sheng, J.-X., Zhang, Y., Hersher, M., Bloom, A. A., Bowman, K. W., Worden, J. R., Janssens-Maenhout, G., and Parker, R. J.:
Global distribution of methane emissions, emission trends, and OH concentrations and trends inferred from an inversion of GOSAT satellite data for 2010–2015, Atmos. Chem. Phys., 19, 7859–7881, <a href="https://doi.org/10.5194/acp-19-7859-2019" target="_blank">https://doi.org/10.5194/acp-19-7859-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>36</label><mixed-citation>
      
Martin, R. V., Eastham, S. D., Bindle, L., Lundgren, E. W., Clune, T. L., Keller, C. A., Downs, W., Zhang, D., Lucchesi, R. A., Sulprizio, M. P., Yantosca, R. M., Li, Y., Estrada, L., Putman, W. M., Auer, B. M., Trayanov, A. L., Pawson, S., and Jacob, D. J.:
Improved advection, resolution, performance, and community access in the new generation (version 13) of the high-performance GEOS-Chem global atmospheric chemistry model (GCHP), Geosci. Model Dev., 15, 8731–8748, <a href="https://doi.org/10.5194/gmd-15-8731-2022" target="_blank">https://doi.org/10.5194/gmd-15-8731-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>37</label><mixed-citation>
      
Mijling, B. and van der A, R. J.:
Using daily satellite observations to estimate emissions of short-lived air pollutants on a mesoscopic scale, J. Geophys. Res.-Atmos., 117,  D17302, <a href="https://doi.org/10.1029/2012JD017817" target="_blank">https://doi.org/10.1029/2012JD017817</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>38</label><mixed-citation>
      
Miyazaki, K., Eskes, H. J., and Sudo, K.:
Global NO<sub>x</sub> emission estimates derived from an assimilation of OMI tropospheric NO<sub>2</sub> columns, Atmos. Chem. Phys., 12, 2263–2288, <a href="https://doi.org/10.5194/acp-12-2263-2012" target="_blank">https://doi.org/10.5194/acp-12-2263-2012</a>, 2012a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>39</label><mixed-citation>
      
Miyazaki, K., Eskes, H. J., Sudo, K., Takigawa, M., van Weele, M., and Boersma, K. F.:
Simultaneous assimilation of satellite NO<sub>2</sub>,  O<sub>3</sub>,  CO, and HNO<sub>3</sub> data for the analysis of tropospheric chemical composition and emissions, Atmos. Chem. Phys., 12, 9545–9579, <a href="https://doi.org/10.5194/acp-12-9545-2012" target="_blank">https://doi.org/10.5194/acp-12-9545-2012</a>, 2012b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>40</label><mixed-citation>
      
Miyazaki, K., Eskes, H. J., and Sudo, K.:
A tropospheric chemistry reanalysis for the years 2005–2012 based on an assimilation of OMI, MLS, TES, and MOPITT satellite data, Atmos. Chem. Phys., 15, 8315–8348, <a href="https://doi.org/10.5194/acp-15-8315-2015" target="_blank">https://doi.org/10.5194/acp-15-8315-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>41</label><mixed-citation>
      
Miyazaki, K., Eskes, H., Sudo, K., Boersma, K. F., Bowman, K., and Kanaya, Y.:
Decadal changes in global surface NO<sub><i>x</i></sub> emissions from multi-constituent satellite data assimilation, Atmos. Chem. Phys., 17, 807–837, <a href="https://doi.org/10.5194/acp-17-807-2017" target="_blank">https://doi.org/10.5194/acp-17-807-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>42</label><mixed-citation>
      
Miyazaki, K., Bowman, K., Sekiya, T., Eskes, H., Boersma, F., Worden, H., Livesey, N., Payne, V. H., Sudo, K., Kanaya, Y., Takigawa, M., and Ogochi, K.:
Updated tropospheric chemistry reanalysis and emission estimates, TCR-2, for 2005–2018, Earth Syst. Sci. Data, 12, 2223–2259, <a href="https://doi.org/10.5194/essd-12-2223-2020" target="_blank">https://doi.org/10.5194/essd-12-2223-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>43</label><mixed-citation>
      
Nesser, H., Jacob, D. J., Maasakkers, J. D., Scarpelli, T. R., Sulprizio, M. P., Zhang, Y., and Rycroft, C. H.:
Reduced-cost construction of Jacobian matrices for high-resolution inversions of satellite observations of atmospheric composition, Atmos. Meas. Tech., 14, 5521–5534, <a href="https://doi.org/10.5194/amt-14-5521-2021" target="_blank">https://doi.org/10.5194/amt-14-5521-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>44</label><mixed-citation>
      
Pendergrass, D.:  drewpendergrass/CHEEREIO: CHEEREIO v1.0.0 release (v1.0.0), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.7781437" target="_blank">https://doi.org/10.5281/zenodo.7781437</a>, 2023a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>45</label><mixed-citation>
      
Pendergrass, D.:  Replication Data for: CHEEREIO 1.0: a versatile and user-friendly ensemble-based chemical data assimilation and emissions inversion platform for the GEOS-Chem chemical transport model, Zenodo  [data set], <a href="https://doi.org/10.5281/zenodo.7806312" target="_blank">https://doi.org/10.5281/zenodo.7806312</a>, 2023b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>46</label><mixed-citation>
      
Peters, W., Miller, J. B., Whitaker, J., Denning, A. S., Hirsch, A., Krol, M. C., Zupanski, D., Bruhwiler, L., and Tans, P. P.:
An ensemble data assimilation system to estimate CO<sub>2</sub> surface fluxes from atmospheric trace gas observations, J. Geophys. Res.-Atmos., 110,  D24304,  <a href="https://doi.org/10.1029/2005JD006157" target="_blank">https://doi.org/10.1029/2005JD006157</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>47</label><mixed-citation>
      
Qu, Z., Henze, D. K., Li, C., Theys, N., Wang, Y., Wang, J., Wang, W., Han, J., Shim, C., Dickerson, R. R., and Ren, X.:
SO<sub>2</sub> Emission Estimates Using OMI SO<sub>2</sub> Retrievals for 2005–2017, J. Geophys. Res.-Atmos., 124, 8336–8359, <a href="https://doi.org/10.1029/2019JD030243" target="_blank">https://doi.org/10.1029/2019JD030243</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>48</label><mixed-citation>
      
Qu, Z., Jacob, D. J., Shen, L., Lu, X., Zhang, Y., Scarpelli, T. R., Nesser, H., Sulprizio, M. P., Maasakkers, J. D., Bloom, A. A., Worden, J. R., Parker, R. J., and Delgado, A. L.:
Global distribution of methane emissions: a comparative inverse analysis of observations from the TROPOMI and GOSAT satellite instruments, Atmos. Chem. Phys., 21, 14159–14175, <a href="https://doi.org/10.5194/acp-21-14159-2021" target="_blank">https://doi.org/10.5194/acp-21-14159-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>49</label><mixed-citation>
      
Rodgers, C. D.: Inverse Methods for Atmospheric Sounding: Theory and Practice, Series on Atmospheric, Oceanic and Planetary Physics – Vol. 2, World Scientific Publishing Co. Pte. Ltd., Singapore, <a href="https://doi.org/10.1142/3171" target="_blank">https://doi.org/10.1142/3171</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>50</label><mixed-citation>
      
Schuh, A. E., Jacobson, A. R., Basu, S., Weir, B., Baker, D., Bowman, K., Chevallier, F., Crowell, S., Davis, K. J., Deng, F., Denning, S., Feng, L., Jones, D., Liu, J., and Palmer, P. I.:
Quantifying the Impact of Atmospheric Transport Uncertainty on CO<sub>2</sub> Surface Flux Estimates, Global Biogeochem. Cy., 33, 484–500, <a href="https://doi.org/10.1029/2018GB006086" target="_blank">https://doi.org/10.1029/2018GB006086</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>51</label><mixed-citation>
      
Schuh, A. E., Byrne, B., Jacobson, A. R., Crowell, S. M. R., Deng, F., Baker, D. F., Johnson, M. S., Philip, S., and Weir, B.:
On the role of atmospheric model transport uncertainty in estimating the Chinese land carbon sink, Nature, 603, E13–E14, <a href="https://doi.org/10.1038/s41586-021-04258-9" target="_blank">https://doi.org/10.1038/s41586-021-04258-9</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>52</label><mixed-citation>
      
Stanevich, I., Jones, D. B. A., Strong, K., Keller, M., Henze, D. K., Parker, R. J., Boesch, H., Wunch, D., Notholt, J., Petri, C., Warneke, T., Sussmann, R., Schneider, M., Hase, F., Kivi, R., Deutscher, N. M., Velazco, V. A., Walker, K. A., and Deng, F.:
Characterizing model errors in chemical transport modeling of methane: using GOSAT XCH<sub>4</sub> data with weak-constraint four-dimensional variational data assimilation, Atmos. Chem. Phys., 21, 9545–9572, <a href="https://doi.org/10.5194/acp-21-9545-2021" target="_blank">https://doi.org/10.5194/acp-21-9545-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>53</label><mixed-citation>
      
Tange, O.:
GNU Parallel 2018, Zenodo [code], <a href="https://doi.org/10.5281/zenodo.1146014" target="_blank">https://doi.org/10.5281/zenodo.1146014</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>54</label><mixed-citation>
      
The International GEOS-Chem User Community:  geoschem/GCClassic: GEOS-Chem Classic 14.0.2 (14.0.2), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.7383492" target="_blank">https://doi.org/10.5281/zenodo.7383492</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>55</label><mixed-citation>
      
Trémolet, Y. and Auligné, T.:
The Joint Effort for Data Assimilation Integration (JEDI), JCSDA Quarterly Newsletter, 66, 1–5, <a href="https://doi.org/10.25923/RB19-0Q26" target="_blank">https://doi.org/10.25923/RB19-0Q26</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>56</label><mixed-citation>
      
van der Graaf, S., Dammers, E., Segers, A., Kranenburg, R., Schaap, M., Shephard, M. W., and Erisman, J. W.:
Data assimilation of CrIS NH<sub>3</sub> satellite observations for improving spatiotemporal NH<sub>3</sub> distributions in LOTOS-EUROS, Atmos. Chem. Phys., 22, 951–972, <a href="https://doi.org/10.5194/acp-22-951-2022" target="_blank">https://doi.org/10.5194/acp-22-951-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>57</label><mixed-citation>
      
Varon, D. J., Jacob, D. J., Sulprizio, M., Estrada, L. A., Downs, W. B., Shen, L., Hancock, S. E., Nesser, H., Qu, Z., Penn, E., Chen, Z., Lu, X., Lorente, A., Tewari, A., and Randles, C. A.:
Integrated Methane Inversion (IMI 1.0): a user-friendly, cloud-based facility for inferring high-resolution methane emissions from TROPOMI satellite observations, Geosci. Model Dev., 15, 5787–5805, <a href="https://doi.org/10.5194/gmd-15-5787-2022" target="_blank">https://doi.org/10.5194/gmd-15-5787-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>58</label><mixed-citation>
      
Wunch, D., Wennberg, P. O., Toon, G. C., Connor, B. J., Fisher, B., Osterman, G. B., Frankenberg, C., Mandrake, L., O'Dell, C., Ahonen, P., Biraud, S. C., Castano, R., Cressie, N., Crisp, D., Deutscher, N. M., Eldering, A., Fisher, M. L., Griffith, D. W. T., Gunson, M., Heikkinen, P., Keppel-Aleks, G., Kyrö, E., Lindenmaier, R., Macatangay, R., Mendonca, J., Messerschmidt, J., Miller, C. E., Morino, I., Notholt, J., Oyafuso, F. A., Rettinger, M., Robinson, J., Roehl, C. M., Salawitch, R. J., Sherlock, V., Strong, K., Sussmann, R., Tanaka, T., Thompson, D. R., Uchino, O., Warneke, T., and Wofsy, S. C.:
A method for evaluating bias in global measurements of CO<sub>2</sub> total columns from space, Atmos. Chem. Phys., 11, 12317–12337, <a href="https://doi.org/10.5194/acp-11-12317-2011" target="_blank">https://doi.org/10.5194/acp-11-12317-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>59</label><mixed-citation>
      
Zhu, S., Feng, L., Liu, Y., Wang, J., and Yang, D.:
Decadal Methane Emission Trend Inferred from Proxy GOSAT XCH<sub>4</sub> Retrievals: Impacts of Transport Model Spatial Resolution, Adv. Atmos. Sci., 39, 1343–1359, <a href="https://doi.org/10.1007/s00376-022-1434-6" target="_blank">https://doi.org/10.1007/s00376-022-1434-6</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>60</label><mixed-citation>
      
Zhuang, J., Jacob, D. J., Gaya, J. F., Yantosca, R. M., Lundgren, E. W., Sulprizio, M. P., and Eastham, S. D.:
Enabling Immediate Access to Earth Science Models through Cloud Computing: Application to the GEOS-Chem Model, B. Am. Meteorol. Soc., 100, 1943–1960, <a href="https://doi.org/10.1175/BAMS-D-18-0243.1" target="_blank">https://doi.org/10.1175/BAMS-D-18-0243.1</a>, 2019.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>61</label><mixed-citation>
      
Zhuang, J., Jacob, D. J., Lin, H., Lundgren, E. W., Yantosca, R. M., Gaya, J. F., Sulprizio, M. P., and Eastham, S. D.:
Enabling High-Performance Cloud Computing for Earth Science Modeling on Over a Thousand Cores: Application to the GEOS-Chem Atmospheric Chemistry Model, J. Adv. Model. Earth Sy., 12, e2020MS002064, <a href="https://doi.org/10.1029/2020MS002064" target="_blank">https://doi.org/10.1029/2020MS002064</a>, 2020.

    </mixed-citation></ref-html>--></article>
