<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Appl. Math. Stat.</journal-id>
<journal-title>Frontiers in Applied Mathematics and Statistics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Appl. Math. Stat.</abbrev-journal-title>
<issn pub-type="epub">2297-4687</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fams.2019.00003</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Applied Mathematics and Statistics</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>On the Efficiency of Covariance Localisation of the Ensemble Kalman Filter Using Augmented Ensembles</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Farchi</surname> <given-names>Alban</given-names></name>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/628449/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Bocquet</surname> <given-names>Marc</given-names></name>
<uri xlink:href="http://loop.frontiersin.org/people/594011/overview"/>
</contrib>
</contrib-group>
<aff><institution>CEREA, Joint Laboratory &#x000C9;cole des Ponts ParisTech and EDF R&#x00026;D, Universit&#x000E9; Paris-Est</institution>, <addr-line>Champs-sur-Marne</addr-line>, <country>France</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Ulrich Parlitz, Max-Planck-Institute for Dynamics and Self-Organisation, Max Planck Society (MPG), Germany</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Peter Jan Van Leeuwen, University of Reading, United Kingdom; Xin Tong, National University of Singapore, Singapore</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Alban Farchi <email>alban.farchi&#x00040;enpc.fr</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Dynamical Systems, a section of the journal Frontiers in Applied Mathematics and Statistics</p></fn></author-notes>
<pub-date pub-type="epub">
<day>26</day>
<month>02</month>
<year>2019</year>
</pub-date>
<pub-date pub-type="collection">
<year>2019</year>
</pub-date>
<volume>5</volume>
<elocation-id>3</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>11</month>
<year>2018</year>
</date>
<date date-type="accepted">
<day>14</day>
<month>01</month>
<year>2019</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2019 Farchi and Bocquet.</copyright-statement>
<copyright-year>2019</copyright-year>
<copyright-holder>Farchi and Bocquet</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p>Localisation is one of the main reasons for the success of the ensemble Kalman filter (EnKF) in high-dimensional geophysical data assimilation problems. It is based on the assumption that correlations between variables of a dynamical system decrease at a fast rate with the physical distance. In the EnKF, two types of localisation methods have emerged: domain localisation and covariance localisation. In this article, we explore possible implementations for covariance localisation in the deterministic EnKF using augmented ensembles in the analysis. We first discuss and compare two different methods to construct the augmented ensemble. The first method, known as modulation, relies on a factorisation property of the background covariance matrix. The second method is based on randomised singular value decomposition (svd) techniques, and has not been previously applied to covariance localisation. The qualitative properties of both methods are illustrated using a simple one-dimensional covariance model. We then show how localisation can be introduced in the perturbation update step using this augmented ensemble framework and we derive a generic ensemble square root Kalman filter with covariance localisation (LEnSRF). Using twin simulations of the Lorenz-1996 model we show that the LEnSRF is numerically more efficient when combined with the randomised svd method than with the modulation method. Finally we introduce a realistic extension of the LEnSRF that uses domain localisation in the horizontal direction and covariance localisation in the vertical direction. Using twin simulations of a multilayer extension of the Lorenz-1996 model, we show that this approach is adequate to assimilate satellite radiances, for which domain localisation alone is insufficient.</p></abstract>
<kwd-group>
<kwd>ensemble Kalman filter</kwd>
<kwd>covariance localisation</kwd>
<kwd>modulation</kwd>
<kwd>random svd</kwd>
<kwd>satellite radiances</kwd>
<kwd>non-local observations</kwd>
</kwd-group>
<counts>
<fig-count count="5"/>
<table-count count="1"/>
<equation-count count="64"/>
<ref-count count="37"/>
<page-count count="15"/>
<word-count count="9824"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>The ensemble Kalman filter (EnKF, [<xref ref-type="bibr" rid="B1">1</xref>]) is an ensemble data assimilation (DA) method that has been applied with success to a wide range of dynamical systems in geophysics (see for example, [<xref ref-type="bibr" rid="B2">2</xref>, <xref ref-type="bibr" rid="B3">3</xref>]). When the ensemble size is small, ensemble estimates are unreliable, which is why localisation techniques have been introduced in the EnKF. With a chaotic model, Bocquet and Carrassi [<xref ref-type="bibr" rid="B4">4</xref>] have shown that localisation is necessary when the ensemble size is smaller than the number of unstable and neutral modes of the dynamics.</p>
<p>Localisation is based on the assumption that correlations between variables in a dynamical system decrease at a fast rate with the physical distance. This assumption is used either to make the assimilation of observations local (domain localisation; [<xref ref-type="bibr" rid="B5">5</xref>, <xref ref-type="bibr" rid="B6">6</xref>]) or to artificially taper distant spurious correlations (covariance localisation, [<xref ref-type="bibr" rid="B7">7</xref>]). Although both approaches are based on the same rationale, each one has its own implementation and leads to different algorithms. EnKF algorithms using domain localisation are by construction embarrassingly parallel but cannot assimilate non-local observations without <italic>ad hoc</italic> approximations. By contrast, EnKF algorithms using covariance localisation rely on a single global analysis with a tapered (localised) background covariance, which is more complex to implement especially in a deterministic context. In practice, the two approaches coincide in the limit where the analysis is driven by the background statistics [<xref ref-type="bibr" rid="B8">8</xref>] and could differ otherwise.</p>
<p>The ability to assimilate non-local observations becomes increasingly important with the prominence of satellite observations [<xref ref-type="bibr" rid="B9">9</xref>]. EnKF algorithms using domain localisation have been adapted to the case of satellite radiances [see e.g., <xref ref-type="bibr" rid="B10">10</xref>, <xref ref-type="bibr" rid="B11">11</xref>]. In these algorithms, the shape of the weighting function associated to a specific satellite channel is used to give an approximate location to this channel (usually the function mode). However, using a realistic one-dimensional model with satellite radiances, Campbell et al. [<xref ref-type="bibr" rid="B9">9</xref>] have shown that this approach systematically yields higher errors than covariance localisation.</p>
<p>In this article, we focus on the implementation of covariance localisation in the deterministic EnKF and we put forward two difficulties: how to construct an accurate representation of the localised background covariance and how to efficiently update the perturbations using this representation.</p>
<p>Regarding the first issue, the EnKF literature shows a growing interest in using <italic>augmented ensembles</italic> during the analysis step, that is when the ensemble size during the analysis step is larger than during the forecast step. Buehner [<xref ref-type="bibr" rid="B12">12</xref>] has proposed a method to construct a <italic>modulated</italic> ensemble that follows the localised background covariance based on a factorisation property shown by Lorenc [<xref ref-type="bibr" rid="B13">13</xref>]. This method has then been leveraged upon by Bishop and Hodyss [<xref ref-type="bibr" rid="B14">14</xref>] and used in the literature to perform covariance localisation [<xref ref-type="bibr" rid="B15">15</xref>&#x02013;<xref ref-type="bibr" rid="B19">19</xref>]. With an alternative point of view, Kretschmer et al. [<xref ref-type="bibr" rid="B20">20</xref>] have included localisation in the ensemble transform Kalman filter (ETKF, [<xref ref-type="bibr" rid="B21">21</xref>]) by the means of a <italic>climatologically augmented</italic> ensemble. Finally, Lorenc [<xref ref-type="bibr" rid="B22">22</xref>] has shown that the background error covariance matrix can be improved in hybrid ensemble variational data assimilation systems by using <italic>time-lagged</italic> and <italic>time-shifted</italic> perturbations.</p>
<p>Another possibility would be to construct the augmented ensemble using randomised singular value decomposition (svd) techniques [<xref ref-type="bibr" rid="B23">23</xref>]. Such a method will be detailed in this article.</p>
<p>With an augmented ensemble, standard formulae cannot be used for the perturbation update because the number of perturbations to propagate must be inferior to the augmented ensemble size. This issue is discussed by Bocquet [<xref ref-type="bibr" rid="B18">18</xref>], with proposed update formulae. The same update was later derived again by Bishop et al. [<xref ref-type="bibr" rid="B19">19</xref>] in a different but formally equivalent form. In this article, we will consider several alternatives for the perturbation update and we will eventually select the update of Bocquet [<xref ref-type="bibr" rid="B18">18</xref>], which we found to be the most adequate.</p>
<p>A brief introduction of the EnKF is given in section 2. In section 3, we explain how covariance localisation can be implemented in the deterministic EnKF using augmented ensembles. In section 4, we compare the accuracy of the methods designed to approximate the localised background covariance. Section 5 is dedicated to the numerical illustration of the resulting algorithms using the one-dimensional Lorenz 1996 [L96, <xref ref-type="bibr" rid="B24">24</xref>] model. We explain in section 6 how these methods can be used to assimilate satellite radiances and give an illustration using a multilayer extension of the L96 model that mimics satellite radiances. Conclusions follow in section 7.</p>
</sec>
<sec id="s2">
<title>2. Background and Motivation</title>
<p>Before getting to the matter of covariance localisation, we recall the basics of the EnKF and we introduce the notation.</p>
<sec>
<title>2.1. The Kalman Filter Analysis</title>
<p>Consider the DA problem that consists in estimating a state vector <inline-formula><mml:math id="M65"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> at discrete times <italic>t</italic><sub><italic>k</italic></sub>, <italic>k</italic> &#x02208; &#x02115;, through independent realisations of the observation vectors <inline-formula><mml:math id="M66"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>y</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> given by</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="-tex-caligraphic">M</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>w</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>w</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>&#x0007E;</mml:mo><mml:mi mathvariant="-tex-caligraphic">N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Q</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E2"><label>(2)</label><mml:math id="M2"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>y</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="-tex-caligraphic">H</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>&#x0007E;</mml:mo><mml:mi mathvariant="-tex-caligraphic">N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>When the dynamical model <inline-formula><mml:math id="M67"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> and the observation operator <inline-formula><mml:math id="M68"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">H</mml:mi></mml:mrow></mml:math></inline-formula> are linear and when the initial probability density function (pdf) is Gaussian, the analysis pdf at all time is Gaussian with mean vector and error covariance matrix given by the dynamical Riccati equation.</p>
<p>In the following, we focus on one linear Gaussian analysis step. For simplicity we drop the time index <italic>k</italic> and the conditioning on the previous observations. The linear observation operator is written <bold>H</bold>. The background and analysis pdfs are</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M3"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="-tex-caligraphic">N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo>&#x0007C;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mtext>f</mml:mtext></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E4"><label>(4)</label><mml:math id="M4"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo>&#x0007C;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="-tex-caligraphic">N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo>&#x0007C;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>P</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M69"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and <bold>P</bold> are given by</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M5"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>K</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi><mml:mi>B</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E6"><label>(6)</label><mml:math id="M6"><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>a</mml:mi></mml:mstyle></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>f</mml:mi></mml:mstyle></mml:msub><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>K</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>y</mml:mi></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>f</mml:mi></mml:mstyle></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E7"><label>(7)</label><mml:math id="M7"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>P</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>K</mml:mi><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>.</mml:mo></mml:math></disp-formula>
</sec>
<sec>
<title>2.2. The EnKF Analysis</title>
<p>In the EnKF [<xref ref-type="bibr" rid="B25">25</xref>], the statistics are carried through by the ensemble <inline-formula><mml:math id="M70"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">i</mml:mtext></mml:mstyle></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. Let <bold>E</bold> be the ensemble matrix, that is the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>e</sub> matrix whose columns are the ensemble members. Let <inline-formula><mml:math id="M71"><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover></mml:math></inline-formula> be the ensemble mean and <bold>X</bold> be the normalised anomaly matrix:</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M8"><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x000AF;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E9"><label>(9)</label><mml:math id="M9"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>E</mml:mi></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x000AF;</mml:mo></mml:mover><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mrow><mml:msqrt><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M72"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> is the vector whose components are 1.</p>
<p>The main EnKF assumptions are</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M10"><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>f</mml:mi></mml:mstyle></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mover accent='true'><mml:mi>X</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E11"><label>(11)</label><mml:math id="M11"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>.</mml:mo></mml:math></disp-formula>
<p>This means that the background pdf <inline-formula><mml:math id="M73"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">f</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is represented by the empirical pdf <inline-formula><mml:math id="M74"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. The ensemble update depends on the specific implementation of the EnKF. For example, in the ETKF it is given by</p>
<disp-formula id="E12"><label>(12)</label><mml:math id="M12"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E13"><label>(13)</label><mml:math id="M13"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mover accent='true'><mml:mi>y</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mstyle><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi><mml:mn>1</mml:mn></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E14"><label>(14)</label><mml:math id="M14"><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>a</mml:mi></mml:mstyle></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>y</mml:mi></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mover accent='true'><mml:mi>y</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E15"><label>(15)</label><mml:math id="M15"><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E16"><label>(16)</label><mml:math id="M16"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>E</mml:mi></mml:mstyle><mml:mo>&#x02190;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msqrt><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:mo>,</mml:mo></mml:math></disp-formula>
<p>where <bold>U</bold> is an arbitrary orthogonal matrix that verifies <inline-formula><mml:math id="M75"><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle></mml:math></inline-formula> and the <inline-formula><mml:math id="M76"><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula> exponent denotes the square root for diagonalisable matrices with non-negative eigenvalues, defined as follows. Let <bold>M</bold> be the matrix <bold>GDG</bold><sup>&#x02212;1</sup> with <bold>G</bold> an invertible square matrix and <bold>D</bold> a diagonal matrix with non-negative elements. We define its square root to be the matrix <inline-formula><mml:math id="M77"><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>M</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>G</mml:mtext></mml:mstyle><mml:mstyle mathvariant="bold"><mml:mtext>D</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>G</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
</sec>
<sec>
<title>2.3. Rank Deficiency of the EnKF</title>
<p>The empirical error covariance matrix <bold>XX</bold><sup>T</sup> has rank limited by <italic>N</italic><sub>e</sub>&#x02212;1, which is probably too small to accurately represent the full error covariance matrix of a high-dimensional system where <italic>N</italic><sub>x</sub> &#x0226B; <italic>N</italic><sub>e</sub>. Indeed, when the ensemble is too small, the empirical error covariance matrix is characterised by large sampling errors, which often take the form of spurious correlations at long distance.</p>
<p>To fix this, covariance localisation uses an <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> localisation matrix &#x003C1; and regularises the background error empirical covariance matrix by a Schur (element-wise) product</p>
<disp-formula id="E17"><label>(17)</label><mml:math id="M17"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02218;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>The localisation matrix &#x003C1; is a short-range matrix that describes the correlation in the physical domain. If &#x003C1; is positive definite, then <bold>B</bold> is positive semi-definite and therefore can be used as a covariance matrix [<xref ref-type="bibr" rid="B26">26</xref>]. This new background covariance matrix also has the following desirable properties: (i) if &#x003C1; is short-range then spurious correlations at long distance are removed in <bold>B</bold> and (ii) the rank of <bold>B</bold> is no longer limited by <italic>N</italic><sub>e</sub> &#x02212; 1. In practice, <bold>B</bold> is always full-rank (and hence positive definite).</p>
</sec>
</sec>
<sec id="s3">
<title>3. Implementing Covariance Localisation in the Deterministic EnKF</title>
<sec>
<title>3.1. Principle</title>
<p>Covariance localisation as presented in Equation (17) is formulated in state space, while the ETKF ensemble update (Equations 12&#x02013;16) is formulated in ensemble space. As is, these two approaches are irreconcilable. However, there are other variants of the deterministic EnKF in which covariance localisation can be easily integrated. In the &#x0201C;determinisitic ensemble Kalman filter&#x0201D; [<xref ref-type="bibr" rid="B27">27</xref>], the ensemble update is based on the Kalman gain Equation (5) only, where covariance localisation can be included in <bold>B</bold>. In the serial ensemble square root filter [<xref ref-type="bibr" rid="B28">28</xref>], the ensemble update is based on a modified scalar Kalman gain, for which the localisation matrix &#x003C1; can be applied entry-wise.</p>
<p>Another possibility to include covariance localisation in the EnKF is to use augmented ensembles. In this case, the EnKF analysis step would be split into three sub-steps:
<list list-type="order">
<list-item><p>compute a set of <inline-formula><mml:math id="M78"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> perturbations <inline-formula><mml:math id="M79"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> such that <inline-formula><mml:math id="M80"><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mo>&#x02218;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mo>&#x02248;</mml:mo><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item><p>apply an EnKF analysis step (e.g. the ETKF) using the background state <inline-formula><mml:math id="M81"><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover></mml:math></inline-formula> and the <inline-formula><mml:math id="M82"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> perturbations <inline-formula><mml:math id="M83"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> to compute the analysis state <inline-formula><mml:math id="M84"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and the <inline-formula><mml:math id="M85"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> perturbations <inline-formula><mml:math id="M86"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>;</p></list-item>
<list-item><p>form <italic>N</italic><sub>e</sub> updated members using the analysis state <inline-formula><mml:math id="M87"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and the <inline-formula><mml:math id="M88"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> analysis perturbations <inline-formula><mml:math id="M89"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>Augmented ensembles are currently used in operational centres to implement localisation in four-dimensional ensemble variational methods [<xref ref-type="bibr" rid="B29">29</xref>&#x02013;<xref ref-type="bibr" rid="B31">31</xref>].</p>
<p>In section 3.2, we present different methods that can be used to construct the augmented ensemble (sub-step 1) and in section 3.3 we discuss potential implementations of the perturbation update within this augmented ensemble context (sub-step 3).</p>
</sec>
<sec>
<title>3.2. Approximate Factorisation of the Prior Covariance Matrix</title>
<sec>
<title>3.2.1. Mathematical Goal</title>
<p>Given the prior covariance matrix <bold>B</bold> &#x0003D; &#x003C1; &#x02218; (<bold>XX</bold><sup>T</sup>), we want an <inline-formula><mml:math id="M90"><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> matrix <inline-formula><mml:math id="M91"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> such that</p>
<disp-formula id="E18"><label>(18)</label><mml:math id="M18"><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:msup><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:mtext>T</mml:mtext></mml:msup><mml:mo>&#x02248;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E19"><label>(19)</label><mml:math id="M19"><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>.</mml:mo></mml:math></disp-formula>
<p>Note that, although <inline-formula><mml:math id="M92"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> represents a set of <inline-formula><mml:math id="M93"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> perturbations, we call it &#x0201C;augmented ensemble&#x0201D; for simplicity.</p>
</sec>
<sec>
<title>3.2.2. Approximation via Modulation</title>
<p>Suppose that we have an <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>m</sub> matrix <bold>W</bold> such that &#x003C1; &#x02248; <bold>WW</bold><sup>T</sup>. We define the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>m</sub><italic>N</italic><sub>e</sub> matrix <bold>W</bold>&#x00394;<bold>X</bold> by</p>
<disp-formula id="E20"><label>(20)</label><mml:math id="M20"><mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x00394;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mi>n</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:msubsup><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>which is a mix between a Schur product (for the state variable index <italic>n</italic>) and a tensor product (for the ensemble indices <italic>i</italic> and <italic>j</italic>). <bold>W</bold>&#x00394;<bold>X</bold> is the modulation product of <bold>X</bold> and <bold>W</bold>. As shown by Lorenc [<xref ref-type="bibr" rid="B13">13</xref>]:</p>
<disp-formula id="E21"><label>(21)</label><mml:math id="M21"><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x00394;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x00394;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Moreover, it is easy to verify that, as long as <inline-formula><mml:math id="M94"><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, we have <inline-formula><mml:math id="M95"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>W</mml:mtext></mml:mstyle><mml:mo>&#x00394;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>. Therefore, <inline-formula><mml:math id="M96"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>W</mml:mtext></mml:mstyle><mml:mo>&#x00394;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:math></inline-formula> is a solution to Equations (18) and (19) with <inline-formula><mml:math id="M97"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> perturbations.</p>
<p>The name &#x0201C;modulation&#x0201D; was given by Bishop et al. [<xref ref-type="bibr" rid="B19">19</xref>]. It stems from the fact that the columns of <bold>W</bold> should be the main modes of &#x003C1;.</p>
<p>Using Equation (20), we conclude that <inline-formula><mml:math id="M98"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is constructed with complexity:</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M22"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>mod</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="-tex-caligraphic">O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub><mml:msub><mml:mover accent='true'><mml:mi>N</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mtext>e</mml:mtext></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>In this equation, we excluded the cost of computing the matrix <bold>W</bold>. Indeed, if the localisation matrix &#x003C1; is constant in time, then the same matrix <bold>W</bold> can be used for all analysis steps and it only needs to be computed once. A fair comparison with the other methods must take into account this fact.</p>
<p>One remaining question is: how large must be <italic>N</italic><sub>m</sub>? This question is largely discussed in the litterature related to principal component analysis (see e.g., [<xref ref-type="bibr" rid="B32">32</xref>]). However, its answer highly depends on the spatial structure of &#x003C1; itself. In the numerical experiments of sections 4, 5, and 6, we illustrate how our performance criterion depends on the number of modes <italic>N</italic><sub>m</sub>. Yet at this point, it is not clear which degree of accuracy we need for the factorisation of <bold>B</bold>. Finally note that, in high dimensional spaces, <bold>W</bold> can be obtained using the random svd (Algorithm B) derived by Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>] and described in <xref ref-type="app" rid="A1">Appendix B</xref>.</p>
</sec>
<sec>
<title>3.2.3. Including Balance in the Modulation</title>
<p>In this section, we describe a refinement of the modulation method, based on a new idea. When there is variability between the state variables, it could be interesting to remove part of this variability by transferring it to <bold>W</bold> as follows. Let <bold>&#x0039B;</bold> be the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> diagonal matrix containing the standard deviations of the ensemble:</p>
<disp-formula id="E23"><label>(23)</label><mml:math id="M23"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x0039B;</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext>diag</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>The background error covariance matrix can then be written</p>
<disp-formula id="E24"><label>(24)</label><mml:math id="M24"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x0039B;</mml:mi></mml:mstyle><mml:mi>&#x003C1;</mml:mi><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x0039B;</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x0039B;</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x0039B;</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Suppose now that the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>m</sub> matrix <bold>W</bold> verifies <bold>&#x0039B;</bold>&#x003C1;<bold>&#x0039B;</bold> &#x02248; <bold>WW</bold><sup>T</sup>. If we have an <italic>N</italic><sub>x</sub> &#x000D7; (<italic>N</italic><sub>m</sub> &#x0002B; &#x003B4;<italic>N</italic><sub>m</sub>) matrix <bold>W</bold><sub>&#x0002B;</sub> such that <inline-formula><mml:math id="M99"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>W</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>W</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x02248;</mml:mo><mml:mi>&#x003C1;</mml:mi></mml:math></inline-formula>, then <bold>W</bold> can be constructed as the <italic>N</italic><sub>m</sub> main modes of <bold>&#x0039B;W</bold><sub>&#x0002B;</sub>. For the same reason as in section 3.2.2, <inline-formula><mml:math id="M100"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>W</mml:mtext></mml:mstyle><mml:mo>&#x00394;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x0039B;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a solution to Equations (18) and (19) with <inline-formula><mml:math id="M101"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> perturbations.</p>
<p>In the transformed anomalies <bold>&#x0039B;</bold><sup>&#x02212;1</sup><bold>X</bold>, all state variables have the same variability (namely 1). The variability transfer from <bold>X</bold> to <bold>W</bold> means that the matrix <bold>W</bold> can be deformed and adapted to the current situation in order to yield a more accurate representation of the prior covariance matrix <bold>B</bold>.</p>
<p>Using this method, the longest algorithmic operation consists in obtaining <bold>W</bold> from the svd of <bold>&#x0039B;W</bold><sub>&#x0002B;</sub>. Therefore, <bold>&#x0039B;X</bold> is constructed with approximate complexity:</p>
<disp-formula id="E25"><label>(25)</label><mml:math id="M25"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>mod</mml:mtext><mml:mo>,</mml:mo><mml:mtext>&#x000A0;bal</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="-tex-caligraphic">O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>m</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mtext>m</mml:mtext></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Again, we excluded the cost of computing the matrix <bold>W</bold><sup>&#x0002B;</sup> because it only needs to be computed once.</p>
</sec>
<sec>
<title>3.2.4. Approximation via Truncated svd</title>
<p>Suppose that we have a truncated svd of <bold>B</bold> given by</p>
<disp-formula id="E26"><label>(26)</label><mml:math id="M26"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02248;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <bold>U</bold> is an <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>m</sub> orthogonal matrix and <bold>&#x003A3;</bold> is an <italic>N</italic><sub>m</sub> &#x000D7; <italic>N</italic><sub>m</sub> diagonal matrix. Since <bold>B</bold> is symmetric positive definite, Equation (26) is a truncated eigendecomposition. Let <inline-formula><mml:math id="M102"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> be an <italic>N</italic><sub>x</sub> &#x000D7; (<italic>N</italic><sub>m</sub> &#x0002B; 1) matrix such that</p>
<disp-formula id="E27"><label>(27)</label><mml:math id="M27"><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:msup><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:mtext>T</mml:mtext></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E28"><label>(28)</label><mml:math id="M28"><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>.</mml:mo></mml:math></disp-formula>
<p><xref ref-type="app" rid="A1">Appendix A</xref> describes a method to construct <inline-formula><mml:math id="M103"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> from <inline-formula><mml:math id="M104"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi></mml:mstyle><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></inline-formula> Then <inline-formula><mml:math id="M105"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is a solution to Equations (18) and (19) with <inline-formula><mml:math id="M106"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> perturbations.</p>
<p>How can we efficiently obtain the truncated svd of <bold>B</bold> Equation (26)? Since <bold>B</bold> is an <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> matrix, its svd can be computed with complexity <inline-formula><mml:math id="M107"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">O</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. A more adequate solution is to use the random svd (Algorithm 2) derived by Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>]. A brief description of this algorithm can be found in <xref ref-type="app" rid="A1">Appendix B</xref>. For a detailed description, we refer to the original article by Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>].</p>
<p>Using this method, the longest algorithmic operations are empirically</p>
<list list-type="order">
<list-item><p>applying the background error covariance matrix <bold>B</bold> (steps 2, 5, 7, and 10 of Algorithm 2);</p></list-item>
<list-item><p>computing the QR factorisations (steps 3, 6, and 8 of Algorithm 2).</p></list-item>
</list>
<p>This means that <inline-formula><mml:math id="M108"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is constructed with approximate complexity:</p>
<disp-formula id="E29"><label>(29)</label><mml:math id="M29"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>trunc</mml:mtext><mml:mo>&#x000A0;</mml:mo><mml:mtext>svd</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>N</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mtext>e</mml:mtext></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi mathvariant="-tex-caligraphic">O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub><mml:msubsup><mml:mover accent='true'><mml:mi>N</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mtext>e</mml:mtext><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>T</italic><sub><bold>B</bold></sub> is the complexity of applying the matrix <bold>B</bold> to a vector and the parameter <italic>q</italic> is the number of iterations performed in Algorithm 2. With a dense representation of the matrix <bold>B</bold>, <inline-formula><mml:math id="M109"><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">O</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. However, for any vector <inline-formula><mml:math id="M110"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>v</mml:mtext></mml:mstyle></mml:math></inline-formula> of size <italic>N</italic><sub>x</sub>, we have the identity:</p>
<disp-formula id="E30"><label>(30)</label><mml:math id="M30"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi><mml:mi>v</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:mstyle><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msup><mml:mo>&#x02218;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <bold>X</bold><sup><italic>i</italic></sup> is the <italic>i</italic>-th column of matrix <bold>X</bold>. If &#x003C1; is banded with non-zero coefficients on <italic>N</italic><sub>b</sub> diagonals, the matrix product <bold>Bv</bold> has complexity <inline-formula><mml:math id="M111"><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">O</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>b</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Furthermore, if &#x003C1; is a circulant matrix (this corresponds to an invariance by translation in physical space) it is diagonal in spectral space and <inline-formula><mml:math id="M112"><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">O</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow></mml:msub><mml:mtext>ln</mml:mtext><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>Finally, as explained in details by Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>] and recalled in <xref ref-type="app" rid="A1">Appendix B.2</xref>, the matrix multiplications implying <bold>B</bold> in the truncated svd method can be parallelised, which reduces <italic>T</italic><sub>trunc svd</sub> to:</p>
<disp-formula id="E31"><label>(31)</label><mml:math id="M31"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>trunc</mml:mtext><mml:mo>&#x000A0;</mml:mo><mml:mtext>svd</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>N</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mtext>e</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mtext>thr</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:msub><mml:mi>T</mml:mi><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi mathvariant="-tex-caligraphic">O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub><mml:msubsup><mml:mover accent='true'><mml:mi>N</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mtext>e</mml:mtext><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>N</italic><sub>thr</sub> is the number of available threads.</p>
<p>Again, the same question remains: how large must be <italic>N</italic><sub>m</sub>? For the same reasons as in section 3.2.2, we cannot provide a clear answer at this point. However, in the numerical experiments of sections 4, 5, and 6, we illustrate how our performance criterion depends on the number of modes <italic>N</italic><sub>m</sub>.</p>
</sec>
</sec>
<sec>
<title>3.3. Updating the Perturbations</title>
<p>Once the augmented ensemble <inline-formula><mml:math id="M113"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is constructed, we need to specify how we are going to update the perturbations. This is a non-trivial problem because the number of perturbations that compose <inline-formula><mml:math id="M114"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>, <inline-formula><mml:math id="M115"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, is potentially different from (and most of the time greater than) the number of pertubations to update, <italic>N</italic><sub>e</sub>.</p>
<sec>
<title>3.3.1. Updating the Perturbations Without Localisation</title>
<p>The perturbation update of the ETKF is given by</p>
<disp-formula id="E32"><label>(32)</label><mml:math id="M32"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mtext>e</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E33"><label>(33)</label><mml:math id="M33"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mtext>e</mml:mtext></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>This is a simplified version of Equation (15) that rigorously satisfies</p>
<disp-formula id="E34"><label>(34)</label><mml:math id="M34"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:msubsup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext><mml:mtext>T</mml:mtext></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>P</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>K</mml:mi><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Sakov and Bertino [<xref ref-type="bibr" rid="B8">8</xref>] have shown that Equation (33) is equivalent to</p>
<disp-formula id="E35"><label>(35)</label><mml:math id="M35"><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mtext>x</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E36"><label>(36)</label><mml:math id="M36"><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mtext>x</mml:mtext></mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo>.</mml:mo></mml:math></disp-formula>
<p>Note that <bold>I</bold> &#x0002B; <bold>BH</bold><sup>T</sup><bold>R</bold><sup>&#x02212;1</sup><bold>H</bold> is not necessarily symmetric. However, if we suppose that <bold>B</bold> is positive definite (the generalisation to positive semi-definite matrices is not fundamental) then <bold>BH</bold><sup>T</sup><bold>R</bold><sup>&#x02212;1</sup><bold>H</bold> is similar (in the matrix sense) to</p>
<disp-formula id="E37"><label>(37)</label><mml:math id="M37"><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>which is symmetric positive semi-definite. Therefore, <bold>BH</bold><sup>T</sup><bold>R</bold><sup>&#x02212;1</sup><bold>H</bold> is diagonalisable with non-negative eigenvalues and <bold>I</bold> &#x0002B; <bold>BH</bold><sup>T</sup><bold>R</bold><sup>&#x02212;1</sup><bold>H</bold> is diagonalisable with positive eigenvalues. This means that <bold>T</bold><sub>x</sub> is well-defined.</p>
</sec>
<sec>
<title>3.3.2. Updating the Perturbations With Localisation Using the Augmented Ensemble</title>
<p>The right-transform <bold>T</bold><sub>e</sub> is formulated in ensemble space. As a result, there is no way to enforce covariance localisation (formulated in state space) using this approach. By contrast, the left-transform <bold>T</bold><sub>x</sub> is formulated in state space and is therefore more adequate to covariance localisation.</p>
<p>Using the augmented ensemble constructed in section 3.2, the prior covariance matrix is approximated by Equation (18). This means that the left-transform can be approximated by</p>
<disp-formula id="E38"><label>(38)</label><mml:math id="M38"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mtext>x</mml:mtext></mml:msub><mml:mo>&#x02248;</mml:mo><mml:msub><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>e</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M116"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Y</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>H</mml:mtext></mml:mstyle><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>. Using this expression for the update still implies linear algebra in state space, which is problematic with high-dimensional systems. <inline-formula><mml:math id="M117"><mml:mstyle mathvariant="bold"><mml:mtext>I</mml:mtext></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Y</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mstyle mathvariant="bold"><mml:mtext>H</mml:mtext></mml:mstyle></mml:math></inline-formula> is an <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> matrix, it is therefore intractable with high-dimensional systems. However, Equation (25) of Bocquet [<xref ref-type="bibr" rid="B18">18</xref>] shows that</p>
<disp-formula id="E39"><label>(39)</label><mml:math id="M39"><mml:mrow><mml:msub><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>e</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Y</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>R</mml:mi></mml:mstyle><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where the linear algebra is now performed in the augmented ensemble space (that is, using <inline-formula><mml:math id="M118"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> matrices). This perturbation update has been rediscovered by Bishop et al. [<xref ref-type="bibr" rid="B19">19</xref>] and included in their gain ETKF (GETKF) algorithm. However, the update formula used in the GETKF is prone to numerical cancellation errors as opposed to Equation (39).</p>
<p>In the rest of this article, we use the following perturbation update:</p>
<disp-formula id="E40"><label>(40)</label><mml:math id="M40"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>a</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>T</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>e</mml:mtext></mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>and we compute the left-transform <inline-formula><mml:math id="M97a"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>T</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> using Equation (39). Algorithm 1 summarises the analysis step of the resulting generic ensemble square root Kalman filter with covariance localisation (LEnSRF). Finally note that the consistency of the perturbation update in deterministic EnKF algorithms using covariance localisation is the subject of another study by Bocquet and Farchi (under review).</p>
<table-wrap position="float" id="A2">
<label>Algorithm 1</label>
<caption><p>Analysis step for a generic LEnSRF used in this article. The augmented ensemble at step 3 can be constructed using the modulation method with or without the balanced refinement or using the truncated svd method.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr><td align="left" valign="top"><bold>Require:</bold> <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>e</sub> background ensemble matrix <bold>E</bold>, observation vector <inline-formula><mml:math id="M98a"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>y</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>y</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> (inputs); multiplicative inflation factor &#x003BB; (parameter).</td></tr>
<tr><td align="left" valign="top">1: <inline-formula><mml:math id="M99a"><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x000AF;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mrow></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">2: <inline-formula><mml:math id="M100a"><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>E</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">1</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msqrt><mml:mrow><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">3: Compute the augmented ensemble <inline-formula><mml:math id="M101a"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">4: <inline-formula><mml:math id="M102a"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Y</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>H</mml:mtext></mml:mstyle><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">5: <inline-formula><mml:math id="M103a"><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">y</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Y</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mstyle class="text"><mml:mn>1</mml:mn></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">6: <inline-formula><mml:math id="M104a"><mml:mstyle mathvariant="bold"><mml:mo>&#x003B4;</mml:mo></mml:mstyle><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">y</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">y</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">7: <inline-formula><mml:math id="M105a"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Y</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">8: <inline-formula><mml:math id="M106a"><mml:msub><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">a</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mover accent="false" class="mml-overline"><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mo accent="true">&#x000AF;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>I</mml:mtext></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mstyle mathvariant="bold"><mml:mo>&#x003B4;</mml:mo></mml:mstyle></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">9: <inline-formula><mml:math id="M107a"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">a</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>I</mml:mtext></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>I</mml:mtext></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup><mml:mstyle mathvariant="bold"><mml:mtext>H</mml:mtext></mml:mstyle><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">10: <inline-formula><mml:math id="M108a"><mml:mstyle mathvariant="bold"><mml:mtext>E</mml:mtext></mml:mstyle><mml:mo>&#x02190;</mml:mo><mml:msub><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">a</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">1</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003BB;</mml:mi><mml:msqrt><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msqrt><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">11: <bold>return</bold> <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>e</sub> analysis ensemble matrix <bold>E</bold>.</td></tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4. Accuracy of the Approximate Factorisation</title>
<sec>
<title>4.1. A Simple One-Dimensional Model for the Background Error Covariance Matrix</title>
<p>In this section, we investigate the accuracy of the factorisation Equation (18) obtained with the methods described in section 3.2. The background error covariance matrix is obtained as follows.</p>
<p>Let <italic>G</italic> be the piecewise rational function of Gaspari and Cohn [<xref ref-type="bibr" rid="B33">33</xref>]. Let <italic>d</italic> be the Euclidean distance over the set {1&#x02026;<italic>N</italic><sub>x</sub>} with periodic boundary conditions. For any radius <italic>r</italic> &#x02208; &#x0211D;<sup>&#x0002B;</sup>, we define <bold>C</bold>(<italic>r</italic>) as the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> matrix whose coefficients satisfy</p>
<disp-formula id="E41"><label>(41)</label><mml:math id="M41"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>C</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mi>r</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>n</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mi>r</mml:mi></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>For any vector <inline-formula><mml:math id="M119"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>v</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>x</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, we define <inline-formula><mml:math id="M120"><mml:mstyle mathvariant="bold"><mml:mtext>D</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> as the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> diagonal matrix whose diagonal is precisely <inline-formula><mml:math id="M121"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>v</mml:mtext></mml:mstyle></mml:math></inline-formula>.</p>
<p>We draw a vector <bold>c</bold> from the distribution <inline-formula><mml:math id="M123"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mtext>c</mml:mtext></mml:mrow></mml:msub><mml:mstyle mathvariant="bold"><mml:mtext>C</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mtext>c</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, where &#x003B1;<sub>c</sub> and <italic>r</italic><sub>c</sub> are two parameters. We define:</p>
<disp-formula id="E42"><label>(42)</label><mml:math id="M42"><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>C</mml:mi></mml:mstyle><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>D</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>C</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>D</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p><bold>C</bold><sub>ref</sub> plays the role of a reference covariance matrix in our model. We now draw a sample of <italic>N</italic><sub>e</sub> independent members from the distribution <inline-formula><mml:math id="M124"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>C</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>ref</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Without loss of generality, we assume that the associated ensemble matrix <bold>X</bold> is normalised by <inline-formula><mml:math id="M125"><mml:msqrt><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msqrt></mml:math></inline-formula>. We define the background error covariance matrix as</p>
<disp-formula id="E43"><label>(43)</label><mml:math id="M43"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>with the localisation matrix <bold><italic>&#x003C1;</italic></bold> = <bold>C</bold>(<bold><italic>r</italic></bold><sub>ref</sub>).</p>
</sec>
<sec>
<title>4.2. Experimental Setup</title>
<p>In the following test series, we use two matrices <bold>B</bold><sub>1</sub> and <bold>B</bold><sub>2</sub>. They are constructed using different realisations of the model described in section 4.1 with the parameters specified in <xref ref-type="table" rid="T1">Table 1</xref>. Note that we used short-range correlations (<italic>r</italic><sub>ref</sub> &#x0003D; 20) to construct <bold>B</bold><sub>1</sub> and mid-range correlations (<italic>r</italic><sub>ref</sub> &#x0003D; 100) to construct <bold>B</bold><sub>2</sub>. <xref ref-type="fig" rid="F1">Figure 1</xref> displays the matrices <bold>B</bold><sub>1</sub> and <bold>B</bold><sub>2</sub>.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Parameters used to construct <bold>B</bold><sub>1</sub> and <bold>B</bold><sub>2</sub> with the model described in section.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="center"><bold>Value fo</bold>r <bold>B</bold><sub>1</sub></th>
<th valign="top" align="center"><bold>Value for B</bold><sub>2</sub></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>N</italic><sub>x</sub></td>
<td valign="top" align="center">400</td>
<td valign="top" align="center">400</td>
</tr>
<tr>
<td valign="top" align="left"><italic>N</italic><sub>e</sub></td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">10</td>
</tr>
<tr>
<td valign="top" align="left">&#x003B1;<sub>c</sub></td>
<td valign="top" align="center">0.2</td>
<td valign="top" align="center">0.2</td>
</tr>
<tr>
<td valign="top" align="left"><italic>r</italic><sub>c</sub></td>
<td valign="top" align="center">30</td>
<td valign="top" align="center">30</td>
</tr>
<tr>
<td valign="top" align="left"><italic>r</italic><sub>ref</sub></td>
<td valign="top" align="center">20</td>
<td valign="top" align="center">100</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Background error covariance matrices <bold>B</bold><sub>1</sub> <bold>(left)</bold> and <bold>B</bold><sub>2</sub> <bold>(right)</bold>.</p></caption>
<graphic xlink:href="fams-05-00003-g0001.tif"/>
</fig>
<p>The modulation method described in sections 3.2.2 and 3.2.3 requires an approximate factorisation for &#x003C1; &#x0003D; <bold>C</bold>(<italic>r</italic><sub>ref</sub>), that we precompute by keeping the first <italic>N</italic><sub>m</sub> or <italic>N</italic><sub>m</sub> &#x0002B; &#x003B4;<italic>N</italic><sub>m</sub> (when using the balance refinement) modes in the svd of &#x003C1;. Since &#x003C1; is sparse, we use the random svd (Algorithm 2) to obtain this factorisation.</p>
</sec>
<sec>
<title>4.3. Results and Discussion</title>
<p>We apply the methods described in section 3.2 to obtain an approximate factorisation for <bold>B</bold><sub>1</sub> and <bold>B</bold><sub>2</sub> and we compute the normalised Frobenius error:</p>
<disp-formula id="E44"><label>(44)</label><mml:math id="M44"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>F</mml:mtext><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>&#x02016;</mml:mo></mml:mrow></mml:mrow><mml:mtext>F</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x02016;</mml:mo></mml:mrow></mml:mrow><mml:mtext>F</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Using the Eckart&#x02013;Young theorem [<xref ref-type="bibr" rid="B34">34</xref>], we conclude that the lowest normalised Frobenius error for a factorisation with rank <inline-formula><mml:math id="M126"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> is</p>
<disp-formula id="E45"><label>(45)</label><mml:math id="M45"><mml:mrow><mml:msubsup><mml:mi>e</mml:mi><mml:mrow><mml:mtext>F</mml:mtext><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msqrt><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>N</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mtext>e</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>B</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x02016;</mml:mo></mml:mrow></mml:mrow><mml:mtext>F</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where &#x003C3;<sub><italic>k</italic></sub>(<bold>M</bold>) is the <italic>k</italic>-th singular value of the matrix <bold>M</bold>.</p>
<p><xref ref-type="fig" rid="F2">Figure 2</xref> shows the evolution of the normalised Frobenius error <italic>e</italic><sub>F, <italic>i</italic></sub> as a function of the augmented ensemble size <inline-formula><mml:math id="M127"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> when the factorisation is computed using the truncated svd method (section 3.2.4) or the modulation method with (section 3.2.3) or without (section 3.2.2) the balance refinement. The value reported for <italic>e</italic><sub>F, <italic>i</italic></sub> is the average value over 100 independent realisations of the random svd. For <italic>q</italic> &#x02265; 1, the Frobenius error of the truncated svd method (not shown here) cannot be distinguised from the minimum possible value. For the modulation method, using the balance refinement with &#x003B4;<italic>N</italic><sub>m</sub> &#x0003E; 10 (not shown here) does not yield a clear improvement over the case &#x003B4;<italic>N</italic><sub>m</sub> &#x0003D; 10. The singular values of <bold>B</bold><sub>2</sub> (mid-range case) decay much faster than the singular values of <bold>B</bold><sub>1</sub> (short-range case). This explains why the normalised Frobenius errors <italic>e</italic><sub>F, 2</sub> are systematically lower than the normalised Frobenius errors <italic>e</italic><sub>F, 1</sub>.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Evolution of the normalised Frobenius errors <italic>e</italic><sub>F, 1</sub> <bold>(top)</bold> and <italic>e</italic><sub>F, 2</sub> <bold>(bottom)</bold> as a function of the augmented ensemble size <inline-formula><mml:math id="M128"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>. The approximate factorisation of <bold>B</bold><sub>1</sub> <bold>(top)</bold> and <bold>B</bold><sub>2</sub> <bold>(bottom)</bold> is computed either using the truncated svd method with several values for the parameter <italic>q</italic> for the random svd Algorithm 2 (blue lines) or using the modulation method with (solid red line) or without (dashed red line) the balance refinement. The lowest normalised achievable Frobenius errors <inline-formula><mml:math id="M129"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mtext>F</mml:mtext><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> are plotted in yellow for both cases.</p></caption>
<graphic xlink:href="fams-05-00003-g0002.tif"/>
</fig>
<p>The modulation method is very fast but yields a poor approximation of the background error covariance matrix <bold>B</bold>. With the balance refinement, the approximation is a bit better and the method is still very fast. By contrast, the truncated svd method is much slower but yields an approximation of <bold>B</bold> close to optimal. At this point, it is not clear what level of precision is needed for <bold>B</bold>. Yet, we can already conclude that, in a cycled DA context, we will have to find a balance between speed and accuracy in the construction of the augmented ensemble and in the perturbation update.</p>
<p>Finally, different matrix norms could have been used in this test series. Indeed, even if equivalent, two matrix norms give different informations. This is why we have computed the normalised spectral error (not shown here) and found quite similar results to those depicted in <xref ref-type="fig" rid="F2">Figure 2</xref>. This shows that our results are not specific to the Frobenius norm.</p>
</sec>
</sec>
<sec id="s5">
<title>5. Cycled DA Experiments With a One-Dimensional Model</title>
<sec>
<title>5.1. The Lorenz 1996 Model</title>
<p>The L96 model [<xref ref-type="bibr" rid="B24">24</xref>] is a low-order one-dimensional discrete model whose evolution is given by the following ordinary differential equations (ODEs):</p>
<disp-formula id="E46"><label>(46)</label><mml:math id="M46"><mml:mrow><mml:mfrac><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>F</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where the indices are to be understood with periodic boundary conditions: <italic>x</italic><sub>&#x02212;1</sub> &#x0003D; <italic>x</italic><sub><italic>N</italic><sub>x</sub>&#x02212;1</sub>, <italic>x</italic><sub>0</sub> &#x0003D; <italic>x</italic><sub><italic>N</italic><sub>x</sub></sub>, <italic>x</italic><sub>1</sub> &#x0003D; <italic>x</italic><sub><italic>N</italic><sub>x</sub>&#x0002B;1</sub> and where the system size <italic>N</italic><sub>x</sub> can take arbitrary values. These ODEs are integrated using a fourth-order Runge&#x02013;Kutta method with a time step of 0.05 time unit.</p>
<p>The standard configuration <italic>N</italic><sub>x</sub> &#x0003D; 40 and <italic>F</italic> &#x0003D; 8 is widely used in DA to assess the performance of the DA algorithms. It yields chaotic dynamics with a doubling time around 0.42 time unit. In this section, we use an <italic>extended</italic> standard configuration where <italic>N</italic><sub>x</sub> &#x0003D; 400 and <italic>F</italic> &#x0003D; 8, which is essentially a repetition of ten times the standard configuration. The observations are given by</p>
<disp-formula id="E47"><label>(47)</label><mml:math id="M47"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>y</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>v</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>v</mml:mi></mml:mstyle><mml:mo>&#x0007E;</mml:mo><mml:mi mathvariant="-tex-caligraphic">N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>and the time interval between consecutive observations is &#x00394;<italic>t</italic> &#x0003D; 0.05 time unit, which represents 6 h of real time and corresponds to a model autocorrelation around 0.967. The standard deviation of the observation noise is approximately one tenth of the climatological variability of each observation.</p>
<p>For the localisation, we use the Euclidean distance over the set {1&#x02026;<italic>N</italic><sub>x</sub>} with periodic boundary conditions (the same as the one that was used in section 4).</p>
<p>Note that we use <italic>N</italic><sub>x</sub> &#x0003D; 400 state variables instead of 40 such that typical local domains (with a localisation radius around <italic>r</italic> &#x0003D; 20 grid points) do not cover the whole domain.</p>
</sec>
<sec>
<title>5.2. Experimental Setup</title>
<p>In this section, we illustrate the performance of the LEnSRF Algorithm 1 using twin simulations of the L96 model in the extended configuration. The augmented ensemble (step 3 of Algorithm 1) is computed using the truncated svd method (section 3.2.4) or the modulation method with (section 3.2.3) or without (section 3.2.2) the balance refinement. Both methods use an ensemble of <italic>N</italic><sub>e</sub> &#x0003D; 10 members and a localisation matrix &#x003C1; &#x0003D; <bold>C</bold>(<italic>r</italic>), where the localisation radius <italic>r</italic> is a free parameter.</p>
<p>For the modulation method, the approximate factorisation of &#x003C1; is precomputed once for each twin experiment by keeping the first <italic>N</italic><sub>m</sub> or <italic>N</italic><sub>m</sub> &#x0002B; &#x003B4;<italic>N</italic><sub>m</sub> (when using the balance refinement) modes in the svd of &#x003C1;.</p>
<p>For the truncated svd method, the matrix multiplications implying <bold>B</bold> are computed using Equation (30) and &#x003C1; is applied in spectral space.</p>
<p>The runs are 2 &#x000D7; 10<sup>4</sup>&#x00394;<italic>t</italic> long (with an additional 2 &#x000D7; 10<sup>3</sup>&#x00394;<italic>t</italic> spin-up period) and our performance criterion is the time-average analysis root mean square error, hereafter called the RMSE.</p>
</sec>
<sec>
<title>5.3. Augmented Ensemble Size&#x02014;RMSE Evolution</title>
<p><xref ref-type="fig" rid="F3">Figure 3</xref> shows the evolution of the RMSE as a function of the augmented ensemble size <inline-formula><mml:math id="M130"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>. Both the truncated svd and the modulation methods are able to produce an estime of the true state with an accuracy equivalent to that of the local ensemble transform Kalman filter (LETKF, [<xref ref-type="bibr" rid="B35">35</xref>]). As expected after the experiments in section 4, for a given level of RMSE score we need a much smaller augmented ensemble size <inline-formula><mml:math id="M131"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> when using the truncated svd method than when using the modulation method. However, before we conclude that the truncated svd method is more efficient, we need to take into account the fact that computing the augmented ensemble is much slower with this method than with the modulation method.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Evolution of the RMSE as a function of the augmented ensemble size <inline-formula><mml:math id="M133"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> <bold>(left)</bold> and of the wall-clock analysis time for the 22 &#x000D7; 10<sup>3</sup> cycles as a function of the RMSE for the LEnSRF Algorithm 1. For each data point, the localisation radius <italic>r</italic> and the inflation factor &#x003BB; are optimally tuned to yield the lowest RMSE. The augmented ensemble is computed either using the truncated svd method with several values for the parameter <italic>q</italic> in the random svd Algorithm 2 (green and blue lines) or using the modulation method with (solid red line) or without (dashed red line) the balance refinement. In the left panel, the horizontal solid cyan baseline is the RMSE of the LETKF with an ensemble of <italic>N</italic><sub>e</sub> &#x0003D; 10 members and optimally tuned localisation radius <italic>r</italic> and inflation factor &#x003BB;.</p></caption>
<graphic xlink:href="fams-05-00003-g0003.tif"/>
</fig>
<p>With the truncated svd method, the augmented ensemble size <inline-formula><mml:math id="M132"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> needs to be at least of the same order as the number of unstable and neutral modes of the model dynamics (around 133 here) in order to yield accurate results [<xref ref-type="bibr" rid="B4">4</xref>]. We have also tested <italic>q</italic> &#x0003E; 1 in the truncated svd method or &#x003B4;<italic>N</italic><sub>m</sub> &#x0003E; 20 in the modulation method (not shown here) and found that none of these parameters yields clear improvements in RMSE scores.</p>
</sec>
<sec>
<title>5.4. RMSE&#x02014;Wall-Clock Time Evolution</title>
<p>The longest algorithmic operations in Algorithm 1 are:
<list list-type="order">
<list-item><p>constructing the augmented ensemble (step 3);</p></list-item>
<list-item><p>computing the svd of <inline-formula><mml:math id="M134"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> (required for steps 8 and 9);</p></list-item>
</list></p>
<p>When using the truncated svd method, some level of parallelisation can be included in the construction of the augmented ensemble as remarked in <xref ref-type="app" rid="A1">Appendix B.2</xref>. When using the modulation method (even with the balance refinement), constructing the augmented ensemble is almost instantaneous compared to computing the svd of <inline-formula><mml:math id="M135"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>. Therefore, we only enable parallelisation when using the truncated svd method.</p>
<p>To compute the analysis state <inline-formula><mml:math id="M136"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> and analysis perturbations <bold>X</bold><sub>a</sub>, we have tested several approaches and concluded that the most efficient is to compute the svd of <inline-formula><mml:math id="M137"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> with a direct svd algorithm, which cannot be parallelised.</p>
<p><xref ref-type="fig" rid="F3">Figure 3</xref> shows the evolution of the wall-clock time of one analysis step as a function of the RMSE. All simulations are performed on the same double <italic>Intel Xeon E5-2680</italic> platform, which has a total of 24 cores. Parallelisation is enabled when possible using a fixed number of <italic>OpenMP</italic> threads. For a given level of RMSE score, the truncated svd method is clearly faster than the modulation method. This shows the advantage of using the truncated svd method over the modulation method, especially when parallelisation is possible. However, this result is specific to the problem considered in this section and may not generalise to all situations.</p>
</sec>
</sec>
<sec id="s6">
<title>6. Cycled DA Experiments With Satellite Radiances</title>
<sec>
<title>6.1. Is Covariance Localisation Viable With High-Dimensional Models?</title>
<p>In section 5, we have implemented covariance localisation in the EnKF and successfully applied the resulting algorithm to a one-dimensional DA problem with <italic>N</italic><sub>x</sub> &#x0003D; 400 state variables. With a high-dimensional system, covariance localisation in the EnKF will probably require a very large augmented ensemble size <inline-formula><mml:math id="M138"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, too large to be affordable. In this case, the use of domain localisation will be mandatory.</p>
<p>When observations are local, domain localisation is simple to implement and yield efficient algorithms such as the LETKF. However, when observations are non-local, one must resort to <italic>ad hoc</italic> approximations to implement domain localisation in the EnKF, for example assigning an approximate location to each observation. In this section, we discuss the case of satellite radiances, which are non-local observations and we show how existing variants of the LETKF deal with such observations. We then give an extension of our LEnSRF Algorithm 1 designed to assimilate satellite radiances in a spatially extended model. Finally we introduce a multilayer extension of the L96 model that mimics satellite radiances and we illustrate the performance of our method using twin simulations of this model.</p>
</sec>
<sec>
<title>6.2. The Case of Satellite Radiances</title>
<p>Suppose that the physical space consists of a multilayer space with <italic>P</italic><sub><italic>z</italic></sub> vertical levels of <italic>P</italic><sub>h</sub> state variables. For any <italic>h</italic> &#x02208; {1&#x02026;<italic>P</italic><sub>h</sub>} and <italic>z</italic> &#x02208; {1&#x02026;<italic>P</italic><sub><italic>z</italic></sub>}, the state variable located at the <italic>h</italic>-th horizontal position and at the <italic>z</italic>-th vertical level is written <italic>x</italic><sub>(<italic>z, h</italic>)</sub>. For any state vector <bold>x</bold>, the sub-vector of the components located at the <italic>h</italic>-th horizontal position at any level is written <bold>x</bold><sub><italic>h</italic></sub> and called the <italic>h</italic>-th <italic>column</italic> of <bold>x</bold>.</p>
<p>Suppose that each state vector column is observed independently via</p>
<disp-formula id="E48"><label>(48)</label><mml:math id="M48"><mml:mrow><mml:msub><mml:mtext mathvariant="bold">y</mml:mtext><mml:mi>h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>x</mml:mi></mml:mstyle><mml:mrow><mml:mi>h</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>
<p>where <bold>&#x003A9;</bold> is a <italic>P</italic><sub>c</sub> &#x000D7; <italic>P</italic><sub><italic>z</italic></sub> weighting matrix and <inline-formula><mml:math id="M139"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the vector containing the <italic>P</italic><sub>c</sub> observations at the <italic>h</italic>-th horizontal position. <italic>P</italic><sub>c</sub> is the number of channels. The full observation vector <inline-formula><mml:math id="M140"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>y</mml:mtext></mml:mstyle></mml:math></inline-formula> is the concatenation of all <inline-formula><mml:math id="M141"><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>. It has <italic>N</italic><sub>y</sub> &#x0003D; <italic>P</italic><sub>c</sub> &#x000D7; <italic>P</italic><sub>h</sub> components and for any <italic>h</italic> &#x02208; {1&#x02026;<italic>P</italic><sub>h</sub>} and <italic>c</italic> &#x02208; {1&#x02026;<italic>P</italic><sub>c</sub>}, the observation located at the <italic>h</italic>-th horizontal position and corresponding to the <italic>c</italic>-th channel is written <italic>y</italic><sub>(<italic>c, h</italic>)</sub>.</p>
<p>This simple model describes a typical situation for satellite radiances. From these definitions, it is clear that each observation is attached to an horizontal position, but has no well-defined vertical position (unless the weighting matrix <bold>&#x003A9;</bold> is diagonal). Several variants of the LETKF have been designed to assimilate such observations. When the weighting function of a channel has a single and well-located maximum, the vertical location of this maximum can play the role of an approximate height for this channel. This is the approach followed for example by Fertig et al. [<xref ref-type="bibr" rid="B11">11</xref>]. Based on these vertical positions, they use the channels to update &#x0201C;adjacent&#x0201D; vertical levels as long as the corresponding weighting function is above a threshold value. Campbell et al. [<xref ref-type="bibr" rid="B9">9</xref>] has followed the same approach to define the approximate height of the channels. However their update formula includes a vertical tapering of the anomalies that depends on the vertical distance. When the weighting functions are flat, another possibility is to define the approximate height of a channel as the middle of the support of its weighting function [<xref ref-type="bibr" rid="B36">36</xref>]. Miyoshi and Sato [<xref ref-type="bibr" rid="B10">10</xref>] have proposed an alternative that does not require the definition of an approximate height of the channels: their update formula includes a vertical tapering of the anomalies that depends on the shape of the weight functions only. Finally, in the algorithm of Penny et al. [<xref ref-type="bibr" rid="B37">37</xref>], vertical localisation has been removed.</p>
<p>Using a realistic one-dimensional model with satellite radiances, Campbell et al. [<xref ref-type="bibr" rid="B9">9</xref>] have shown that <italic>ad hoc</italic> approaches based on domain localisation only systematically yield higher errors than covariance localisation. In a spatially extended model with satellite radiances, it seems natural to apply domain localisation in the horizontal direction, in which observations are local, while using covariance localisation in the vertical direction, in which observations are non-local.</p>
</sec>
<sec>
<title>6.3. Including Domain Localisation in the LEnSRF</title>
<p>Following the approach of Bishop et al. [<xref ref-type="bibr" rid="B19">19</xref>], we apply four modifications to the generic LEnSRF Algorithm 1 in order to include domain localisation in way similar to the LETKF.</p>
<list list-type="order">
<list-item><p>We perform <italic>P</italic><sub>h</sub> local analyses instead of one global analysis. The aim of the <italic>h</italic>-th local analysis is to give an update for the <italic>P</italic><sub><italic>z</italic></sub> state variables that form the <italic>h</italic>-th column. The linear algebra must be adapted in consequence.</p></list-item>
<list-item><p>We taper the anomalies related to each observation with respect to the <italic>horizontal</italic> distance to the <italic>h</italic>-th column. This is usually implemented in <inline-formula><mml:math id="M142"><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
<list-item><p>Observations whose horizontal position is far from the <italic>h</italic>-th column (i.e., observations that are not in the local domain) do not contribute to the update. These observations are therefore omitted in the local analysis in order to save some computational time.</p></list-item>
<list-item><p>Since observations that are outside of the local domain are omitted, we only need to compute an augmented ensemble for the state variables inside the local domain. Since covariance localisation is only applied in the vertical direction, the augmented ensemble <inline-formula><mml:math id="M143"><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> must have empirical covariance matrix given by
<disp-formula id="E49"><label>(49)</label><mml:math id="M49"><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mi>&#x02113;</mml:mi></mml:msup><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mo stretchy='true'>&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mi>&#x02113;</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mtext>T</mml:mtext></mml:msup><mml:mo>&#x02248;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mi>&#x003C1;</mml:mi><mml:mtext>v</mml:mtext></mml:msub><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mi>&#x02113;</mml:mi></mml:msup><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mi>&#x02113;</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula></p></list-item></list>
<p>where <bold>X</bold><sup>&#x02113;</sup> is the set of perturbations that are located within the local domain and &#x003C1;<sub>v</sub> is the vertical localisation matrix, whose coefficients only depend on the vertical layer indices.</p>
<p>This modified LEnSRF, hereafter called local analysis LEnSRF (L<sup>2</sup>EnSRF), implements domain localisation in the horizontal direction and covariance localisation in the vertical direction and therefore can be used to assimilate vertically non-local observations such as satellite radiances.</p>
</sec>
<sec>
<title>6.4. The Multilayer L96 Model</title>
<p>We now introduce a multilayer extension of the L96 model, hereafter called mL96 model. This multilayer extension is used to test and illustrate the performance of the L<sup>2</sup>EnSRF algorithm.</p>
<p>The mL96 model consists of <italic>P</italic><sub><italic>z</italic></sub> coupled layers of the one-dimensional L96 model with <italic>P</italic><sub>h</sub> variables. Keeping the notations defined in section 6.2, the evolution of the model is given by the following <italic>P</italic><sub><italic>z</italic></sub><italic>P</italic><sub>h</sub> ODEs:</p>
<disp-formula id="E50"><label>(50)</label><mml:math id="M50"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mtext>d</mml:mtext><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x00393;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x00393;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The first line of Equation (50) corresponds to the original L96 ODE Equation (46), with a forcing term that may depend on the vertical layer index <italic>z</italic>. The second and third lines correspond to the coupling between adjacent layers, with a constant intensity &#x00393;. As for the L96, the horizontal indices are to be understood with periodic boundary conditions: <italic>x</italic><sub>(<italic>z</italic>, &#x02212;1)</sub> &#x0003D; <italic>x</italic><sub>(<italic>z</italic>, <sub><italic>P</italic></sub><sub>h</sub>&#x02212;1)</sub>, <italic>x</italic><sub>(<italic>z</italic>, 0)</sub> &#x0003D; <italic>x</italic><sub>(<italic>z</italic>, <sub><italic>P</italic></sub><sub>h</sub>)</sub>, and <italic>x</italic><sub>(<italic>z</italic>, 1)</sub> &#x0003D; <italic>x</italic><sub>(<italic>z</italic>, <sub><italic>P</italic></sub><sub>h</sub>&#x0002B;1)</sub>. These ODEs are integrated using a fourth-order Runge&#x02013;Kutta method with a time step of 0.05 time unit.</p>
<p>For this experiment, we use <italic>P</italic><sub><italic>z</italic></sub> &#x0003D; 32 layers and <italic>P</italic><sub>h</sub> &#x0003D; 40 to mimic the standard configuration of the L96 model. The forcing term linearly decreases from <italic>F</italic><sub>1</sub> &#x0003D; 8 at the lowest level to <italic>F</italic><sub><italic>P</italic><sub>z</sub></sub> &#x0003D; 4 at the highest level. Without the coupling, these values would render the lower levels dynamics chaotic and the higher levels dynamics laminar, which is a typical behaviour in the atmosphere. Finally, we take &#x00393; &#x0003D; 1 such that adjacent layers are highly correlated (correlation around 0.87). To be more specific, the correlation between the <italic>z</italic>-th level and the (<italic>z</italic> &#x0002B; &#x003B4;<italic>z</italic>)-th level first rapidly decreases with &#x003B4;<italic>z</italic>. It reaches approximately &#x02212;0.1 for &#x003B4;<italic>z</italic> &#x0003D; 6 and then it starts increasing. Finally, its absolute value is below 10<sup>&#x02212;2</sup> when &#x003B4;<italic>z</italic> &#x0003E; 10. This model is chaotic and the dimension of the unstable or neutral subspace is around 50.</p>
<p>The observation operator <bold>H</bold> follows the model described in section 6.2. We use <italic>P</italic><sub>c</sub> &#x0003D; 8 channels and a weighting matrix <bold>&#x003A9;</bold> designed to mimic satellite radiances as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. The observations are given by</p>
<disp-formula id="E51"><label>(51)</label><mml:math id="M51"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>y</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>H</mml:mi><mml:mi>x</mml:mi></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>v</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>v</mml:mi></mml:mstyle><mml:mo>&#x0007E;</mml:mo><mml:mi mathvariant="-tex-caligraphic">N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>I</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>and the time interval between consecutive observations is the same as the one used with the L96 model, &#x00394;<italic>t</italic> &#x0003D; 0.05 time unit. Once again, the standard deviation of the observation noise is approximately one tenth of the climatological variability of each observation.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Observation operator <bold>H</bold>. Each line represents the weighting function of a different channel, corresponding to a row of the weighting matrix <bold>&#x003A9;</bold>. Every channel has a single maximum and is relatively broad (half-width around 10 vertical layers). The sum of the weights has been adjusted individually such that every channel yields an observation with approximately the same climatological variability.</p></caption>
<graphic xlink:href="fams-05-00003-g0004.tif"/>
</fig>
<p>For the horizontal localisation, we use the Euclidean distance <italic>d</italic><sub>h</sub> over the set {1&#x02026;<italic>P</italic><sub>h</sub>} with periodic boundary conditions. For the vertical localisation, we use the Euclidean distance <italic>d</italic><sub>v</sub> over the set {1&#x02026;<italic>P</italic><sub><italic>z</italic></sub>}.</p>
</sec>
<sec>
<title>6.5. Experimental Setup</title>
<p>In this section, we give some details on how localisation is implemented in the L<sup>2</sup>EnSRF algorithm for the mL96 model. We then described which approximations are made to implement an LETKF algorithm. For each algorithm, the runs are 10<sup>4</sup>&#x00394;<italic>t</italic> long (with an additional 10<sup>3</sup>&#x00394;<italic>t</italic> spin-up period) and our performance criterion is the time-average analysis RMSE.</p>
<sec>
<title>6.5.1. Horizontal Localisation</title>
<p>Let <italic>r</italic><sub>h</sub> be the horizontal localisation radius. During the <italic>h</italic><sub>1</sub>-th local analysis, the anomalies related to observation <italic>y</italic><sub>(<italic>c</italic>,<sub><italic>h</italic></sub><sub>2</sub>)</sub> are tapered by a factor</p>
<disp-formula id="E52"><label>(52)</label><mml:math id="M52"><mml:mrow><mml:msqrt><mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mtext>h</mml:mtext></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mtext>h</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>G</italic> is the piecewise rational function of Gaspari and Cohn [<xref ref-type="bibr" rid="B33">33</xref>]. This means that the <italic>h</italic>-th local domain consists of the columns {<italic>h</italic>&#x02212; &#x0230A;<italic>r</italic><sub>h</sub>&#x02026;<italic>h</italic>&#x0230B; &#x0002B; &#x0230A;<italic>r</italic><sub>h</sub>&#x0230B;} where the indices are to be understood with <italic>P</italic><sub>h</sub> periodic boundary conditions and &#x0230A;<italic>r</italic><sub>h</sub>&#x0230B; is the integer part of <italic>r</italic><sub>h</sub>.</p>
</sec>
<sec>
<title>6.5.2. Vertical Localisation</title>
<p>Let <italic>r</italic><sub>v</sub> be the vertical localisation radius. The vertical localisation matrix &#x003C1;<sub>v</sub> has coefficients given by</p>
<disp-formula id="E53"><label>(53)</label><mml:math id="M53"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">&#x003C1;</mml:mi><mml:mtext>v</mml:mtext></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mtext>v</mml:mtext></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mtext>v</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>The local domain gathers <inline-formula><mml:math id="M144"><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> columns, hence &#x003C1;<sub>v</sub> is a <inline-formula><mml:math id="M145"><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> block-diagonal matrix. Since its coefficients only depend on the vertical layer indices, it can also be seen as a <italic>P</italic><sub><italic>z</italic></sub> &#x000D7; <italic>P</italic><sub><italic>z</italic></sub> matrix.</p>
<p>The <inline-formula><mml:math id="M146"><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> matrix <inline-formula><mml:math id="M147"><mml:msup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> of the augmented ensemble is computed using the truncated svd method (section 3.2.4) or the modulation method with (section 3.2.3) or without (section 3.2.2) the balance refinement. Both methods use an ensemble of <italic>N</italic><sub>e</sub> &#x0003D; 8 members and the localisation matrix &#x003C1;<sub>v</sub>.</p>
<p>For the modulation method, the approximate factorisation of &#x003C1;<sub>v</sub> is precomputed once for each twin experiment by keeping the first <italic>N</italic><sub>m</sub> or <italic>N</italic><sub>m</sub>&#x0002B;&#x003B4;<italic>N</italic><sub>m</sub> (when using the balance refinement) modes in the svd of the <italic>P</italic><sub><italic>z</italic></sub> &#x000D7; <italic>P</italic><sub><italic>z</italic></sub> matrix &#x003C1;<sub>v</sub>.</p>
<p>For the truncated svd method, the matrix multiplications implying <bold>B</bold> are computed using Equation (30). Because the coefficients of the localisation matrix &#x003C1;<sub>v</sub> only depends on the vertical layer indices, applying the <inline-formula><mml:math id="M148"><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> matrix &#x003C1;<sub>v</sub> to a vector with <inline-formula><mml:math id="M149"><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mtext>h</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02113;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> components reduces to applying the <italic>P</italic><sub><italic>z</italic></sub> &#x000D7; <italic>P</italic><sub><italic>z</italic></sub> matrix &#x003C1;<sub>v</sub> to a vector with <italic>P</italic><sub><italic>z</italic></sub> components. It should be relatively quick and therefore we do not perform this product in spectral space. This means that the implementation can be straightforwardly adapted to the general case where the vertical layers are not equally distributed in height.</p>
</sec>
<sec>
<title>6.5.3. <italic>Ad hoc</italic> Approximations for the LETKF</title>
<p>We define an approximate height <italic>z</italic><sub><italic>c</italic></sub> for the <italic>c</italic>-th channel:</p>
<disp-formula id="E54"><label>(54)</label><mml:math id="M54"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mi>z</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>We did not define <italic>z</italic><sub><italic>c</italic></sub> as the vertical position of the maximum of the <italic>c</italic>-th weight function because we wanted to account for the fact that our weight functions are skewed in the vertical direction.</p>
<p>In the LETKF algorithm, we perform <italic>P</italic><sub><italic>z</italic></sub><italic>P</italic><sub>h</sub> local analyses (one for each state variable). In the local analysis for the state variable <italic>x</italic><sub>(<italic>z</italic>,<sub><italic>h</italic></sub><sub>1</sub>)</sub>, the anomalies related to observation <italic>y</italic><sub>(<italic>c</italic>,<sub><italic>h</italic></sub><sub>2</sub>)</sub> are tapered by a factor</p>
<disp-formula id="E55"><label>(55)</label><mml:math id="M55"><mml:mrow><mml:msqrt><mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x003B4;</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mtext>h</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x003B4;</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mtext>v</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where</p>
<disp-formula id="E56"><label>(56)</label><mml:math id="M56"><mml:mrow><mml:mi>&#x003B4;</mml:mi><mml:mi>h</mml:mi><mml:mo>=</mml:mo><mml:mi>min</mml:mi><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mtext>h</mml:mtext></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E57"><label>(57)</label><mml:math id="M57"><mml:mrow><mml:mi>&#x003B4;</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>and <italic>r</italic><sub>h</sub> and <italic>r</italic><sub>v</sub> are the horizontal and vertical localisation radii, respectively.</p>
</sec>
</sec>
<sec>
<title>6.6. Results</title>
<p><xref ref-type="fig" rid="F5">Figure 5</xref> shows the evolution of the RMSE and of the wall-clock time of one analysis step as a function of the horizontal localisation radius <italic>r</italic><sub>h</sub> for the L<sup>2</sup>EnSRF and the LETKF. All simulations are performed on the same double <italic>Intel Xeon E5-2680 platform</italic>, which has a total of 24 cores. Parallelisation is enabled for the <italic>P</italic><sub>h</sub> independent local analyses using a fixed number of <italic>OpenMP</italic> threads <italic>N</italic><sub>thr</sub> &#x0003D; 20. In the L<sup>2</sup>EnSRF algorithm, the augmented ensemble is computed either using the truncated svd method with <italic>q</italic> &#x0003D; 0 in the random svd (Algorithm 2) or using the modulation method without the balance refinement (&#x003B4;<italic>N</italic><sub>m</sub> &#x0003D; 0). Preliminary experiments with <italic>q</italic> &#x0003E; 0 or &#x003B4;<italic>N</italic><sub>m</sub> &#x0003E; 0 (not shown here) did not display clear improvements in RMSE score over the cases <italic>q</italic> &#x0003D; 0 and &#x003B4;<italic>N</italic><sub>m</sub> &#x0003D; 0.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Evolution of the RMSE <bold>(top)</bold> and of the wall-clock analysis time for the 10<sup>3</sup> cycles <bold>(bottom)</bold> as a function of the horizontal localisation radius <italic>r</italic><sub>h</sub> for the L<sup>2</sup>EnSRF algorithm. For each data point, the vertical localisation radius <italic>r</italic><sub>v</sub> and the inflation factor &#x003BB; are optimally tuned to yield the lowest RMSE. The augmented ensemble is computed either using the truncated svd method (blue lines) with <italic>q</italic> &#x0003D; 0 in the random svd Algorithm 2 or using the modulation method (red lines) without the balance refinement (&#x00394;<italic>N</italic><sub>m</sub> &#x0003D; 0). As a reference, we draw the same data for the LETKF with the <italic>ad hoc</italic> approximations described in section 6.5.3 (cyan line).</p></caption>
<graphic xlink:href="fams-05-00003-g0005.tif"/>
</fig>
<p>The LETKF produces rather high RMSE scores (compare to the standard deviation of the observation noise, which is 1), while not completely failing to reconstruct the true state. Although domain localisation in the horizontal direction is a powerful tool, vertical localisation is necessary in this DA problem. Because the weight functions of the channels are quite broad, observations cannot be considered local and domain localisation in the vertical direction is inefficient. By contrast, with a reasonable augmented ensemble size <inline-formula><mml:math id="M150"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, the L<sup>2</sup>EnSRF yields significantly lower RMSEs. This shows that combining domain localisation in the horizontal direction and covariance localisation in the vertical direction is an adequate approach to assimilate satellite radiances.</p>
<p>The comparison between the truncated svd and the modulation methods is not as simple as it was in the L96 test series. As expected, for a given augmented ensemble size <inline-formula><mml:math id="M151"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, the truncated svd method yields lower RMSE scores. However, for a given level of RMSE score, using the truncated svd method is not always the fastest approach. For example, the RMSE of the truncated svd method with <inline-formula><mml:math id="M152"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>64</mml:mn></mml:math></inline-formula> is approximately the same as the RMSE of the modulation method with <inline-formula><mml:math id="M153"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>128</mml:mn></mml:math></inline-formula>, but in this case the modulation method is faster by a factor 1.5 on average. This can be explained by two factors. First, in the truncated svd method the vertical localisation matrix is not applied in spectral space. Second, both the truncated svd and the modulation method benefit from parallelisation, but the parallelisation potential of the truncated svd method is not fully exploited here because our computational platform has a limited number of cores. This would change if we could use several threads for each local analysis. Finally, these results confirm that, for high dimensionals DA problems where the memory requirement is an issue, the truncated svd method is the best approach to obtain accurate results while using only a limited augmented ensemble size <inline-formula><mml:math id="M154"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
</sec>
</sec>
<sec sec-type="conclusions" id="s7">
<title>7. Conclusions</title>
<p>Localisation is widely used in DA to make the EnKF viable in high-dimensional systems. In the EnKF, two different approaches can be used to include localisation: domain localisation or covariance localisation. In this article, we have explored possible implementations for covariance localisation in the deterministic EnKF using augmented ensembles in the analysis step. We have discussed the two main difficulties related to augmented ensembles: how to construct the augmented ensemble and how to update the perturbations.</p>
<p>We have used two different methods to construct the augmented ensemble. The first one is based on a factorisation property of the background error covariance matrix. It is already widespread in the geophysical DA literature under the name <italic>modulation</italic>. For this method, we also introduced a <italic>balance</italic> refinement in order to smooth some variability between the state variables. As an alternative, we proposed a second method based on randomised svd techniques, which are very efficient when the localisation matrix is easy to apply. The random svd algorithm is commonly used in the statistical literature but it had never been applied in this context. We have called this approach <italic>truncated svd</italic> method.</p>
<p>We have shown how covariance localisation can be included in the perturbation update using the augmented ensemble framework. The resulting update formula [<xref ref-type="bibr" rid="B18">18</xref>] uses linear algebra in the augmented ensemble space. It is included in the generic LEnSRF detailed in this article.</p>
<p>Using numerical simulations of a very simple one-dimensional covariance model with 400 state variables, we have shown that the truncated svd method yields a much more accurate approximation of the background covariance than the modulation method. This result has been confirmed by twin simulations of the one-dimension L96 model with 400 variables. In a standard DA setup, we have found that the balance between fast computation of the augmented ensemble and fast perturbation update is in favor of the truncated svd method. In other words, for a given level of RMSE score, it is worth spending more time to construct a smaller but more reliable augmented ensemble with the truncated svd method and then use a fast perturbation update.</p>
<p>We have defined the L<sup>2</sup>EnSRF algorithm as an extension of the LEnSRF suited to assimilate satellite radiances in spatially extended models. It implements domain localisation in the horizontal direction in a similar way as the LETKF and covariance localisation in the vertical direction. Such an extension had been discussed by Bishop et al. [<xref ref-type="bibr" rid="B19">19</xref>] but without numerical illustration.</p>
<p>Finally, we have constructed a simple multilayer extension of the L96 model, called mL96 model. We have performed twin simulations of this model using a satellite-like observation operator. As expected, the LETKF hardly reconstructs the true state. By contrast, the L<sup>2</sup>EnSRF yields an estimate of the true state with an acceptable accuracy. We have concluded that using domain localisation in the horizontal direction and covariance localisation in the vertical direction is an adequate approach to assimilate satellite radiances in a spatially extended model. For a given level of RMSE score, the modulation method is the fastest approach in this DA problem. This result is however mitigated by the fact that our computational setup does not use the full parallelisation potential of the truncated svd method. However, when the augmented ensemble size <inline-formula><mml:math id="M155"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is limited, the truncated svd method is the best approach to obtain accurate results.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>All authors have made a substantial, direct and intellectual contribution to the work, and approved it for publication.</p>
<sec>
<title>Conflict of Interest Statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</sec>
</body>
<back>
<ack><p>CEREA is a member of Institut Pierre&#x02013;Simon Laplace (IPSL). MB acknowledges early discussions with N. Bousserez on the randomised svd techniques.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Evensen</surname> <given-names>G</given-names></name></person-group>. <article-title>Sequential data assimilation with a nonlinear quasi-geostrophic model using Monte Carlo methods to forecast error statistics</article-title>. <source>J Geophys Res.</source> (<year>1994</year>) <volume>99</volume>:<fpage>10143</fpage>&#x02013;<lpage>62</lpage>. <pub-id pub-id-type="doi">10.1029/94JC00572</pub-id></citation></ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Houtekamer</surname> <given-names>PL</given-names></name> <name><surname>Mitchell</surname> <given-names>HL</given-names></name> <name><surname>Pellerin</surname> <given-names>G</given-names></name> <name><surname>Buehner</surname> <given-names>M</given-names></name> <name><surname>Charron</surname> <given-names>M</given-names></name> <name><surname>Spacek</surname> <given-names>L</given-names></name> <etal/></person-group>. <article-title>Atmospheric data assimilation with an ensemble Kalman filter: results with real observations</article-title>. <source>Mon Weather Rev.</source> (<year>2005</year>) <volume>133</volume>:<fpage>604</fpage>&#x02013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1175/MWR-2864.1</pub-id></citation></ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sakov</surname> <given-names>P</given-names></name> <name><surname>Counillon</surname> <given-names>F</given-names></name> <name><surname>Bertino</surname> <given-names>L</given-names></name> <name><surname>Lis&#x000E6;ter</surname> <given-names>KA</given-names></name> <name><surname>Oke</surname> <given-names>PR</given-names></name> <name><surname>Korablev</surname> <given-names>A</given-names></name></person-group>. <article-title>TOPAZ4: an ocean-sea ice data assimilation system for the North Atlantic and Arctic</article-title>. <source>Ocean Sci</source>. (<year>2012</year>) <volume>8</volume>:<fpage>633</fpage>&#x02013;<lpage>56</lpage>. <pub-id pub-id-type="doi">10.5194/os-8-633-2012</pub-id></citation></ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bocquet</surname> <given-names>M</given-names></name> <name><surname>Carrassi</surname> <given-names>A</given-names></name></person-group>. <article-title>Four-dimensional ensemble variational data assimilation and the unstable subspace</article-title>. <source>Tellus B</source> (<year>2017</year>) <volume>69</volume>:<fpage>1304504</fpage>. <pub-id pub-id-type="doi">10.1080/16000870.2017.1304504</pub-id></citation></ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Houtekamer</surname> <given-names>PL</given-names></name> <name><surname>Mitchell</surname> <given-names>HL</given-names></name></person-group>. <article-title>A sequential ensemble Kalman filter for atmospheric data assimilation</article-title>. <source>Mon Weather Rev.</source> (<year>2001</year>) <volume>129</volume>:<fpage>123</fpage>&#x02013;<lpage>37</lpage>. <pub-id pub-id-type="doi">10.1175/1520-0493(2001)129&#x0003C;0123:ASEKFF&#x0003E;2.0.CO;2</pub-id></citation></ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ott</surname> <given-names>E</given-names></name> <name><surname>Hunt</surname> <given-names>BR</given-names></name> <name><surname>Szunyogh</surname> <given-names>I</given-names></name> <name><surname>Zimin</surname> <given-names>AV</given-names></name> <name><surname>Kostelich</surname> <given-names>EJ</given-names></name> <name><surname>Corazza</surname> <given-names>M</given-names></name> <etal/></person-group>. <article-title>A local ensemble Kalman filter for atmospheric data assimilation</article-title>. <source>Tellus B</source> (<year>2004</year>) <volume>56</volume>:<fpage>415</fpage>&#x02013;<lpage>28</lpage>. <pub-id pub-id-type="doi">10.1111/j.1600-0870.2004.00076.x</pub-id></citation></ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hamill</surname> <given-names>TM</given-names></name> <name><surname>Whitaker</surname> <given-names>JS</given-names></name> <name><surname>Snyder</surname> <given-names>C</given-names></name></person-group>. <article-title>Distance-dependent filtering of background error covariance estimates in an ensemble Kalman filter</article-title>. <source>Mon Weather Rev.</source> (<year>2001</year>) <volume>129</volume>:<fpage>2776</fpage>&#x02013;<lpage>90</lpage>. <pub-id pub-id-type="doi">10.1175/1520-0493(2001)129&#x0003C;2776:DDFOBE&#x0003E;2.0.CO;2</pub-id></citation></ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sakov</surname> <given-names>P</given-names></name> <name><surname>Bertino</surname> <given-names>L</given-names></name></person-group>. <article-title>Relation between two common localisation methods for the EnKF</article-title>. <source>Computat Geosci.</source> (<year>2011</year>) <volume>15</volume>:<fpage>225</fpage>&#x02013;<lpage>37</lpage>. <pub-id pub-id-type="doi">10.1007/s10596-010-9202-6</pub-id></citation></ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Campbell</surname> <given-names>WF</given-names></name> <name><surname>Bishop</surname> <given-names>CH</given-names></name> <name><surname>Hodyss</surname> <given-names>D</given-names></name></person-group>. <article-title>Vertical covariance localization for satellite radiances in ensemble Kalman filters</article-title>. <source>Mon Weather Rev.</source> (<year>2010</year>) <volume>138</volume>:<fpage>282</fpage>&#x02013;<lpage>90</lpage>. <pub-id pub-id-type="doi">10.1175/2009MWR3017.1</pub-id></citation></ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Miyoshi</surname> <given-names>T</given-names></name> <name><surname>Sato</surname> <given-names>Y</given-names></name></person-group>. <article-title>Assimilating satellite radiances with a local ensemble transform Kalman filter (LETKF) applied to the JMA global model (GSM)</article-title>. <source>SOLA</source> (<year>2007</year>) <volume>3</volume>:<fpage>37</fpage>&#x02013;<lpage>40</lpage>. <pub-id pub-id-type="doi">10.2151/sola.2007-010</pub-id></citation></ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fertig</surname> <given-names>EJ</given-names></name> <name><surname>Hunt</surname> <given-names>BR</given-names></name> <name><surname>Ott</surname> <given-names>E</given-names></name> <name><surname>Szunyogh</surname> <given-names>I</given-names></name></person-group>. <article-title>Assimilating non-local observations with a local ensemble Kalman filter</article-title>. <source>Tellus B</source> (<year>2007</year>) <volume>59</volume>:<fpage>719</fpage>&#x02013;<lpage>30</lpage>. <pub-id pub-id-type="doi">10.1111/j.1600-0870.2007.00260.x</pub-id></citation></ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Buehner</surname> <given-names>M</given-names></name></person-group>. <article-title>Ensemble-derived stationary and flow-dependent background-error covariances: evaluation in a quasi-operational NWP setting</article-title>. <source>Q J Roy Meteor Soc.</source> (<year>2005</year>) <volume>131</volume>:<fpage>1013</fpage>&#x02013;<lpage>43</lpage>. <pub-id pub-id-type="doi">10.1256/qj.04.15</pub-id></citation></ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lorenc</surname> <given-names>AC</given-names></name></person-group>. <article-title>The potential of the ensemble Kalman filter for NWP-a comparison with 4D-Var</article-title>. <source>Q J Roy Meteor Soc.</source> (<year>2003</year>) <volume>129</volume>:<fpage>3183</fpage>&#x02013;<lpage>203</lpage>. <pub-id pub-id-type="doi">10.1256/qj.02.132</pub-id></citation></ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bishop</surname> <given-names>CH</given-names></name> <name><surname>Hodyss</surname> <given-names>D</given-names></name></person-group>. <article-title>Ensemble covariances adaptively localized with ECO-RAP. Part 2: a strategy for the atmosphere</article-title>. <source>Tellus B</source> (<year>2009</year>) <volume>61</volume>:<fpage>97</fpage>&#x02013;<lpage>111</lpage>. <pub-id pub-id-type="doi">10.1111/j.1600-0870.2008.00372.x</pub-id></citation></ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Brankart</surname> <given-names>JM</given-names></name> <name><surname>Cosme</surname> <given-names>E</given-names></name> <name><surname>Testut</surname> <given-names>CE</given-names></name> <name><surname>Brasseur</surname> <given-names>P</given-names></name> <name><surname>Verron</surname> <given-names>J</given-names></name></person-group>. <article-title>Efficient local error parameterizations for square root or ensemble Kalman filters: application to a basin-scale ocean turbulent flow</article-title>. <source>Mon Weather Rev.</source> (<year>2011</year>) <volume>139</volume>:<fpage>474</fpage>&#x02013;<lpage>93</lpage>. <pub-id pub-id-type="doi">10.1175/2010MWR3310.1</pub-id></citation></ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bishop</surname> <given-names>CH</given-names></name> <name><surname>Hodyss</surname> <given-names>D</given-names></name></person-group>. <article-title>Adaptive ensemble covariance localization in ensemble 4D-VAR state estimation</article-title>. <source>Mon Weather Rev.</source> (<year>2011</year>) <volume>139</volume>:<fpage>1241</fpage>&#x02013;<lpage>55</lpage>. <pub-id pub-id-type="doi">10.1175/2010MWR3403.1</pub-id></citation></ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Leng</surname> <given-names>H</given-names></name> <name><surname>Song</surname> <given-names>J</given-names></name> <name><surname>Lu</surname> <given-names>F</given-names></name> <name><surname>Cao</surname> <given-names>X</given-names></name></person-group>. <article-title>A new data assimilation scheme: the space-expanded ensemble localization Kalman filter</article-title>. <source>Adv Meteorol.</source> (<year>2013</year>) <volume>2013</volume>:<fpage>410812</fpage>. <pub-id pub-id-type="doi">10.1155/2013/410812</pub-id></citation></ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bocquet</surname> <given-names>M</given-names></name></person-group>. <article-title>Localization and the iterative ensemble Kalman smoother</article-title>. <source>Q J Roy Meteor Soc</source>. (<year>2016</year>) <volume>142</volume>:<fpage>1075</fpage>&#x02013;<lpage>89</lpage>. <pub-id pub-id-type="doi">10.1002/qj.2711</pub-id></citation></ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bishop</surname> <given-names>CH</given-names></name> <name><surname>Whitaker</surname> <given-names>JS</given-names></name> <name><surname>Lei</surname> <given-names>L</given-names></name></person-group>. <article-title>Gain form of the ensemble transform Kalman filter and its relevance to satellite data assimilation with model space ensemble covariance localization</article-title>. <source>Mon Weather Rev.</source> (<year>2017</year>) <volume>145</volume>:<fpage>4575</fpage>&#x02013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1175/MWR-D-17-0102.1</pub-id></citation></ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kretschmer</surname> <given-names>M</given-names></name> <name><surname>Hunt</surname> <given-names>BR</given-names></name> <name><surname>Ott</surname> <given-names>E</given-names></name></person-group>. <article-title>Data assimilation using a climatologically augmented local ensemble transform Kalman filter</article-title>. <source>Tellus B</source> (<year>2015</year>) <volume>67</volume>:<fpage>26617</fpage>. <pub-id pub-id-type="doi">10.3402/tellusa.v67.26617</pub-id></citation></ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bishop</surname> <given-names>CH</given-names></name> <name><surname>Etherton</surname> <given-names>BJ</given-names></name> <name><surname>Majumdar</surname> <given-names>SJ</given-names></name></person-group>. <article-title>Adaptive sampling with the ensemble transform Kalman filter. Part I: theoretical aspects</article-title>. <source>Mon Weather Rev.</source> (<year>2001</year>) <volume>129</volume>:<fpage>420</fpage>&#x02013;<lpage>36</lpage>. <pub-id pub-id-type="doi">10.1175/1520-0493(2001)129&#x0003C;0420:ASWTET&#x0003E;2.0.CO;2</pub-id></citation></ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lorenc</surname> <given-names>AC</given-names></name></person-group>. <article-title>Improving ensemble covariances in hybrid variational data assimilation without increasing ensemble size</article-title>. <source>Q J Roy Meteor Soc</source>. (<year>2017</year>) <volume>143</volume>:<fpage>1062</fpage>&#x02013;<lpage>72</lpage>. <pub-id pub-id-type="doi">10.1002/qj.2990</pub-id></citation></ref>
<ref id="B23">
<label>23.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Halko</surname> <given-names>N</given-names></name> <name><surname>Martinsson</surname> <given-names>PG</given-names></name> <name><surname>Tropp</surname> <given-names>JA</given-names></name></person-group>. <article-title>Finding structure with randomness: probabilistic algorithms for constructing approximate matrix decompositions</article-title>. <source>SIAM Rev.</source> (<year>2011</year>) <volume>53</volume>:<fpage>217</fpage>&#x02013;<lpage>88</lpage>. <pub-id pub-id-type="doi">10.1137/090771806</pub-id></citation></ref>
<ref id="B24">
<label>24.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lorenz</surname> <given-names>EN</given-names></name> <name><surname>Emanuel</surname> <given-names>KA</given-names></name></person-group>. <article-title>Optimal sites for supplementary weather observations: simulation with a small model</article-title>. <source>J Atmos Sci.</source> (<year>1998</year>) <volume>55</volume>:<fpage>399</fpage>&#x02013;<lpage>414</lpage>. <pub-id pub-id-type="doi">10.1175/1520-0469(1998)055&#x0003C;0399:OSFSWO&#x0003E;2.0.CO;2</pub-id></citation></ref>
<ref id="B25">
<label>25.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Evensen</surname> <given-names>G</given-names></name></person-group>. <source>Data Assimilation: The Ensemble Kalman Filter.</source> <publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name> (<year>2009</year>).</citation></ref>
<ref id="B26">
<label>26.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Horn</surname> <given-names>RA</given-names></name> <name><surname>Johnson</surname> <given-names>CR</given-names></name></person-group>. <source>Matrix Analysis.</source> <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name> (<year>2012</year>).</citation></ref>
<ref id="B27">
<label>27.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sakov</surname> <given-names>P</given-names></name> <name><surname>Oke</surname> <given-names>PR</given-names></name></person-group>. <article-title>A deterministic formulation of the ensemble Kalman filter: an alternative to ensemble square root filters</article-title>. <source>Tellus B</source> (<year>2008</year>) <volume>60</volume>:<fpage>361</fpage>&#x02013;<lpage>71</lpage>. <pub-id pub-id-type="doi">10.1111/j.1600-0870.2007.00299.x</pub-id></citation></ref>
<ref id="B28">
<label>28.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Whitaker</surname> <given-names>JS</given-names></name> <name><surname>Hamill</surname> <given-names>TM</given-names></name></person-group>. <article-title>Ensemble data assimilation without perturbed observations</article-title>. <source>Mon Weather Rev.</source> (<year>2002</year>) <volume>130</volume>:<fpage>1913</fpage>&#x02013;<lpage>24</lpage>. <pub-id pub-id-type="doi">10.1175/1520-0493(2002)130&#x0003C;1913:EDAWPO&#x0003E;2.0.CO;2</pub-id></citation></ref>
<ref id="B29">
<label>29.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Desroziers</surname> <given-names>G</given-names></name> <name><surname>Camino</surname> <given-names>JT</given-names></name> <name><surname>Berre</surname> <given-names>L</given-names></name></person-group>. <article-title>4DEnVar: link with 4D state formulation of variational assimilation and different possible implementations</article-title>. <source>Q J Roy Meteor Soc.</source> (<year>2014</year>) <volume>140</volume>:<fpage>2097</fpage>&#x02013;<lpage>110</lpage>. <pub-id pub-id-type="doi">10.1002/qj.2325</pub-id></citation></ref>
<ref id="B30">
<label>30.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Desroziers</surname> <given-names>G</given-names></name> <name><surname>Arbogast</surname> <given-names>&#x000C9;</given-names></name> <name><surname>Berre</surname> <given-names>L</given-names></name></person-group>. <article-title>Improving spatial localization in 4DEnVar</article-title>. <source>Q J Roy Meteor Soc</source>. (<year>2016</year>) <volume>142</volume>:<fpage>3171</fpage>&#x02013;<lpage>85</lpage>. <pub-id pub-id-type="doi">10.1002/qj.2898</pub-id></citation></ref>
<ref id="B31">
<label>31.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arbogast</surname> <given-names>&#x000C9;</given-names></name> <name><surname>Desroziers</surname> <given-names>G</given-names></name> <name><surname>Berre</surname> <given-names>L</given-names></name></person-group>. <article-title>A parallel implementation of a 4DEnVar ensemble</article-title>. <source>Q J Roy Meteor Soc.</source> (<year>2017</year>) <volume>143</volume>:<fpage>2073</fpage>&#x02013;<lpage>83</lpage>. <pub-id pub-id-type="doi">10.1002/qj.3061</pub-id></citation></ref>
<ref id="B32">
<label>32.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Peres-Neto</surname> <given-names>PR</given-names></name> <name><surname>Jackson</surname> <given-names>DA</given-names></name> <name><surname>Somers</surname> <given-names>KM</given-names></name></person-group>. <article-title>How many principal components?</article-title> Stopping rules for determining the number of non-trivial axes revisited. <source>Comput Stat Data Ann.</source> (<year>2005</year>) <volume>49</volume>:<fpage>974</fpage>&#x02013;<lpage>97</lpage>. <pub-id pub-id-type="doi">10.1016/j.csda.2004.06.015</pub-id></citation></ref>
<ref id="B33">
<label>33.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gaspari</surname> <given-names>G</given-names></name> <name><surname>Cohn</surname> <given-names>SE</given-names></name></person-group>. <article-title>Construction of correlation functions in two and three dimensions</article-title>. <source>Q J Roy Meteor Soc</source>. (<year>1999</year>) <volume>125</volume>:<fpage>723</fpage>&#x02013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.1002/qj.49712555417</pub-id></citation></ref>
<ref id="B34">
<label>34.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Eckart</surname> <given-names>C</given-names></name> <name><surname>Young</surname> <given-names>G</given-names></name></person-group>. <article-title>The approximation of one matrix by another of lower rank</article-title>. <source>Psychometrika</source> (<year>1936</year>) <volume>1</volume>:<fpage>211</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1007/BF02288367</pub-id></citation></ref>
<ref id="B35">
<label>35.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hunt</surname> <given-names>BR</given-names></name> <name><surname>Kostelich</surname> <given-names>EJ</given-names></name> <name><surname>Szunyogh</surname> <given-names>I</given-names></name></person-group>. <article-title>Efficient data assimilation for spatiotemporal chaos: a local ensemble transform Kalman filter</article-title>. <source>Phys D</source> (<year>2007</year>) <volume>230</volume>:<fpage>112</fpage>&#x02013;<lpage>26</lpage>. <pub-id pub-id-type="doi">10.1016/j.physd.2006.11.008</pub-id></citation></ref>
<ref id="B36">
<label>36.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Anderson</surname> <given-names>J</given-names></name> <name><surname>Lei</surname> <given-names>L</given-names></name></person-group>. <article-title>Empirical localization of observation impact in ensemble Kalman filters</article-title>. <source>Mon Weather Rev.</source> (<year>2013</year>) <volume>141</volume>:<fpage>4140</fpage>&#x02013;<lpage>53</lpage>. <pub-id pub-id-type="doi">10.1175/MWR-D-12-00330.1</pub-id></citation></ref>
<ref id="B37">
<label>37.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Penny</surname> <given-names>SG</given-names></name> <name><surname>Behringer</surname> <given-names>DW</given-names></name> <name><surname>Carton</surname> <given-names>JA</given-names></name> <name><surname>Kalnay</surname> <given-names>E</given-names></name></person-group>. <article-title>A hybrid global ocean data assimilation system at NCEP</article-title>. <source>Mon Weather Rev.</source> (<year>2015</year>) <volume>143</volume>:<fpage>4660</fpage>&#x02013;<lpage>77</lpage>. <pub-id pub-id-type="doi">10.1175/MWR-D-14-00376.1</pub-id></citation></ref>
</ref-list>
<app-group>
<app id="A1">
<title>Appendix</title>
<sec>
<title>A. Recentre the Perturbations</title>
<p>Let <bold>X</bold> be an <italic>N</italic><sub>x</sub> &#x000D7; (<italic>N</italic><sub>e</sub> &#x02212; 1) matrix. We want to construct a matrix that has the same empirical covariance matrix and which is centred. Since <bold>X</bold> has rank at most <italic>N</italic><sub>e</sub> &#x02212; 1, we need to find an <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>e</sub> matrix <bold>Z</bold> such that</p>
<disp-formula id="E58"><label>(A1)</label><mml:math id="M58"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Z</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Z</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mtext>&#x000A0;</mml:mtext><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E59"><label>(A2)</label><mml:math id="M59"><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Z</mml:mi></mml:mstyle><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0.</mml:mn></mml:mstyle></mml:math></disp-formula>
<p>For &#x003F5; &#x02208; {&#x02212;1, 1}, we define <inline-formula><mml:math id="M156"><mml:mi>&#x003BB;</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msqrt><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msqrt><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msqrt><mml:mo>-</mml:mo><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and <bold>Q</bold><sub>&#x003F5;</sub> as the <italic>N</italic><sub>e</sub> &#x000D7; <italic>N</italic><sub>e</sub> matrix whose coefficients are</p>
<disp-formula id="E60"><label>(A3)</label><mml:math id="M60"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>Q</mml:mi></mml:mstyle><mml:mi>&#x003F5;</mml:mi></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mfrac><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:msqrt><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x000A0;i</mml:mtext><mml:mo>=</mml:mo><mml:mtext>1&#x000A0;or&#x000A0;j</mml:mtext><mml:mo>=</mml:mo><mml:mtext>1</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mfrac><mml:mi>&#x003BB;</mml:mi><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x000A0;i</mml:mtext><mml:mo>=</mml:mo><mml:mtext>j</mml:mtext><mml:mo>&#x02265;</mml:mo><mml:mtext>2&#x000A0;&#x000A0;&#x000A0;</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mi>&#x003BB;</mml:mi><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>else</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>It can be easily checked that <inline-formula><mml:math id="M157"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>I</mml:mtext></mml:mstyle></mml:math></inline-formula> (i.e., <bold>Q</bold><sub>&#x003F5;</sub> is an orthogonal matrix) and <inline-formula><mml:math id="M158"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>1</mml:mn></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, the first basis vector.</p>
<p>Let <bold>W</bold> be the <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>e</sub> matrix whose first column is zero and whose other columns are those of <bold>X</bold>, that is</p>
<disp-formula id="E61"><label>(A4)</label><mml:math id="M61"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>W</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext>&#x02009;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>By construction <bold>Z</bold> &#x0003D; <bold>WQ</bold><sub>&#x003F5;</sub> is a solution of Equations (A1) and (A2).</p>
</sec>
<sec>
<title>A Random svd Algorithm</title>
<sec>
<title>B.1. The Algorithm</title>
<p>Algorithm 2 describes the random svd algorithm proposed by Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>]. The objective of this algorithm is to efficiently compute an approximate truncated svd with <italic>P</italic> columns of the <italic>M</italic> &#x000D7; <italic>N</italic> matrix <bold>A</bold> as a parallelisable alternative to Lanczos techniques.</p>
<p>The random svd algorithm is based on two ideas. First, suppose that there is a matrix <bold>Q</bold> with <italic>P</italic> orthonormal columns which approximates the range of the matrix <bold>A</bold>. In other words <bold>A</bold> &#x02248; <bold>QQ</bold><sup>T</sup><bold>A</bold>. Then, an approximate truncated svd can be obtained for <bold>A</bold> using the svd of the smaller matrix <bold>Q</bold><sup>T</sup><bold>A</bold>. Second, the matrix <bold>Q</bold> can be constructed using random draws. Indeed, if <inline-formula><mml:math id="M159"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">X</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> is a set of random vectors, then it is most likely a linearly independant set. Therefore, the set <inline-formula><mml:math id="M160"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">Y</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> is most likely linearly independant, which means that it spans the range of <bold>A</bold>.</p>
<p>One major contribution of Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>] and the references therein is that they have provided a mathematical justification of these ideas. In particular, they have given statistical performance bounds for the random svd algorithm and emphasised the fact that, on average, the (spectral or Frobenius) error of the resulting truncated svd with <italic>P</italic> columns should be close to the minimal error for a truncated svd with <italic>P</italic> columns.</p>
<p>Finally, Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>] have introduced two elements to improve the numerical stability and efficiency of the random svd algorithm. The first element is a loop over <italic>i</italic> &#x02208; {1&#x02026;<italic>q</italic>}, which forces the algorithm to construct singular vectors of (<bold>AA</bold><sup>T</sup>)<sup><italic>q</italic></sup><bold>A</bold> instead of <bold>A</bold>. However, (<bold>AA</bold><sup>T</sup>)<sup><italic>q</italic></sup><bold>A</bold> and <bold>A</bold> share the same singular vectors. Moreover, the singular values of (<bold>AA</bold><sup>T</sup>)<sup><italic>q</italic></sup><bold>A</bold> decay faster than those of <bold>A</bold>, which means that this technique enables a better approximation of the decomposition as shown by Corollary 10.10 of Halko et al. [<xref ref-type="bibr" rid="B23">23</xref>]. The second element is to include QR factorisations to make the algorithm less vulnerable to round-off errors. Both elements have been taken into account in Algorithm 2.</p>
<table-wrap position="float" id="A3">
<label>Algorithm 2</label>
<caption><p>Random svd algorithm.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr><td align="left" valign="top"><bold>Require:</bold> <italic>M</italic>&#x000D7;<italic>N</italic> matrix <bold>A</bold> (input); number of columns <italic>P</italic> in the truncated svd, number of iterations <italic>q</italic> (parameters).</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;Draw a <italic>N</italic>&#x000D7;<italic>P</italic> Gaussian random matrix <bold>&#x003A9;</bold>.</td></tr>
<tr><td align="left" valign="top">2: <bold>B</bold><sub>0</sub> &#x0003D; <bold>A&#x003A9;</bold>.</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;Compute the QR factorisation <bold>Q</bold><sub>0</sub><bold>R</bold><sub>0</sub> &#x0003D; <bold>B</bold><sub>0</sub>.</td></tr>
<tr><td align="left" valign="top">4: <bold>for</bold> <italic>i</italic> &#x0003D; 1 <bold>to</bold> <italic>q</italic> <bold>do</bold></td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<inline-formula><mml:math id="M161"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">6: &#x000A0;&#x000A0;Compute the QR factorisation <inline-formula><mml:math id="M162"><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<inline-formula><mml:math id="M163"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">8: &#x000A0;&#x000A0;Compute the QR factorisation <bold>Q</bold><sub><italic>i</italic></sub><bold>R</bold><sub><italic>i</italic></sub> &#x0003D; <bold>B</bold><sub><italic>i</italic></sub>.</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>end for</bold></td></tr>
<tr><td align="left" valign="top">10: <inline-formula><mml:math id="M164"><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;Compute the svd <inline-formula><mml:math id="M165"><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mi>&#x003A3;</mml:mi><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>B</mml:mtext></mml:mstyle></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">12: <inline-formula><mml:math id="M166"><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>Q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>.</td></tr>
<tr><td align="left" valign="top">&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;<bold>return</bold> Approximate truncated svd with <italic>P</italic> columns <bold>A</bold>&#x02248;<bold>U</bold>&#x003A3;<bold>V</bold><sup>T</sup>.</td></tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>B.2. Application to the Prior Covariance Matrix</title>
<p>In section 3.2.4, we need to compute the truncated svd Equation (26) of the prior covariance matrix. To do this, we can apply Algorithm 2 using the input matrix <bold>A</bold> &#x0003D; &#x003C1;&#x02218; (<bold>XX</bold><sup>T</sup>). The prior covariance matrix is a large <italic>N</italic><sub>x</sub> &#x000D7; <italic>N</italic><sub>x</sub> matrix. However, Algorithm 2 can work with the map</p>
<disp-formula id="E62"><label>(A5)</label><mml:math id="M61a"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi>&#x0211D;</mml:mi><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x02192;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:msup><mml:mi>&#x0211D;</mml:mi><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mtext>x</mml:mtext></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>v</mml:mi></mml:mstyle></mml:mtd><mml:mtd><mml:mo>&#x021A6;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02218;</mml:mo><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>v</mml:mi><mml:mtext>&#x000A0;&#x000A0;</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>which can be efficiently computed using Equation (30). Steps 2, 5, 7, and 10 of Algorithm 2 can even be parallelised by applying <bold>A</bold> &#x0003D; &#x003C1; &#x02218; (<bold>XX</bold><sup>T</sup>) independently to each column.</p>
<p>Finally, the approximate truncated svd</p>
<disp-formula id="E64"><label>(A6)</label><mml:math id="M64"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>A</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mi>&#x003C1;</mml:mi><mml:mo>&#x02218;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>X</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02248;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>V</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>resulting from Algorithm 2 does not necessarily satisfy <bold>U</bold> &#x0003D; <bold>V</bold> even though the input matrix is symmetric positive definite. The simplest fix is to make the additional approximation</p>
<disp-formula id="E63"><label>(A7)</label><mml:math id="M63"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>V</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>&#x02248;</mml:mo><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi><mml:mi>&#x003A3;</mml:mi></mml:mstyle><mml:msup><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>U</mml:mi></mml:mstyle><mml:mtext>T</mml:mtext></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
</sec>
</sec>
</app>
</app-group>
</back>
</article>