<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "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">
  <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-13-3439-2020</article-id><title-group><article-title>Efficient multi-scale Gaussian process regression for <?xmltex \hack{\break}?>massive remote sensing data with satGP v0.1.2</article-title><alt-title>Efficient multi-scale Gaussian process regression for satellite data</alt-title>
      </title-group><?xmltex \runningtitle{Efficient multi-scale Gaussian process regression for satellite data}?><?xmltex \runningauthor{J. Susiluoto et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2 aff3 aff4">
          <name><surname>Susiluoto</surname><given-names>Jouni</given-names></name>
          <email>jsusiluo@mit.edu</email>
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Spantini</surname><given-names>Alessio</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2 aff3">
          <name><surname>Haario</surname><given-names>Heikki</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Härkönen</surname><given-names>Teemu</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Marzouk</surname><given-names>Youssef</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>Massachusetts Institute of Technology, Department of Aeronautics and Astronautics, 77 Massachusetts Avenue,<?xmltex \hack{\break}?> 33-207, Cambridge, MA 02139, USA</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Lappeenranta University of Technology, School of Engineering Science, P.O. Box 20,   53851 Lappeenranta, Finland</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Finnish Meteorological Institute, Erik Palménin aukio 1,  00560 Helsinki, Finland</institution>
        </aff>
        <aff id="aff4"><label>4</label><institution>Jet Propulsion Laboratory, California Institute of Technology, 4800 Oak Grove Drive, Pasadena, CA 91109, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Jouni Susiluoto (jsusiluo@mit.edu)</corresp></author-notes><pub-date><day>31</day><month>July</month><year>2020</year></pub-date>
      
      <volume>13</volume>
      <issue>7</issue>
      <fpage>3439</fpage><lpage>3463</lpage>
      <history>
        <date date-type="received"><day>28</day><month>May</month><year>2019</year></date>
           <date date-type="rev-request"><day>30</day><month>August</month><year>2019</year></date>
           <date date-type="rev-recd"><day>13</day><month>June</month><year>2020</year></date>
           <date date-type="accepted"><day>18</day><month>June</month><year>2020</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2020 Jouni Susiluoto et al.</copyright-statement>
        <copyright-year>2020</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/13/3439/2020/gmd-13-3439-2020.html">This article is available from https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020.pdf</self-uri>
      <abstract><title>Abstract</title>
    <p id="d1e141">Satellite remote sensing provides a global view to processes on Earth that has unique benefits compared to making  measurements  on the ground, such as  global coverage and enormous data volume. The typical  downsides are spatial and temporal gaps and potentially low data quality. Meaningful statistical inference from such data requires overcoming these problems and developing efficient and robust computational tools.
We  design and implement a computationally efficient multi-scale Gaussian process (GP) software package, satGP, geared towards remote sensing applications. The software is able to handle problems of enormous sizes and to compute marginals and sample from the random field conditioning on at least hundreds of millions of observations. This is achieved by optimizing the computation by, e.g., randomization and splitting the problem into parallel local subproblems which aggressively discard uninformative data.</p>
    <p id="d1e144">We describe the mean function of the Gaussian process by  approximating  marginals of a Markov random field (MRF). Variability around the mean is modeled with a multi-scale covariance kernel, which consists of  Matérn, exponential, and periodic components. We also demonstrate how winds can be used to inform covariances locally.
The covariance kernel parameters are learned by calculating an approximate marginal maximum likelihood estimate, and  the validity of both the multi-scale approach and the method used to learn the kernel parameters is verified in synthetic experiments.</p>
    <p id="d1e147">We apply these techniques  to a moderate size ozone data set produced by an atmospheric chemistry model and to the very large number of observations retrieved from the Orbiting Carbon Observatory 2 (OCO-2) satellite. The satGP software is released under an open-source license.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e159">Climate change is one of the most important present-day global
environmental challenges. The underlying
reason is anthropogenic carbon emissions. According to the Intergovernmental Panel on Climate Change, carbon dioxide (<inline-formula><mml:math id="M1" 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>) has  the strongest
effect on warming the planet of the well-mixed
greenhouse gases, with the radiative forcing of
ca. 1.68 W m<inline-formula><mml:math id="M2" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>   <xref ref-type="bibr" rid="bib1.bibx18" id="paren.1"/>.</p>
      <p id="d1e188">Several instruments orbiting the Earth produce enormous quantities of remote sensing data, used to compute local estimates of <inline-formula><mml:math id="M3" 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> and other atmospheric constituents by solving complicated inverse problems and further processed to, e.g., gridded data products and flux estimates <xref ref-type="bibr" rid="bib1.bibx5" id="paren.2"/>.
These instruments include the Greenhouse gases Observing SATellite (GOSAT) from
Japan <xref ref-type="bibr" rid="bib1.bibx39" id="paren.3"/>, operational since January 2009; the
OCO-2 from NASA  <xref ref-type="bibr" rid="bib1.bibx7" id="paren.4"/>, launched in July 2014; and the Chinese
TanSat <xref ref-type="bibr" rid="bib1.bibx38" id="paren.5"/>, launched in December 2016. GOSAT-2 was launched in October 2018, and in May 2019 the OCO-3 instrument <xref ref-type="bibr" rid="bib1.bibx9" id="paren.6"/>
was taken to the International Space Station. In addition to the
<inline-formula><mml:math id="M4" 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>-measuring instruments, also other types of data are produced by
remote sensing. For instance the European TROPOspheric Monitoring Instrument (TROPOMI) <?pagebreak page3440?> produces
measurements of nitrogen dioxide, formaldehyde, carbon monoxide,
aerosols, methane, and ozone.
Common denominators among most non-gridded remote sensing data sets
include a large number of observations, global coverage but small area
observed at any given time, sensitivity to prevailing weather
conditions and cloud cover, unknown and/or unreported error covariances,
and predetermined positioning that rules out freely observing at a given time and location.
These shortcomings can be
partly remedied with techniques from computational statistics, such as those implemented in the satGP software, which this paper introduces.</p>
      <p id="d1e229">There are two key advances in this work. First, we describe the computational approaches that allow satGP to tackle remote-sensing-related spatial statistics problems of enormous sizes. Second, we present formulations of a multi-scale covariance function and a space-dependent mean function,  types of  which we have not seen used in the remote sensing community. We also show how these functions can be efficiently learned from data.</p>
      <p id="d1e232">Related to this work, several  kriging studies have been published before in the
context of remotely sensed <inline-formula><mml:math id="M5" 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>. <xref ref-type="bibr" rid="bib1.bibx42" id="text.7"/> analyzed
the variability in <inline-formula><mml:math id="M6" 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> in both space and time over China and produced
monthly maps from GOSAT data with slightly over 10 000
observations. <xref ref-type="bibr" rid="bib1.bibx28" id="text.8"/> used a 4-times-larger set of
observations with Kalman smoothing in a reduced dimension with GOSAT
and the Atmospheric InfraRed Sounder (AIRS) data from NASA.
A map of atmospheric carbon dioxide derived from GOSAT data was
presented at the higher resolution of <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:mrow><mml:mo>×</mml:mo><mml:mn mathvariant="normal">1.25</mml:mn></mml:mrow></mml:math></inline-formula><inline-formula><mml:math id="M8" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> in space
and 6 d in time by <xref ref-type="bibr" rid="bib1.bibx14" id="text.9"/>. In another publication
by the same authors, synthetic OCO-2 observations were considered with
the same spatial resolution.</p>
      <p id="d1e293">More recently <xref ref-type="bibr" rid="bib1.bibx43" id="text.10"/> presented a global data set derived from GOSAT
with the spatiotemporal resolution of 3 d and 1<inline-formula><mml:math id="M9" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>, and this study evaluated also the temporal trend of the <inline-formula><mml:math id="M10" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The
results were validated against observations from the Total Carbon Column Observing
Network (TCCON) and against modeling results from CarbonTracker and
Goddard Earth Observing System with atmospheric chemistry
(GEOS-Chem).
<xref ref-type="bibr" rid="bib1.bibx35" id="text.11"/> described a moving-window block kriging
algorithm to introduce time dependence into a GOSAT-based <inline-formula><mml:math id="M11" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> map
construction process using a quasi-probabilistic screening method for
subsampling observations, thinning the data for computational
reasons.
Other recent studies have also contained analyses of OCO-2 data – for
example <xref ref-type="bibr" rid="bib1.bibx41" id="text.12"/> presented fixed rank kriging
results based on OCO-2 data using a 16 d moving window. In many of these studies, the obtained <inline-formula><mml:math id="M12" 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> fields appear very smooth.</p>
      <p id="d1e348">Applications to remote sensing data have also resulted in publications more focused on methods. <xref ref-type="bibr" rid="bib1.bibx24" id="text.13"/> described a
“fused” Gaussian process, combining a graphical model with a Gaussian
process and applying that to sea surface temperature data.
In another computationally sophisticated application,  <xref ref-type="bibr" rid="bib1.bibx40" id="text.14"/>
simultaneously modeled both flux fields and concentrations using a
bivariate spatiotemporal model with Hamiltonian Monte Carlo
<xref ref-type="bibr" rid="bib1.bibx27" id="paren.15"/> for sampling the posterior.
Due  to computational challenges the spatial area investigated in this work was very small.</p>
      <p id="d1e360">For Gaussian processes, various approaches have been studied to overcome the difficulties posed by large amounts of data. For instance,
<xref ref-type="bibr" rid="bib1.bibx23" id="text.16"/> provide an explicit link between some random fields arising as solutions to certain stochastic partial differential equations and Markov random fields. A recent review of Vecchia-type approximations <xref ref-type="bibr" rid="bib1.bibx36" id="paren.17"/> is given by <xref ref-type="bibr" rid="bib1.bibx20" id="text.18"/>, and <xref ref-type="bibr" rid="bib1.bibx16" id="text.19"/> presents a comparison of the performance of several recently developed  spatial statistics methods with applications to data from the Moderate Resolution Imaging Spectroradiometer (MODIS).
The difficulty of ordering the observations for effective inference with Gaussian processes, especially as the dimension of the inputs grows, is discussed by <xref ref-type="bibr" rid="bib1.bibx1" id="text.20"/>.</p>
      <p id="d1e378">In this work we describe the satGP program, which solves very large  spatiotemporal statistics problems with up to at least the order of <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> marginals conditioned on <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> observations. While  advances have recently been made in the field, we are not aware of any literature or software solving problems of quite this scale so far. The effectiveness is partly based on  combining ideas related to Vecchia-type and nearest-neighbor Gaussian processes <xref ref-type="bibr" rid="bib1.bibx8" id="paren.21"/>, but  satGP also employs several computational tricks such as subsampling observations and filtering out uninformative data at several levels
when possible.
The program includes a flexible implementation for space-dependent mean functions and space-independent covariance kernels and routines for learning their parameters from data. The spatial dependence of the mean function is learned by computing marginals of a Markov random field (MRF). The covariance function is constructed in a way that allows for describing the multiple natural length scales in the data. After learning the model parameters the program computes posterior predictive fields, and realizations can be drawn from both the posterior and the prior.</p>
      <p id="d1e406">We validate the multi-scale covariance modeling approach  by learning the covariance function parameters of a data set drawn with satGP from the prior of a multi-scale Gaussian process.
To demonstrate the computational  capabilities of this early version of satGP, we  computed global <inline-formula><mml:math id="M15" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> concentrations for a duration of 1526 d at 0.5<inline-formula><mml:math id="M16" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> spatial and daily temporal resolution, amounting to calculating  350 million marginal distributions, conditioning on  116 million  <inline-formula><mml:math id="M17" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> observations from OCO-2.  Figure <xref ref-type="fig" rid="Ch1.F9"/> shows an example of what these results look like. We also present a nonstationary covariance kernel formulation that utilizes wind data for computation, and we use that covariance function with OCO-2 data. The utility of using winds with <inline-formula><mml:math id="M18" 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> data has been demonstrated before by, e.g., <xref ref-type="bibr" rid="bib1.bibx26" id="text.22"/>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1" specific-use="star"><?xmltex \currentcnt{1}?><label>Figure 1</label><caption><p id="d1e460">Mean function <inline-formula><mml:math id="M19" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> with components <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> given by Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>). The solid lines show the mean function value for each day, fitted to the <inline-formula><mml:math id="M21" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> observations, marked by the dots.  The OCO-2 mean function results are discussed in Sect. <xref ref-type="sec" rid="Ch1.S4.SS4"/>. </p></caption>
        <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f01.png"/>

      </fig>

      <?pagebreak page3441?><p id="d1e502">In addition to the OCO-2 work, we demonstrate the  capabilities of satGP with synthetic ozone data from  the Whole Atmosphere Community Climate Model (WACCM4)  <xref ref-type="bibr" rid="bib1.bibx25" id="paren.23"/>,  emulating observing with the Global Ozone Monitoring by Occultation of Stars (GOMOS) instrument <xref ref-type="bibr" rid="bib1.bibx2 bib1.bibx3 bib1.bibx21" id="paren.24"/> on Envisat.
Using synthetic data allows us to  directly compare Gaussian process posterior estimates to an exactly known ground truth.
The software could equally well be applied to any other observed  quantity of interest.</p>
      <p id="d1e511">The rest of the paper is organized in the following manner. Section 2 describes the methods both generally and as implemented in satGP. Section 3 discusses the computational details in satGP.   Section 4 presents and discusses simulation results, including a multi-scale synthetic parameter identifiability study, an application to synthetic WACCM4-generated data, and applications using  the OCO-2 V9 data. In the concluding Sect. 5, current limitations and some possible future directions are briefly mentioned.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Methods</title>
      <p id="d1e522">In geosciences, kriging <xref ref-type="bibr" rid="bib1.bibx6 bib1.bibx4" id="paren.25"/> is used for
performing spatial statistics tasks  such as gap-filling or representing data in a grid. The semivariogram models used in kriging are closely related to the covariance models used in the  Gaussian process formalism
<xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx31 bib1.bibx11" id="paren.26"/>, where instead of learning the variogram model from the data, a form of a covariance
function is prescribed and its parameters estimated.</p>
      <p id="d1e531">With Gaussian processes, we want to learn properties of a spatiotemporal surface from some observational data of some quantity of interest. To each point in space and time corresponds a Gaussian distribution of that quantity, whose mean and variance can be calculated by solving a local regression problem. This is closely related to solving a spatiotemporal interpolation problem when the observations have Gaussian errors.</p>
      <p id="d1e534">The theory of  Bayesian statistics, Gaussian processes, and Markov random fields that is used in this work is well known, and therefore, many of the novel aspects in this section have to do with the  computational methods and modifications  that are presented, such as observation selection schemes in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/> or approximate marginal maximum likelihood computation in Sect. <xref ref-type="sec" rid="Ch1.S2.SS6"/>. These modifications trade precision for tractability but in a way that tries minimize the loss in accuracy. Due to the desire to be able to solve very large problems, some sacrifices need to be made to be able to obtain any solution.</p>
      <p id="d1e541">This section goes through the Gaussian process formalism and presents  both generic
and satGP-specific forms of mean and covariance functions. This is followed by discussion of how observation selection
is carried out for solving local subproblems and how model parameters are learned.  The presentation of the general Gaussian process problem is based on  <xref ref-type="bibr" rid="bib1.bibx33" id="text.27"/> and <xref ref-type="bibr" rid="bib1.bibx31" id="text.28"/>.  Commonly used notation is listed in Table <xref ref-type="table" rid="Ch1.T1"/>.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1" specific-use="star"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e556">Most commonly used notation related to inputs and mean/covariance functions in Sect. <xref ref-type="sec" rid="Ch1.S2"/> and the Markov random field in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3.SSS1"/>. The second column gives the set in which the symbol belongs – or in some cases the set of which the symbol is a subset. The domain sets in the second column are defined as <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi mathvariant="normal">lat</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">lat</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi mathvariant="normal">lon</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">lon</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, and   <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:mi>D</mml:mi><mml:mi mathvariant="italic">≜</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub><mml:mo>⊂</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M26" display="inline"><mml:mi mathvariant="script">V</mml:mi></mml:math></inline-formula> denotes the set of nodes in the graph described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3.SSS1"/>.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left" colsep="1"/>
     <oasis:colspec colnum="3" colname="col3" align="justify" colwidth="12cm"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Symbol</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M27" display="inline"><mml:mo>∈</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Meaning</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M28" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M29" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Generic spatiotemporal coordinate vector</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Temporal part of coordinate vector <inline-formula><mml:math id="M32" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, implemented as seconds since 1970</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Spatial part of generic coordinate <inline-formula><mml:math id="M35" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, in practice <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msup><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">North–south component of coordinate vector <inline-formula><mml:math id="M39" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> as defined by variable <sans-serif>area</sans-serif> in Table <xref ref-type="table" rid="Ch1.T2"/></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M40" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">East–west component of coordinate vector <inline-formula><mml:math id="M42" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> as defined by variable <sans-serif>area</sans-serif> in Table <xref ref-type="table" rid="Ch1.T2"/></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M43" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Spatial location corresponding to <inline-formula><mml:math id="M45" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th latitude and <inline-formula><mml:math id="M46" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th longitude in the satGP regular grid</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Gaussian process test input – the spatiotemporal location where the GP is evaluated</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Matrix of space–time locations where the <inline-formula><mml:math id="M51" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> observations in <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> were made</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M53" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Mean function coefficients; see <inline-formula><mml:math id="M55" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> below. These may be space dependent.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M58" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients for the spatial location corresponding to graph label <inline-formula><mml:math id="M59" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> in the MRF</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M62" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients at grid point <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the satGP latitude–longitude grid</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="script">V</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:mo>×</mml:mo><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M66" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients for all grid points in the satGP latitude–longitude grid</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M67" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">δ</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Space-dependent mean function parameters that cannot be learned via Eqs. (<xref ref-type="disp-formula" rid="Ch1.E6"/>) and (<xref ref-type="disp-formula" rid="Ch1.E7"/>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">δ</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M71" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters for the spatial location corresponding to graph label  <inline-formula><mml:math id="M72" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> in the MRF</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="script">V</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>×</mml:mo><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M75" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> coefficients for all grid points in the satGP latitude–longitude grid</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M76" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Covariance function parameters  of all the subkernels of the multi-scale kernel</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Covariance function parameters of  the subkernel in the subindex <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M81" display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">The set of all spatial/temporal indexes for each <inline-formula><mml:math id="M82" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>; size of  <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi>I</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> is therefore <inline-formula><mml:math id="M84" display="inline"><mml:mi>q</mml:mi></mml:math></inline-formula>.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">ST</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:mo>⊆</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Spatiotemporal index set: corresponding <inline-formula><mml:math id="M87" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> is a function of space and time.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:mo>⊆</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Spatial index set: corresponding <inline-formula><mml:math id="M90" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> is a function of space only.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>∈</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Covariance kernel length-scale parameter along axis <inline-formula><mml:math id="M94" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">ℓ</mml:mi><mml:mrow><mml:msup><mml:mi>I</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msup><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msup><mml:mi>I</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>|</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Covariance kernel length-scale parameters along all dimensions in <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msup><mml:mi>I</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M98" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M99" display="inline"><mml:mi mathvariant="script">V</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Label of a specific node of  the graph describing the MRF. In Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/> <inline-formula><mml:math id="M100" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> is a parameter (<inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>)  used to define the Matérn kernel smoothness  parameter.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M103" display="inline"><mml:mi mathvariant="script">V</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Label of the node of the graph corresponding to the spatial location of <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:mo>⊆</mml:mo><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Set of nodes in the graph with edges to node <inline-formula><mml:math id="M107" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M108" display="inline"><mml:mi mathvariant="normal">Ψ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">Random field of the quantity of interest</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M110" display="inline"><mml:mi mathvariant="double-struck">R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Random variable of the quantity of interest corresponding to <inline-formula><mml:math id="M111" display="inline"><mml:mi mathvariant="normal">Ψ</mml:mi></mml:math></inline-formula> at <inline-formula><mml:math id="M112" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Values of the observations of the field at locations <inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M116" display="inline"><mml:mi mathvariant="bold-italic">ψ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>D</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Realization of the random field <inline-formula><mml:math id="M118" display="inline"><mml:mi mathvariant="normal">Ψ</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:mi>k</mml:mi><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:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M120" display="inline"><mml:mi mathvariant="double-struck">R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Covariance function value of inputs <inline-formula><mml:math id="M121" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M124" display="inline"><mml:mi mathvariant="double-struck">R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Mean function value at <inline-formula><mml:math id="M125" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> with parameters <inline-formula><mml:math id="M126" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M127" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>: <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M130" display="inline"><mml:mi mathvariant="double-struck">R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Vector of functions to construct the mean function at <inline-formula><mml:math id="M131" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> with parameters <inline-formula><mml:math id="M132" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M133" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M134" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Matrix with coefficients <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">F</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M137" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Covariance matrix  with elements <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Gaussian process regression</title>
      <?pagebreak page3442?><p id="d1e2291">A Gaussian process is a stochastic process, which can be thought of as
an infinite-dimensional Gaussian distribution in that the joint distributions of the process at any finite set of space–time points  are multivariate normal. We denote   points in the spatiotemporal domain by <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. In this work <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>, even though this restriction can be overcome if needed, and satGP does have limited support for space-only problems.</p>
      <p id="d1e2321">The Gaussian process, or Gaussian random field, is denoted by
            <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M142" display="block"><mml:mrow><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>∼</mml:mo><mml:mi mathvariant="normal">GP</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi>k</mml:mi><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>:</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup><mml:mo>→</mml:mo><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">k</mml:mi><mml:mo>:</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>×</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:mo>→</mml:mo><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow></mml:math></inline-formula> are the mean and covariance functions of the process parameterized by hyperparameter vectors <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.
The infinite-dimensional (since the domain of <inline-formula><mml:math id="M147" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> is typically infinite) description in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) is reduced below to a finite-dimensional problem, in which case <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mi>k</mml:mi><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:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> describes an entry of the covariance matrix of the joint distribution of random variables <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> over all <inline-formula><mml:math id="M150" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> that one is interested in.</p>
      <p id="d1e2509">The function <inline-formula><mml:math id="M151" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> above is called drift in kriging literature, and the expected value of the process in regions with no data will tend to the value of this mean function. It is chosen to reflect the deterministic patterns in the data, and the particular  form picked to model <inline-formula><mml:math id="M152" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> will also  affect how the function <inline-formula><mml:math id="M153" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> and parameters <inline-formula><mml:math id="M154" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) need to be specified. With<?pagebreak page3443?> inadequate modeling of the mean function, the uncertainty estimates obtained with Gaussian process regression may end up being unnecessarily large. For instance linear trends, constant factors, and seasonal and other periodic fluctuations should be included in <inline-formula><mml:math id="M155" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> if they are known. An example of what is used with the OCO-2 data is shown later in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>).</p>
      <p id="d1e2552">In what follows, the domain <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup><mml:mo>∋</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:math></inline-formula> is divided into two disjoint parts, one of which, <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="script">X</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msup><mml:mo>⊂</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, is  the set of  coordinates <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, where observation data (training data) were measured, and another one, <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="script">X</mml:mi><mml:mi mathvariant="normal">test</mml:mi></mml:msup><mml:mi mathvariant="italic">≜</mml:mi><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>q</mml:mi></mml:msup><mml:mo>\</mml:mo><mml:msup><mml:mi mathvariant="script">X</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, denotes  its complement. Points in  <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="script">X</mml:mi><mml:mi mathvariant="normal">test</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> are denoted by <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and  called <italic>test inputs</italic> as is often done in Gaussian process literature. Observations at locations <inline-formula><mml:math id="M162" display="inline"><mml:mrow><mml:mo mathvariant="italic">{</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>:</mml:mo><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>, both real and synthetic ones generated by the Gaussian process, are denoted by <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>∈</mml:mo><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow></mml:math></inline-formula>, and the vector of all <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is written as <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e2727">For the mean function <inline-formula><mml:math id="M166" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), a specific form,
            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M167" display="block"><mml:mrow><mml:mi>m</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>≡</mml:mo><mml:mover accent="true"><mml:mi>f</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          is used in this work. The superindexes <inline-formula><mml:math id="M168" display="inline"><mml:mi mathvariant="normal">s</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M169" display="inline"><mml:mi mathvariant="normal">t</mml:mi></mml:math></inline-formula> refer to the spatial and temporal parts of the generic coordinate <inline-formula><mml:math id="M170" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M171" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> values are auxiliary parameters which are  space dependent. The purpose of the righthand side with the function <inline-formula><mml:math id="M172" display="inline"><mml:mover accent="true"><mml:mi>f</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover></mml:math></inline-formula> is  to underline that <inline-formula><mml:math id="M173" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> depends on the spatial part of <inline-formula><mml:math id="M174" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> only via the space-dependent  <inline-formula><mml:math id="M175" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters and that the <inline-formula><mml:math id="M176" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters  do not depend on <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, the temporal part of <inline-formula><mml:math id="M178" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>. The temporal evolution of the mean function is in this particular form determined only by the function <inline-formula><mml:math id="M179" display="inline"><mml:mrow><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, and for each <inline-formula><mml:math id="M180" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> there is a  space-dependent regression coefficient <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e3004">The parameter vectors <inline-formula><mml:math id="M182" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> contains space-dependent parameters that affect the form of any of the <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in a way that cannot be modeled with the <inline-formula><mml:math id="M184" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients in the functional form of Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>). The length of these space-dependent <inline-formula><mml:math id="M185" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> vectors is  <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">δ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Given the parameters <inline-formula><mml:math id="M187" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> for all the inputs in <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> and a set of functions <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for constructing the mean function, we define matrix <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:mi mathvariant="bold">F</mml:mi><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>  with elements <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">F</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where the <inline-formula><mml:math id="M192" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> is now specific to the location <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e3162">The definition of <inline-formula><mml:math id="M194" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> above is very general and can describe in practice a large number of realistic scenarios.  Nonetheless, the form of  Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) imposes the strong assumption of separation of space and time in that the <inline-formula><mml:math id="M195" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M196" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters do not depend on time. The explicit form of functions <inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> used to model the OCO-2 data are given below in Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>.</p>
      <p id="d1e3202">The covariance function <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mi>k</mml:mi><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> controls the smoothness of the draws <inline-formula><mml:math id="M199" display="inline"><mml:mi mathvariant="bold-italic">ψ</mml:mi></mml:math></inline-formula> from <inline-formula><mml:math id="M200" display="inline"><mml:mi mathvariant="normal">Ψ</mml:mi></mml:math></inline-formula>. It outputs the prior covariance of the random variables <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> at <inline-formula><mml:math id="M203" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>.   The parameter vector <inline-formula><mml:math id="M205" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> typically contains at least one scale parameter <inline-formula><mml:math id="M206" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> and a parameter <inline-formula><mml:math id="M207" display="inline"><mml:mi mathvariant="italic">τ</mml:mi></mml:math></inline-formula> controlling the maximum covariance, <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>.
The <inline-formula><mml:math id="M209" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> parameters correspond to the length scales of the random fluctuations of the realizations around the mean function, and the <inline-formula><mml:math id="M210" display="inline"><mml:mi mathvariant="italic">τ</mml:mi></mml:math></inline-formula> parameters describe the amplitude of that fluctuation.
By defining the covariance matrix <inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> with elements <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, the  joint distribution of the field at observed locations is given by
            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M213" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>∼</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold">F</mml:mi><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
          Explicit forms of functions <inline-formula><mml:math id="M214" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M215" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> are described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/> and <xref ref-type="sec" rid="Ch1.S2.SS4"/>, respectively. Additional practical guidelines are given in Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>.</p>
      <p id="d1e3455">The paradigm of Bayesian statistics is  standard for analyzing data and uncertainties, and it is also widely used in geosciences <xref ref-type="bibr" rid="bib1.bibx32 bib1.bibx11" id="paren.29"/>. Given the observed data <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> at some finite set of points <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, the object of interest of the Bayesian inference problem in this work is the joint posterior distribution of the Gaussian process and the parameters,
            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M218" display="block"><mml:mtable rowspacing="0.2ex" columnspacing="1em" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          where <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the Gaussian process prior, and <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is a prior on the Gaussian process hyperparameters. In this particular equation <inline-formula><mml:math id="M221" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M222" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> actually denote spatially varying hyperparameter fields. The calculation in Eq. (<xref ref-type="disp-formula" rid="Ch1.E4"/>) is not generally tractable for a huge number of inputs <inline-formula><mml:math id="M223" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, but posterior estimates  of the GP, <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>,  can be calculated for a finite set of inputs by conditioning on parameter point estimates <inline-formula><mml:math id="M225" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula>, <inline-formula><mml:math id="M226" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula>, and
<inline-formula><mml:math id="M227" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula>. The covariance parameter estimate <inline-formula><mml:math id="M228" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> may be found by minimizing some loss function <inline-formula><mml:math id="M229" display="inline"><mml:mi mathvariant="script">L</mml:mi></mml:math></inline-formula>,
            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M230" display="block"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi mathvariant="normal">arg</mml:mi><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="normal">min</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:msub><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mi mathvariant="script">L</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          described explicitly below in Sect. <xref ref-type="sec" rid="Ch1.S2.SS6"/>. Given a point estimate of the parameters <inline-formula><mml:math id="M231" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M232" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>, along with a Gaussian prior for the <inline-formula><mml:math id="M233" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters with mean <inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi mathvariant="bold-italic">β</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and covariance <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">Σ</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the posterior distribution of the <inline-formula><mml:math id="M236" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters can be computed with,

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M237" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E6"><mml:mtd><mml:mtext>6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" columnspacing="1em" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold">F</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi mathvariant="bold">F</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="bold">Σ</mml:mi><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="bold">F</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:mi mathvariant="bold">F</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi mathvariant="bold-italic">β</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi mathvariant="bold-italic">β</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E7"><mml:mtd><mml:mtext>7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mi mathvariant="normal">Cov</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold">F</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi mathvariant="bold">F</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="bold">Σ</mml:mi><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The matrix <inline-formula><mml:math id="M238" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> is generally a dense matrix of size <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M240" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the number of observations, and as <inline-formula><mml:math id="M241" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> may be extremely large, direct inversion of this matrix is in practice impossible. However, in this work inverting the full <inline-formula><mml:math id="M242" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> is not necessary; we want to find parameters <inline-formula><mml:math id="M243" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> that vary locally, which is done by splitting the full problem into many smaller subproblems, solving the <inline-formula><mml:math id="M244" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters in a grid, as described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>. This grid is then used to  construct matrix <inline-formula><mml:math id="M245" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula> by interpolating the values of <inline-formula><mml:math id="M246" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M247" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> obtained.</p>
      <?pagebreak page3444?><p id="d1e4144">The <inline-formula><mml:math id="M248" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters are found approximately in this work by a three-step process: first a point estimate of parameters  <inline-formula><mml:math id="M249" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M250" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> is computed using an optimization algorithm; second, parameters <inline-formula><mml:math id="M251" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> are recomputed  by Eq. (<xref ref-type="disp-formula" rid="Ch1.E6"/>) given the estimate of <inline-formula><mml:math id="M252" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> from the first stage; and third, the <inline-formula><mml:math id="M253" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters alone are recalibrated by optimization using the newly found <inline-formula><mml:math id="M254" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters. In practice this procedure produces stable results with the OCO-2 data, and for pathological data sets repeated alternating optimization of the parameters may be performed. The calibration process is described in more detail in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3.SSS2"/>.</p>
      <p id="d1e4202">Even though a full posterior distribution of the parameters is not obtained this way, the solution of the Gaussian process itself is Bayesian in that the posterior marginals at each <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> are found by conditioning on the observations. In the satGP software, the space-dependent <inline-formula><mml:math id="M256" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M257" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters are fitted first, and any learning of the covariance parameters is done only after that.</p>
      <p id="d1e4230">For prediction in the context of Gaussian random functions, the properties of multivariate normal distributions are exploited for calculating marginals of the random field <inline-formula><mml:math id="M258" display="inline"><mml:mi mathvariant="normal">Ψ</mml:mi></mml:math></inline-formula> at any set of inputs.
The posterior distribution  <inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of the Gaussian process at some test input <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> can, given point estimates  <inline-formula><mml:math id="M261" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M262" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula>,  be  modeled according to   Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>)  with
            <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M263" display="block"><mml:mtable rowspacing="0.2ex" class="split" columnspacing="1em" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>∼</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="bold">F</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          where the vector of inputs has been divided into two parts – one for the test input <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and the other one for the observations <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. The notation <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> refers to the first row (minus the first element)  of the covariance matrix with elements <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:msub><mml:mo>)</mml:mo><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and the matrix in the lower-right corner, <inline-formula><mml:math id="M268" display="inline"><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the same as matrix <inline-formula><mml:math id="M269" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> in, e.g., Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>).  The random variable at <inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> can then be written as <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>|</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mo>∼</mml:mo><mml:mi mathvariant="script">N</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="normal">Σ</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where its mean and covariance are given by
            <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M272" display="block"><mml:mtable class="split" columnspacing="1em" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>=</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>f</mml:mi><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:mfenced><mml:mi>T</mml:mi></mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:mfenced><mml:mi mathvariant="bold">K</mml:mi><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</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:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:mi mathvariant="bold">F</mml:mi><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          and
            <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M273" display="block"><mml:mtable rowspacing="0.2ex" class="split" columnspacing="1em" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi mathvariant="normal">Σ</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>=</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:mfenced><mml:mi mathvariant="bold">K</mml:mi><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</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:mi mathvariant="bold">K</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold">x</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          and where the covariance <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Σ</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is the Schur complement of <inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:mi mathvariant="bold">K</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The formulas in Eqs. (<xref ref-type="disp-formula" rid="Ch1.E8"/>)–(<xref ref-type="disp-formula" rid="Ch1.E10"/>) work equally well when the <inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> contains more than one test input. However, as of now, in satGP  these equations are solved for a single test input at a time. When computing <inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ψ</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> with these formulas, satGP uses observations close to <inline-formula><mml:math id="M278" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>) and the values of <inline-formula><mml:math id="M279" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M280" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> calibrated at <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:msup><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mi mathvariant="normal">s</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Mean functions in satGP</title>
      <p id="d1e4957">Equation (<xref ref-type="disp-formula" rid="Ch1.E2"/>) gives the most general mean function form available in satGP. The functions <inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> above are user defined, and, for ease of use, satGP includes functionality for using a zero-mean function, a spatially independent mean function, and an arbitrary gridded array of values. The specific forms of <inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> used for the OCO-2 experiments in Sect. <xref ref-type="sec" rid="Ch1.S4"/> are
            <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M284" display="block"><mml:mrow><mml:mfenced open="" close="}"><mml:mtable class="aligned" columnspacing="1em" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:msubsup><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mi>cos⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:msubsup><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is for OCO-2 the duration of 1 year, and <inline-formula><mml:math id="M286" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> is a space-dependent phase shift.
The function <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> fits the summer–winter cycle, and <inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> fits the semiannual cycle. It is assumed that for any given <inline-formula><mml:math id="M289" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> can be modeled with the same <inline-formula><mml:math id="M292" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters. The constant term is given by <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> gives the slow global trend. As an example of the local behavior,  Fig. <xref ref-type="fig" rid="Ch1.F1"/> shows the mean function fit to the observed local daily  mean values of <inline-formula><mml:math id="M295" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> from OCO-2 for several locations. The WACCM4 ozone study in Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/> added two more functions <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> similar to <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> but with different <inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> parameters.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><?xmltex \opttitle{Learning the spatial dependence of $\boldsymbol{\beta}$}?><title>Learning the spatial dependence of <inline-formula><mml:math id="M301" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula></title>
      <p id="d1e5323">When satGP is not used for learning  GP covariance parameters or generating synthetic training sets, the finite set of test inputs <inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> for GP calculation is  a grid with predefined geographical and temporal extents and resolution. Solving the GP marginalization and sampling problems then amounts to solving Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) and (<xref ref-type="disp-formula" rid="Ch1.E10"/>) at each corresponding space–time point.
Since, e.g., sources, sinks, and timing of seasons are local, the mean function should be different from one spatial grid point to another. This is achieved by modeling the <inline-formula><mml:math id="M303" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters as a Markov random field. The MRF imposes the condition that neighboring grid cells should not be too different from each other. How different they are allowed to be is a modeling choice; see Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>. This section describes how the spatial dependence is resolved in satGP using computational statistics.</p>
      <p id="d1e5350">In addition to solving this spatial problem, the marginal distributions of the <inline-formula><mml:math id="M304" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters   need to be solved for each individual vertex. Point estimates of the <inline-formula><mml:math id="M305" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters, mentioned in Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>, are found at the same time with the <inline-formula><mml:math id="M306" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters. The intimately connected  spatial and local problems are described in the subsections below.</p>
<sec id="Ch1.S2.SS3.SSS1">
  <label>2.3.1</label><?xmltex \opttitle{Mean function parameters $\boldsymbol{\beta}$ are described as a Markov random field}?><title>Mean function parameters <inline-formula><mml:math id="M307" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> are described as a Markov random field</title>
      <?pagebreak page3445?><p id="d1e5391">A Markov random field is a probabilistic model that describes the conditional independence structure in a set of random variables. In satGP, an  MRF is used to describe how the <inline-formula><mml:math id="M308" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients depend on each other spatially. The MRF  used in satGP assumes that, in addition to data, the <inline-formula><mml:math id="M309" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients only depend on the coefficient values in the neighboring grid points.</p>
      <p id="d1e5408">Technically, the MRF in satGP is an undirected graphical model  <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:mi mathvariant="script">G</mml:mi><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="script">V</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">E</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx22" id="paren.30"/>, with the set of vertices or nodes <inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:mi mathvariant="script">V</mml:mi><mml:mi mathvariant="italic">≜</mml:mi><mml:mo mathvariant="italic">{</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>|</mml:mo><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> and edges <inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:mi mathvariant="script">E</mml:mi><mml:mi mathvariant="italic">≜</mml:mi><mml:mo mathvariant="italic">{</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>|</mml:mo><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo><mml:mo>∪</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>|</mml:mo><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>. We use both <inline-formula><mml:math id="M313" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> to denote a generic vertex in a graph, and in the specific MRF setting used in satGP, each <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> corresponds to the
random vector <inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> at grid point <inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. After finding the marginal distributions of these vectors in the graph the maximum a posteriori (MAP) values of <inline-formula><mml:math id="M318" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are used as the parameters of the mean function for the spatial location corresponding to the <inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> element.</p>
      <p id="d1e5735">The set of edges <inline-formula><mml:math id="M320" display="inline"><mml:mi mathvariant="script">E</mml:mi></mml:math></inline-formula> defines the Markov structure of the graph, i.e., how the <inline-formula><mml:math id="M321" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients of the nodes depend on each other. For any non-edge vertex <inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, there are edges in <inline-formula><mml:math id="M323" display="inline"><mml:mi mathvariant="script">E</mml:mi></mml:math></inline-formula> to the east, south, west, and north, meaning that only these neighboring vertices, collectively denoted by <inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo mathvariant="italic">{</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>∈</mml:mo><mml:mi mathvariant="script">V</mml:mi><mml:mo>|</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>∈</mml:mo><mml:mi mathvariant="script">E</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>, directly affect the vertex. More specifically, the Markov property defined by the set <inline-formula><mml:math id="M325" display="inline"><mml:mi mathvariant="script">E</mml:mi></mml:math></inline-formula>
implies that the  probability of the <inline-formula><mml:math id="M326" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters of latitude <inline-formula><mml:math id="M327" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and longitude <inline-formula><mml:math id="M328" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> is given by <inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mo>∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>|</mml:mo><mml:msub><mml:mo>∂</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mo>∂</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where it is understood that <inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> refer directly to the random variables, <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and the joint distribution of the <inline-formula><mml:math id="M333" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> coefficients of its adjacent vertices, respectively.</p>
      <p id="d1e5995">The satGP program needs to compute the marginal distributions of each <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> to learn the spatially varying mean function parameters.
Due to the lattice structure of the graph, according to <xref ref-type="bibr" rid="bib1.bibx15" id="text.31"/> the full joint distribution of the graph <inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="script">V</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> factors as <inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:msub><mml:mo>∏</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>∈</mml:mo><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>Z</mml:mi></mml:mfrac></mml:mstyle><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M337" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula> is called a partition function, and <inline-formula><mml:math id="M338" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> are so-called compatibility functions. This suggests that an algorithm that solves local subproblems could be used.
One possible choice is the variable elimination algorithm, which is an exact standard algorithm suitable for undirected graphs of moderate size. To make the computation faster, satGP currently modifies it by computing each diagonal in the graph, shown in Fig. <xref ref-type="fig" rid="Ch1.F2"/>, in parallel from <inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M340" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and then back from <inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. Each <inline-formula><mml:math id="M343" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is conditioned on the previously evaluated vertices in <inline-formula><mml:math id="M344" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, but the  diagonal edges of the so-called reconstituted graph are not introduced, as would normally be done.
When starting again from the bottom-right corner after computing diagonals numbered <inline-formula><mml:math id="M345" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">…</mml:mi><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula>, the <inline-formula><mml:math id="M346" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>th diagonal is not conditioned on previously computed nodes. Once the diagonals <inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M348" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> that “sandwich” the node <inline-formula><mml:math id="M349" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> from both upper-left and lower-right sides have been computed, the posterior distribution of <inline-formula><mml:math id="M350" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>  – and any other vertex on the <inline-formula><mml:math id="M351" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>th diagonal – can be calculated.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2" specific-use="star"><?xmltex \currentcnt{2}?><label>Figure 2</label><caption><p id="d1e6303">The marginal distribution <inline-formula><mml:math id="M352" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of vertex <inline-formula><mml:math id="M353" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> is conditional only on the neighbors in <inline-formula><mml:math id="M354" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (connected to <inline-formula><mml:math id="M355" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> with red edges)  due to the Markov structure in the pictured lattice graph. For effective solving, the vertices on the diagonal dashed lines are computed simultaneously making the algorithm non-exact. The order numbers labeling the diagonal lines represent an ordering in which the diagonals can be computed in parallel to get all the marginals in <inline-formula><mml:math id="M356" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mi>N</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> wall time, where <inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mi mathvariant="italic">≜</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. Southwest and northeast corners of the domain are labeled SW and NE in the graph. The final values of the parameters are obtained when diagonals from <inline-formula><mml:math id="M358" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> to <inline-formula><mml:math id="M359" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> are computed.</p></caption>
            <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f02.png"/>

          </fig>

      <p id="d1e6413">The modification of the algorithm loses the ability of the upper-right and lower-left corners to communicate effectively, but since most remote sensing data sets contain at least some observations for some time period for most nodes, the far-away information does not affect results in many practical scenarios. Techniques such as generalized belief propagation <xref ref-type="bibr" rid="bib1.bibx37" id="paren.32"/> could be used to obtain a better fit to the data, in case  a need emerges to improve the spatial fitting of the mean function coefficients.</p>
      <p id="d1e6419">The results should not change due to changes in the user-chosen grid resolution, and for this reason satGP inversely weights the edges exponentially according to the distances between the (geographical) coordinates corresponding to the connected nodes. This rate of exponential decay is user configurable by the <monospace>dscale</monospace> parameter; see Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>.</p>
</sec>
<sec id="Ch1.S2.SS3.SSS2">
  <label>2.3.2</label><?xmltex \opttitle{Computing the individual posterior marginals $p(\boldsymbol{\beta}_{{\nu}}|\boldsymbol{\psi}^{{\mathrm{obs}}},\boldsymbol{\theta})$ }?><title>Computing the individual posterior marginals <inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> </title>
      <p id="d1e6465">Assume that for the vertex <inline-formula><mml:math id="M361" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> in Fig. <xref ref-type="fig" rid="Ch1.F2"/> the neighbors marked  <inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> have been computed. Computing the marginal distribution of <inline-formula><mml:math id="M363" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and an estimate of <inline-formula><mml:math id="M364" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> at <inline-formula><mml:math id="M365" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula>, referred to below as <inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M367" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, is carried out in several steps. These steps take place inside solving the spatial problem described above as follows: the steps listed below are computed for each vertex, corresponding to a spatial location. The computation uses information from previously computed points as prior information.</p>
      <p id="d1e6532">In the particular form of the mean function <inline-formula><mml:math id="M368" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> used for OCO-2 data in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>), the phase-shift parameter <inline-formula><mml:math id="M369" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> cannot be estimated with regression the way <inline-formula><mml:math id="M370" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> is found in Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) and (<xref ref-type="disp-formula" rid="Ch1.E10"/>). For this reason, the nonlinear space-dependent <inline-formula><mml:math id="M371" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters are  found with an optimization algorithm from the NLopt package <xref ref-type="bibr" rid="bib1.bibx19" id="paren.33"/>, by default the BFGS (Broyden–Fletcher–Goldfarb–Shanno) algorithm, before finding <inline-formula><mml:math id="M372" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula> with Eq. (<xref ref-type="disp-formula" rid="Ch1.E6"/>). After obtaining <inline-formula><mml:math id="M373" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> the <inline-formula><mml:math id="M374" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters are re-optimized given the <inline-formula><mml:math id="M375" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula>.
The full calibration process for a single graph node <inline-formula><mml:math id="M376" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> proceeds in the following manner:
<list list-type="order"><list-item>
      <p id="d1e6622">Select <inline-formula><mml:math id="M377" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> observations <inline-formula><mml:math id="M378" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> of the observable that are close in terms of the spatial components of the covariance.  Specifically, when evaluating whether to select an observation <inline-formula><mml:math id="M379" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> for carrying out computations at test input <inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> corresponding to some vertex <inline-formula><mml:math id="M381" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula>, we set the time component of <inline-formula><mml:math id="M382" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> to that of the test input,  <inline-formula><mml:math id="M383" display="inline"><mml:mrow><mml:msup><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:mo>←</mml:mo><mml:msup><mml:msup><mml:mi>x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, making the temporal part of the covariance function irrelevant in this selection process. Observation selection is described in detail in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>.</p></list-item><list-item id="Ch1.I1.i2">
      <?pagebreak page3446?><p id="d1e6723">Find a best-guess <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (and <inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which is not used) by running the BFGS optimization algorithm  <xref ref-type="bibr" rid="bib1.bibx29" id="paren.34"/> to find an approximate maximum a posteriori estimate by computing <?xmltex \hack{\newpage}?><disp-formula specific-use="align" content-type="numbered"><mml:math id="M386" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mi mathvariant="normal">arg</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mi mathvariant="normal">min</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:mrow></mml:munder><mml:mo mathsize="2.0em" mathvariant="italic">{</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mi>j</mml:mi></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E12"><mml:mtd><mml:mtext>12</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>+</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>∈</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:mrow></mml:munder><mml:mo mathsize="1.1em">(</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace linebreak="nobreak" width="2em"/><mml:mspace linebreak="nobreak" width="-0.125em"/><mml:mspace linebreak="nobreak" width="-0.125em"/><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo mathsize="1.1em">)</mml:mo><mml:mo mathvariant="italic" mathsize="2.0em">}</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>The first sum runs over the training data selected by the observation selection method described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>, and the second sum constrains the parameter values close to those in <inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. This optimization problem is very simple since there are few <inline-formula><mml:math id="M388" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and/or <inline-formula><mml:math id="M389" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters for the individual vertices.</p></list-item><list-item>
      <p id="d1e7025">Given <inline-formula><mml:math id="M390" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, an estimate of the GP covariance parameters <inline-formula><mml:math id="M391" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover></mml:math></inline-formula> – e.g., from a previous simulation or a best guess – and the observations <inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, compute <inline-formula><mml:math id="M393" display="inline"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and  <inline-formula><mml:math id="M394" display="inline"><mml:mrow><mml:mi mathvariant="normal">Cov</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> via Eqs. (<xref ref-type="disp-formula" rid="Ch1.E6"/>) and (<xref ref-type="disp-formula" rid="Ch1.E7"/>). Together these give <inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. If this computation uses a flat prior, as we do in this work, this is by Bayes' theorem proportional to the likelihood <inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item><list-item id="Ch1.I1.i4">
      <p id="d1e7243">Find the posterior marginal distribution of <inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by applying Bayes' theorem and using the computed distributions at the neighboring nodes as prior information.  Due to the Markov structure this becomes <inline-formula><mml:math id="M398" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>∝</mml:mo><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msub><mml:mo>∏</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>∈</mml:mo><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>|</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. If the spatial location corresponding to <inline-formula><mml:math id="M399" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> does not have any data to inform the fit (if <inline-formula><mml:math id="M400" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is a zero-length vector), then parameter values from <inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> will determine the fit.</p></list-item><list-item id="Ch1.I1.i5">
      <p id="d1e7446">Using the <inline-formula><mml:math id="M402" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> obtained at the previous step, re-optimize <italic>only</italic> the <inline-formula><mml:math id="M403" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> parameters as above in step number 2. Since <inline-formula><mml:math id="M404" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is not varied, the term <inline-formula><mml:math id="M405" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E12"/>) plays no role here.</p></list-item></list>
The mean value of the distribution of <inline-formula><mml:math id="M406" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>  coming out from step 4 corresponds to the  <inline-formula><mml:math id="M407" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula> in, e.g., Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>), where <inline-formula><mml:math id="M408" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> would now refer to the spatial location of vertex <inline-formula><mml:math id="M409" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula>. Similarly, in case <inline-formula><mml:math id="M410" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>-type coefficients are used, the functions <inline-formula><mml:math id="M411" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> will depend on the final <inline-formula><mml:math id="M412" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> values computed in step 5. The full sets of <inline-formula><mml:math id="M413" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula>  and <inline-formula><mml:math id="M414" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> coefficients for all the vertices in the graph are denoted by <inline-formula><mml:math id="M415" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi mathvariant="script">V</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M416" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="script">V</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and the sets of calibrated values are written as <inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>  and <inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
</sec>
</sec>
<?pagebreak page3447?><sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Covariance functions in satGP </title>
      <p id="d1e7683">The smoothness, amplitude, and length scales of the Gaussian process realizations are determined by the covariance kernel used.
The satGP program supports several different types of covariance function components for forming the full covariance function <inline-formula><mml:math id="M419" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>). The options available reflect the properties that can be expected in remote sensing data – varying smoothness and meridional and zonal length scales, potential periodicity, and changing the orientation of the data-informed and uninformed axes according to wind speed and direction. This section lists the available covariance function formulations, and other forms may be easily added in the code.</p>
      <p id="d1e7695">For convenience, let
            <disp-formula id="Ch1.E13" content-type="numbered"><label>13</label><mml:math id="M420" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>I</mml:mi><mml:mi mathvariant="italic">γ</mml:mi></mml:msubsup><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:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="italic">≜</mml:mi><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo>∈</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:msup><mml:mfenced open="|" close="|"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi>c</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:msup><mml:mi>x</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mi>c</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="italic">γ</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mo>‖</mml:mo><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi>I</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi>I</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:msubsup><mml:mo>‖</mml:mo><mml:mi mathvariant="bold">Γ</mml:mi><mml:mi mathvariant="italic">γ</mml:mi></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M421" display="inline"><mml:mrow><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> is the exponent,  <inline-formula><mml:math id="M422" display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula> is a (sub)set of the dimensions of the inputs <inline-formula><mml:math id="M423" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M424" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M425" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> values are length-scale parameters corresponding to the different dimensions in <inline-formula><mml:math id="M426" display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula>, e.g., temporal (<inline-formula><mml:math id="M427" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), zonal (<inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), or meridional (<inline-formula><mml:math id="M429" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) directions, and <inline-formula><mml:math id="M430" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> values are different components of the inputs, e.g., <inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. The spatial length-scale parameters <inline-formula><mml:math id="M434" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M435" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are in units of distance on the surface of the unit sphere, corresponding to radians at the Equator. The <inline-formula><mml:math id="M436" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">P</mml:mi><mml:mi>I</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> matrix projects <inline-formula><mml:math id="M437" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> onto indices/dimensions in <inline-formula><mml:math id="M438" display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula>; <inline-formula><mml:math id="M439" display="inline"><mml:mi mathvariant="bold">Γ</mml:mi></mml:math></inline-formula> is a diagonal covariance matrix with diagonal elements <inline-formula><mml:math id="M440" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>c</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>, and the notation <inline-formula><mml:math id="M441" display="inline"><mml:mrow><mml:mo>‖</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:msub><mml:mo>‖</mml:mo><mml:mi mathvariant="bold">Γ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> stands for <inline-formula><mml:math id="M442" display="inline"><mml:msqrt><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold">Γ</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi></mml:mrow></mml:msqrt></mml:math></inline-formula>, where <inline-formula><mml:math id="M443" display="inline"><mml:mi mathvariant="bold-italic">r</mml:mi></mml:math></inline-formula> is  an arbitrary vector of the appropriate size. For remote sensing data used in this work, space-only variables form the set  <inline-formula><mml:math id="M444" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo mathvariant="italic">{</mml:mo><mml:mi mathvariant="normal">lat</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">lon</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>,  and for spatial and temporal variables together  the notation <inline-formula><mml:math id="M445" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">ST</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo mathvariant="italic">{</mml:mo><mml:mi mathvariant="normal">lat</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">lon</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">t</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> is used. Notation  <inline-formula><mml:math id="M446" display="inline"><mml:mi mathvariant="normal">lat</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M447" display="inline"><mml:mi mathvariant="normal">lon</mml:mi></mml:math></inline-formula> refer to the spatial components of <inline-formula><mml:math id="M448" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, collectively earlier referred to as <inline-formula><mml:math id="M449" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M450" display="inline"><mml:mi mathvariant="normal">t</mml:mi></mml:math></inline-formula> refers to the temporal component. The form of <inline-formula><mml:math id="M451" display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E13"/>) implies that the different dimensions have separate length-scale parameters <inline-formula><mml:math id="M452" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula>. The exponent <inline-formula><mml:math id="M453" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> in <inline-formula><mml:math id="M454" display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula> is, however, shared between the dimensions. For the set of all <inline-formula><mml:math id="M455" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> parameters over a set <inline-formula><mml:math id="M456" display="inline"><mml:mrow><mml:msup><mml:mi>I</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> of dimensions we write <inline-formula><mml:math id="M457" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">ℓ</mml:mi><mml:mrow><mml:msup><mml:mi>I</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.
All  the covariance functions below depend on a parameter <inline-formula><mml:math id="M458" display="inline"><mml:mi mathvariant="italic">τ</mml:mi></mml:math></inline-formula>, square of which determines the maximum covariance that is attained when <inline-formula><mml:math id="M459" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e8228">The exponential family of covariance functions with parameters <inline-formula><mml:math id="M460" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>[</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">ℓ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">ST</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="italic">γ</mml:mi><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is defined by the covariance function
            <disp-formula id="Ch1.E14" content-type="numbered"><label>14</label><mml:math id="M461" display="block"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>exp</mml:mtext></mml:msub><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="italic">≜</mml:mi><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>exp⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">ST</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="italic">γ</mml:mi></mml:msubsup><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:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
          The exponent <inline-formula><mml:math id="M462" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> controls the smoothness of the samples from the Gaussian process, with  <inline-formula><mml:math id="M463" display="inline"><mml:mrow><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> yielding infinitely differentiable realizations.</p>
      <p id="d1e8358">The Matérn family of covariance functions, with <inline-formula><mml:math id="M464" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>[</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">ℓ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">ST</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is given by the covariance
            <disp-formula id="Ch1.E15" content-type="numbered"><label>15</label><mml:math id="M465" display="block"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>M</mml:mtext></mml:msub><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="italic">≜</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msup><mml:mi>s</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="bold">Γ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where  <inline-formula><mml:math id="M466" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mi mathvariant="italic">ν</mml:mi></mml:msqrt><mml:msubsup><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">ST</mml:mi></mml:msub></mml:mrow><mml:mn mathvariant="normal">1</mml:mn></mml:msubsup><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:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M467" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> controls the smoothness parameter usually denoted by <inline-formula><mml:math id="M468" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> via <inline-formula><mml:math id="M469" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula>.
The function <inline-formula><mml:math id="M470" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the modified Bessel function of the second kind of order <inline-formula><mml:math id="M471" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula>.
With <inline-formula><mml:math id="M472" display="inline"><mml:mrow><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>,  the value <inline-formula><mml:math id="M473" display="inline"><mml:mrow><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:math></inline-formula> corresponds to the squared exponential kernel and <inline-formula><mml:math id="M474" display="inline"><mml:mrow><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> to the exponential kernel with <inline-formula><mml:math id="M475" 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>. Despite this similarity between the Matérn and exponential kernels, the realizations of the random function from the processes with values <inline-formula><mml:math id="M476" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>&lt;</mml:mo><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:math></inline-formula> do not correspond to those with the kernel <inline-formula><mml:math id="M477" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>exp</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> with any value of <inline-formula><mml:math id="M478" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula>.</p>
      <p id="d1e8657">A periodic kernel with <inline-formula><mml:math id="M479" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">per</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>[</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">ℓ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mtext>per</mml:mtext></mml:msub><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is defined in satGP by

                <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M480" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" columnspacing="1em" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mtext>per</mml:mtext></mml:msub><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">per</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="italic">≜</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi mathvariant="normal">exp</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mtext>per</mml:mtext><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>sin⁡</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">π</mml:mi><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><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:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          The parameter <inline-formula><mml:math id="M481" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the period length, which is assumed to be well known a priori and therefore is not among the parameters that are calibrated.
The second term in the exponent controls the spatial dependence via length-scale parameters in <inline-formula><mml:math id="M482" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">ℓ</mml:mi><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M483" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mtext>per</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> determines how far the temporal covariance extends, modulo <inline-formula><mml:math id="M484" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e8878">satGP contains  an additional covariance function that utilizes  local wind information when computing the covariances. The underlying rationale is that winds affect how quantities of interest such as gases in the atmosphere or algae blooms in surface water spread.  For this reason, if wind data are available, it is natural to try to use them for inference with  the Gaussian process.
We define the  wind-informed covariance kernel with parameters  <inline-formula><mml:math id="M485" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>[</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>  by
            <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M486" display="block"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="italic">≜</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mtext>exp</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">w</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>;</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>,</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>‖</mml:mo></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>⟂</mml:mo></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
          The parameter <inline-formula><mml:math id="M487" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> in <inline-formula><mml:math id="M488" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> defines  how strongly the magnitude of the wind vector at the test input,  <inline-formula><mml:math id="M489" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mi mathvariant="italic">≜</mml:mi><mml:mo>[</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mi mathvariant="normal">lat</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> (the last parameter in <inline-formula><mml:math id="M490" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), affects the shape of the covariance. The kernel itself is an exponential kernel, where the spatial components of the vectors <inline-formula><mml:math id="M491" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M492" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> are transformed by wind data, and the covariance lengths are transformed by wind speed. A spatiotemporal vector <inline-formula><mml:math id="M493" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is transformed by wind to the vector <inline-formula><mml:math id="M494" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in a new coordinate system according to
            <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M495" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>‖</mml:mo></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mi mathvariant="normal">s</mml:mi></mml:msup><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>⟂</mml:mo></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M496" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>  and <inline-formula><mml:math id="M497" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are the spatial components of vectors <inline-formula><mml:math id="M498" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M499" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, and  <inline-formula><mml:math id="M500" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>‖</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M501" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>⟂</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> are the unit vectors in the lat–long coordinates along and perpendicular to wind direction at the test input <inline-formula><mml:math id="M502" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <?pagebreak page3448?><p id="d1e9310">The spatial scaling <inline-formula><mml:math id="M503" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> parameters for <inline-formula><mml:math id="M504" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, corresponding now to the covariance scales parallel and perpendicular to the wind direction, are given by
            <disp-formula id="Ch1.E19" content-type="numbered"><label>19</label><mml:math id="M505" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>‖</mml:mo></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mroot><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>|</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:mroot><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="2em"/><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>⟂</mml:mo></mml:msub><mml:mi mathvariant="italic">≜</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
          The parameter vector for the exponential kernel then becomes <inline-formula><mml:math id="M506" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:mo>[</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>‖</mml:mo></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>⟂</mml:mo></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, where the last element denotes the exponent <inline-formula><mml:math id="M507" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> used by the exponential kernel. A number of possible covariance ellipses resulting from the transformation procedure are shown in Fig. <xref ref-type="fig" rid="Ch1.F3"/>.
Some data sets, like OCO-2, incorporate wind information, and satGP does have the capability of gridding that data using another Gaussian process. Reading in gridded wind data from other sources is also a possibility. Using <inline-formula><mml:math id="M508" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> requires that wind data are available at each  <inline-formula><mml:math id="M509" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><?xmltex \currentcnt{3}?><label>Figure 3</label><caption><p id="d1e9466">Equicovariance ellipses from the wind-informed kernel with various wind vectors <inline-formula><mml:math id="M510" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and values of <inline-formula><mml:math id="M511" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula>. The wind values are taken at the test input <inline-formula><mml:math id="M512" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, but the covariance function <inline-formula><mml:math id="M513" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> is evaluated also for each pair of observations <inline-formula><mml:math id="M514" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M515" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. </p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f03.png"/>

        </fig>

      <p id="d1e9530">The covariance functions used in this work to model <inline-formula><mml:math id="M516" display="inline"><mml:mi mathvariant="normal">Ψ</mml:mi></mml:math></inline-formula> are sums of several kernels – sums of valid Gaussian process kernels remain  valid kernels.  The general form of the <italic>multi-scale kernel</italic> used in satGP is given by

                <disp-formula id="Ch1.E20" content-type="numbered"><label>20</label><mml:math id="M517" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>k</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo></mml:mrow><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">ker</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">ker</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the first term, which in kriging is called the nugget, contains the observation  error variances, and each <inline-formula><mml:math id="M518" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ker</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mi mathvariant="normal">exp</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mtext>per</mml:mtext><mml:mo>,</mml:mo><mml:mtext>w</mml:mtext><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e9676">The kernel components of a multi-scale kernel are in this work called <italic>subkernels</italic>. The combined set of parameters is denoted by <inline-formula><mml:math id="M519" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">ker</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow><mml:mi>T</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">ker</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mi>T</mml:mi></mml:msubsup><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. Not all subkernel types are included in all experiments – rather, the simulations in Sect. <xref ref-type="sec" rid="Ch1.S4"/> utilize kernels with one to three components. What those components should be depends on what  fields are being modeled and what kinds of correlation structures the user  expects to find in the data. Section <xref ref-type="sec" rid="Ch1.S4.SS1"/> discusses  identifiability of the different subkernel parameters of the multi-scale kernel.</p>
      <p id="d1e9735">Instead of calling <inline-formula><mml:math id="M520" display="inline"><mml:mrow><mml:mi>k</mml:mi><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:mo>′</mml:mo></mml:msup><mml:mo>;</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>  in Eq. (<xref ref-type="disp-formula" rid="Ch1.E20"/>) a multi-scale kernel, the term multi-component kernel could also be used  to describe the form. The term “multi-scale” underlines that the purpose of the combined kernel is to model data well, which contains  several natural length scales, as remote sensing products often do. Furthermore, we believe that combining several kernels with identical length-scale parameters does not represent a common use case.</p>
</sec>
<sec id="Ch1.S2.SS5">
  <label>2.5</label><title>Covariance localization and observation selection for the multi-scale kernel</title>
      <p id="d1e9773">Using a large number of observations makes solving the Gaussian process Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) and (<xref ref-type="disp-formula" rid="Ch1.E10"/>) intractable as the cost of  inverting the covariance matrix scales as <inline-formula><mml:math id="M521" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi>n</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. This creates a need for finding approximate solutions while introducing as little error as possible.
In satGP, covariance localization is used to utilize only a subset of observations for computing Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) and (<xref ref-type="disp-formula" rid="Ch1.E10"/>). To control the localization behavior  the user needs to set two parameters:  the maximum subkernel covariance matrix size <inline-formula><mml:math id="M522" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> and the minimum covariance parameter <inline-formula><mml:math id="M523" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e9824">Assume that the multi-scale kernel defined by the user contains <inline-formula><mml:math id="M524" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> subkernels. For each test input <inline-formula><mml:math id="M525" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and  for each subkernel <inline-formula><mml:math id="M526" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the set of observations feasible for inclusion in <inline-formula><mml:math id="M527" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> in Eqs. (<xref ref-type="disp-formula" rid="Ch1.E6"/>) and (<xref ref-type="disp-formula" rid="Ch1.E7"/>) is
            <disp-formula id="Ch1.E21" content-type="numbered"><label>21</label><mml:math id="M528" display="block"><mml:mtable rowspacing="0.2ex" class="split" columnspacing="1em" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mi mathvariant="italic">≜</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo mathvariant="italic" mathsize="1.5em">{</mml:mo><mml:msub><mml:mi mathvariant="italic">ψ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>|</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">ψ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∉</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>∀</mml:mo><mml:mi>j</mml:mi><mml:mo>&lt;</mml:mo><mml:mi>l</mml:mi><mml:mo mathvariant="italic" mathsize="1.5em">}</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          where the last condition prevents observations from being added by several subkernels.
In the end we select a single set of observations <inline-formula><mml:math id="M529" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mo>*</mml:mo><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> for each test input by combining some or all of the observations included in each <inline-formula><mml:math id="M530" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>. The observation selection proceeds sequentially through the list of subkernels according to the procedure presented in Fig. <xref ref-type="fig" rid="Ch1.F4"/>.
Recomputing the <inline-formula><mml:math id="M531" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> for each subkernel on line 3 of the algorithm  allows the selection of more than <inline-formula><mml:math id="M532" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> observations by subkernels if the  previous subkernels did not have <inline-formula><mml:math id="M533" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> feasible observations available. This is done to allow the full kernel size to grow to <inline-formula><mml:math id="M534" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub><mml:mi mathvariant="italic">κ</mml:mi></mml:mrow></mml:math></inline-formula> when possible.
On line 4, the observation selection operator <inline-formula><mml:math id="M535" display="inline"><mml:mrow><mml:mi mathvariant="script">S</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> chooses <inline-formula><mml:math id="M536" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> observations from each <inline-formula><mml:math id="M537" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> either greedily by picking the observations with highest covariance with <inline-formula><mml:math id="M538" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> or randomly by sampling uniformly without replacement from <inline-formula><mml:math id="M539" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.
Out of these two methods random selection avoids observation sorting and is therefore faster, especially if a huge number of data are near the test input <inline-formula><mml:math id="M540" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. This comes at the cost of producing  noisier fields of marginal posterior means. For covariance parameter estimation random selection works well. See Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/> for additional details.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><?xmltex \currentcnt{4}?><label>Figure 4</label><caption><p id="d1e10162">Algorithm for selecting observations for carrying out predictions at test input <inline-formula><mml:math id="M541" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. The sets <inline-formula><mml:math id="M542" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mo>*</mml:mo><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> are defined by Eq. (<xref ref-type="disp-formula" rid="Ch1.E21"/>), and the variable <inline-formula><mml:math id="M543" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> is the maximum subkernel size, also listed in Table <xref ref-type="table" rid="Ch1.T2"/> and discussed in Sect. <xref ref-type="sec" rid="Ch1.S3"/>. The selection operator <inline-formula><mml:math id="M544" display="inline"><mml:mrow><mml:mi mathvariant="script">S</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> chooses <inline-formula><mml:math id="M545" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> observations from each <inline-formula><mml:math id="M546" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mrow><mml:mo>*</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> either greedily or randomly.  </p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f04.png"/>

        </fig>

      <p id="d1e10270">Since the subkernels are handled sequentially, their order may affect which observations are selected due to the exclusion in Eq. (<xref ref-type="disp-formula" rid="Ch1.E21"/>), and to grow the full kernel to size <inline-formula><mml:math id="M547" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub><mml:mi mathvariant="italic">κ</mml:mi></mml:mrow></mml:math></inline-formula> as often as possible, it is recommended to specify the subkernel with the largest <inline-formula><mml:math id="M548" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> parameters as the last one. After constructing <inline-formula><mml:math id="M549" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mo>*</mml:mo><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, the covariance matrix <inline-formula><mml:math id="M550" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> is constructed by evaluating the full covariance function <inline-formula><mml:math id="M551" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> according to Eq. (<xref ref-type="disp-formula" rid="Ch1.E20"/>) for all pairs of selected observations.</p>
      <p id="d1e10325">For learning the spatially varying <inline-formula><mml:math id="M552" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M553" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters for grid index <inline-formula><mml:math id="M554" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>  in the mean function with the methods in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3.SSS2"/>, the observation selection is performed by disregarding the time component on the inputs, i.e., by setting <inline-formula><mml:math id="M555" display="inline"><mml:mrow><mml:msup><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mi mathvariant="normal">t</mml:mi></mml:msup><mml:mo>←</mml:mo><mml:msup><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mi mathvariant="normal">t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>  for all <inline-formula><mml:math id="M556" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> in the training data. The reason for<?pagebreak page3449?> this is that, since learning the mean function amounts to fitting spatially varying parameter vectors <inline-formula><mml:math id="M557" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M558" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>, the data to perform the fit should not be selected based on covariance in the time direction, as the mean function should be equally valid at all times.</p>
      <p id="d1e10417">Selecting the observations could also be done based on values of <inline-formula><mml:math id="M559" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> instead of each <inline-formula><mml:math id="M560" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> individually or by other approaches, such as the one  presented by <xref ref-type="bibr" rid="bib1.bibx34" id="text.35"/>. However, even though the method of observation selection does have an effect on the inferred posterior marginals, the screening property of Gaussian processes ensures that this effect is not major as long as observational noise is small and the nearest observations are included in all directions. The parameter identifiability results in Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/> and the WACCM4 results in Sect.  <xref ref-type="sec" rid="Ch1.S4.SS2"/> verify that the current nearest-neighbor-in-covariance approach works as intended.</p>
</sec>
<sec id="Ch1.S2.SS6">
  <label>2.6</label><?xmltex \opttitle{Learning the covariance parameters $\boldsymbol{\theta}$}?><title>Learning the covariance parameters <inline-formula><mml:math id="M561" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula></title>
      <p id="d1e10461">From Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/> the log marginal likelihood of observations <inline-formula><mml:math id="M562" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> given a set of parameters <inline-formula><mml:math id="M563" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M564" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M565" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> is given by
            <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M566" display="block"><mml:mtable rowspacing="0.2ex" columnspacing="1em" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>log⁡</mml:mi><mml:mi>p</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mo>‖</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:mi mathvariant="bold">F</mml:mi><mml:mi mathvariant="bold-italic">β</mml:mi></mml:mrow></mml:mfenced><mml:msubsup><mml:mo>‖</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mi>log⁡</mml:mi><mml:mo>|</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mo>|</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          where the covariance function parameters <inline-formula><mml:math id="M567" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> implicitly determine <inline-formula><mml:math id="M568" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula>, and the nonlinear space-dependent mean function parameters <inline-formula><mml:math id="M569" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> affect the values in <inline-formula><mml:math id="M570" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula>. The maximum (marginal) likelihood estimate (MLE) <inline-formula><mml:math id="M571" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula> of <inline-formula><mml:math id="M572" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> can be found via minimizing

                <disp-formula id="Ch1.E23" content-type="numbered"><label>23</label><mml:math id="M573" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="script">L</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mfenced><mml:mo>=</mml:mo><mml:mo>‖</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:mi mathvariant="bold">F</mml:mi><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:msubsup><mml:mo>‖</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mi>log⁡</mml:mi><mml:mo>|</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mo>|</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:math></disp-formula>

          as stated in context of Eq. (<xref ref-type="disp-formula" rid="Ch1.E5"/>).</p>
      <p id="d1e10706">In the presence of a huge number of observations, calculating the determinant of the full covariance <inline-formula><mml:math id="M574" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="bold">K</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> is not feasible, and maximizing the log-likelihood is approximated by

                <disp-formula id="Ch1.E24" content-type="numbered"><label>24</label><mml:math id="M575" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><?xmltex \hack{\hbox\bgroup\fontsize{9.5}{9.5}\selectfont$\displaystyle}?><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:munder><mml:mtext>arg min</mml:mtext><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/></mml:mrow></mml:munder><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>∈</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mfenced open="{" close="}"><mml:mrow><mml:mo>‖</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">local</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold">F</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:msubsup><mml:mo>‖</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold">K</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mi>log⁡</mml:mi><mml:mo>|</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold">K</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:mfenced><mml:mo>,</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M576" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a set of randomly sampled points from the  spatiotemporal domain specified for the experiment, determined by the parameters <sans-serif>area</sans-serif> and <inline-formula><mml:math id="M577" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">days</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Table <xref ref-type="table" rid="Ch1.T2"/>. The <inline-formula><mml:math id="M578" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M579" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover></mml:math></inline-formula> parameters, the latter of which is embedded in <inline-formula><mml:math id="M580" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula>, are the point estimates corresponding to each <inline-formula><mml:math id="M581" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, interpolated from the values obtained for the full grid. The optimization in Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) is carried out over all subkernel parameters with some caveats: currently the smoothness-related parameter <inline-formula><mml:math id="M582" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> for the Matérn kernel and the exponent <inline-formula><mml:math id="M583" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> for the exponential kernel are not calibrated, and naturally neither are the wind data <inline-formula><mml:math id="M584" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> listed as a parameter for the wind-informed covariance – however,  the parameter <inline-formula><mml:math id="M585" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> affecting that kernel can be learned.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T2" specific-use="star"><?xmltex \currentcnt{2}?><label>Table 2</label><caption><p id="d1e10929">Most important satGP control variables and high-level C structs: first section contains parameters for program logic, second for domain specification, third for covariance and mean function definition, and last for observation handling. This list is by no means exhaustive – the configuration file contains lots of variables that can control the program. Some additional tweaking is possible by changing hard-coded values directly in the source code, such as those listed in Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left" colsep="1"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right" colsep="1"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Variable</oasis:entry>
         <oasis:entry colname="col2">Type</oasis:entry>
         <oasis:entry colname="col3">Low</oasis:entry>
         <oasis:entry colname="col4">High</oasis:entry>
         <oasis:entry colname="col5">Notes</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><sans-serif>learn_k</sans-serif></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4">2</oasis:entry>
         <oasis:entry colname="col5">(0) Do not train <inline-formula><mml:math id="M586" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>; (1) generate observations and learn <inline-formula><mml:math id="M587" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>; (2) learn <inline-formula><mml:math id="M588" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> from non-synthetic data.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><sans-serif>learn_m</sans-serif></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4">1</oasis:entry>
         <oasis:entry colname="col5">(0) Do not train local <inline-formula><mml:math id="M589" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M590" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>; (1) find local <inline-formula><mml:math id="M591" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M592" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> as in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>.</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><sans-serif>sampling</sans-serif></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4">2</oasis:entry>
         <oasis:entry colname="col5">(0) Skip sampling; (1) calculate GP marginals at each grid point; (2) sample from GP.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><sans-serif>area</sans-serif></oasis:entry>
         <oasis:entry colname="col2"><monospace>char*</monospace></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">Area definition setting longitude and latitude minimum and maximum values</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M593" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">days</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M594" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Number of days to be simulated</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M595" display="inline"><mml:mi mathvariant="italic">ω</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>float</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M596" display="inline"><mml:mrow><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">180</oasis:entry>
         <oasis:entry colname="col5">1 d grid resolution in degrees – small values degrade esp. posterior sampling performance.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M597" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
         <oasis:entry colname="col4">10</oasis:entry>
         <oasis:entry colname="col5">Number of subkernels <inline-formula><mml:math id="M598" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in <inline-formula><mml:math id="M599" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><sans-serif>cfc</sans-serif></oasis:entry>
         <oasis:entry colname="col2"><monospace>struct*</monospace></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">Recursive struct pointer defining <inline-formula><mml:math id="M600" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi mathvariant="normal">…</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and corresponding <inline-formula><mml:math id="M601" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>; see Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/>.</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><sans-serif>mf</sans-serif></oasis:entry>
         <oasis:entry colname="col2"><monospace>struct*</monospace></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">Struct pointer for defining type of <inline-formula><mml:math id="M602" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>,</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and associated (initial) <inline-formula><mml:math id="M603" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M604" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>; see Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M605" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>float</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M606" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Fraction of observations that are randomly included in <inline-formula><mml:math id="M607" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> when learning <inline-formula><mml:math id="M608" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M609" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M610" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M611" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">sample</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>float</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M612" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Fraction of observations that are randomly included in <inline-formula><mml:math id="M613" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> when <sans-serif>sampling</sans-serif><inline-formula><mml:math id="M614" display="inline"><mml:mrow><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M615" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>float</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M616" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Discard observation at <inline-formula><mml:math id="M617" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M618" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> if <inline-formula><mml:math id="M619" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>&lt;</mml:mo><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>; see Sect.  <xref ref-type="sec" rid="Ch1.S2.SS5"/>.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M620" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M621" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Number of reference points in <inline-formula><mml:math id="M622" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) for training <inline-formula><mml:math id="M623" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M624" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">synthetic</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M625" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Number of random locations where synthetic data are generated for training  <inline-formula><mml:math id="M626" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M627" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">synthetic</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>float</monospace></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M628" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Variance in Gaussian noise added to synthetic observations</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M629" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><monospace>int</monospace></oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M630" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">Maximum subkernel size; values <inline-formula><mml:math id="M631" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>&gt;</mml:mo><mml:msubsup><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula> will be slow due to  <inline-formula><mml:math id="M632" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> scaling.</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e11732">While the selection of inputs included in <inline-formula><mml:math id="M633" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> has an effect on the obtained parameter estimate, that effect has proven in simulations to be small. The vectors <inline-formula><mml:math id="M634" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">local</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M635" display="inline"><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the number of observations chosen by the observation selection method of Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/> for test input <inline-formula><mml:math id="M636" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>,  contain observations closest in covariance to <inline-formula><mml:math id="M637" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, each of which is a reference point included in <inline-formula><mml:math id="M638" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The matrices <inline-formula><mml:math id="M639" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">F</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are the corresponding <inline-formula><mml:math id="M640" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula>-matrices, as described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>.
The last term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>) is dropped, since while varying <inline-formula><mml:math id="M641" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>  in Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) changes <inline-formula><mml:math id="M642" display="inline"><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the number of total observations in the problem should fundamentally stay the same.</p>
      <p id="d1e11868">The maximum likelihood estimate approximation in Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) contains a sum  over blocks of observations, which can  together be thought of as a block-diagonal approximation of the full dense covariance for all observations in all <inline-formula><mml:math id="M643" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">local</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>. The blocks in this approximation are the dense covariance matrices <inline-formula><mml:math id="M644" display="inline"><mml:mover accent="true"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover></mml:math></inline-formula>, and in contrast to a full dense <inline-formula><mml:math id="M645" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula>, in this approximation the cross-covariances between observations in  <inline-formula><mml:math id="M646" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">local</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and  <inline-formula><mml:math id="M647" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">local</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M648" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>≠</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></inline-formula>, are set to 0. This is done even if the randomly selected corresponding inputs <inline-formula><mml:math id="M649" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M650" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>j</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> are close to each other. Due to the <inline-formula><mml:math id="M651" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>n</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> cost of inverting the covariance matrix, which is needed for finding the maximum likelihood estimate, using the block approximation provides a critical efficiency improvement without which learning the covariance function parameters would not be feasible.</p>
      <p id="d1e12001">While this method is suitable for finding point estimates for the parameters <inline-formula><mml:math id="M652" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>, the computed approximated log-likelihood has an unknown scaling factor resulting in an unknown multiplicative factor for the variance term in the exponent of the Gaussian distribution, and hence information about the true size of the  posterior distribution of the covariance parameters <inline-formula><mml:math id="M653" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="true">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is lost.</p>
      <p id="d1e12052">By default the scaled posterior <inline-formula><mml:math id="M654" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is explored by using the adaptive Metropolis (AM) Markov chain Monte Carlo (MCMC) algorithm <xref ref-type="bibr" rid="bib1.bibx12" id="paren.36"/>, an<?pagebreak page3450?> implementation of which is included in the satGP source code. MCMC methods <xref ref-type="bibr" rid="bib1.bibx10" id="paren.37"/> are used to draw samples from probability distributions when direct sampling  is not possible, but  the likelihood function can still be evaluated. The samples are drawn by generating a Markov chain of parameter values, which is an autocorrelated sample from the posterior. The AM algorithm is an adaptive method that is efficient for many real-world sampling situations. The observation selection procedure in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/> introduces discontinuities to the posterior distribution due to selected observations changing when the covariance function parameters are modified. Computing  <inline-formula><mml:math id="M655" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>←</mml:mo><mml:mi mathvariant="double-struck">E</mml:mi><mml:mo>[</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>|</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi mathvariant="script">V</mml:mi></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> with MCMC – i.e., using the posterior mean of a Monte Carlo sample – usually works around this noisiness in the likelihood. On the downside, MCMC is computationally much more demanding than finding the maximum a posteriori estimate with optimization, since MCMC may require computing up to millions of likelihood evaluations. In the satGP context using MCMC is feasible since the forward model simply amounts to sampling from a multivariate normal distribution, which is very fast. Furthermore, the parameter dimension is moderate, even with multiple subkernels, limiting the need to generate extremely long chains. The current version of satGP uses a  flat prior distribution  for the covariance parameters, with hard limits on the parameter ranges.</p>
      <p id="d1e12153">The software also includes a capability to learn the covariance parameters using  optimization algorithms such as COBYLA or SBPLEX available in NLopt. These methods are much faster than MCMC but have the tendency of getting stuck in local minima, limiting their usefulness.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Overview of Computation</title>
      <p id="d1e12165">The satGP code is written in C, with visualization scripts written in Python and parallelization implemented with OpenMP directives. The program reads data from netCDF and text files and the configuration from a C header file. For linear algebra satGP uses the C interfaces of LAPACK and BLAS and LAPACKE and CBLAS, and optimization tasks are carried out with  the NLopt library. The computations are performed in single precision  in order to save memory resources with the largest data sets and also to improve performance.</p>
      <p id="d1e12168">The most important configuration variables are listed in Table <xref ref-type="table" rid="Ch1.T2"/>.
The user needs to define whether parameters are learned or prescribed and whether  marginals or samples from the GP are to be computed. The mean function and the covariance kernel are  defined by initializing corresponding structs with parameters and their limits if calibration is to be performed. For computing GP marginals or drawing samples from the random process, the geographic and temporal extents need to be specified, and  the mean function and the covariance kernel used must be given.</p>
      <?pagebreak page3451?><p id="d1e12173">Several parameters can be tweaked to improve  computational efficiency, including all of those in the second and last sections of Table <xref ref-type="table" rid="Ch1.T2"/>. The first main bottleneck for computing a marginal at <inline-formula><mml:math id="M656" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is sorting the observations for selecting the most informative ones to be used in the covariance matrices; see Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>. This  requires roughly  <inline-formula><mml:math id="M657" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>log⁡</mml:mi><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> operations for each subkernel, where <inline-formula><mml:math id="M658" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
is the number of grid locations <inline-formula><mml:math id="M659" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the spatiotemporal grid such that  for the <inline-formula><mml:math id="M660" display="inline"><mml:mi>l</mml:mi></mml:math></inline-formula>th subkernel, <inline-formula><mml:math id="M661" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>. For subkernels with <inline-formula><mml:math id="M662" display="inline"><mml:mrow><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M663" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mo>∝</mml:mo><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>q</mml:mi></mml:msubsup><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, with   <inline-formula><mml:math id="M664" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> denoting the  length-scale parameters over all the dimensions of the inputs <inline-formula><mml:math id="M665" display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>. In other words, <inline-formula><mml:math id="M666" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is proportional the size of the hypersphere inside which observations are considered for each <inline-formula><mml:math id="M667" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. The second bottleneck is calculating the Cholesky decompositions of the covariance matrices <inline-formula><mml:math id="M668" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> with cost <inline-formula><mml:math id="M669" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The cost of calculating the means and variances for the GP in a grid for a set of <inline-formula><mml:math id="M670" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">times</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> points on the time axis is therefore given by
          <disp-formula id="Ch1.E25" content-type="numbered"><label>25</label><mml:math id="M671" display="block"><mml:mtable columnspacing="1em" class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>cost</mml:mtext><mml:mo>=</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mfenced close="" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>A</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">times</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="italic">ω</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="" open="["><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close=")" open=""><mml:mfenced close="]" open=""><mml:mrow><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>log⁡</mml:mi><mml:mi mathvariant="italic">κ</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
        where <inline-formula><mml:math id="M672" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> is the grid area in degrees squared, and <inline-formula><mml:math id="M673" display="inline"><mml:mi mathvariant="italic">ω</mml:mi></mml:math></inline-formula> is the grid resolution. When the random observation selection method mentioned in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/> is used, the <inline-formula><mml:math id="M674" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>) becomes just <inline-formula><mml:math id="M675" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>

      <?xmltex \floatpos{p}?><fig id="Ch1.F5"><?xmltex \currentcnt{5}?><label>Figure 5</label><caption><p id="d1e12575">Overview of satGP execution.  After initialization, data are read for training <inline-formula><mml:math id="M676" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M677" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, and possible MRF computation is carried out. This is followed by sampling the prior if a synthetic study is performed and learning the <inline-formula><mml:math id="M678" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> parameters controlling <inline-formula><mml:math id="M679" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>. Gaussian process marginals are then computed in a grid, potentially by decomposing the domain for large grids. Finally, samples from the GP may be drawn. The names of the subprograms here deviate from those in the code to improve readability.</p></caption>
        <?xmltex \igopts{width=199.169291pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f05.png"/>

      </fig>

      <p id="d1e12612">The execution of the program is presented in Fig. <xref ref-type="fig" rid="Ch1.F5"/>.
The function <monospace>AddToState()</monospace> reads observations (asynchronously) into a <sans-serif>state</sans-serif>  object that tracks the proximity of each observation to each grid point. Only a part of the observations is added,  controlled on line 6 by the parameter <inline-formula><mml:math id="M680" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">train</mml:mi><mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, which corresponds to the inclusion probability of each observation.  This probability depends on <inline-formula><mml:math id="M681" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Table <xref ref-type="table" rid="Ch1.T2"/> via
          <disp-formula id="Ch1.E26" content-type="numbered"><label>26</label><mml:math id="M682" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">train</mml:mi><mml:mi>i</mml:mi></mml:msubsup><mml:mi mathvariant="italic">≜</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>d</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mrow><mml:msub><mml:mi>i</mml:mi><mml:mi mathvariant="normal">prev</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ω</mml:mi><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>∧</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        where <inline-formula><mml:math id="M683" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mrow><mml:msub><mml:mi>i</mml:mi><mml:mi mathvariant="normal">prev</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the Euclidean distance of the point at <inline-formula><mml:math id="M684" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> that is being proposed for addition to the previous added point at <inline-formula><mml:math id="M685" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">x</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">prev</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">obs</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M686" display="inline"><mml:mo>∧</mml:mo></mml:math></inline-formula> is the standard notation for minimum. Hence with <inline-formula><mml:math id="M687" display="inline"><mml:mrow><mml:mi mathvariant="italic">ζ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> all observations  are added.</p>
      <p id="d1e12788">For computing the marginals, the spatial domain can be decomposed with <monospace>Decompose()</monospace>, line 23, into several spatial subdomains (sd) so that arbitrary-size grids can be computed. This makes solving large problems with limited amount of memory possible, but it only works with <sans-serif>sampling</sans-serif><inline-formula><mml:math id="M688" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>. This option is in practice rarely needed, and it was not needed for the simulations in Sect. <xref ref-type="sec" rid="Ch1.S4"/>.
The state object is emptied by <monospace>ReInitializeState()</monospace>, which also potentially sets new subdomain extents. Function <monospace>SampleFromPrior()</monospace> actually performs the computations on ll. 30–37 but with the inputs <inline-formula><mml:math id="M689" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> in a random pattern instead of in a grid as is the case in ll. 27–38.</p>
      <?pagebreak page3452?><p id="d1e12826">The <monospace>AddSubdomainData()</monospace> method on l. 29 adds data as on ll. 3–9 but only to the current subdomain. After that, the   <monospace>SelectObservations()</monospace> method (l. 31) carries out selecting the best observations as described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>. For constructing the set of potential observations, the grid is searched for locations that may have informative observations for the current test input stored in the <sans-serif>state</sans-serif>  object. These locations are first ordered into categories with decreasing potential covariance, and for the best locations, which together hold at least <inline-formula><mml:math id="M690" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">κ</mml:mi></mml:mrow></mml:math></inline-formula> observations, the covariance function with the test input is evaluated. Out of these, the <inline-formula><mml:math id="M691" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> best are chosen. The factor of <inline-formula><mml:math id="M692" display="inline"><mml:mn mathvariant="normal">2</mml:mn></mml:math></inline-formula> can be increased for the wind-informed kernel, and the value 8 is used in the demonstration  in Sect. <xref ref-type="sec" rid="Ch1.S4.SS8"/>.</p>
      <p id="d1e12867">The function  <monospace>ComputeMarginal()</monospace> constructs the covariance matrix <inline-formula><mml:math id="M693" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula>, inverts via the  Cholesky decomposition, and solves Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) and (<xref ref-type="disp-formula" rid="Ch1.E10"/>) to find the marginal distribution at any test input <inline-formula><mml:math id="M694" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. That function returns the negative log-likelihood and is therefore directly used in learning the covariance parameters <inline-formula><mml:math id="M695" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> in <monospace>FindCovfunCoeffs()</monospace> on line 18.</p>
      <p id="d1e12906">The Gaussian process algorithm is an interpolation algorithm when observation noise is 0, and interpolation algorithms may misbehave  when used for extrapolation. In a spatiotemporal large grid, when <sans-serif>sampling</sans-serif> <inline-formula><mml:math id="M696" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>, i.e., when draws of the Gaussian process are generated in a regular spatiotemporal grid, computing conditionals based on the previous predictions would amount to extrapolation if done in order. For this reason, a deterministic sparse ordering is used, which ensures that test inputs corresponding to  simultaneous predictions are far from each other so that their mutual covariance is negligible. Conditioning on already computed values is therefore for the vast majority of GP evaluations interpolation instead of extrapolation.</p>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Results and discussion</title>
      <p id="d1e12930">In this section we present several simulation studies. The first experiment examines  parameter identifiability with the multi-scale kernel using satGP-generated data. We then demonstrate how satGP posterior distributions look like compared to truth using synthetic ozone fields from the WACCM4 model.</p>
      <p id="d1e12933">After that we concentrate on analyzing   satGP results produced using the OCO-2 Level 2 data. First, we learn the parameters of the locally varying mean function of the form in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>)  by computing the MRF, and those fields are then  analyzed. We then learn the covariance parameters of the OCO-2 <inline-formula><mml:math id="M697" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> spatiotemporal field from data. Knowing both the mean and the covariance functions allows us to evaluate the Gaussian process globally in a grid, and we present snapshots of the global mean and uncertainty fields. The section concludes by comparing posterior marginal fields generated by using single-scale and multi-scale kernels and by  demonstrating how the wind-informed kernel works.
<?xmltex \hack{\newpage}?></p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Parameter identifiability with the multi-scale kernel</title>
      <p id="d1e12957">We performed a synthetic study to confirm the identifiability of the multi-scale covariance function parameters. The synthetic data were generated by satGP by sampling from zero-mean processes with known covariance parameters and with a random spatial pattern from the prior, adding 1 % noise. The parameters were then estimated by computing the posterior mean estimates using adaptive Metropolis.</p>
      <p id="d1e12960">The identifiability experiment was performed with various kernels, and recovering the true parameters was the more difficult  the more complex the kernel was. With a single Matérn, exponential, or periodic kernel, the parameters could be recovered very easily. This was also true for a combination of exponential and Matérn kernels with a relatively small <inline-formula><mml:math id="M698" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> parameter.</p>
      <p id="d1e12970">The covariance kernel parameters were still recoverable with a combination of three kernels, Matérn with <inline-formula><mml:math id="M699" display="inline"><mml:mrow><mml:mi mathvariant="italic">ν</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">5</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula>, exponential, and periodic. This setup required using a larger <inline-formula><mml:math id="M700" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">256</mml:mn></mml:mrow></mml:math></inline-formula>.  With  small <inline-formula><mml:math id="M701" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula>, some of the parameters had a tendency to end up at the lower boundary, possibly due to effects of the covariance cutoff on the determinant of the covariance matrix in Eq. (<xref ref-type="disp-formula" rid="Ch1.E22"/>). Optimization using minimization algorithms such as Nelder–Mead, COBYLA (Constrained Optimization BY Linear Approximation), or BOBYQA (Bound Optimization BY Quadratic Approximation) tended to often end up in local minima, and for this reason MCMC was used instead. The number of random reference points in <inline-formula><mml:math id="M702" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) was set to 12, which was enough to reliably recover parameters close to the true value.</p>
      <p id="d1e13024">The parameter limits, true values, and posterior means of the synthetic experiment with three kernels are given in Table <xref ref-type="table" rid="Ch1.T3"/>. In total 200 000 observations were created in the region between <inline-formula><mml:math id="M703" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M704" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> latitude and <inline-formula><mml:math id="M705" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M706" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> longitude over a period of 4 years according to the true values reported in Table <xref ref-type="table" rid="Ch1.T3"/>. A total of 10 million MCMC iterations were computed to make sure that the posterior covariance stabilized. The posterior, with first 50 % of the chain discarded as burn-in, is shown in Fig. <xref ref-type="fig" rid="Ch1.F6"/></p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T3"><?xmltex \currentcnt{3}?><label>Table 3</label><caption><p id="d1e13079">Lower and upper limits, with true and estimated parameter values. The three-kernel synthetic covariance function parameter estimation problem is already very difficult, here resulting in slight  overestimation of the  parameters of the smallest kernel.  </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <oasis:colspec colnum="1" colname="col1" align="left" colsep="1"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right" colsep="1"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right" colsep="1"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Low</oasis:entry>
         <oasis:entry colname="col3">High</oasis:entry>
         <oasis:entry colname="col4">True</oasis:entry>
         <oasis:entry colname="col5">Est</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M707" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Est</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="normal">True</mml:mi></mml:mrow><mml:mi mathvariant="normal">True</mml:mi></mml:mfrac></mml:mstyle></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M708" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">mat</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.05</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
         <oasis:entry colname="col4">0.5</oasis:entry>
         <oasis:entry colname="col5">0.652</oasis:entry>
         <oasis:entry colname="col6">0.304</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M709" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi><mml:mi mathvariant="normal">mat</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.003</oasis:entry>
         <oasis:entry colname="col3">0.02</oasis:entry>
         <oasis:entry colname="col4">0.007</oasis:entry>
         <oasis:entry colname="col5">0.00989</oasis:entry>
         <oasis:entry colname="col6">0.413</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M710" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mi mathvariant="normal">mat</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.003</oasis:entry>
         <oasis:entry colname="col3">0.02</oasis:entry>
         <oasis:entry colname="col4">0.01</oasis:entry>
         <oasis:entry colname="col5">0.0135</oasis:entry>
         <oasis:entry colname="col6">0.350</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M711" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mi mathvariant="normal">mat</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">1 d</oasis:entry>
         <oasis:entry colname="col3">14 d</oasis:entry>
         <oasis:entry colname="col4">7 d</oasis:entry>
         <oasis:entry colname="col5">8.06 d</oasis:entry>
         <oasis:entry colname="col6">0.15</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M712" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">per</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.01</oasis:entry>
         <oasis:entry colname="col3">2</oasis:entry>
         <oasis:entry colname="col4">1</oasis:entry>
         <oasis:entry colname="col5">1.073</oasis:entry>
         <oasis:entry colname="col6">0.073</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M713" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi><mml:mi mathvariant="normal">per</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.001</oasis:entry>
         <oasis:entry colname="col3">0.04</oasis:entry>
         <oasis:entry colname="col4">0.02</oasis:entry>
         <oasis:entry colname="col5">0.0207</oasis:entry>
         <oasis:entry colname="col6">0.035</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M714" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mi mathvariant="normal">per</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.001</oasis:entry>
         <oasis:entry colname="col3">0.04</oasis:entry>
         <oasis:entry colname="col4">0.02</oasis:entry>
         <oasis:entry colname="col5">0.0220</oasis:entry>
         <oasis:entry colname="col6">0.1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M715" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">per</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.01</oasis:entry>
         <oasis:entry colname="col3">0.3</oasis:entry>
         <oasis:entry colname="col4">0.1</oasis:entry>
         <oasis:entry colname="col5">0.1075</oasis:entry>
         <oasis:entry colname="col6">0.075</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M716" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.5</oasis:entry>
         <oasis:entry colname="col3">3</oasis:entry>
         <oasis:entry colname="col4">1</oasis:entry>
         <oasis:entry colname="col5">0.927</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M717" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.077</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M718" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.005</oasis:entry>
         <oasis:entry colname="col3">0.1</oasis:entry>
         <oasis:entry colname="col4">0.025</oasis:entry>
         <oasis:entry colname="col5">0.0352</oasis:entry>
         <oasis:entry colname="col6">0.408</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M719" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.005</oasis:entry>
         <oasis:entry colname="col3">0.1</oasis:entry>
         <oasis:entry colname="col4">0.04</oasis:entry>
         <oasis:entry colname="col5">0.0405</oasis:entry>
         <oasis:entry colname="col6">0.0125</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M720" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mi mathvariant="normal">exp</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">7 d</oasis:entry>
         <oasis:entry colname="col3">30 d</oasis:entry>
         <oasis:entry colname="col4">21 d</oasis:entry>
         <oasis:entry colname="col5">24.83 d</oasis:entry>
         <oasis:entry colname="col6">0.182</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6" specific-use="star"><?xmltex \currentcnt{6}?><label>Figure 6</label><caption><p id="d1e13541">Scaled MCMC posteriors from a synthetic study where data were generated with a multi-scale Gaussian process. The figure demonstrates that even with three subkernels, multi-scale Gaussian process kernel parameters can be recovered. The lower-left part shows the pairwise marginal distributions of the parameters, and the black crosses denote the true parameter values. The axis labels are on the left and below the figure. The upper-right triangle shows  sample correlations between the parameters from the chain, with axis labels on the left and on the top. Small within-subkernel positive correlations are present. The contours shown include 85 % (black), 50 % (red), and 15 % (blue) of the posterior mass. </p></caption>
          <?xmltex \igopts{width=441.017717pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f06.png"/>

        </fig>

      <p id="d1e13550">How well parameters can be learned from data depends always on the data and the exact Gaussian process form chosen. While the identifiability studies presented here show that the parameter calibration procedure works and that covariance parameters are recoverable in a synthetic settings, identifiability cannot be always expected.  Still, even in these cases, the MAP and/or posterior mean estimates of the covariance parameters should provide good point estimates for <inline-formula><mml:math id="M721" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Posterior predictive distribution from synthetic WACCM4 ozone data</title>
      <?pagebreak page3453?><p id="d1e13568">A synthetic study  using WACCM4-generated ozone data was conducted to verify and to illustrate that the methods to learn the model parameters <inline-formula><mml:math id="M722" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M723" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M724" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> produce a realistic GP regression model that then produces  credible posterior predictive fields. In a synthetic setting the mean values of the  posterior predictive distributions should be close to the true fields, and the discrepancies between the ground truth and the predicted fields need to be explainable by the predicted marginal uncertainties. The role of this part in the study is to give an example of how a Gaussian process predictive posterior field produced with satGP compares with the underlying true field.</p>
      <p id="d1e13592">The WACCM4 model is an atmospheric component of the Community Earth System Model from NCAR <xref ref-type="bibr" rid="bib1.bibx17" id="paren.38"/>, capable of comprehensively representing atmospheric chemistry and modeling the atmosphere up to thermosphere.  WACCM4-generated ozone data for the years 2002–2003, with a latitude–longitude grid resolution of <inline-formula><mml:math id="M725" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">1.9</mml:mn><mml:mo>∘</mml:mo></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">2.5</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, 88 vertical levels going up to roughly 140 km, and an internal time step of 30 min, were used as ground truth and to generate synthetic observations.
Since the model was used for generating synthetic two-dimensional data, a specific atmospheric sigma hybrid pressure level of <inline-formula><mml:math id="M726" display="inline"><mml:mn mathvariant="normal">3.7</mml:mn></mml:math></inline-formula> kPa was selected.</p>
      <?pagebreak page3454?><p id="d1e13623">Ozone data at approximately 400 locations were sampled daily over a two-year period in a random pattern from the domain of the experiment to learn the parameters of the  mean  and covariance functions. The training data set was then generated by interpolating to these points from the simulated WACCM4 data. This sampling procedure corresponds to creating on average one observation daily for each  <inline-formula><mml:math id="M727" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">12.5</mml:mn><mml:mo>∘</mml:mo></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">12.5</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> longitude–latitude square.</p>
      <p id="d1e13644">Using these data, the mean function parameters were fitted locally using the method in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3.SSS1"/>, utilizing  the functions <inline-formula><mml:math id="M728" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>), but  with two additional terms <inline-formula><mml:math id="M729" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M730" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, which were similar to the <inline-formula><mml:math id="M731" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M732" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> except for different <inline-formula><mml:math id="M733" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="normal">period</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> parameters and phase-shift parameters <inline-formula><mml:math id="M734" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> that were shared between these <inline-formula><mml:math id="M735" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M736" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> only. These functions were used to   model periodical behavior with 2 and 1.5 year period lengths.
The covariance function parameters of a kernel consisting of a single Matérn kernel, Eq. (<xref ref-type="disp-formula" rid="Ch1.E15"/>),  were  learned using the approximate maximum likelihood technique described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS6"/> with data from  the first year. The parameter <inline-formula><mml:math id="M737" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> used for the kernel was <inline-formula><mml:math id="M738" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">5</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:math></inline-formula>. The optimization was carried out with MCMC, and the posterior mean estimate of the covariance parameters was selected for <inline-formula><mml:math id="M739" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo stretchy="true" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula>.  The values of the  covariance parameters obtained were <inline-formula><mml:math id="M740" display="inline"><mml:mrow><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.589</mml:mn></mml:mrow></mml:math></inline-formula>,  <inline-formula><mml:math id="M741" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.143</mml:mn></mml:mrow></mml:math></inline-formula>,  <inline-formula><mml:math id="M742" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.225</mml:mn></mml:mrow></mml:math></inline-formula>, and  <inline-formula><mml:math id="M743" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mn mathvariant="normal">16</mml:mn><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mi mathvariant="normal">h</mml:mi><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mn mathvariant="normal">15</mml:mn><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula>. That <inline-formula><mml:math id="M744" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is larger than <inline-formula><mml:math id="M745" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> echoes the OCO-2 results presented later in Table <xref ref-type="table" rid="Ch1.T4"/>.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T4"><?xmltex \currentcnt{4}?><label>Table 4</label><caption><p id="d1e13884">Covariance function parameter values learned from OCO-2 data. First column shows the Matérn kernel parameters, and the second column shows the exponential kernel parameters.  The spatial length-scale parameters are given as distance on the unit sphere, with <inline-formula><mml:math id="M746" display="inline"><mml:mn mathvariant="normal">0.01</mml:mn></mml:math></inline-formula> corresponding to approximately <inline-formula><mml:math id="M747" display="inline"><mml:mn mathvariant="normal">64</mml:mn></mml:math></inline-formula> km. The length scales along the parallels, <inline-formula><mml:math id="M748" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>, are much larger than that along the meridians, <inline-formula><mml:math id="M749" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>.  </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M750" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">mat</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M751" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">exp</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M752" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.899</oasis:entry>
         <oasis:entry colname="col3">2.72</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M753" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lat</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.00513</oasis:entry>
         <oasis:entry colname="col3">0.0418</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M754" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.0363</oasis:entry>
         <oasis:entry colname="col3">0.397</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M755" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">20 h 22 min</oasis:entry>
         <oasis:entry colname="col3">16 d 20 h 12 min</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e14103">For computing the posterior predictive distributions, the observational data <inline-formula><mml:math id="M756" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> were sampled from the WACCM4 simulations at locations closest in space and time to where the GOMOS instrument made measurements during its first year of operation. No noise was added to these observations. The posterior predictive distribution was computed for 1 full year, and the total number of observations used was 39 538. The reason for using different spatial patterns for learning the model parameters and for running the Gaussian process regression was that with this choice, the quality of the fit of the mean and covariance  functions was not dependent on the spatial location, and therefore, if major spatial discrepancies between the ground truth and the posterior predictive fields had emerged, those could then have been attributed to the  GOMOS sampling pattern used to generate the synthetic observations <inline-formula><mml:math id="M757" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e14128">The marginal posterior predictive distributions were computed globally in a uniform grid with the resolution of <inline-formula><mml:math id="M758" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">2.5</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> in the east–west direction and <inline-formula><mml:math id="M759" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">1.9</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> in the north–south direction between 78.63<inline-formula><mml:math id="M760" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> S and 78.63<inline-formula><mml:math id="M761" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N and daily over the period from 6 January 2002 to 5 January 2003, totaling around 4.384 million marginals in the predictive posterior.  The 1-year-long computation took 19 min 18 s on a relatively fast Intel i7-8850H laptop CPU.</p>
      <p id="d1e14171">Figure <xref ref-type="fig" rid="Ch1.F7"/> shows the ground truth from WACCM4 with the mean field and corresponding marginal uncertainties obtained from satGP  for 2 December 2002. The ground truth and the estimated fields are very similar, and the uncertainty is higher when  there are no observations nearby. The posterior mean field retains a lot of fine detail from the ground truth and is not overly smoothed or sharp, suggesting that the covariance parameter calibration procedure has found a well-performing estimate for the covariance parameters <inline-formula><mml:math id="M762" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula>. The smallest reported uncertainties are close to 0, as they should, due to lack of observation error.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><?xmltex \currentcnt{7}?><label>Figure 7</label><caption><p id="d1e14185">Ozone field mixing ratios at 3.7 kPa  for 2 December 2002. Panel <bold>(a)</bold> shows the simulated ground truth from WACCM4, while <bold>(b)</bold> is the GP posterior mean,  and <bold>(c)</bold> gives the posterior predictive uncertainties. A single  Matérn kernel was used. In <bold>(b)</bold> the larger circles with the white edges are observations from 2 December, and the smaller circles stand for observations from 1 and 3 December.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f07.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>The OCO-2 V9 data</title>
      <p id="d1e14215">The simulations with non-synthetic remote sensing data use  the V9 data  from the OCO-2 satellite.
OCO-2 was launched in 2014, and it orbits the Earth on a Sun-synchronous orbit <xref ref-type="bibr" rid="bib1.bibx7 bib1.bibx30" id="paren.39"/>, completing 14.57 revolutions around Earth  in 1 d. The footprint area of each measurement is roughly <inline-formula><mml:math id="M763" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.29</mml:mn><mml:mrow class="unit"><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">km</mml:mi></mml:mrow><mml:mo>×</mml:mo><mml:mn mathvariant="normal">2.25</mml:mn><mml:mrow class="unit"><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, but the data are very sparse in time and in space.  In the presence of clouds, the satellite is not able to produce measurements, and this  poses a challenge for areas with persistent cloud covers, such as northern Europe in the winter.</p>
      <?pagebreak page3455?><p id="d1e14241">The present work uses the <inline-formula><mml:math id="M764" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> data, their related reported uncertainties, associated coordinate information, and zonal and meridional wind speeds that are contained in the data files. The  time period considered is from 6 September 2014 to 10 November 2018, and we use only observations flagged as good, of which there are in total 116 489 342.</p>
</sec>
<sec id="Ch1.S4.SS4">
  <label>4.4</label><title>Solving the mean function for OCO-2 V9</title>
      <p id="d1e14263">Calibrating the mean function from OCO-2 V9 <inline-formula><mml:math id="M765" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> data as described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3.SSS1"/> produces the  estimates for the <inline-formula><mml:math id="M766" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M767" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> coefficients shown in Fig. <xref ref-type="fig" rid="Ch1.F8"/>. The <inline-formula><mml:math id="M768" 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> parameters are the coefficients of the functions <inline-formula><mml:math id="M769" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>), and <inline-formula><mml:math id="M770" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> is the phase-shift parameter in <inline-formula><mml:math id="M771" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M772" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The upper-left quadrant of Fig. <xref ref-type="fig" rid="Ch1.F8"/> shows the semiannual variability in the <inline-formula><mml:math id="M773" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> concentration. The timing of winter and summer in the Northern Hemisphere and Southern Hemisphere explains the color shift along the Equator. The lower-left quadrant shows the amplitude of the 2-times-faster oscillations, and like  <inline-formula><mml:math id="M774" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M775" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> also shows the highest amplitude oscillations in the boreal region.</p>
      <p id="d1e14385">The constant term <inline-formula><mml:math id="M776" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in the upper-right quadrant shows the background concentration. Some of the reddest areas such as East China, both coasts of the United States, central Europe, and the Persian Gulf stand out, and they are also areas where major emission sources are known to exist. Finding local  elevated concentrations compared to  surrounding areas  echoes the observations made by  <xref ref-type="bibr" rid="bib1.bibx13" id="text.40"/>, where empirically defined time-integrated local  <inline-formula><mml:math id="M777" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> anomalies were interpreted as possible emission sources. The trend component <inline-formula><mml:math id="M778" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> varies only a little spatially, due to  <inline-formula><mml:math id="M779" 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> mixing in the atmosphere over time, and for this reason it is not shown here.
The phase-shift parameter <inline-formula><mml:math id="M780" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> is modeled separately, and the field in the lower-right quadrant is obtained by optimization, conditioning on the <inline-formula><mml:math id="M781" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> factors. This partly explains the different spatial pattern. Figure <xref ref-type="fig" rid="Ch1.F8"/> shows how the phases of the annual <inline-formula><mml:math id="M782" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> cycles differ between  regions, but the <inline-formula><mml:math id="M783" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> values need to be interpreted  together with the <inline-formula><mml:math id="M784" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M785" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> coefficients.</p>
      <p id="d1e14493">At high latitudes <inline-formula><mml:math id="M786" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> observations from OCO-2 are available only for a short period every year, and the quality of these measurements is often poorer.  For this reason the calibration procedure may yield unrealistic and noisy values close to the poles, especially for parameters <inline-formula><mml:math id="M787" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M788" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The obtained parameter values closer than <inline-formula><mml:math id="M789" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">20</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> to the northern and southern edges of the domain were averaged by setting the parameter values at each <inline-formula><mml:math id="M790" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M791" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>←</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mi>d</mml:mi></mml:mrow><mml:mn mathvariant="normal">20</mml:mn></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">20</mml:mn><mml:mo>-</mml:mo><mml:mi>d</mml:mi><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mrow><mml:mn mathvariant="normal">20</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M792" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> is the distance to the edge of the domain in degrees, <inline-formula><mml:math id="M793" display="inline"><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> is the calibrated parameter vector at <inline-formula><mml:math id="M794" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M795" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> is the average value of the  parameters over the area where <inline-formula><mml:math id="M796" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> is located and where  averaging is performed. The <inline-formula><mml:math id="M797" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> parameter was treated similarly. This adjustment was done as a postprocessing step after finding the mean function coefficients. The main benefit of performing this adjustment is that the posterior predictive distributions become more realistic in winter at high latitudes when the mean function dominates.</p>
      <p id="d1e14681">Figure <xref ref-type="fig" rid="Ch1.F1"/> shows time series of the mean function for a variety of locations, verifying that the exact form chosen is able to describe much of the local variability in <inline-formula><mml:math id="M798" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8" specific-use="star"><?xmltex \currentcnt{8}?><label>Figure 8</label><caption><p id="d1e14700">Mean values of mean function coefficients that were  described as a Markov random field, calculated in a <inline-formula><mml:math id="M799" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mo>∘</mml:mo></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> grid between <inline-formula><mml:math id="M800" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">85</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> N and <inline-formula><mml:math id="M801" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">85</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> S. The <inline-formula><mml:math id="M802" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> coefficients multiply the <inline-formula><mml:math id="M803" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> functions in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>).  Panel <bold>(d)</bold> shows how the phase parameter <inline-formula><mml:math id="M804" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> can vary more in the Southern Hemisphere where <inline-formula><mml:math id="M805" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M806" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are small.   The mean function and fitted daily means for several locations with the corresponding mean function parameters are shown in Fig. <xref ref-type="fig" rid="Ch1.F1"/>. </p></caption>
          <?xmltex \igopts{width=441.017717pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f08.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS5">
  <label>4.5</label><title>Covariance parameters of the OCO-2 V9 data</title>
      <p id="d1e14816">The OCO-2 data have several natural spatial and temporal length scales. The distance between adjacent observations is only 1 to 2 km in space and some hundredths of a second in time, but the distance between consecutive orbits is thousands of kilometers in space and several hours in time. On consecutive days the satellite passes close to the trajectory of the previous day at a distance of tens to 300 km depending on the latitude. The Earth has natural temporal diurnal and annual cycles, but since OCO-2 is Sun-synchronous, only the latter matters with OCO-2 data. Since the annual cycle is already fitted by finding the  mean function coefficients  <inline-formula><mml:math id="M807" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M808" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>) corresponding to the periodic functions <inline-formula><mml:math id="M809" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M810" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, a periodic covariance kernel component is not included. The OCO-2 data are therefore modeled with a kernel<?pagebreak page3456?> consisting of a larger-scale exponential and a smaller-scale Matérn subkernel.</p>
      <p id="d1e14865">The covariance parameters for the two-component kernel are given in Table <xref ref-type="table" rid="Ch1.T4"/>. The values used were the median values from sampling the posterior with MCMC. When learning the parameters from a data set with several natural length scales, the posterior may appear multimodal, with some of the modes only having relatively little mass. In such a case, the median provides a more robust estimate for the parameters than the mean. The <inline-formula><mml:math id="M811" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">lon</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M812" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> parameters of the posterior mean were slightly larger, which would result in slower computation. Selecting the median
is further justified by the slight overestimation of some parameters in the synthetic study in Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>.</p>
      <p id="d1e14908">Learning the covariance parameters from OCO-2 V9 data used the following configuration parameters for satGP: <inline-formula><mml:math id="M813" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M814" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">256</mml:mn></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M815" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:math></inline-formula>. A total of 1.1184 million MCMC iterations were completed, with the first 50 % discarded as burn-in to produce statistics. The reference points were randomly picked from a rectangle with corners at (0<inline-formula><mml:math id="M816" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> S, 65<inline-formula><mml:math id="M817" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> E) and (60<inline-formula><mml:math id="M818" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N, 145<inline-formula><mml:math id="M819" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> E). While using the whole globe would have been a principled choice, MCMC requires lots of iterations, and for any claim of global coverage, <inline-formula><mml:math id="M820" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> would have needed to be much larger.</p>
</sec>
<sec id="Ch1.S4.SS6">
  <label>4.6</label><?xmltex \opttitle{Posterior predictive distributions of {$\protect\chem{XCO_{2}}$} from the OCO-2 V9 data}?><title>Posterior predictive distributions of <inline-formula><mml:math id="M821" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> from the OCO-2 V9 data</title>
      <p id="d1e15021">The marginal posterior predictive distribution at test points <inline-formula><mml:math id="M822" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, given by Eqs. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) and (<xref ref-type="disp-formula" rid="Ch1.E10"/>), were calculated globally in a 0.5<inline-formula><mml:math id="M823" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> grid between 80<inline-formula><mml:math id="M824" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> S and 80<inline-formula><mml:math id="M825" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N at daily time resolution. The first day of simulation was 6 September 2014, and the last day was 10 November 2018, spanning in total 1526 d. For each day, 230 400 marginals were computed, resulting in a collective 351 million inverted covariance matrices. The satGP parameters used were <inline-formula><mml:math id="M826" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">sample</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M827" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">256</mml:mn></mml:mrow></mml:math></inline-formula>, and the covariance kernel used was the one learned in Sect. <xref ref-type="sec" rid="Ch1.S4.SS5"/>, with parameters given in Table <xref ref-type="table" rid="Ch1.T4"/>. The simulation wall time was 26 d on a moderately fast Intel i7-8700K CPU utilizing the available 12 CPU threads and 32 GiB memory.</p>
      <p id="d1e15098">Figures <xref ref-type="fig" rid="Ch1.F9"/> and <xref ref-type="fig" rid="Ch1.F10"/> present global  fields of the mean values and marginal uncertainties, with a subset (to avoid excessive overdrawing) of observations shown as a scatter plot in the (a) panels.  The (b) panels show how uncertainty is reduced with the overpass of OCO-2. This uncertainty reduction diminishes fast due to the Matérn component of the multi-scale kernel having a very short length-scale parameter in the time dimension. In Figs. <xref ref-type="fig" rid="Ch1.F9"/>a and <xref ref-type="fig" rid="Ch1.F10"/>a, the background color (mean of the Gaussian process posterior) usually matches the observations, but due to observational noise, the posterior mean is not everywhere an interpolated field.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9"><?xmltex \currentcnt{9}?><label>Figure 9</label><caption><p id="d1e15111"><bold>(a)</bold> <inline-formula><mml:math id="M828" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> posterior mean values and <bold>(b)</bold> their uncertainties on the 30 October 2014. The most informative observations are shown with the concentrations, with the large white circles being from the  30th, medium circles from 1 d before or after, and small circles from 2 days before or after. The OCO-2 utilizes sunlight for retrieval, which is why there are very few observations above 60<inline-formula><mml:math id="M829" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N. These fields include latitudes up to 85<inline-formula><mml:math id="M830" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> S and 85<inline-formula><mml:math id="M831" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f09.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F10"><?xmltex \currentcnt{10}?><label>Figure 10</label><caption><p id="d1e15166"><bold>(a)</bold> <inline-formula><mml:math id="M832" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> posterior mean values and <bold>(b)</bold> their uncertainties on  10 June 2016. While photosynthesis in the Northern Hemisphere is already reducing the carbon dioxide concentrations globally, the observations condition the Gaussian process to higher mean values than in Fig. <xref ref-type="fig" rid="Ch1.F9"/>. In the summer months the uncertainty stays high close to the South Pole. These fields include  latitudes up to 85<inline-formula><mml:math id="M833" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> S and 85<inline-formula><mml:math id="M834" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f10.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS7">
  <label>4.7</label><title>Comparison of single- and multi-scale kernels with OCO-2 data</title>
      <?pagebreak page3457?><p id="d1e15219">Data from the OCO-2 can be used to demonstrate how the  multi-scale kernel formulation affects the predictive posterior distributions. Figure <xref ref-type="fig" rid="Ch1.F11"/>  shows posterior marginals  from 15 September 2014. Figure <xref ref-type="fig" rid="Ch1.F11"/>a and b contain results from  the multi-scale kernel described in Sect. <xref ref-type="sec" rid="Ch1.S4.SS5"/>, and the second row (c and d) shows fields from only the exponential part of the multi-scale kernel. The parameters of the multi-scale kernel are shown in Table <xref ref-type="table" rid="Ch1.T4"/>. Figure <xref ref-type="fig" rid="Ch1.F11"/>e and f contain the difference fields between the first and the second rows. The single-kernel uncertainty is very low in Fig. <xref ref-type="fig" rid="Ch1.F11"/>d  since lots of observations fall into regions of high covariance with almost any test input, with the exception of the northern side of Ireland, which does not have any observations nearby. Since the covariance kernel parameters were trained for the multi-scale kernel, the parameters used for the single kernel are not the ones describing the <inline-formula><mml:math id="M835" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> field best.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F11" specific-use="star"><?xmltex \currentcnt{11}?><label>Figure 11</label><caption><p id="d1e15248">Comparison of a multi-scale kernel with the two components described in Sect. <xref ref-type="sec" rid="Ch1.S4.SS5"/> and a single component kernel defined by the parameters of the exponential kernel. These parameters were given in Table <xref ref-type="table" rid="Ch1.T4"/>. The observations used are the same and are shown in panels <bold>(a)</bold> and <bold>(c)</bold> as circles. The large ones with white borders are observations from the present day, 15 September 2014; medium circles are observations from the 14th and 16th, and small circles  are from the 13th and 17th.</p></caption>
          <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f11.png"/>

        </fig>

      <p id="d1e15267">Figure <xref ref-type="fig" rid="Ch1.F11"/>a shows that as intended, the multi-scale approach leads to local enhancements of the <inline-formula><mml:math id="M836" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> mean field. Far from the measurements, the smaller Matérn kernel no longer reduces the predicted marginal uncertainties, and this leads to an increase in uncertainty in these areas. Figure <xref ref-type="fig" rid="Ch1.F11"/>e shows additional enhancements of the <inline-formula><mml:math id="M837" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> mean fields, which are in this case due to the different maximum covariances between the multi-scale and single-scale kernels.</p>
      <p id="d1e15297">The total kernel size was kept at 1024 (<inline-formula><mml:math id="M838" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">512</mml:mn></mml:mrow></mml:math></inline-formula> for a and b;  <inline-formula><mml:math id="M839" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1024</mml:mn></mml:mrow></mml:math></inline-formula> for c and d) in both experiments, and thinning and grid resolution parameter values were  <inline-formula><mml:math id="M840" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">sample</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M841" display="inline"><mml:mrow><mml:mi mathvariant="italic">ω</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mn mathvariant="normal">0.5</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. The very same  observations were used for both simulations.</p><?xmltex \hack{\newpage}?>
</sec>
<sec id="Ch1.S4.SS8">
  <label>4.8</label><title>Wind-informed kernel with OCO-2 data</title>
      <p id="d1e15363">The wind-informed kernel, Eq. (<xref ref-type="disp-formula" rid="Ch1.E17"/>), lets local wind data at test input <inline-formula><mml:math id="M842" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> rotate and scale the axes along which the covariance between two points is computed. Modeled winds are included with OCO-2 data, and they can be used to produce gridded winds that can then be used locally with the computation of each marginal posterior predictive distribution.</p>
      <p id="d1e15379">The covariance parameters for a single wind kernel were learned by taking the median of an MCMC posterior, similarly as was done in Sect. <xref ref-type="sec" rid="Ch1.S4.SS5"/>. The resulting parameters were  <inline-formula><mml:math id="M843" display="inline"><mml:mrow><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2.07</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M844" display="inline"><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.038</mml:mn></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M845" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">56.7</mml:mn></mml:mrow></mml:math></inline-formula>. The variance in <inline-formula><mml:math id="M846" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> was high, possibly due to the square root in the current formulation in Eq. (<xref ref-type="disp-formula" rid="Ch1.E19"/>). For this simulation, <inline-formula><mml:math id="M847" 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>,  <inline-formula><mml:math id="M848" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1024</mml:mn></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M849" display="inline"><mml:mrow><mml:mi mathvariant="italic">ω</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.7</mml:mn></mml:mrow></mml:math></inline-formula>, and the simulation time for the area from <inline-formula><mml:math id="M850" display="inline"><mml:mn mathvariant="normal">27</mml:mn></mml:math></inline-formula><inline-formula><mml:math id="M851" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N, 115<inline-formula><mml:math id="M852" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> E to 40<inline-formula><mml:math id="M853" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N, 145<inline-formula><mml:math id="M854" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> E for the single day was 2.652 s (wall time) on the i7-8750H laptop CPU.</p>
      <p id="d1e15509">The simulation results are shown in Fig. <xref ref-type="fig" rid="Ch1.F12"/>. Low uncertainties shown in blue color in (b) spread with the winds, as do the concentration estimates in (a), both due to the high reading in South Korea and the low reading close to Shanghai.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F12" specific-use="star"><?xmltex \currentcnt{12}?><label>Figure 12</label><caption><p id="d1e15517"><bold>(a)</bold> GP posterior mean of <inline-formula><mml:math id="M855" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <bold>(b)</bold> its uncertainties with the wind-informed kernel. The area shown contains the Korean Peninsula in the center, China on the left, and Japan on the center right. The large circles with the white edges are present-day observations, medium circles are observations from adjacent days, and the smallest ones are observations from 2 d away. Wind direction and magnitude are given by the black arrows, and uncertainty is clearly reduced where wind is blowing directly towards or away from the observations.</p></caption>
          <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/13/3439/2020/gmd-13-3439-2020-f12.png"/>

        </fig>

      <p id="d1e15542">Optimally the wind-informed kernel should utilize winds that are not recomputed from the observations as was done here for convenience but rather directly from a weather or climate model or from a wind  data product. The satGP<?pagebreak page3458?> program contains configuration options for doing this. The optimal covariance function parameter values are conditional on the wind data, so the values should be learned separately for each new application and wind data set.</p><?xmltex \hack{\newpage}?>
</sec>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusions and future work</title>
      <p id="d1e15556">In this work we  introduced the first version of a fast general purpose Gaussian process software, satGP v0.1.2, which is in particular intended to be used with   remote sensing data. We showed how the program solves spatial statistics  problems of enormous sizes by using a spatially varying  mean function, learned by computing marginals of an MRF, and by<?pagebreak page3459?> using a multi-scale covariance function, parameters of which are found either by using optimization algorithms or with adaptive Markov chain Monte Carlo. We also presented how satGP  allows the conduction of synthetic parameter identification studies by  sampling from Gaussian process prior and posterior distributions, and this could be done with any kernel prescribed, including a nonstationary wind-informed kernel.
The features of satGP were demonstrated first with a small-scale synthetic ozone study and then using the enormous <inline-formula><mml:math id="M856" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">XCO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> data set produced by the NASA Orbiting Carbon Observatory 2.</p>
      <p id="d1e15570">Various aspects of satGP can be improved in future versions, some of which include improving the observation selection/thinning scheme for statistical optimality, adding support for multivariate models and higher input dimensions, and adding methods for finding locally stationary model parameters to be able to describe heterogeneous scenes better. Despite all the room for development, satGP is a useful tool already in its present state, and it may with little additional modeling be used, e.g., to fuse
data from different sources,
such as GOSAT, GOSAT-2, OCO-2, TANSAT, and OCO-3. This will enable producing more precise posterior estimates, and with that a more complete picture of the evolution of for instance the atmospheric carbon dioxide distribution. Such statistically principled products  that incorporate  uncertainty information can then be used as a robust backbone for both making policy decisions and further scientific analyses.</p><?xmltex \hack{\clearpage}?>
</sec>

      
      </body>
    <back><app-group>

<?pagebreak page3460?><app id="App1.Ch1.S1">
  <?xmltex \currentcnt{A}?><label>Appendix A</label><title>Input parameters and variables in satGP </title>
      <p id="d1e15585">The satGP software by design allows for a lot  of flexibility for defining how to model the quantity of interest as a Gaussian random field. This section goes over those possibilities and some practical recommendations. The parameters in Table <xref ref-type="table" rid="Ch1.T2"/> are described in more detail than earlier, along with some other configuration variables in the configuration file <monospace>config.h</monospace>.  Some of the details in this section may change for future versions of the software.</p>
      <p id="d1e15593">Of the four sections in Table <xref ref-type="table" rid="Ch1.T2"/>, the first is obvious, as those parameters control the main logic of satGP. It is recommended to first learn the mean function, then with that mean function to learn the covariance function, and only after that to calculate the means and variances for the Gaussian process with <sans-serif>sampling</sans-serif> <inline-formula><mml:math id="M857" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. The setting <sans-serif>sampling</sans-serif> <inline-formula><mml:math id="M858" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> can be used, e.g., for illustration purposes, to understanding how the different realizations of the random function would look like or to generate synthetic data products.</p>
      <p id="d1e15624">The <sans-serif>area</sans-serif>  parameter defines the longitude–latitude extents of the domain where satGP performs the computations. The strings and the corresponding areas  are defined in the beginning of the file <monospace>gaussian_proc.h</monospace> and can be changed there as needed. Current available areas contain, e.g., <monospace>NorthAmerica</monospace>, <monospace>Europe</monospace>, <monospace>EastAsia</monospace>, <monospace>World</monospace>, and <monospace>TESTAREA</monospace>.</p>
      <p id="d1e15649">The parameter <inline-formula><mml:math id="M859" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">days</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> defines how many days are to be simulated after the starting day. Currently the starting day is hard coded in the code to be the first day of OCO-2 data. However, if <monospace>use_daylist</monospace><inline-formula><mml:math id="M860" display="inline"><mml:mrow><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> in the configuration file, a list of days can be used. This list can quite easily generated by modifying a trivial python script <monospace>create_daylist.py</monospace>, which is included with satGP.</p>
      <p id="d1e15679">The <inline-formula><mml:math id="M861" display="inline"><mml:mi mathvariant="italic">ω</mml:mi></mml:math></inline-formula> parameter determines how much spatial detail is resolved when sampling or computing marginals of the random field. A small value like 0.1 will make computing very expensive, and using such values might  be unnecessary when the smallest covariance subkernel length-scale parameters are large. The spatial <inline-formula><mml:math id="M862" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> parameters are in the scale of distances on the unit ball, and therefore on the Equator, an <inline-formula><mml:math id="M863" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> parameter of 0.05 corresponds to a length scale of around <inline-formula><mml:math id="M864" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">2.9</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, so the <inline-formula><mml:math id="M865" display="inline"><mml:mi mathvariant="italic">ω</mml:mi></mml:math></inline-formula> parameter should rarely be much less than half of that. On the other hand, if the observations are spatially very close to each other and describing  local variation is aimed for, then the <inline-formula><mml:math id="M866" display="inline"><mml:mi mathvariant="normal">ℓ</mml:mi></mml:math></inline-formula> parameters also need to be small. Given computational constraints, larger values or different <sans-serif>area</sans-serif> parameters may need to be used.</p>
      <p id="d1e15732">In the third section of Table <xref ref-type="table" rid="Ch1.T2"/>, the first parameter <inline-formula><mml:math id="M867" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the number of subkernels. Even though the hard limit is set to 10, in practice this should be between one and three since the parameters of more than three subkernels are not necessarily reasonably identifiable. More kernels means more computational cost, due to the <inline-formula><mml:math id="M868" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> parameter, which is the last one in the table and is discussed later.</p>
      <p id="d1e15755">The parameters <sans-serif>cfc</sans-serif>  and <sans-serif>mf</sans-serif> are not strictly input variables but rather C struct pointers that are created based on input variables. These variables are described in the configuration file, and they amount to choosing the covariance kernels from prescribed types (e.g. Matérn, exponential, and periodic) then defining the parameters for those kernels. The best parameters are those that are learned with <sans-serif>learn_k</sans-serif> <inline-formula><mml:math id="M869" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> when non-synthetic data are used.</p>
      <p id="d1e15777">Learning the covariance parameters <inline-formula><mml:math id="M870" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> is best performed with MCMC, and the posterior mean and median have proven to be useful values. For unimodal posterior distributions these values are usually very close to each other. The number of MCMC iterations is controlled by the variable <monospace>mcmc_iters</monospace>, for which <inline-formula><mml:math id="M871" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> is a large enough value. The number of reference points <inline-formula><mml:math id="M872" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in the set <inline-formula><mml:math id="M873" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>  in Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) that is used  for computing the log-likelihood can be set to a low value of, e.g., the number of CPU threads, if at least 12 are available. If with MCMC the chain gets stuck in local minima, the value of the <monospace>mcmcs-&gt;scalefactor</monospace> in the <monospace>mcmc()</monospace> function in <monospace>mcmc.h</monospace> may be shrunk, and equally well, if the posterior ends up being flat with respect to many parameters, it may be increased. This is justified since, due to the approximate maximum likelihood method, correct scaling factor of the log posterior density is in any case unknown.</p>
      <p id="d1e15835">For learning the covariance parameters, parameter limits need to be given. These should correspond to the expected length scales in the data – e.g., long-range fluctuations with low-amplitude, and short-scale variations due to local effects. It is in practice best if the parameter ranges do not overlap.</p>
      <p id="d1e15838">If the exponent of the exponential kernel needs to be changed, that needs to be done by changing the <monospace>exponent</monospace> variable in the <monospace>covfun_dyn()</monospace> function in the file <monospace>covariance_functions.h</monospace>. Similarly, if the order of the Matérn  kernel needs to be changed, that can be done by changing the variable <monospace>n</monospace> in functions <monospace>covfun_matern52()</monospace> and <monospace>initialize_covfunconfig()</monospace> in that same file.</p>
      <p id="d1e15861">For constructing the mean function, the configuration file contains the parameter <monospace>mftype</monospace>. The possible values are as follows: (0) a zero-mean function is used; (1) a mean function that changes only in time is used; (2) a (time-dependent) field is read in and used – this can be, e.g., the mean value from a previous Gaussian process simulation; and (3) a space- and time-dependent mean function is used. The function itself is given as a function pointer to variable <monospace>mean_function</monospace> in the configuration file, and this function needs to be defined somewhere – e.g., in the file <monospace>mean_functions.h</monospace>. For the mean function, another variable, <monospace>mfcoeff</monospace>, needs to be set. This is the total number of parameters (<inline-formula><mml:math id="M874" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M875" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> in Eq. <xref ref-type="disp-formula" rid="Ch1.E2"/>) if <monospace>mftype</monospace> <inline-formula><mml:math id="M876" display="inline"><mml:mrow><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>. If the mean function parameters are learned, the parameter <monospace>nnonbetas</monospace>, the number of mean function nonlinear <inline-formula><mml:math id="M877" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> parameters, needs to be set to the appropriate value in the function <monospace>fit_beta_parameters_with_unc()</monospace> in <monospace>mean_functions.h</monospace>. For global mean function<?pagebreak page3461?> coefficients, the values of those coefficients are given in the configuration file, where the parameter limits for learning the space-dependent mean function parameters are also  set. Finally, when learning the space-dependent mean function parameters, the smoothness of the field may be controlled by changing the <monospace>dscale</monospace> parameter in the configuration file and, to a lesser extent, by modifying the <monospace>dfmin</monospace> and <monospace>dfmax</monospace> parameters in function <monospace>fit_beta_parameters_with_unc()</monospace> in file <monospace>mean_functions.h</monospace>. Another strategy for, e.g., producing smoother mean function coefficient fields is to use  high values for <inline-formula><mml:math id="M878" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M879" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> and large spatial length-scale parameters in the covariance kernel. Changing the priors for the <inline-formula><mml:math id="M880" display="inline"><mml:mi mathvariant="bold-italic">β</mml:mi></mml:math></inline-formula> parameters is done in Sect. 2 of <monospace>fit_beta_parameters_with_unc()</monospace> in <monospace>mean_functions.h</monospace>.</p>
      <p id="d1e15978">In the last section, the <inline-formula><mml:math id="M881" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">train</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> parameter controls data thinning when learning covariance kernel parameters, and the <inline-formula><mml:math id="M882" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">sample</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> does the same  when <sans-serif>sampling</sans-serif> <inline-formula><mml:math id="M883" display="inline"><mml:mrow><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. How the thinning takes place was explained in the context of Eq. (<xref ref-type="disp-formula" rid="Ch1.E26"/>). While with few observations no thinning needs to be done at all – i.e., <inline-formula><mml:math id="M884" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mo>⋅</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> may be set to zero – with large data sets the representability of data may be improved when a coarse grid is used for computation, and also memory bottlenecks may be avoided. These parameters may be  increased if faster execution is required, for example for debugging purposes.</p>
      <p id="d1e16030">The <inline-formula><mml:math id="M885" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> parameter controls which observations are not considered at all when computing at a location <inline-formula><mml:math id="M886" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, as described by Eq. (<xref ref-type="disp-formula" rid="Ch1.E21"/>). The higher this is, the more data are discarded. Setting <inline-formula><mml:math id="M887" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">min</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> to a very low value makes searching for candidate observations slow, while picking too high a value may make posterior fields look edgy. In practice values between <inline-formula><mml:math id="M888" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M889" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> seem to work well. This parameter is not  meant to be changed often; due to this, it is set in <monospace>create_config()</monospace> in the file <monospace>gaussian_proc.h</monospace>.</p>
      <p id="d1e16107">The variable <inline-formula><mml:math id="M890" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">synthetic</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> defines how many synthetic observations are generated when <sans-serif>learn_k</sans-serif> <inline-formula><mml:math id="M891" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. Very large values are once again expensive, and instead a smaller <sans-serif>area</sans-serif> should rather be used with more moderate values of  <inline-formula><mml:math id="M892" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">synthetic</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Those values can be in practice up to <inline-formula><mml:math id="M893" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> or more. With very low values, it may be that spatial patterns specified by the prescribed covariance kernel are not represented appropriately, and therefore values less than <inline-formula><mml:math id="M894" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> should be avoided, except for maybe in setups with only a single subkernel. If <inline-formula><mml:math id="M895" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">σ</mml:mi><mml:mi mathvariant="normal">synthetic</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> is high, parameter identifiability suffers. What values are enough large also depends on the maximum covariance parameters of the Gaussian process, given by the <inline-formula><mml:math id="M896" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> parameters in the formulas of  Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/>.
<?xmltex \hack{\newpage}?>
The last parameter in Table <xref ref-type="table" rid="Ch1.T2"/>, <inline-formula><mml:math id="M897" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula>, defines the maximum subkernel size. The larger this parameter is, the more data are included for constructing the covariance matrix <inline-formula><mml:math id="M898" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula>, whose Cholesky decomposition needs to be computed to solve the local regression problem inherent to Gaussian processes. In practice the full kernel size should be kept under 1000, and in order to compute GP calculations fast, a full kernel size of less than 500 is recommended. However, with a very small number of marginals, values up to <inline-formula><mml:math id="M899" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> may be experimented with. When <inline-formula><mml:math id="M900" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">ker</mml:mi></mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">64</mml:mn></mml:mrow></mml:math></inline-formula>, the speedup due to solving the GP formulas faster  decreases, since at that point computing  Cholesky decompositions no longer takes up the majority of the computing time.
This lower bound depends on the CPU architecture and the sizes of the various CPU caches.</p>
      <p id="d1e16244">Whether the observations for computing the local values are chosen at random or greedily is determined by the variable <monospace>select_closest</monospace> in function <monospace>pick_observations()</monospace> in file <monospace>covariance_functions.h</monospace>. The value used should normally be nonzero, since with random selection adjacent grid points often do not utilize the best available observations closest by, leading to noisiness or graininess in the posterior mean field.</p>
      <p id="d1e16256">In addition to the parameters and variables listed here, there are also other parameters in the configuration file and  in the code,  even though those should not need to be changed. Any variables that the user might want to tweak are generally accompanied by at least some comments describing their effects.</p>
      <p id="d1e16260">In the current version, the satGP program is run with the script <monospace>gproc.sh</monospace>, whose comments describe the various options. Compiling and running require a modern GNU C compiler version (such as version 8) and the meson build system, and additionally all the needed libraries listed in Sect. <xref ref-type="sec" rid="Ch1.S3"/>. The current low version number reflects the fact that, as of now, installing and using the software will require a degree of technical knowledge, including some Python, C, and BASH programming skills.</p><?xmltex \hack{\clearpage}?>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d1e16273">The satGP code is  available as a Supplement to this paper under the MIT license. The OCO-2 V9 data used is freely available directly from NASA. The WACCM4 model is available from UCAR as a component of the Community Earth System Model.</p>
  </notes><app-group>
        <supplementary-material position="anchor"><p id="d1e16276">The supplement related to this article is available online at: <inline-supplementary-material xlink:href="https://doi.org/10.5194/gmd-13-3439-2020-supplement" xlink:title="zip">https://doi.org/10.5194/gmd-13-3439-2020-supplement</inline-supplementary-material>.</p></supplementary-material>
        </app-group><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d1e16285">JS, AS, HH, and YM designed the study. TH produced the WACCM4-specific results. JS prepared this paper, wrote the satGP code, chose, tested, and implemented the computational methods, and performed the non-WACCM4 simulations, with contributions from all coauthors.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e16291">The authors declare that they have no conflict of interest.</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e16297">We  would like to thank Pekka Verronen and Monika Andersson from the Finnish Meteorological Institute for providing the WACCM4 data fields. The research was partly carried out at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration (80NM0018D0004). US Government support acknowledged.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d1e16302">This work was supported by the Centre of Excellence of Inverse Modelling and Imaging (CoE), Academy of Finland, decision number 312122.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e16308">This paper was edited by Klaus Gierens and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Ambikasaran et al.(2016)</label><?label ambikasaran2016?><mixed-citation>Ambikasaran, S., Foreman-Mackey, D., Greengard, L., Hogg, D. W., and
O'Neil, M.: Fast Direct Methods for Gaussian Processes, IEEE T.
Pattern Anal., 38, 252–265,
<ext-link xlink:href="https://doi.org/10.1109/TPAMI.2015.2448083" ext-link-type="DOI">10.1109/TPAMI.2015.2448083</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Bertaux et al.(2004)</label><?label bertaux2004?><mixed-citation>Bertaux, J., Hauchecorne, A., Dalaudier, F., Cot, C., Kyrölä, E., Fussen,
D., Tamminen, J., Leppelmeier, G., Sofieva, V., Hassinen, S., Fanton
d'Andon, O., Barrot, G., Mangin, A., Theodore, B., Guirlet, M., Korablev,
O., Snoeij, P., Koopman, R., and Fraisse, R.: First results on GOMOS/ENVISAT,
Adv. Space Res., 33, 1029–1035,
<ext-link xlink:href="https://doi.org/10.1016/j.asr.2003.09.037" ext-link-type="DOI">10.1016/j.asr.2003.09.037</ext-link>,
2004.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Bertaux et al.(2010)B</label><?label bertaux2010?><mixed-citation>Bertaux, J. L., Kyrölä, E., Fussen, D., Hauchecorne, A., Dalaudier, F., Sofieva, V., Tamminen, J., Vanhellemont, F., Fanton d'Andon, O., Barrot, G., Mangin, A., Blanot, L., Lebrun, J. C., Pérot, K., Fehr, T., Saavedra, L., Leppelmeier, G. W., and Fraisse, R.: Global ozone monitoring by occultation of stars: an overview of GOMOS measurements on ENVISAT, Atmos. Chem. Phys., 10, 12091–12148, <ext-link xlink:href="https://doi.org/10.5194/acp-10-12091-2010" ext-link-type="DOI">10.5194/acp-10-12091-2010</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Chiles and Delfiner(2012)</label><?label delfiner2012?><mixed-citation>
Chiles, J.-P. and Delfiner, P.: Geostatistics, Wiley, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Cressie(2018)</label><?label cressie2018?><mixed-citation>Cressie, N.: Mission <inline-formula><mml:math id="M901" 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>ntrol: A Statistical Scientist's Role in Remote Sensing
of Atmospheric Carbon Dioxide, J. Am. Stat.
Assoc., 113, 152–168, <ext-link xlink:href="https://doi.org/10.1080/01621459.2017.1419136" ext-link-type="DOI">10.1080/01621459.2017.1419136</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Cressie and Wikle(2001)</label><?label cressie2011?><mixed-citation>
Cressie, N. and Wikle, C.: Statistics for Spatio-Temporal Data, Wiley, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Crisp et al.(2012)</label><?label crisp2012?><mixed-citation>Crisp, D., Fisher, B. M., O'Dell, C., Frankenberg, C., Basilio, R., Bösch, H., Brown, L. R., Castano, R., Connor, B., Deutscher, N. M., Eldering, A., Griffith, D., Gunson, M., Kuze, A., Mandrake, L., McDuffie, J., Messerschmidt, J., Miller, C. E., Morino, I., Natraj, V., Notholt, J., O'Brien, D. M., Oyafuso, F., Polonsky, I., Robinson, J., Salawitch, R., Sherlock, V., Smyth, M., Suto, H., Taylor, T. E., Thompson, D. R., Wennberg, P. O., Wunch, D., and Yung, Y. L.: The ACOS <inline-formula><mml:math id="M902" 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> retrieval algorithm – Part II: Global <inline-formula><mml:math id="M903" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">X</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> data characterization, Atmos. Meas. Tech., 5, 687–707, <ext-link xlink:href="https://doi.org/10.5194/amt-5-687-2012" ext-link-type="DOI">10.5194/amt-5-687-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Datta et al.(2016)</label><?label datta2016?><mixed-citation>Datta, A., Banerjee, S., Finley, A. O., and Gelfand, A. E.: Hierarchical
Nearest-Neighbor Gaussian Process Models for Large Geostatistical Datasets,
J. Am. Stat. Assoc., 111, 800–812,
<ext-link xlink:href="https://doi.org/10.1080/01621459.2015.1044091" ext-link-type="DOI">10.1080/01621459.2015.1044091</ext-link>,
2016.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Eldering et al.(2019)</label><?label eldering2019?><mixed-citation>Eldering, A., Taylor, T. E., O'Dell, C. W., and Pavlick, R.: The OCO-3 mission: measurement objectives and expected performance based on 1 year of simulated data, Atmos. Meas. Tech., 12, 2341–2370, <ext-link xlink:href="https://doi.org/10.5194/amt-12-2341-2019" ext-link-type="DOI">10.5194/amt-12-2341-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Gamerman(1997)</label><?label gamerman1997?><mixed-citation>
Gamerman, D.: Markov Chain Monte Carlo: Stochastic Simulation for
Bayesian Inference, Chapman &amp; Hall/CRC Texts in Statistical Science,
Taylor &amp; Francis, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Gelman et al.(2013)</label><?label gelman2013?><mixed-citation>
Gelman, A., Carlin, J., Stern, H., Dunson, D., Vehtari, A., and Rubin, D.:
Bayesian Data Analysis, Chapman and Hall/CRC, 3rd Edn., 2013.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Haario et al.(2001)</label><?label haario2001?><mixed-citation>
Haario, H., Saksman, E., and Tamminen, J.: An Adaptive Metropolis Algorithm,
Bernoulli, 7, 223–242,   2001.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Hakkarainen et al.(2016)</label><?label hakkarainen2016?><mixed-citation>Hakkarainen, J., Ialongo, I., and Tamminen, J.: Direct space-based observations
of anthropogenic <inline-formula><mml:math id="M904" 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> emission areas from OCO-2, Geophys. Res. Lett.,
43, 11400–11406, <ext-link xlink:href="https://doi.org/10.1002/2016GL070885" ext-link-type="DOI">10.1002/2016GL070885</ext-link>,
2016.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Hammerling et al.(2012)</label><?label hammerling2012a?><mixed-citation>Hammerling, D. M., Michalak, A. M., O'Dell, C., and Kawa, S. R.: Global <inline-formula><mml:math id="M905" 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>
distributions over land from the Greenhouse Gases Observing Satellite
(GOSAT), Geophys. Res. Lett., 39, L08804, <ext-link xlink:href="https://doi.org/10.1029/2012GL051203" ext-link-type="DOI">10.1029/2012GL051203</ext-link>,
2012.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Hammersley and Clifford(1971)</label><?label hammersley1971?><mixed-citation>
Hammersley, J. and Clifford, P.: Markov random fields on finite graphs and
lattices, unpublished manuscript, 1971.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Heaton et al.(2018)</label><?label heaton2018?><mixed-citation>Heaton, M. J., Datta, A., Finley, A. O., Furrer, R., Guinness, J., Guhaniyogi,
R., Gerber, F., Gramacy, R. B., Hammerling, D., Katzfuss, M., Lindgren, F.,
Nychka, D. W., Sun, F., and Zammit-Mangion, A.: A Case Study Competition
Among Methods for Analyzing Large Spatial Data, J. Agr.
Biol. Envir. St., 24, 398–426, <ext-link xlink:href="https://doi.org/10.1007/s13253-018-00348-w" ext-link-type="DOI">10.1007/s13253-018-00348-w</ext-link>,
2018.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Hurrell et al.(2013)</label><?label hurrell2012?><mixed-citation>Hurrell, J. W., Holland, M. M., Gent, P. R., Ghan, S., Kay, J. E., Kushner,
P. J., Lamarque, J.-F., Large, W. G., Lawrence, D., Lindsay, K., Lipscomb,
W. H., Long, M. C., Mahowald, N., Marsh, D. R., Neale, R. B., Rasch, P.,
Vavrus, S., Vertenstein, M., Bader, D., Collins, W. D., Hack, J. J., Kiehl,
J., and Marshall, S.: The Community Earth System Model: <?pagebreak page3463?>A Framework for
Collaborative Research, B. Am. Meteorol. Soc., 94,
1339–1360, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-12-00121.1" ext-link-type="DOI">10.1175/BAMS-D-12-00121.1</ext-link>,
2013.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>IPCC(2013)</label><?label ipccAR5SPM?><mixed-citation>IPCC: Summary for Policymakers, book section SPM,  Cambridge
University Press, Cambridge, United Kingdom and New York, NY, USA,
1–30, <ext-link xlink:href="https://doi.org/10.1017/CBO9781107415324.004" ext-link-type="DOI">10.1017/CBO9781107415324.004</ext-link>,
2013.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Johnson(2014)</label><?label nlopt?><mixed-citation>Johnson, S. G.: The NLopt nonlinear-optimization package,
available at: <uri>http://github.com/stevengj/nlopt</uri> (last access: 28 July 2020), 2014.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Katzfuss et al.(2018)</label><?label katzfuss2018?><mixed-citation>Katzfuss, M., Guinness, J., and Gong, W.: Vecchia approximations of
Gaussian-process predictions, arXiv [e-prints], <ext-link xlink:href="https://arxiv.org/abs/1805.03309">arXiv:1805.03309</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Kyrölä et al.(2004)</label><?label kyrola2004?><mixed-citation>Kyrölä, E., Tamminen, J., Leppelmeier, G., Sofieva, V., Hassinen, S.,
Bertaux, J., Hauchecorne, A., Dalaudier, F., Cot, C., Korablev, O., [Fanton
d’Andon], O., Barrot, G., Mangin, A., Théodore, B., Guirlet, M.,
Etanchaud, F., Snoeij, P., Koopman, R., Saavedra, L., Fraisse, R., Fussen,
D., and Vanhellemont, F.: GOMOS on Envisat: an overview, Adv. Space
Res., 33, 1020–1028,
<ext-link xlink:href="https://doi.org/10.1016/S0273-1177(03)00590-8" ext-link-type="DOI">10.1016/S0273-1177(03)00590-8</ext-link>,
2004.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Lauritzen(1996)</label><?label lauritzen1996?><mixed-citation>
Lauritzen, S.: Graphical Models, Oxford Statistical Science Series, Clarendon
Press, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Lindgren et al.(2011)</label><?label lindgren2011?><mixed-citation>Lindgren, F., Rue, H., and Lindström, J.: An explicit link between Gaussian
fields and Gaussian Markov random fields: the stochastic partial differential
equation approach, J. Roy. Stat. Soc. B, 73, 423–498,
<ext-link xlink:href="https://doi.org/10.1111/j.1467-9868.2011.00777.x" ext-link-type="DOI">10.1111/j.1467-9868.2011.00777.x</ext-link>,
2011.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Ma and Kang(2020)</label><?label ma2017?><mixed-citation>Ma, P. and Kang, E. L.: A Fused Gaussian Process Model for Very Large Spatial Data, J. Comput. Graph. Stat., <ext-link xlink:href="https://doi.org/10.1080/10618600.2019.1704293" ext-link-type="DOI">10.1080/10618600.2019.1704293</ext-link>, online first, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Marsh et al.(2013)</label><?label marsh2013?><mixed-citation>Marsh, D. R., Mills, M. J., Kinnison, D. E., Lamarque, J.-F., Calvo, N., and
Polvani, L. M.: Climate Change from 1850 to 2005 Simulated in CESM1(WACCM),
J. Climate, 26, 7372–7391, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-12-00558.1" ext-link-type="DOI">10.1175/JCLI-D-12-00558.1</ext-link>,
2013.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Nassar et al.(2017)</label><?label nassar2017?><mixed-citation>Nassar, R., Hill, T. G., McLinden, C. A., Wunch, D., Jones, D. B. A., and
Crisp, D.: Quantifying <inline-formula><mml:math id="M906" 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> Emissions From Individual Power Plants From Space,
Geophys. Res. Lett., 44, 10,045–10,053, <ext-link xlink:href="https://doi.org/10.1002/2017GL074702" ext-link-type="DOI">10.1002/2017GL074702</ext-link>,
2017.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Neal(2011)</label><?label neal2012?><mixed-citation>
Neal, R. M.: MCMC using Hamiltonian dynamics, in: Handbook of Markov Chain
Monte Carlo, edited by Brooks, S., Gelman, A., Jones, G., and Meng, X.,
Chapman &amp; Hall/CRC Handbooks of Modern Statistical Methods, CRC Press, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Nguyen et al.(2014)</label><?label nguyen2014?><mixed-citation>Nguyen, H., Katzfuss, M., Cressie, N., and Braverman, A.: Spatio-Temporal Data
Fusion for Very Large Remote Sensing Datasets, Technometrics, 56, 174–185,
<ext-link xlink:href="https://doi.org/10.1080/00401706.2013.831774" ext-link-type="DOI">10.1080/00401706.2013.831774</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Nocedal(1980)</label><?label nocedal1980?><mixed-citation>
Nocedal, J.: Updating Quasi-Newton Matrices With Limited Storage, Math.
Comput., 35, 773–782, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>O'Dell et al.(2012)</label><?label odell2012?><mixed-citation>O'Dell, C. W., Connor, B., Bösch, H., O'Brien, D., Frankenberg, C., Castano, R., Christi, M., Crisp, D., Eldering, A., Fisher, B., Gunson, M., McDuffie, J., Miller, C. E., Natraj, V., Oyafuso, F., Polonsky, I., Smyth, M., Taylor, T., Toon, G. C., Wennberg, P. O., and Wunch, D.: Corrigendum to “The ACOS <inline-formula><mml:math id="M907" 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> retrieval algorithm – Part 1: Description and validation against synthetic observations” published in Atmos. Meas. Tech., 5, 99–121, 2012, Atmos. Meas. Tech., 5, 193–193, <ext-link xlink:href="https://doi.org/10.5194/amt-5-193-2012" ext-link-type="DOI">10.5194/amt-5-193-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Rasmussen and Williams(2006)</label><?label rasmussen2006?><mixed-citation>Rasmussen, C. and Williams, C.: Gaussian Processes for Machine Learning, MIT
Press, available at: <uri>http://www.gaussianprocess.org/gpml/chapters/</uri> (last access: 28 July 2020), 2006.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Rodgers(2000)</label><?label rodgers2000?><mixed-citation>
Rodgers, C.: Inverse Methods for Atmospheric Sounding: Theory and Practice,
Series on atmospheric, oceanic and planetary physics, World Scientific, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Santner et al.(2003)Santner, Williams, and Notz</label><?label santner2003?><mixed-citation>
Santner, T., Williams, B., and Notz, W.: The Design and Analysis of Computer
Experiments, Springer Verlag New York, 1st Edn., 2003.</mixed-citation></ref>
      <ref id="bib1.bibx34"><?xmltex \def\ref@label{{{Sch{\"{a}}fer} et~al.(2017)}}?><label>Schäfer et al.(2017)</label><?label schafer2017?><mixed-citation>Schäfer, F., Sullivan, T. J., and Owhadi, H.: Compression,
inversion, and approximate PCA of dense kernel matrices at near-linear
computational complexity, arXiv [e-prints], <ext-link xlink:href="https://arxiv.org/abs/11706.02205">arXiv:1706.02205</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx35"><?xmltex \def\ref@label{{Tadi\'{c} et~al.(2017)}}?><label>Tadić et al.(2017)</label><?label tadic2017?><mixed-citation>Tadić, J. M., Qiu, X., Miller, S., and Michalak, A. M.: Spatio-temporal approach to moving window block kriging of satellite data v1.0, Geosci. Model Dev., 10, 709–720, <ext-link xlink:href="https://doi.org/10.5194/gmd-10-709-2017" ext-link-type="DOI">10.5194/gmd-10-709-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Vecchia(1988)</label><?label vecchia1988?><mixed-citation>
Vecchia, A. V.: Estimation and Model Identification for Continuous Spatial
Processes, J. Roy. Stat. Soc. B,
50, 297–312,
1988.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Wainwright and Jordan(2008)</label><?label wainwright2008?><mixed-citation>Wainwright, M. J. and Jordan, M. I.: Graphical Models, Exponential Families,
and Variational Inference, Foundations and Trends in Machine Learning, 1,
1–305, <ext-link xlink:href="https://doi.org/10.1561/2200000001" ext-link-type="DOI">10.1561/2200000001</ext-link>,
2008.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Yi et al.(2018)</label><?label tansatref?><mixed-citation>Yi, L., Jing, W., Lu, Y., Xi, C., Zhaonan, C., Dongxu, Y., Zengshan, Y.,
Songyan, G., Longfei, T., Naimeng, L., and Daren, L.: TanSat Mission
Achievements: from Scientific Driving to Preliminary Observations, Chinese
J. Space Sci., 38, 5, <ext-link xlink:href="https://doi.org/10.11728/cjss2018.05.627" ext-link-type="DOI">10.11728/cjss2018.05.627</ext-link>,
2018.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Yokota et al.(2009)</label><?label gosatref?><mixed-citation>Yokota, T., Yoshida, Y., Eguchi, N., Ota, Y., Tanaka, T., Watanabe, H., and
Maksyutov, S.: Global Concentrations of <inline-formula><mml:math id="M908" 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> and CH4 Retrieved from GOSAT:
First Preliminary Results, SOLA, 5, 160–163, <ext-link xlink:href="https://doi.org/10.2151/sola.2009-041" ext-link-type="DOI">10.2151/sola.2009-041</ext-link>,
2009.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Zammit-Mangion et al.(2015)</label><?label zammit-mangion2015?><mixed-citation>Zammit-Mangion, A., Cressie, N., Ganesan, A. L., O'Doherty, S., and Manning,
A. J.: Spatio-temporal bivariate statistical models for atmospheric trace-gas
inversion, Chemometr. Intell. Lab., 149, 227–241,
<ext-link xlink:href="https://doi.org/10.1016/j.chemolab.2015.09.006" ext-link-type="DOI">10.1016/j.chemolab.2015.09.006</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Zammit-Mangion et al.(2018)</label><?label zammit-mangion2018?><mixed-citation>Zammit-Mangion, A., Cressie, N., and Shumack, C.: On Statistical Approaches to
Generate Level 3 Products from Satellite Remote Sensing Retrievals, Remote
Sensing, 10, 155, <ext-link xlink:href="https://doi.org/10.3390/rs10010155" ext-link-type="DOI">10.3390/rs10010155</ext-link>,
2018.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Zeng et al.(2013)</label><?label zeng2013?><mixed-citation>Zeng, Z., Lei, L., Guo, L., Zhang, L., and Zhang, B.: Incorporating temporal
variability to improve geostatistical analysis of satellite-observed <inline-formula><mml:math id="M909" 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> in
China, Chinese Sci. Bull., 58, 1948–1954,
<ext-link xlink:href="https://doi.org/10.1007/s11434-012-5652-7" ext-link-type="DOI">10.1007/s11434-012-5652-7</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Zeng et al.(2017)</label><?label zeng2017?><mixed-citation>Zeng, Z.-C., Lei, L., Strong, K., Jones, D. B. A., Guo, L., Liu, M., Deng, F.,
Deutscher, N. M., Dubey, M. K., Griffith, D. W. T., Hase, F., Henderson, B.,
Kivi, R., Lindenmaier, R., Morino, I., Notholt, J., Ohyama, H., Petri, C.,
Sussmann, R., Velazco, V. A., Wennberg, P. O., and Lin, H.: Global land
mapping of satellite-observed <inline-formula><mml:math id="M910" 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 using spatio-temporal
geostatistics, Int. J. Digit. Earth, 10, 426–456,
<ext-link xlink:href="https://doi.org/10.1080/17538947.2016.1156777" ext-link-type="DOI">10.1080/17538947.2016.1156777</ext-link>, 2017.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Efficient multi-scale Gaussian process regression for massive remote sensing data with satGP v0.1.2</article-title-html>
<abstract-html><p>Satellite remote sensing provides a global view to processes on Earth that has unique benefits compared to making  measurements  on the ground, such as  global coverage and enormous data volume. The typical  downsides are spatial and temporal gaps and potentially low data quality. Meaningful statistical inference from such data requires overcoming these problems and developing efficient and robust computational tools.
We  design and implement a computationally efficient multi-scale Gaussian process (GP) software package, satGP, geared towards remote sensing applications. The software is able to handle problems of enormous sizes and to compute marginals and sample from the random field conditioning on at least hundreds of millions of observations. This is achieved by optimizing the computation by, e.g., randomization and splitting the problem into parallel local subproblems which aggressively discard uninformative data.</p><p>We describe the mean function of the Gaussian process by  approximating  marginals of a Markov random field (MRF). Variability around the mean is modeled with a multi-scale covariance kernel, which consists of  Matérn, exponential, and periodic components. We also demonstrate how winds can be used to inform covariances locally.
The covariance kernel parameters are learned by calculating an approximate marginal maximum likelihood estimate, and  the validity of both the multi-scale approach and the method used to learn the kernel parameters is verified in synthetic experiments.</p><p>We apply these techniques  to a moderate size ozone data set produced by an atmospheric chemistry model and to the very large number of observations retrieved from the Orbiting Carbon Observatory 2 (OCO-2) satellite. The satGP software is released under an open-source license.</p></abstract-html>
<ref-html id="bib1.bib1"><label>Ambikasaran et al.(2016)</label><mixed-citation>
Ambikasaran, S., Foreman-Mackey, D., Greengard, L., Hogg, D. W., and
O'Neil, M.: Fast Direct Methods for Gaussian Processes, IEEE T.
Pattern Anal., 38, 252–265,
<a href="https://doi.org/10.1109/TPAMI.2015.2448083" target="_blank">https://doi.org/10.1109/TPAMI.2015.2448083</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Bertaux et al.(2004)</label><mixed-citation>
Bertaux, J., Hauchecorne, A., Dalaudier, F., Cot, C., Kyrölä, E., Fussen,
D., Tamminen, J., Leppelmeier, G., Sofieva, V., Hassinen, S., Fanton
d'Andon, O., Barrot, G., Mangin, A., Theodore, B., Guirlet, M., Korablev,
O., Snoeij, P., Koopman, R., and Fraisse, R.: First results on GOMOS/ENVISAT,
Adv. Space Res., 33, 1029–1035,
<a href="https://doi.org/10.1016/j.asr.2003.09.037" target="_blank">https://doi.org/10.1016/j.asr.2003.09.037</a>,
2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Bertaux et al.(2010)B</label><mixed-citation>
Bertaux, J. L., Kyrölä, E., Fussen, D., Hauchecorne, A., Dalaudier, F., Sofieva, V., Tamminen, J., Vanhellemont, F., Fanton d'Andon, O., Barrot, G., Mangin, A., Blanot, L., Lebrun, J. C., Pérot, K., Fehr, T., Saavedra, L., Leppelmeier, G. W., and Fraisse, R.: Global ozone monitoring by occultation of stars: an overview of GOMOS measurements on ENVISAT, Atmos. Chem. Phys., 10, 12091–12148, <a href="https://doi.org/10.5194/acp-10-12091-2010" target="_blank">https://doi.org/10.5194/acp-10-12091-2010</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Chiles and Delfiner(2012)</label><mixed-citation>
Chiles, J.-P. and Delfiner, P.: Geostatistics, Wiley, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Cressie(2018)</label><mixed-citation>
Cressie, N.: Mission CO<sub>2</sub>ntrol: A Statistical Scientist's Role in Remote Sensing
of Atmospheric Carbon Dioxide, J. Am. Stat.
Assoc., 113, 152–168, <a href="https://doi.org/10.1080/01621459.2017.1419136" target="_blank">https://doi.org/10.1080/01621459.2017.1419136</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Cressie and Wikle(2001)</label><mixed-citation>
Cressie, N. and Wikle, C.: Statistics for Spatio-Temporal Data, Wiley, 2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Crisp et al.(2012)</label><mixed-citation>
Crisp, D., Fisher, B. M., O'Dell, C., Frankenberg, C., Basilio, R., Bösch, H., Brown, L. R., Castano, R., Connor, B., Deutscher, N. M., Eldering, A., Griffith, D., Gunson, M., Kuze, A., Mandrake, L., McDuffie, J., Messerschmidt, J., Miller, C. E., Morino, I., Natraj, V., Notholt, J., O'Brien, D. M., Oyafuso, F., Polonsky, I., Robinson, J., Salawitch, R., Sherlock, V., Smyth, M., Suto, H., Taylor, T. E., Thompson, D. R., Wennberg, P. O., Wunch, D., and Yung, Y. L.: The ACOS CO<sub>2</sub> retrieval algorithm – Part II: Global X<sub>CO<sub>2</sub></sub> data characterization, Atmos. Meas. Tech., 5, 687–707, <a href="https://doi.org/10.5194/amt-5-687-2012" target="_blank">https://doi.org/10.5194/amt-5-687-2012</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Datta et al.(2016)</label><mixed-citation>
Datta, A., Banerjee, S., Finley, A. O., and Gelfand, A. E.: Hierarchical
Nearest-Neighbor Gaussian Process Models for Large Geostatistical Datasets,
J. Am. Stat. Assoc., 111, 800–812,
<a href="https://doi.org/10.1080/01621459.2015.1044091" target="_blank">https://doi.org/10.1080/01621459.2015.1044091</a>,
2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Eldering et al.(2019)</label><mixed-citation>
Eldering, A., Taylor, T. E., O'Dell, C. W., and Pavlick, R.: The OCO-3 mission: measurement objectives and expected performance based on 1 year of simulated data, Atmos. Meas. Tech., 12, 2341–2370, <a href="https://doi.org/10.5194/amt-12-2341-2019" target="_blank">https://doi.org/10.5194/amt-12-2341-2019</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Gamerman(1997)</label><mixed-citation>
Gamerman, D.: Markov Chain Monte Carlo: Stochastic Simulation for
Bayesian Inference, Chapman &amp; Hall/CRC Texts in Statistical Science,
Taylor &amp; Francis, 1997.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Gelman et al.(2013)</label><mixed-citation>
Gelman, A., Carlin, J., Stern, H., Dunson, D., Vehtari, A., and Rubin, D.:
Bayesian Data Analysis, Chapman and Hall/CRC, 3rd Edn., 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Haario et al.(2001)</label><mixed-citation>
Haario, H., Saksman, E., and Tamminen, J.: An Adaptive Metropolis Algorithm,
Bernoulli, 7, 223–242,   2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Hakkarainen et al.(2016)</label><mixed-citation>
Hakkarainen, J., Ialongo, I., and Tamminen, J.: Direct space-based observations
of anthropogenic CO<sub>2</sub> emission areas from OCO-2, Geophys. Res. Lett.,
43, 11400–11406, <a href="https://doi.org/10.1002/2016GL070885" target="_blank">https://doi.org/10.1002/2016GL070885</a>,
2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Hammerling et al.(2012)</label><mixed-citation>
Hammerling, D. M., Michalak, A. M., O'Dell, C., and Kawa, S. R.: Global CO<sub>2</sub>
distributions over land from the Greenhouse Gases Observing Satellite
(GOSAT), Geophys. Res. Lett., 39, L08804, <a href="https://doi.org/10.1029/2012GL051203" target="_blank">https://doi.org/10.1029/2012GL051203</a>,
2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Hammersley and Clifford(1971)</label><mixed-citation>
Hammersley, J. and Clifford, P.: Markov random fields on finite graphs and
lattices, unpublished manuscript, 1971.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Heaton et al.(2018)</label><mixed-citation>
Heaton, M. J., Datta, A., Finley, A. O., Furrer, R., Guinness, J., Guhaniyogi,
R., Gerber, F., Gramacy, R. B., Hammerling, D., Katzfuss, M., Lindgren, F.,
Nychka, D. W., Sun, F., and Zammit-Mangion, A.: A Case Study Competition
Among Methods for Analyzing Large Spatial Data, J. Agr.
Biol. Envir. St., 24, 398–426, <a href="https://doi.org/10.1007/s13253-018-00348-w" target="_blank">https://doi.org/10.1007/s13253-018-00348-w</a>,
2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Hurrell et al.(2013)</label><mixed-citation>
Hurrell, J. W., Holland, M. M., Gent, P. R., Ghan, S., Kay, J. E., Kushner,
P. J., Lamarque, J.-F., Large, W. G., Lawrence, D., Lindsay, K., Lipscomb,
W. H., Long, M. C., Mahowald, N., Marsh, D. R., Neale, R. B., Rasch, P.,
Vavrus, S., Vertenstein, M., Bader, D., Collins, W. D., Hack, J. J., Kiehl,
J., and Marshall, S.: The Community Earth System Model: A Framework for
Collaborative Research, B. Am. Meteorol. Soc., 94,
1339–1360, <a href="https://doi.org/10.1175/BAMS-D-12-00121.1" target="_blank">https://doi.org/10.1175/BAMS-D-12-00121.1</a>,
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>IPCC(2013)</label><mixed-citation>
IPCC: Summary for Policymakers, book section SPM,  Cambridge
University Press, Cambridge, United Kingdom and New York, NY, USA,
1–30, <a href="https://doi.org/10.1017/CBO9781107415324.004" target="_blank">https://doi.org/10.1017/CBO9781107415324.004</a>,
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Johnson(2014)</label><mixed-citation>
Johnson, S. G.: The NLopt nonlinear-optimization package,
available at: <a href="http://github.com/stevengj/nlopt" target="_blank"/> (last access: 28 July 2020), 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Katzfuss et al.(2018)</label><mixed-citation>
Katzfuss, M., Guinness, J., and Gong, W.: Vecchia approximations of
Gaussian-process predictions, arXiv [e-prints], <a href="https://arxiv.org/abs/1805.03309" target="_blank">arXiv:1805.03309</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Kyrölä et al.(2004)</label><mixed-citation>
Kyrölä, E., Tamminen, J., Leppelmeier, G., Sofieva, V., Hassinen, S.,
Bertaux, J., Hauchecorne, A., Dalaudier, F., Cot, C., Korablev, O., [Fanton
d’Andon], O., Barrot, G., Mangin, A., Théodore, B., Guirlet, M.,
Etanchaud, F., Snoeij, P., Koopman, R., Saavedra, L., Fraisse, R., Fussen,
D., and Vanhellemont, F.: GOMOS on Envisat: an overview, Adv. Space
Res., 33, 1020–1028,
<a href="https://doi.org/10.1016/S0273-1177(03)00590-8" target="_blank">https://doi.org/10.1016/S0273-1177(03)00590-8</a>,
2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Lauritzen(1996)</label><mixed-citation>
Lauritzen, S.: Graphical Models, Oxford Statistical Science Series, Clarendon
Press, 1996.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Lindgren et al.(2011)</label><mixed-citation>
Lindgren, F., Rue, H., and Lindström, J.: An explicit link between Gaussian
fields and Gaussian Markov random fields: the stochastic partial differential
equation approach, J. Roy. Stat. Soc. B, 73, 423–498,
<a href="https://doi.org/10.1111/j.1467-9868.2011.00777.x" target="_blank">https://doi.org/10.1111/j.1467-9868.2011.00777.x</a>,
2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Ma and Kang(2020)</label><mixed-citation>
Ma, P. and Kang, E. L.: A Fused Gaussian Process Model for Very Large Spatial Data, J. Comput. Graph. Stat., <a href="https://doi.org/10.1080/10618600.2019.1704293" target="_blank">https://doi.org/10.1080/10618600.2019.1704293</a>, online first, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Marsh et al.(2013)</label><mixed-citation>
Marsh, D. R., Mills, M. J., Kinnison, D. E., Lamarque, J.-F., Calvo, N., and
Polvani, L. M.: Climate Change from 1850 to 2005 Simulated in CESM1(WACCM),
J. Climate, 26, 7372–7391, <a href="https://doi.org/10.1175/JCLI-D-12-00558.1" target="_blank">https://doi.org/10.1175/JCLI-D-12-00558.1</a>,
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Nassar et al.(2017)</label><mixed-citation>
Nassar, R., Hill, T. G., McLinden, C. A., Wunch, D., Jones, D. B. A., and
Crisp, D.: Quantifying CO<sub>2</sub> Emissions From Individual Power Plants From Space,
Geophys. Res. Lett., 44, 10,045–10,053, <a href="https://doi.org/10.1002/2017GL074702" target="_blank">https://doi.org/10.1002/2017GL074702</a>,
2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Neal(2011)</label><mixed-citation>
Neal, R. M.: MCMC using Hamiltonian dynamics, in: Handbook of Markov Chain
Monte Carlo, edited by Brooks, S., Gelman, A., Jones, G., and Meng, X.,
Chapman &amp; Hall/CRC Handbooks of Modern Statistical Methods, CRC Press, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Nguyen et al.(2014)</label><mixed-citation>
Nguyen, H., Katzfuss, M., Cressie, N., and Braverman, A.: Spatio-Temporal Data
Fusion for Very Large Remote Sensing Datasets, Technometrics, 56, 174–185,
<a href="https://doi.org/10.1080/00401706.2013.831774" target="_blank">https://doi.org/10.1080/00401706.2013.831774</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Nocedal(1980)</label><mixed-citation>
Nocedal, J.: Updating Quasi-Newton Matrices With Limited Storage, Math.
Comput., 35, 773–782, 1980.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>O'Dell et al.(2012)</label><mixed-citation>
O'Dell, C. W., Connor, B., Bösch, H., O'Brien, D., Frankenberg, C., Castano, R., Christi, M., Crisp, D., Eldering, A., Fisher, B., Gunson, M., McDuffie, J., Miller, C. E., Natraj, V., Oyafuso, F., Polonsky, I., Smyth, M., Taylor, T., Toon, G. C., Wennberg, P. O., and Wunch, D.: Corrigendum to “The ACOS CO<sub>2</sub> retrieval algorithm – Part 1: Description and validation against synthetic observations” published in Atmos. Meas. Tech., 5, 99–121, 2012, Atmos. Meas. Tech., 5, 193–193, <a href="https://doi.org/10.5194/amt-5-193-2012" target="_blank">https://doi.org/10.5194/amt-5-193-2012</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Rasmussen and Williams(2006)</label><mixed-citation>
Rasmussen, C. and Williams, C.: Gaussian Processes for Machine Learning, MIT
Press, available at: <a href="http://www.gaussianprocess.org/gpml/chapters/" target="_blank"/> (last access: 28 July 2020), 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Rodgers(2000)</label><mixed-citation>
Rodgers, C.: Inverse Methods for Atmospheric Sounding: Theory and Practice,
Series on atmospheric, oceanic and planetary physics, World Scientific, 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Santner et al.(2003)Santner, Williams, and Notz</label><mixed-citation>
Santner, T., Williams, B., and Notz, W.: The Design and Analysis of Computer
Experiments, Springer Verlag New York, 1st Edn., 2003.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Schäfer et al.(2017)</label><mixed-citation>
Schäfer, F., Sullivan, T. J., and Owhadi, H.: Compression,
inversion, and approximate PCA of dense kernel matrices at near-linear
computational complexity, arXiv [e-prints], <a href="https://arxiv.org/abs/11706.02205" target="_blank">arXiv:1706.02205</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Tadić et al.(2017)</label><mixed-citation>
Tadić, J. M., Qiu, X., Miller, S., and Michalak, A. M.: Spatio-temporal approach to moving window block kriging of satellite data v1.0, Geosci. Model Dev., 10, 709–720, <a href="https://doi.org/10.5194/gmd-10-709-2017" target="_blank">https://doi.org/10.5194/gmd-10-709-2017</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Vecchia(1988)</label><mixed-citation>
Vecchia, A. V.: Estimation and Model Identification for Continuous Spatial
Processes, J. Roy. Stat. Soc. B,
50, 297–312,
1988.
</mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Wainwright and Jordan(2008)</label><mixed-citation>
Wainwright, M. J. and Jordan, M. I.: Graphical Models, Exponential Families,
and Variational Inference, Foundations and Trends in Machine Learning, 1,
1–305, <a href="https://doi.org/10.1561/2200000001" target="_blank">https://doi.org/10.1561/2200000001</a>,
2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Yi et al.(2018)</label><mixed-citation>
Yi, L., Jing, W., Lu, Y., Xi, C., Zhaonan, C., Dongxu, Y., Zengshan, Y.,
Songyan, G., Longfei, T., Naimeng, L., and Daren, L.: TanSat Mission
Achievements: from Scientific Driving to Preliminary Observations, Chinese
J. Space Sci., 38, 5, <a href="https://doi.org/10.11728/cjss2018.05.627" target="_blank">https://doi.org/10.11728/cjss2018.05.627</a>,
2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Yokota et al.(2009)</label><mixed-citation>
Yokota, T., Yoshida, Y., Eguchi, N., Ota, Y., Tanaka, T., Watanabe, H., and
Maksyutov, S.: Global Concentrations of CO<sub>2</sub> and CH4 Retrieved from GOSAT:
First Preliminary Results, SOLA, 5, 160–163, <a href="https://doi.org/10.2151/sola.2009-041" target="_blank">https://doi.org/10.2151/sola.2009-041</a>,
2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Zammit-Mangion et al.(2015)</label><mixed-citation>
Zammit-Mangion, A., Cressie, N., Ganesan, A. L., O'Doherty, S., and Manning,
A. J.: Spatio-temporal bivariate statistical models for atmospheric trace-gas
inversion, Chemometr. Intell. Lab., 149, 227–241,
<a href="https://doi.org/10.1016/j.chemolab.2015.09.006" target="_blank">https://doi.org/10.1016/j.chemolab.2015.09.006</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Zammit-Mangion et al.(2018)</label><mixed-citation>
Zammit-Mangion, A., Cressie, N., and Shumack, C.: On Statistical Approaches to
Generate Level 3 Products from Satellite Remote Sensing Retrievals, Remote
Sensing, 10, 155, <a href="https://doi.org/10.3390/rs10010155" target="_blank">https://doi.org/10.3390/rs10010155</a>,
2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Zeng et al.(2013)</label><mixed-citation>
Zeng, Z., Lei, L., Guo, L., Zhang, L., and Zhang, B.: Incorporating temporal
variability to improve geostatistical analysis of satellite-observed CO<sub>2</sub> in
China, Chinese Sci. Bull., 58, 1948–1954,
<a href="https://doi.org/10.1007/s11434-012-5652-7" target="_blank">https://doi.org/10.1007/s11434-012-5652-7</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Zeng et al.(2017)</label><mixed-citation>
Zeng, Z.-C., Lei, L., Strong, K., Jones, D. B. A., Guo, L., Liu, M., Deng, F.,
Deutscher, N. M., Dubey, M. K., Griffith, D. W. T., Hase, F., Henderson, B.,
Kivi, R., Lindenmaier, R., Morino, I., Notholt, J., Ohyama, H., Petri, C.,
Sussmann, R., Velazco, V. A., Wennberg, P. O., and Lin, H.: Global land
mapping of satellite-observed CO<sub>2</sub> total columns using spatio-temporal
geostatistics, Int. J. Digit. Earth, 10, 426–456,
<a href="https://doi.org/10.1080/17538947.2016.1156777" target="_blank">https://doi.org/10.1080/17538947.2016.1156777</a>, 2017.
</mixed-citation></ref-html>--></article>
