Changeset 2625ca8 in flex_extract.git for documentation/Sphinx/build/html/_modules/prepare_flexpart.html
- Timestamp:
- Jan 15, 2019, 1:03:37 AM (5 years ago)
- Branches:
- master, ctbto, dev
- Children:
- 6f951ca
- Parents:
- 0629ba8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
documentation/Sphinx/build/html/_modules/prepare_flexpart.html
r274f9ef r2625ca8 175 175 <span class="c1"># - added documentation</span> 176 176 <span class="c1"># - minor changes in programming style for consistence</span> 177 <span class="c1"># - BUG : removed call of clean_up-Function after call of</span>177 <span class="c1"># - BUGFIX: removed call of clean_up-Function after call of</span> 178 178 <span class="c1"># prepareFlexpart in main since it is already called in</span> 179 179 <span class="c1"># prepareFlexpart at the end!</span> … … 182 182 <span class="c1">#</span> 183 183 <span class="c1"># @License:</span> 184 <span class="c1"># (C) Copyright 2014-2018.</span> 185 <span class="c1">#</span> 186 <span class="c1"># This software is licensed under the terms of the Apache Licence Version 2.0</span> 187 <span class="c1"># which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.</span> 188 <span class="c1">#</span> 189 <span class="c1"># @Program Functionality:</span> 190 <span class="c1"># This program prepares the final version of the grib files which are</span> 191 <span class="c1"># then used by FLEXPART. It converts the bunch of grib files extracted</span> 192 <span class="c1"># via get_mars_data by doing for example the necessary conversion to get</span> 193 <span class="c1"># consistent grids or the disaggregation of flux data. Finally, the</span> 194 <span class="c1"># program combines the data fields in files per available hour with the</span> 195 <span class="c1"># naming convention xxYYMMDDHH, where xx should be 2 arbitrary letters</span> 196 <span class="c1"># (mostly xx is chosen to be "EN").</span> 197 <span class="c1">#</span> 198 <span class="c1"># @Program Content:</span> 199 <span class="c1"># - main</span> 200 <span class="c1"># - prepare_flexpart</span> 201 <span class="c1">#</span> 184 <span class="c1"># (C) Copyright 2014-2019.</span> 185 <span class="c1"># Anne Philipp, Leopold Haimberger</span> 186 <span class="c1">#</span> 187 <span class="c1"># This work is licensed under the Creative Commons Attribution 4.0</span> 188 <span class="c1"># International License. To view a copy of this license, visit</span> 189 <span class="c1"># http://creativecommons.org/licenses/by/4.0/ or send a letter to</span> 190 <span class="c1"># Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</span> 202 191 <span class="c1">#*******************************************************************************</span> 192 <span class="sd">'''This script prepares the final version of the grib files which are</span> 193 <span class="sd">then used by FLEXPART.</span> 194 195 <span class="sd">It converts the bunch of grib files extracted via get_mars_data before,</span> 196 <span class="sd">by doing the necessary conversion to get consistent grids or the</span> 197 <span class="sd">disaggregation of flux data. Finally, the data fields are combined</span> 198 <span class="sd">in files per available hour with the naming convention xxYYMMDDHH,</span> 199 <span class="sd">where xx should be 2 arbitrary letters (mostly xx is chosen to be "EN").</span> 200 201 <span class="sd">This file can also be imported as a module which then contains the following</span> 202 <span class="sd">functions:</span> 203 204 <span class="sd"> * main</span> 205 <span class="sd"> * prepare_flexpart</span> 206 207 <span class="sd">Type: prepare_flexpart.py --help</span> 208 <span class="sd">to get information about command line parameters.</span> 209 <span class="sd">Read the documentation for usage instructions.</span> 210 <span class="sd">'''</span> 203 211 204 212 <span class="c1"># ------------------------------------------------------------------------------</span> … … 212 220 213 221 <span class="c1"># software specific classes and modules from flex_extract</span> 214 222 <span class="c1"># add path to local main python path for flex_extract to get full access</span> 215 223 <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span> 216 224 <span class="n">inspect</span><span class="o">.</span><span class="n">getfile</span><span class="p">(</span><span class="n">inspect</span><span class="o">.</span><span class="n">currentframe</span><span class="p">())))</span> <span class="o">+</span> <span class="s1">'/../'</span><span class="p">)</span> 217 225 <span class="kn">import</span> <span class="nn">_config</span> 226 <span class="kn">from</span> <span class="nn">checks</span> <span class="k">import</span> <span class="n">check_ppid</span> 218 227 <span class="kn">from</span> <span class="nn">classes.UioFiles</span> <span class="k">import</span> <span class="n">UioFiles</span> 219 228 <span class="kn">from</span> <span class="nn">classes.ControlFile</span> <span class="k">import</span> <span class="n">ControlFile</span> 220 <span class="kn">from</span> <span class="nn">tools</span> <span class="k">import</span> <span class="n">clean_up</span><span class="p">,</span> <span class="n">get_cmdline_arg uments</span><span class="p">,</span> <span class="n">read_ecenv</span><span class="p">,</span> <span class="n">make_dir</span>229 <span class="kn">from</span> <span class="nn">tools</span> <span class="k">import</span> <span class="n">clean_up</span><span class="p">,</span> <span class="n">get_cmdline_args</span><span class="p">,</span> <span class="n">read_ecenv</span><span class="p">,</span> <span class="n">make_dir</span> 221 230 <span class="kn">from</span> <span class="nn">classes.EcFlexpart</span> <span class="k">import</span> <span class="n">EcFlexpart</span> 222 231 … … 245 254 <span class="sd"> '''</span> 246 255 247 <span class="n">args</span> <span class="o">=</span> <span class="n">get_cmdline_arg uments</span><span class="p">()</span>256 <span class="n">args</span> <span class="o">=</span> <span class="n">get_cmdline_args</span><span class="p">()</span> 248 257 <span class="n">c</span> <span class="o">=</span> <span class="n">ControlFile</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">controlfile</span><span class="p">)</span> 249 258 … … 267 276 <span class="sd"> Parameters</span> 268 277 <span class="sd"> ----------</span> 269 <span class="sd"> ppid : :obj:`int`</span>278 <span class="sd"> ppid : int</span> 270 279 <span class="sd"> Contains the ppid number of the current ECMWF job. It will be None if</span> 271 280 <span class="sd"> the method was called within this module.</span> 272 281 273 <span class="sd"> c : :obj:`ControlFile`</span>282 <span class="sd"> c : ControlFile</span> 274 283 <span class="sd"> Contains all the parameters of CONTROL file and</span> 275 284 <span class="sd"> command line.</span> … … 279 288 280 289 <span class="sd"> '''</span> 281 282 <span class="k">if</span> <span class="ow">not</span> <span class="n">ppid</span><span class="p">:</span> 283 <span class="n">c</span><span class="o">.</span><span class="n">ppid</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getppid</span><span class="p">())</span> 284 <span class="k">else</span><span class="p">:</span> 285 <span class="n">c</span><span class="o">.</span><span class="n">ppid</span> <span class="o">=</span> <span class="n">ppid</span> 290 <span class="n">check_ppid</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">ppid</span><span class="p">)</span> 286 291 287 292 <span class="n">c</span><span class="o">.</span><span class="n">ecapi</span> <span class="o">=</span> <span class="n">ecapi</span> … … 296 301 <span class="n">day</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">end_date</span><span class="p">[</span><span class="mi">6</span><span class="p">:]))</span> 297 302 303 <span class="c1"># if basetime is 00</span> 298 304 <span class="c1"># assign starting date minus 1 day</span> 299 <span class="c1"># since for basetime 00we need the 12 hours upfront</span>305 <span class="c1"># since we need the 12 hours upfront</span> 300 306 <span class="c1"># (the day before from 12 UTC to current day 00 UTC)</span> 301 307 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">basetime</span> <span class="o">==</span> <span class="s1">'00'</span><span class="p">:</span> … … 317 323 <span class="n">flexpart</span><span class="o">.</span><span class="n">deacc_fluxes</span><span class="p">(</span><span class="n">inputfiles</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span> 318 324 319 <span class="c1"># get a list of all files from the root inputdir</span>325 <span class="c1"># get a list of all other files</span> 320 326 <span class="n">inputfiles</span> <span class="o">=</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">inputdir</span><span class="p">,</span> <span class="s1">'????__??.*'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ppid</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'.*'</span><span class="p">)</span> 321 327 … … 325 331 <span class="n">flexpart</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">inputfiles</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span> 326 332 <span class="n">flexpart</span><span class="o">.</span><span class="n">process_output</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> 333 334 <span class="c1"># make use of a possible conversion to a</span> 335 <span class="c1"># specific flexpart binary format</span> 327 336 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">grib2flexpart</span><span class="p">:</span> 328 <span class="c1"># prepare environment for a FLEXPART run</span>329 <span class="c1"># to convert grib to flexpart binary format</span>330 337 <span class="n">flexpart</span><span class="o">.</span><span class="n">prepare_fp_files</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> 331 338 … … 353 360 <div role="contentinfo"> 354 361 <p> 355 © Copyright 2018, Anne Philipp and Leopold Haimberger .362 © Copyright 2018, Anne Philipp and Leopold Haimberger 356 363 357 364 </p> … … 372 379 373 380 374 <script type="text/javascript"> 375 var DOCUMENTATION_OPTIONS = { 376 URL_ROOT:'../', 377 VERSION:'7.1 alpha', 378 LANGUAGE:'None', 379 COLLAPSE_INDEX:false, 380 FILE_SUFFIX:'.html', 381 HAS_SOURCE: true, 382 SOURCELINK_SUFFIX: '.txt' 383 }; 384 </script> 385 <script type="text/javascript" src="../_static/jquery.js"></script> 386 <script type="text/javascript" src="../_static/underscore.js"></script> 387 <script type="text/javascript" src="../_static/doctools.js"></script> 388 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> 381 382 383 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> 384 <script type="text/javascript" src="../_static/jquery.js"></script> 385 <script type="text/javascript" src="../_static/underscore.js"></script> 386 <script type="text/javascript" src="../_static/doctools.js"></script> 387 389 388 390 389
Note: See TracChangeset
for help on using the changeset viewer.