Changeset 30f7911 in flex_extract.git for Documentation/html/_modules/GribUtil.html


Ignore:
Timestamp:
Aug 20, 2019, 12:49:39 PM (5 years ago)
Author:
Anne Philipp <anne.philipp@…>
Branches:
master, ctbto, dev
Children:
2255082
Parents:
0690a6c
Message:

reviewed installation section of online documentation; minor corrections

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Documentation/html/_modules/GribUtil.html

    rba99230 r30f7911  
    161161           
    162162  <h1>Source code for GribUtil</h1><div class="highlight"><pre>
    163 <span></span><span class="ch">#!/usr/bin/env python</span>
     163<span></span><span class="ch">#!/usr/bin/env python3</span>
    164164<span class="c1"># -*- coding: utf-8 -*-</span>
    165165<span class="c1">#*******************************************************************************</span>
     
    175175<span class="c1">#</span>
    176176<span class="c1"># @License:</span>
    177 <span class="c1">#    (C) Copyright 2014-2018.</span>
     177<span class="c1">#    (C) Copyright 2014-2019.</span>
     178<span class="c1">#    Anne Philipp, Leopold Haimberger</span>
    178179<span class="c1">#</span>
    179 <span class="c1">#    This software is licensed under the terms of the Apache Licence Version 2.0</span>
    180 <span class="c1">#    which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.</span>
     180<span class="c1">#    SPDX-License-Identifier: CC-BY-4.0</span>
    181181<span class="c1">#</span>
    182 <span class="c1"># @Class Description:</span>
    183 <span class="c1">#    The GRIB API provides all necessary tools to work directly with the</span>
    184 <span class="c1">#    grib files. Nevertheless, the GRIB API tools are very basic and are in</span>
    185 <span class="c1">#    direct connection with the grib files. This class provides some higher</span>
    186 <span class="c1">#    functions which apply a set of GRIB API tools together in the respective</span>
    187 <span class="c1">#    context. So, the class initially contains a list of grib files (their</span>
    188 <span class="c1">#    names) and the using program then applies the methods directly on the</span>
    189 <span class="c1">#    class objects without having to think about how the actual GRIB API</span>
    190 <span class="c1">#    tools have to be arranged.</span>
    191 <span class="c1">#</span>
    192 <span class="c1"># @Class Content:</span>
    193 <span class="c1">#    - __init__</span>
    194 <span class="c1">#    - get_keys</span>
    195 <span class="c1">#    - set_keys</span>
    196 <span class="c1">#    - copy_dummy_msg</span>
    197 <span class="c1">#    - index</span>
    198 <span class="c1">#</span>
    199 <span class="c1"># @Class Attributes:</span>
    200 <span class="c1">#    - filenames</span>
    201 <span class="c1">#</span>
     182<span class="c1">#    This work is licensed under the Creative Commons Attribution 4.0</span>
     183<span class="c1">#    International License. To view a copy of this license, visit</span>
     184<span class="c1">#    http://creativecommons.org/licenses/by/4.0/ or send a letter to</span>
     185<span class="c1">#    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</span>
    202186<span class="c1">#*******************************************************************************</span>
    203187
     
    215199    <span class="sd">&#39;&#39;&#39;</span>
    216200<span class="sd">    Class for GRIB utilities (new methods) based on GRIB API</span>
     201
     202<span class="sd">    The GRIB API provides all necessary tools to work directly with the</span>
     203<span class="sd">    grib files. Nevertheless, the GRIB API tools are very basic and are in</span>
     204<span class="sd">    direct connection with the grib files. This class provides some higher</span>
     205<span class="sd">    functions which apply a set of GRIB API tools together in the respective</span>
     206<span class="sd">    context. So, the class initially contains a list of grib files (their</span>
     207<span class="sd">    names) and the using program then applies the methods directly on the</span>
     208<span class="sd">    class objects without having to think about how the actual GRIB API</span>
     209<span class="sd">    tools have to be arranged.</span>
    217210<span class="sd">    &#39;&#39;&#39;</span>
    218211    <span class="c1"># --------------------------------------------------------------------------</span>
     
    260253                             <span class="n">codes_release</span><span class="p">)</span>
    261254
    262         <span class="n">fileid</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filenames</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span>
    263 
    264255        <span class="n">return_list</span> <span class="o">=</span> <span class="p">[]</span>
    265256
    266         <span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
     257        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filenames</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fileid</span><span class="p">:</span>
     258
    267259            <span class="n">gid</span> <span class="o">=</span> <span class="n">codes_new_from_file</span><span class="p">(</span><span class="n">fileid</span><span class="p">)</span>
    268 
    269             <span class="k">if</span> <span class="n">gid</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
    270                 <span class="k">break</span>
    271260
    272261            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">wherekeynames</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">wherekeyvalues</span><span class="p">):</span>
     
    292281            <span class="n">codes_release</span><span class="p">(</span><span class="n">gid</span><span class="p">)</span>
    293282
    294         <span class="n">fileid</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    295 
    296283        <span class="k">return</span> <span class="n">return_list</span></div>
    297284
    298285
    299286<div class="viewcode-block" id="GribUtil.set_keys"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.set_keys">[docs]</a>    <span class="k">def</span> <span class="nf">set_keys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fromfile</span><span class="p">,</span> <span class="n">keynames</span><span class="p">,</span> <span class="n">keyvalues</span><span class="p">,</span> <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[],</span>
    300                  <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[],</span> <span class="n">strict</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;w&#39;</span><span class="p">):</span>
     287                 <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[],</span> <span class="n">strict</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">):</span>
    301288        <span class="sd">&#39;&#39;&#39;Opens the file to read the grib messages and then write</span>
    302289<span class="sd">        the selected messages (with wherekeys) to a new output file.</span>
     
    330317
    331318<span class="sd">        filemode : :obj:`string`, optional</span>
    332 <span class="sd">            Sets the mode for the output file. Default is &quot;w&quot;.</span>
     319<span class="sd">            Sets the mode for the output file. Default is &quot;wb&quot;.</span>
    333320
    334321<span class="sd">        Return</span>
     
    344331
    345332        <span class="n">fout</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filenames</span><span class="p">,</span> <span class="n">filemode</span><span class="p">)</span>
    346         <span class="n">fin</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fromfile</span><span class="p">)</span>
    347 
    348         <span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
     333
     334        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fromfile</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
    349335            <span class="n">gid</span> <span class="o">=</span> <span class="n">codes_grib_new_from_file</span><span class="p">(</span><span class="n">fin</span><span class="p">)</span>
    350 
    351             <span class="k">if</span> <span class="n">gid</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
    352                 <span class="k">break</span>
    353336
    354337            <span class="n">select</span> <span class="o">=</span> <span class="kc">True</span>
     
    375358            <span class="n">codes_release</span><span class="p">(</span><span class="n">gid</span><span class="p">)</span>
    376359
    377         <span class="n">fin</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    378360        <span class="n">fout</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    379361
     
    381363
    382364<div class="viewcode-block" id="GribUtil.copy_dummy_msg"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.copy_dummy_msg">[docs]</a>    <span class="k">def</span> <span class="nf">copy_dummy_msg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename_in</span><span class="p">,</span> <span class="n">selectWhere</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
    383                  <span class="n">keynames</span><span class="o">=</span><span class="p">[],</span> <span class="n">keyvalues</span><span class="o">=</span><span class="p">[],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;w&#39;</span><span class="p">):</span>
     365                 <span class="n">keynames</span><span class="o">=</span><span class="p">[],</span> <span class="n">keyvalues</span><span class="o">=</span><span class="p">[],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">):</span>
    384366        <span class="sd">&#39;&#39;&#39;Add the content of another input grib file to the objects file but</span>
    385367<span class="sd">        only messages corresponding to keys/values passed to the function.</span>
     
    404386
    405387<span class="sd">        filemode : :obj:`string`, optional</span>
    406 <span class="sd">            Sets the mode for the output file. Default is &quot;w&quot;.</span>
     388<span class="sd">            Sets the mode for the output file. Default is &quot;wb&quot;.</span>
    407389
    408390<span class="sd">        Return</span>
     
    416398            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Give a value for each keyname!&quot;</span><span class="p">)</span>
    417399
    418         <span class="n">fin</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename_in</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span>
     400
    419401        <span class="n">fout</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filenames</span><span class="p">,</span> <span class="n">filemode</span><span class="p">)</span>
    420402
    421403        <span class="n">fields</span> <span class="o">=</span> <span class="mi">0</span>
    422404
    423         <span class="k">while</span> <span class="n">fields</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">:</span>
     405        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename_in</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
     406            <span class="k">if</span> <span class="n">fields</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">:</span>
     407                <span class="n">fout</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
     408                <span class="k">return</span>
     409
    424410            <span class="n">gid</span> <span class="o">=</span> <span class="n">codes_grib_new_from_file</span><span class="p">(</span><span class="n">fin</span><span class="p">)</span>
    425 
    426             <span class="k">if</span> <span class="n">gid</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
    427                 <span class="k">break</span>
    428411
    429412            <span class="n">select</span> <span class="o">=</span> <span class="kc">True</span>
     
    447430            <span class="n">codes_release</span><span class="p">(</span><span class="n">gid</span><span class="p">)</span>
    448431
    449         <span class="n">fin</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    450432        <span class="n">fout</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
    451433
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG