source: flex_extract.git/Documentation/html/Documentation/disagg.html

ctbtodev
Last change on this file was 6931f61, checked in by anphi <anne.philipp@…>, 4 years ago

Update Onlinedocumentation after review of language editing

  • Property mode set to 100644
File size: 21.4 KB
Line 
1
2
3<!DOCTYPE html>
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6<head>
7  <meta charset="utf-8">
8 
9  <meta name="viewport" content="width=device-width, initial-scale=1.0">
10 
11  <title>Disaggregation of flux data &mdash; flex_extract 7.1.2 documentation</title>
12 
13
14 
15 
16 
17 
18
19 
20  <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
21 
22   
23      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
24        <script src="../_static/jquery.js"></script>
25        <script src="../_static/underscore.js"></script>
26        <script src="../_static/doctools.js"></script>
27        <script src="../_static/language_data.js"></script>
28        <script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
29   
30    <script type="text/javascript" src="../_static/js/theme.js"></script>
31
32   
33
34 
35  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
36  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
37  <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
38  <link rel="stylesheet" href="../_static/css/theme_overrides.css" type="text/css" />
39    <link rel="index" title="Index" href="../genindex.html" />
40    <link rel="search" title="Search" href="../search.html" />
41    <link rel="next" title="Vertical wind" href="vertco.html" />
42    <link rel="prev" title="Output data" href="output.html" /> 
43</head>
44
45<body class="wy-body-for-nav">
46
47   
48  <div class="wy-grid-for-nav">
49   
50    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
51      <div class="wy-side-scroll">
52        <div class="wy-side-nav-search" >
53         
54
55         
56            <a href="../index.html" class="icon icon-home"> flex_extract
57         
58
59         
60          </a>
61
62         
63           
64           
65              <div class="version">
66                7.1.2
67              </div>
68           
69         
70
71         
72<div role="search">
73  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
74    <input type="text" name="q" placeholder="Search docs" />
75    <input type="hidden" name="check_keywords" value="yes" />
76    <input type="hidden" name="area" value="default" />
77  </form>
78</div>
79
80         
81        </div>
82
83        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
84         
85           
86           
87             
88           
89           
90              <p class="caption"><span class="caption-text">Table of Contents:</span></p>
91<ul class="current">
92<li class="toctree-l1"><a class="reference internal" href="../ecmwf_data.html">ECMWF Data</a></li>
93<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
94<li class="toctree-l1"><a class="reference internal" href="../quick_start.html">Usage</a></li>
95<li class="toctree-l1 current"><a class="reference internal" href="../documentation.html">Code-Level Documentation</a><ul class="current">
96<li class="toctree-l2"><a class="reference internal" href="overview.html">Overview</a></li>
97<li class="toctree-l2"><a class="reference internal" href="input.html">Control &amp; input data</a></li>
98<li class="toctree-l2"><a class="reference internal" href="output.html">Output data</a></li>
99<li class="toctree-l2 current"><a class="current reference internal" href="#">Disaggregation of flux data</a><ul>
100<li class="toctree-l3"><a class="reference internal" href="#disaggregation-for-precipitation-in-older-versions">Disaggregation for precipitation in older versions</a></li>
101<li class="toctree-l3"><a class="reference internal" href="#disaggregation-for-precipitation-in-version-7-1">Disaggregation for precipitation in version 7.1</a></li>
102<li class="toctree-l3"><a class="reference internal" href="#disaggregation-for-the-other-flux-fields">Disaggregation for the other flux fields</a><ul class="simple">
103</ul>
104</li>
105</ul>
106</li>
107<li class="toctree-l2"><a class="reference internal" href="vertco.html">Vertical wind</a></li>
108<li class="toctree-l2"><a class="reference internal" href="api.html">Auto-generated documentation</a></li>
109</ul>
110</li>
111<li class="toctree-l1"><a class="reference internal" href="../evaluation.html">Evaluation</a></li>
112<li class="toctree-l1"><a class="reference internal" href="../dev_guide.html">Developer Guide</a></li>
113<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
114<li class="toctree-l1"><a class="reference internal" href="../support.html">Support</a></li>
115<li class="toctree-l1"><a class="reference internal" href="../Support/faq.html">FAQ - Frequently asked questions</a></li>
116<li class="toctree-l1"><a class="reference internal" href="../authors.html">Developer Team</a></li>
117</ul>
118
119           
120         
121        </div>
122      </div>
123    </nav>
124
125    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
126
127     
128      <nav class="wy-nav-top" aria-label="top navigation">
129       
130          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
131          <a href="../index.html">flex_extract</a>
132       
133      </nav>
134
135
136      <div class="wy-nav-content">
137       
138        <div class="rst-content">
139       
140         
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156<div role="navigation" aria-label="breadcrumbs navigation">
157
158  <ul class="wy-breadcrumbs">
159   
160      <li><a href="../index.html">Docs</a> &raquo;</li>
161       
162          <li><a href="../documentation.html">Code-Level Documentation</a> &raquo;</li>
163       
164      <li>Disaggregation of flux data</li>
165   
166   
167      <li class="wy-breadcrumbs-aside">
168       
169           
170            <a href="../_sources/Documentation/disagg.rst.txt" rel="nofollow"> View page source</a>
171         
172       
173      </li>
174   
175  </ul>
176
177 
178  <hr/>
179</div>
180          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
181           <div itemprop="articleBody">
182           
183  <div class="section" id="disaggregation-of-flux-data">
184<h1>Disaggregation of flux data<a class="headerlink" href="#disaggregation-of-flux-data" title="Permalink to this headline"></a></h1>
185<p><code class="docutils literal notranslate"><span class="pre">FLEXPART</span></code> interpolates meteorological input data linearly to the position of computational
186particles in time and space. This method requires point values in the discrete input fields.
187However, flux data (as listed in table <a class="reference internal" href="#ref-table-fluxpar"><span class="std std-ref">Flux fields</span></a> below) from the ECMWF represent cell
188averages or integrals and are accumulated over a specific time interval, depending on the data
189set. Hence, to conserve the integral quantity with the linear interpolation used in <code class="docutils literal notranslate"><span class="pre">FLEXPART</span></code>,
190pre-processing has to be applied.</p>
191<span id="ref-table-fluxpar"></span><table class="colwidths-given docutils align-center" id="id1">
192<caption><span class="caption-text">Flux fields</span><a class="headerlink" href="#id1" title="Permalink to this table"></a></caption>
193<colgroup>
194<col style="width: 14%" />
195<col style="width: 43%" />
196<col style="width: 14%" />
197<col style="width: 29%" />
198</colgroup>
199<thead>
200<tr class="row-odd"><th class="head"><p>Short Name</p></th>
201<th class="head"><p>Name</p></th>
202<th class="head"><p>Units</p></th>
203<th class="head"><p>Disaggregation</p></th>
204</tr>
205</thead>
206<tbody>
207<tr class="row-even"><td><p>LSP</p></td>
208<td><p>large-scale precipitation</p></td>
209<td><p>m</p></td>
210<td><p>precipitation</p></td>
211</tr>
212<tr class="row-odd"><td><p>CP</p></td>
213<td><p>convective precipitation</p></td>
214<td><p>m</p></td>
215<td><p>precipitation</p></td>
216</tr>
217<tr class="row-even"><td><p>SSHF</p></td>
218<td><p>surface sensible heat flux</p></td>
219<td><p>J m <span class="math notranslate nohighlight">\(^{-2}\)</span></p></td>
220<td><p>flux</p></td>
221</tr>
222<tr class="row-odd"><td><p>EWSS</p></td>
223<td><p>eastward turbulent surface stress</p></td>
224<td><p>N m <span class="math notranslate nohighlight">\(^{-2}\)</span> s</p></td>
225<td><p>flux</p></td>
226</tr>
227<tr class="row-even"><td><p>NSSS</p></td>
228<td><p>northward turbulent surface stress</p></td>
229<td><p>N m <span class="math notranslate nohighlight">\(^{-2}\)</span> s</p></td>
230<td><p>flux</p></td>
231</tr>
232<tr class="row-odd"><td><p>SSR</p></td>
233<td><p>surface net solar radiation</p></td>
234<td><p>J m <span class="math notranslate nohighlight">\(^{-2}\)</span></p></td>
235<td><p>flux</p></td>
236</tr>
237</tbody>
238</table>
239<p>The first step is to <em>de-accumulate</em> the fields in time so that each value represents non-overlapping integrals in x-, y-, and t-space.
240Afterwards, a <em>disaggregation</em> scheme is applied which means to convert the integral value to corresponding point values to be used late for the interpolation.
241The disaggregation procedure as proposed by Paul James (currently, the standard) requires additional flux data for one day at the beginning and one day at the end of the period specified.
242They are retrieved automatically. Thus, data for flux computation will be requested for the period START_DATE-1 to END_DATE+1. Note that these (additional) dates are used only for interpolation within <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code> and are not contained in the final <code class="docutils literal notranslate"><span class="pre">FLEXPART</span></code> input files.</p>
243<p>The flux disaggregation produces files named <code class="docutils literal notranslate"><span class="pre">fluxYYYYMMDDHH</span></code>, where <code class="docutils literal notranslate"><span class="pre">YYYYMMDDHH</span></code> is the date format. Note that the first two and last two flux files do not contain any data.</p>
244<div class="admonition note">
245<p class="admonition-title">Note</p>
246<p>Note also that for operational retrievals (<code class="docutils literal notranslate"><span class="pre">BASETIME</span></code> set to 00 or 12), forecast fluxes are only available until <code class="docutils literal notranslate"><span class="pre">BASETIME</span></code>, so that no polynomial interpolation is possible in the last two time intervals. This is the reason why setting <code class="docutils literal notranslate"><span class="pre">BASETIME</span></code> is not recommended for on-demand scripts.</p>
247</div>
248<div class="section" id="disaggregation-for-precipitation-in-older-versions">
249<h2>Disaggregation for precipitation in older versions<a class="headerlink" href="#disaggregation-for-precipitation-in-older-versions" title="Permalink to this headline"></a></h2>
250<p>In <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code> up to version 5, the disaggregation was done with a Fortran program (FLXACC2). In version 6, this part was recoded in Python.</p>
251<p>In the old versions (below 7.1), a relatively simple method processes the precipitation fields in a way that is consistent with the linear interpolation between times where input fields are available that is applied in <code class="docutils literal notranslate"><span class="pre">FLEXPART</span></code> for all variables.
252This scheme (from Paul James) at first divides the accumulated values by the number of hours (i.e., 3 or 6).
253The best option for disaggregation, which was realised, is conservation within the interval under consideration plus the two adjacent ones.
254Unfortunately, this leads to undesired temporal smoothing of the precipitation time series – maxima are damped and minima are raised.
255It is even possible to produce non-zero precipitation in dry intervals bordering a precipitation period as shown in Fig. 1.
256This is obviously undesirable as it will affect wet scavenging, a very efficient removal process for many atmospheric trace species.
257Wet deposition may be produced in grid cells where none should occur, or too little may be produced in others. This could lead to an unrealistic, checkerboard-like deposition fields.
258Horizontally, the precipitation values are averages for a grid cell around the grid point to which they are ascribed, and <code class="docutils literal notranslate"><span class="pre">FLEXPART</span></code> uses bilinear interpolation to obtain precipitation rates at particle positions.
259However, the supporting points in space are not shifted between precipitation and other variables as is the case for the temporal dimension.</p>
260<div class="align-center figure align-default" id="id2">
261<span id="ref-fig-olddisagg"></span><img alt="../_images/old_disagg.png" src="../_images/old_disagg.png" />
262<p class="caption"><span class="caption-text">Fig. 1: Example of disaggregation scheme as implemented in older versions for an isolated precipitation event lasting one time interval (thick blue line). The amount of original precipitation after de-accumulation is given by the blue-shaded area. The green circles represent the discrete grid points after disaggregation and linearly interpolate in between them as indicated by the green line and the green-shaded area. Note that supporting points for the interpolation are shifted by half a time interval compared to the times when other meteorological fields are available (Hittmeir et al. 2018).</span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
263</div>
264<p>Disaggregation is done for four adjacent time intervals (<span class="math notranslate nohighlight">\(a_0, a_1, a_2, a_3\)</span>) which generates a new, disaggregated value which is output at the central point of the four adjacent time intervals.</p>
265<div class="math notranslate nohighlight">
266\[\begin{split}   p_{ac} &amp;= 0.5  a_1\\
267        m &amp;= a_0 + a_2 &gt; 0.\\
268p_{ac}(m) &amp;= a_1(m) a_2(m) / (a_0(m) + a_2(m))\\
269   p_{bd} &amp;= 0.5 * a_2\\
270        m &amp;= a_1 + a_3 &gt; 0.\\
271p_{bd}(m) &amp;= a_1(m)  a_2(m) / (a_1(m) + a_3(m))\\\end{split}\]</div>
272<p>This new point <span class="math notranslate nohighlight">\(p\)</span> is used for linear interpolation of the complete timeseries afterwards. If one of the four original time intervals has a value below 0, it is set to 0 prior to the calculation.</p>
273<div class="math notranslate nohighlight">
274\[p = p_{ac} + p_{bd}\]</div>
275</div>
276<div class="section" id="disaggregation-for-precipitation-in-version-7-1">
277<h2>Disaggregation for precipitation in version 7.1<a class="headerlink" href="#disaggregation-for-precipitation-in-version-7-1" title="Permalink to this headline"></a></h2>
278<p>Due to the problems mentioned above, a new algorithm was developed. The approach is based on a one-dimensional, piecewise-linear function with two additional supporting grid points within each grid cell, dividing the interval into three pieces. It fulfils the desired requirements of preserving the integral precipitation in each time interval, guaranteeing continuity at interval boundaries, and maintaining non-negativity. An additional filter improves monotonicity.
279The more natural requirements of symmetry, reality, computational efficiency and easy implementation motivates the use of a linear formulation.
280These requirements for the reconstruction algorithm imply that time intervals with no precipitation remain unchanged, i. e., the reconstructed values vanish throughout this whole time interval, too.
281In the simplest scenario of an isolated precipitation event, where in the time interval before and after the data values are zero, the reconstruction algorithm therefore has to vanish at the boundaries of the interval, too.
282The additional conditions of continuity and conservation of the precipitation amount then require us to introduce sub-grid points if we want to keep a linear interpolation (Fig. 2).
283The height is thereby determined by the condition of conservation of the integral of the function over the time interval.</p>
284<div class="align-center figure align-default" id="id3">
285<span id="ref-fig-newdisagg"></span><img alt="../_images/new_disagg.png" src="../_images/new_disagg.png" />
286<p class="caption"><span class="caption-text">Fig. 2: Precipitation rate linearly interpolated using a sub-grid with two additional points. Colours as in Fig. 1 (Hittmeir et al. 2018).</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
287</div>
288<p>Figure 3 shows an overview of the new algorithm and its components.</p>
289<div class="align-center figure align-default" id="id4">
290<span id="ref-fig-ia3"></span><img alt="../_images/IA3.png" src="../_images/IA3.png" />
291<p class="caption"><span class="caption-text">Fig. 3: Schematic overview of the basic notation in a precipitation interval with the original precipitation rate g (green) as a step function and the interpolated data <span class="math notranslate nohighlight">\(f\)</span> (dark blue) as the piecewise linear function. The original time interval with fixed grid length <span class="math notranslate nohighlight">\(\delta t\)</span> is split equidistantly in three subintervals denoted by <span class="math notranslate nohighlight">\(I_i^{1,2,3}\)</span>, with the slopes in the subintervals as denoted by <span class="math notranslate nohighlight">\(k_i^{1,2,3}\)</span> . The sub-grid function values <span class="math notranslate nohighlight">\(f_i, f_i^{1,2}, f_{i+1}\)</span> are marked by red diamonds (Hittmeir et al. 2018).</span><a class="headerlink" href="#id4" title="Permalink to this image"></a></p>
292</div>
293<p>The following lists the equations of the new algorithm.</p>
294<div class="math notranslate nohighlight">
295\[ \begin{align}\begin{aligned}f_i^{(1)}=&amp;\frac32 g_i -\frac{1}{12}f_{i}-\frac{5}{12}f_{i+1}\\f_i^{(2)}=&amp;\frac32 g_i -\frac{5}{12}f_{i}-\frac{1}{12}f_{i+1}\\f_{i+1}=&amp;\min\{3 g_i,3 g_{i+1},\sqrt{g_ig_{i+1}}\}\end{aligned}\end{align} \]</div>
296<div class="math notranslate nohighlight">
297\[\begin{split}\textbf{if}  \quad
298\mathrm{sgn}(k_{i}^{(2)})\cdot \mathrm{sgn}(k_{i  }^{(3)})&amp;=-1 \quad \wedge \\
299\mathrm{sgn}(k_{i  }^{(3)})\cdot \mathrm{sgn}(k_{i+1}^{(1)})&amp;=-1 \quad \wedge \\
300\mathrm{sgn}(k_{i+1}^{(1)})\cdot \mathrm{sgn}(k_{i+1}^{(2)})&amp;=-1  \quad
301\textbf{then}\end{split}\]</div>
302<div class="math notranslate nohighlight">
303\[ \begin{align}\begin{aligned}f_{i+1}^\diamond=&amp;\frac{18}{13}g_i-\frac{5}{13}f_i\\f_{i+1}^{\diamond\diamond}=&amp;\frac{18}{13}g_{i+1}-\frac{5}{13}f_{i+2}\\f_{i+1} =&amp; \min\left\{3 g_i,\, 3 g_{i+1},\, \sqrt{(f_{i+1}^\diamond\,f_{i+1}^{\diamond\diamond})_+}\right\}\\f_i^{(1)}=&amp; \frac32 g_i -\frac{1}{12}f_{i}-\frac{5}{12}f_{i+1}^{\textrm{mon}}\\f_i^{(2)}=&amp; \frac32 g_i -\frac{5}{12}f_{i}-\frac{1}{12}f_{i+1}^{\textrm{mon}}\\\textbf{endif}\end{aligned}\end{align} \]</div>
304<p>In the case of the new disaggregation method for precipitation, the two new sub-grid points are added in the <code class="docutils literal notranslate"><span class="pre">flux</span></code> output files. They are identified by the forecast step parameter <code class="docutils literal notranslate"><span class="pre">step</span></code> which is 0 for the original time interval, and 1 or 2, respectively, for the two new sub-grid points. The filenames do not change.</p>
305<div class="admonition note">
306<p class="admonition-title">Note</p>
307<p>The new method for disaggregation was published in the journal Geoscientific Model Development in 2018:</p>
308<p>Hittmeir, S., Philipp, A., and Seibert, P.: A conservative reconstruction scheme for the interpolation of extensive quantities in the Lagrangian particle dispersion model FLEXPART, Geosci. Model Dev., 11, 2503-2523, <a class="reference external" href="https://doi.org/10.5194/gmd-11-2503-2018">https://doi.org/10.5194/gmd-11-2503-2018</a>, 2018.</p>
309</div>
310</div>
311<div class="section" id="disaggregation-for-the-other-flux-fields">
312<h2>Disaggregation for the other flux fields<a class="headerlink" href="#disaggregation-for-the-other-flux-fields" title="Permalink to this headline"></a></h2>
313<p>The accumulated values for the other variables are first divided by the number of hours and
314then disaggregates to the exact times and conserves the integrals of the fluxes within each timespan.
315Disaggregation is done for four adjacent time intervals (<span class="math notranslate nohighlight">\(F_0, F_1, F_2, F_3\)</span>) which produces a new, disaggregated value that is the output at the central point of the four adjacent time intervals.
316This new point <span class="math notranslate nohighlight">\(F\)</span> is used for linear interpolation of the complete timeseries afterwards.</p>
317<div class="math notranslate nohighlight">
318\[F = -\frac{1}{12}F_0 + \frac{7}{12}F_1 + \frac{7}{12}F_2 -\frac{1}{12}F_3\]</div>
319<div class="toctree-wrapper compound">
320</div>
321</div>
322</div>
323
324
325           </div>
326           
327          </div>
328          <footer>
329 
330    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
331     
332        <a href="vertco.html" class="btn btn-neutral float-right" title="Vertical wind" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
333     
334     
335        <a href="output.html" class="btn btn-neutral float-left" title="Output data" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
336     
337    </div>
338 
339
340  <hr/>
341
342  <div role="contentinfo">
343    <p>
344        &copy; Copyright 2020, Anne Philipp, Leopold Haimberger and Petra Seibert
345
346    </p>
347  </div>
348  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
349
350</footer>
351
352        </div>
353      </div>
354
355    </section>
356
357  </div>
358 
359
360
361  <script type="text/javascript">
362      jQuery(function () {
363          SphinxRtdTheme.Navigation.enable(true);
364      });
365  </script>
366
367 
368 
369   
370   
371
372</body>
373</html>
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG