Changeset 08c9091 in flex_extract.git for Documentation/html/_modules/MarsRetrieval.html


Ignore:
Timestamp:
Aug 12, 2020, 8:47:31 AM (4 years ago)
Author:
Anne Philipp <anne.philipp@…>
Branches:
master, ctbto, dev
Children:
73308e0
Parents:
ee9aaec
Message:

updated online docu (rm tabs)

File:
1 edited

Legend:

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

    r6931f61 r08c9091  
    182182<span class="c1">#</span>
    183183<span class="c1"># @License:</span>
    184 <span class="c1">#    (C) Copyright 2014-2019.</span>
     184<span class="c1">#    (C) Copyright 2014-2020.</span>
    185185<span class="c1">#    Anne Philipp, Leopold Haimberger</span>
    186186<span class="c1">#</span>
     
    608608
    609609        <span class="k">return</span></div>
     610   
     611    <span class="k">def</span> <span class="nf">_convert_to_cdsera5_sfc_request</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
     612        <span class="sd">&#39;&#39;&#39;</span>
     613<span class="sd">        The keywords and values for the single level download</span>
     614<span class="sd">        with CDS API is different from MARS. This function </span>
     615<span class="sd">        converts the old request keywords to the new ones.</span>
     616<span class="sd">        </span>
     617<span class="sd">        Example request for single level downloads in CDS API</span>
     618<span class="sd">        </span>
     619<span class="sd">        retrieve(</span>
     620<span class="sd">            &#39;reanalysis-era5-single-levels&#39;,</span>
     621<span class="sd">            {</span>
     622<span class="sd">                &#39;product_type&#39;: &#39;reanalysis&#39;,</span>
     623<span class="sd">                &#39;variable&#39;: &#39;total_precipitation&#39;,</span>
     624<span class="sd">                &#39;year&#39;: &#39;2019&#39;,</span>
     625<span class="sd">                &#39;month&#39;: &#39;01&#39;,</span>
     626<span class="sd">                &#39;day&#39;: &#39;01&#39;,</span>
     627<span class="sd">                &#39;time&#39;: &#39;00:00&#39;,</span>
     628<span class="sd">                &#39;format&#39;: &#39;grib&#39;,</span>
     629<span class="sd">                &#39;grid&#39;:[1.0, 1.0],</span>
     630<span class="sd">                &#39;area&#39;: [</span>
     631<span class="sd">                    45, 0, 43,</span>
     632<span class="sd">                    12,</span>
     633<span class="sd">                ],</span>
     634<span class="sd">            },</span>
     635<span class="sd">            &#39;download.grib&#39;)</span>
     636<span class="sd">            </span>
     637<span class="sd">        Parameters</span>
     638<span class="sd">        ----------</span>
     639<span class="sd">        attrs : dict</span>
     640<span class="sd">            Dictionary of the mars request parameters.</span>
     641
     642<span class="sd">        Return</span>
     643<span class="sd">        ------</span>
     644
     645<span class="sd">        &#39;&#39;&#39;</span>
     646        <span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">timedelta</span>
     647        <span class="n">newattrs</span> <span class="o">=</span> <span class="p">{}</span>
     648
     649        <span class="k">if</span> <span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]:</span>
     650            <span class="n">year</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
     651            <span class="n">month</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
     652            <span class="n">day</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
     653            <span class="n">start</span><span class="p">,</span><span class="n">end</span> <span class="o">=</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[::</span><span class="mi">2</span><span class="p">]</span>
     654            <span class="n">sdate</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)</span>
     655            <span class="n">edate</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">end</span><span class="p">,</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)</span>
     656            <span class="n">date</span> <span class="o">=</span> <span class="n">sdate</span>
     657            <span class="k">while</span> <span class="n">date</span> <span class="o">&lt;=</span> <span class="n">edate</span><span class="p">:</span>
     658                <span class="n">year</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">year</span><span class="p">)</span>
     659                <span class="n">month</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">month</span><span class="p">)</span>
     660                <span class="n">day</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">day</span><span class="p">)</span>     
     661                <span class="n">date</span> <span class="o">=</span> <span class="n">date</span> <span class="o">+</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">days</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
     662            <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;year&#39;</span><span class="p">]</span> <span class="o">=</span><span class="nb">list</span><span class="p">(</span><span class="n">year</span><span class="p">)</span>
     663            <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;month&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">month</span><span class="p">)</span>
     664            <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;day&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="nb">list</span><span class="p">(</span><span class="n">day</span><span class="p">)</span>                       
     665        <span class="k">else</span><span class="p">:</span>
     666            <span class="n">date</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">],</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)</span>
     667            <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;year&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">date</span><span class="o">.</span><span class="n">year</span>
     668            <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;month&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">date</span><span class="o">.</span><span class="n">month</span>
     669            <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;day&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="n">date</span><span class="o">.</span><span class="n">day</span>                 
     670       
     671        <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;product_type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;reanalysis&#39;</span>
     672        <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;area&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;area&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
     673        <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;grid&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">float</span><span class="p">,</span><span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;grid&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)))</span>
     674        <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;param&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;param&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>       
     675        <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">24</span><span class="p">,</span><span class="mi">3</span><span class="p">)))</span>
     676        <span class="n">newattrs</span><span class="p">[</span><span class="s1">&#39;format&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;grib&#39;</span>
     677               
     678        <span class="k">return</span> <span class="n">newattrs</span>
    610679
    611680<div class="viewcode-block" id="MarsRetrieval.data_retrieve"><a class="viewcode-back" href="../Documentation/Api/api_python.html#MarsRetrieval.MarsRetrieval.data_retrieve">[docs]</a>    <span class="k">def</span> <span class="nf">data_retrieve</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
     
    641710            <span class="k">del</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;target&#39;</span><span class="p">]</span>
    642711        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;target: &#39;</span> <span class="o">+</span> <span class="n">target</span><span class="p">)</span>
    643 
     712       
    644713        <span class="c1"># find all keys without a value and convert all other values to strings</span>
    645714        <span class="n">empty_keys</span> <span class="o">=</span> <span class="p">[]</span>
     
    660729            <span class="k">try</span><span class="p">:</span>
    661730                <span class="k">if</span> <span class="n">cds_api</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="p">,</span> <span class="n">cdsapi</span><span class="o">.</span><span class="n">Client</span><span class="p">):</span>
     731                    <span class="c1"># distinguish between model (ECMWF MARS access) </span>
     732                    <span class="c1"># and surface level (CS3 online access)</span>
     733                    <span class="k">if</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">&#39;levtype&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;ml&#39;</span><span class="p">:</span>
     734                        <span class="n">dataset</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">CDS_DATASET_ML</span>
     735                    <span class="k">else</span><span class="p">:</span>
     736                        <span class="n">dataset</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">CDS_DATASET_SFC</span>
     737                        <span class="n">attrs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_convert_to_cdsera5_sfc_request</span><span class="p">(</span><span class="n">attrs</span><span class="p">)</span>
    662738                    <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;RETRIEVE ERA5 WITH CDS API!&#39;</span><span class="p">)</span>
    663                     <span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">retrieve</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">CDS_DATASET</span><span class="p">,</span>
     739                    <span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">retrieve</span><span class="p">(</span><span class="n">dataset</span><span class="p">,</span>
    664740                                         <span class="n">attrs</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
    665741                <span class="k">elif</span> <span class="n">ec_api</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="p">,</span> <span class="n">ecmwfapi</span><span class="o">.</span><span class="n">ECMWFDataServer</span><span class="p">):</span>
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG