Changeset f66f990 in flex_extract.git for documentation/Sphinx/build/html/_modules/tools.html
- Timestamp:
- Mar 8, 2019, 10:00:34 AM (5 years ago)
- Branches:
- master, ctbto, dev
- Children:
- b4a4777
- Parents:
- 8778c5a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
documentation/Sphinx/build/html/_modules/tools.html
r2625ca8 rf66f990 222 222 <span class="kn">from</span> <span class="nn">argparse</span> <span class="k">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentDefaultsHelpFormatter</span> 223 223 224 225 224 226 <span class="c1"># ------------------------------------------------------------------------------</span> 225 227 <span class="c1"># METHODS</span> 226 228 <span class="c1"># ------------------------------------------------------------------------------</span> 229 230 <div class="viewcode-block" id="setup_controldata"><a class="viewcode-back" href="../api.html#tools.setup_controldata">[docs]</a><span class="k">def</span> <span class="nf">setup_controldata</span><span class="p">():</span> 231 <span class="sd">'''Collects, stores and checks controlling arguments from command line,</span> 232 <span class="sd"> CONTROL file and ECMWF_ENV file.</span> 233 234 <span class="sd"> Parameters</span> 235 <span class="sd"> ----------</span> 236 237 <span class="sd"> Return</span> 238 <span class="sd"> ------</span> 239 <span class="sd"> c : ControlFile</span> 240 <span class="sd"> Contains all the parameters of CONTROL file and</span> 241 <span class="sd"> command line.</span> 242 243 <span class="sd"> ppid : str</span> 244 <span class="sd"> Parent process id.</span> 245 246 <span class="sd"> queue : str</span> 247 <span class="sd"> Name of queue for submission to ECMWF (e.g. ecgate or cca )</span> 248 249 <span class="sd"> job_template : str</span> 250 <span class="sd"> Name of the job template file for submission to ECMWF server.</span> 251 <span class="sd"> '''</span> 252 <span class="kn">import</span> <span class="nn">_config</span> 253 <span class="kn">from</span> <span class="nn">classes.ControlFile</span> <span class="k">import</span> <span class="n">ControlFile</span> 254 255 <span class="n">args</span> <span class="o">=</span> <span class="n">get_cmdline_args</span><span class="p">()</span> 256 <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> 257 <span class="n">c</span><span class="o">.</span><span class="n">assign_args_to_control</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> 258 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">):</span> 259 <span class="n">env_parameter</span> <span class="o">=</span> <span class="n">read_ecenv</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">)</span> 260 <span class="n">c</span><span class="o">.</span><span class="n">assign_envs_to_control</span><span class="p">(</span><span class="n">env_parameter</span><span class="p">)</span> 261 <span class="n">c</span><span class="o">.</span><span class="n">check_conditions</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">queue</span><span class="p">)</span> 262 263 <span class="k">return</span> <span class="n">c</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">ppid</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">queue</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">job_template</span></div> 227 264 228 265 <div class="viewcode-block" id="none_or_str"><a class="viewcode-back" href="../api.html#tools.none_or_str">[docs]</a><span class="k">def</span> <span class="nf">none_or_str</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> … … 300 337 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--basetime"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"basetime"</span><span class="p">,</span> 301 338 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_int</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 302 <span class="n">help</span><span class="o">=</span><span class="s2">"base such as 0 0or 12 (for half day retrievals)"</span><span class="p">)</span>339 <span class="n">help</span><span class="o">=</span><span class="s2">"base such as 0 or 12 (for half day retrievals)"</span><span class="p">)</span> 303 340 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--step"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"step"</span><span class="p">,</span> 304 341 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> … … 315 352 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_int</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 316 353 <span class="n">help</span><span class="o">=</span><span class="s2">"debug mode - leave temporary files intact"</span><span class="p">)</span> 354 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--oper"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"oper"</span><span class="p">,</span> 355 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_int</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 356 <span class="n">help</span><span class="o">=</span><span class="s2">"operational mode - prepares dates with </span><span class="se">\</span> 357 <span class="s2"> environment variables"</span><span class="p">)</span> 317 358 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--request"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"request"</span><span class="p">,</span> 318 359 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_int</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> … … 408 449 <span class="nb">print</span><span class="p">(</span><span class="s2">"... clean inputdir!"</span><span class="p">)</span> 409 450 410 <span class="n">cleanlist</span> <span class="o">=</span> <span class="n">glob</span><span class="o">.</span><span class="n">glob</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">join</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="s2">"*"</span><span class="p">))</span> 451 <span class="n">cleanlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">file</span> <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">glob</span><span class="o">.</span><span class="n">glob</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">join</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="s2">"*"</span><span class="p">))</span> 452 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">prefix</span><span class="p">)]</span> 411 453 412 454 <span class="k">if</span> <span class="n">cleanlist</span><span class="p">:</span> 413 455 <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">cleanlist</span><span class="p">:</span> 414 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">prefix</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">element</span><span class="p">:</span> 415 <span class="n">silent_remove</span><span class="p">(</span><span class="n">element</span><span class="p">)</span> 416 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">ecapi</span> <span class="ow">is</span> <span class="kc">False</span> <span class="ow">and</span> <span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ectrans</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">c</span><span class="o">.</span><span class="n">ecstorage</span> <span class="o">==</span> <span class="mi">1</span><span class="p">):</span> 417 <span class="n">silent_remove</span><span class="p">(</span><span class="n">element</span><span class="p">)</span> 456 <span class="n">silent_remove</span><span class="p">(</span><span class="n">element</span><span class="p">)</span> 418 457 <span class="nb">print</span><span class="p">(</span><span class="s2">"... done!"</span><span class="p">)</span> 419 458 <span class="k">else</span><span class="p">:</span> … … 423 462 424 463 425 <div class="viewcode-block" id="my_error"><a class="viewcode-back" href="../api.html#tools.my_error">[docs]</a><span class="k">def</span> <span class="nf">my_error</span><span class="p">(</span><span class="n"> users</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="s1">'ERROR'</span><span class="p">):</span>464 <div class="viewcode-block" id="my_error"><a class="viewcode-back" href="../api.html#tools.my_error">[docs]</a><span class="k">def</span> <span class="nf">my_error</span><span class="p">(</span><span class="n">message</span><span class="o">=</span><span class="s1">'ERROR'</span><span class="p">):</span> 426 465 <span class="sd">'''Prints a specified error message which can be passed to the function</span> 427 466 <span class="sd"> before exiting the program.</span> … … 429 468 <span class="sd"> Parameters</span> 430 469 <span class="sd"> ----------</span> 431 <span class="sd"> user : list of str</span>432 <span class="sd"> Contains all email addresses which should be notified.</span>433 <span class="sd"> It might also contain just the ecmwf user name which wil trigger</span>434 <span class="sd"> mailing to the associated email address for this user.</span>435 436 470 <span class="sd"> message : str, optional</span> 437 471 <span class="sd"> Error message. Default value is "ERROR".</span> … … 446 480 447 481 <span class="nb">print</span><span class="p">(</span><span class="n">full_message</span><span class="p">)</span> 448 449 <span class="n">send_mail</span><span class="p">(</span><span class="n">users</span><span class="p">,</span> <span class="s1">'ERROR'</span><span class="p">,</span> <span class="n">full_message</span><span class="p">)</span>450 482 451 483 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> … … 615 647 <span class="k">else</span><span class="p">:</span> 616 648 <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">fdata</span><span class="p">:</span> 617 <span class="k">if</span> <span class="n">data</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">'!'</span><span class="p">:</span>618 <span class="n">table128</span><span class="p">[</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">3</span><span class="p">]]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">59</span><span class="p">:</span><span class="mi">6 4</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>649 <span class="k">if</span> <span class="n">data</span> <span class="o">!=</span> <span class="s1">''</span> <span class="ow">and</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">'!'</span><span class="p">:</span> 650 <span class="n">table128</span><span class="p">[</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">3</span><span class="p">]]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">59</span><span class="p">:</span><span class="mi">65</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> 619 651 620 652 <span class="k">return</span> <span class="n">table128</span></div> … … 659 691 660 692 <span class="k">return</span> <span class="n">ipar</span></div> 693 694 <div class="viewcode-block" id="to_param_id_with_tablenumber"><a class="viewcode-back" href="../api.html#tools.to_param_id_with_tablenumber">[docs]</a><span class="k">def</span> <span class="nf">to_param_id_with_tablenumber</span><span class="p">(</span><span class="n">pars</span><span class="p">,</span> <span class="n">table</span><span class="p">):</span> 695 <span class="sd">'''Transform parameter names to parameter ids and add table id.</span> 696 697 <span class="sd"> Conversion with ECMWF grib table 128.</span> 698 699 <span class="sd"> Parameters</span> 700 <span class="sd"> ----------</span> 701 <span class="sd"> pars : str</span> 702 <span class="sd"> Addpar argument from CONTROL file in the format of</span> 703 <span class="sd"> parameter names instead of ids. The parameter short</span> 704 <span class="sd"> names are sepearted with "/" and they are passed as</span> 705 <span class="sd"> one single string.</span> 706 707 <span class="sd"> table : dict</span> 708 <span class="sd"> Contains the ECMWF grib table 128 information.</span> 709 <span class="sd"> The key is the parameter number and the value is the</span> 710 <span class="sd"> short name of the parameter.</span> 711 712 <span class="sd"> Return</span> 713 <span class="sd"> ------</span> 714 <span class="sd"> spar : str</span> 715 <span class="sd"> List of addpar parameters from CONTROL file transformed to</span> 716 <span class="sd"> parameter ids in the format of integer.</span> 717 <span class="sd"> '''</span> 718 <span class="k">if</span> <span class="ow">not</span> <span class="n">pars</span><span class="p">:</span> 719 <span class="k">return</span> <span class="p">[]</span> 720 <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pars</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> 721 <span class="n">pars</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">pars</span><span class="p">)</span> 722 723 <span class="n">cpar</span> <span class="o">=</span> <span class="n">pars</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span> 724 <span class="n">spar</span> <span class="o">=</span> <span class="p">[]</span> 725 <span class="k">for</span> <span class="n">par</span> <span class="ow">in</span> <span class="n">cpar</span><span class="p">:</span> 726 <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span> 727 <span class="k">if</span> <span class="n">par</span> <span class="o">==</span> <span class="n">k</span> <span class="ow">or</span> <span class="n">par</span> <span class="o">==</span> <span class="n">v</span><span class="p">:</span> 728 <span class="n">spar</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">k</span> <span class="o">+</span> <span class="s1">'.128'</span><span class="p">)</span> 729 <span class="k">break</span> 730 <span class="k">else</span><span class="p">:</span> 731 <span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n\n\t\t</span><span class="s1">Warning: par '</span> <span class="o">+</span> <span class="n">par</span> <span class="o">+</span> <span class="s1">' not found in table 128</span><span class="se">\n\n</span><span class="s1">'</span><span class="p">)</span> 732 733 <span class="k">return</span> <span class="s1">'/'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">spar</span><span class="p">)</span></div> 661 734 662 735 <div class="viewcode-block" id="get_list_as_string"><a class="viewcode-back" href="../api.html#tools.get_list_as_string">[docs]</a><span class="k">def</span> <span class="nf">get_list_as_string</span><span class="p">(</span><span class="n">list_obj</span><span class="p">,</span> <span class="n">concatenate_sign</span><span class="o">=</span><span class="s1">', '</span><span class="p">):</span> … … 958 1031 <div role="contentinfo"> 959 1032 <p> 960 © Copyright 2018, Anne Philipp and Leopold Haimberger 1033 © Copyright 2018, Anne Philipp and Leopold Haimberger. 961 1034 962 1035 </p> … … 977 1050 978 1051 979 980 981 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> 982 <script type="text/javascript" src="../_static/jquery.js"></script> 983 <script type="text/javascript" src="../_static/underscore.js"></script> 984 <script type="text/javascript" src="../_static/doctools.js"></script> 985 1052 <script type="text/javascript"> 1053 var DOCUMENTATION_OPTIONS = { 1054 URL_ROOT:'../', 1055 VERSION:'7.1 alpha', 1056 LANGUAGE:'None', 1057 COLLAPSE_INDEX:false, 1058 FILE_SUFFIX:'.html', 1059 HAS_SOURCE: true, 1060 SOURCELINK_SUFFIX: '.txt' 1061 }; 1062 </script> 1063 <script type="text/javascript" src="../_static/jquery.js"></script> 1064 <script type="text/javascript" src="../_static/underscore.js"></script> 1065 <script type="text/javascript" src="../_static/doctools.js"></script> 1066 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> 986 1067 987 1068
Note: See TracChangeset
for help on using the changeset viewer.