Changes in Documentation/html/_modules/MarsRetrieval.html [6931f61:08c9091] in flex_extract.git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Documentation/html/_modules/MarsRetrieval.html
r6931f61 r08c9091 182 182 <span class="c1">#</span> 183 183 <span class="c1"># @License:</span> 184 <span class="c1"># (C) Copyright 2014-20 19.</span>184 <span class="c1"># (C) Copyright 2014-2020.</span> 185 185 <span class="c1"># Anne Philipp, Leopold Haimberger</span> 186 186 <span class="c1">#</span> … … 608 608 609 609 <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">'''</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"> 'reanalysis-era5-single-levels',</span> 621 <span class="sd"> {</span> 622 <span class="sd"> 'product_type': 'reanalysis',</span> 623 <span class="sd"> 'variable': 'total_precipitation',</span> 624 <span class="sd"> 'year': '2019',</span> 625 <span class="sd"> 'month': '01',</span> 626 <span class="sd"> 'day': '01',</span> 627 <span class="sd"> 'time': '00:00',</span> 628 <span class="sd"> 'format': 'grib',</span> 629 <span class="sd"> 'grid':[1.0, 1.0],</span> 630 <span class="sd"> 'area': [</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"> 'download.grib')</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"> '''</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">'/'</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">'date'</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">'date'</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><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">'%Y%m</span><span class="si">%d</span><span class="s1">'</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">'%Y%m</span><span class="si">%d</span><span class="s1">'</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"><=</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">'year'</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">'month'</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">'day'</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">'date'</span><span class="p">],</span> <span class="s1">'%Y%m</span><span class="si">%d</span><span class="s1">'</span><span class="p">)</span> 667 <span class="n">newattrs</span><span class="p">[</span><span class="s1">'year'</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">'month'</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">'day'</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">'product_type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'reanalysis'</span> 672 <span class="n">newattrs</span><span class="p">[</span><span class="s1">'area'</span><span class="p">]</span> <span class="o">=</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">'area'</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> 673 <span class="n">newattrs</span><span class="p">[</span><span class="s1">'grid'</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">'grid'</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> 674 <span class="n">newattrs</span><span class="p">[</span><span class="s1">'param'</span><span class="p">]</span> <span class="o">=</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">'param'</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> 675 <span class="n">newattrs</span><span class="p">[</span><span class="s1">'time'</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">'format'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'grib'</span> 677 678 <span class="k">return</span> <span class="n">newattrs</span> 610 679 611 680 <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> … … 641 710 <span class="k">del</span> <span class="n">attrs</span><span class="p">[</span><span class="s1">'target'</span><span class="p">]</span> 642 711 <span class="nb">print</span><span class="p">(</span><span class="s1">'target: '</span> <span class="o">+</span> <span class="n">target</span><span class="p">)</span> 643 712 644 713 <span class="c1"># find all keys without a value and convert all other values to strings</span> 645 714 <span class="n">empty_keys</span> <span class="o">=</span> <span class="p">[]</span> … … 660 729 <span class="k">try</span><span class="p">:</span> 661 730 <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">'levtype'</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">'ml'</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> 662 738 <span class="nb">print</span><span class="p">(</span><span class="s1">'RETRIEVE ERA5 WITH CDS API!'</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> 664 740 <span class="n">attrs</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span> 665 741 <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.