Changeset 5920b7f in flex_extract.git for Documentation/html/_modules/get_mars_data.html


Ignore:
Timestamp:
May 30, 2020, 9:35:50 AM (4 years ago)
Author:
anphi <anne.philipp@…>
Branches:
master, ctbto, dev
Children:
a9d33f6
Parents:
550435b
Message:

New compilation of Sphinx after extensive review in language/content/understanding

File:
1 edited

Legend:

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

    rb1674ed r5920b7f  
    172172<span class="c1">#    November 2015 - Leopold Haimberger (University of Vienna):</span>
    173173<span class="c1">#        - moved the getEIdata program into a function &quot;get_mars_data&quot;</span>
    174 <span class="c1">#        - moved the AgurmentParser into a seperate function</span>
    175 <span class="c1">#        - adatpted the function for the use in flex_extract</span>
    176 <span class="c1">#        - renamed file to get_mars_data</span>
     174<span class="c1">#        - moved the AgurmentParser into a separate function</span>
     175<span class="c1">#        - adapted the function for use in flex_extract</span>
     176<span class="c1">#        - renamed source file to get_mars_data</span>
    177177<span class="c1">#</span>
    178178<span class="c1">#    February 2018 - Anne Philipp (University of Vienna):</span>
     
    184184<span class="c1">#          online documentation)</span>
    185185<span class="c1">#        - use of UIFiles class for file selection and deletion</span>
    186 <span class="c1">#        - seperated get_mars_data function into several smaller pieces:</span>
     186<span class="c1">#        - separated get_mars_data function into several smaller pieces:</span>
    187187<span class="c1">#          write_reqheader, mk_server, mk_dates, remove_old, do_retrievment</span>
    188188<span class="c1">#</span>
     
    198198<span class="c1">#    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</span>
    199199<span class="c1">#*******************************************************************************</span>
    200 <span class="sd">&#39;&#39;&#39;This script extracts MARS data from ECMWF servers.</span>
     200<span class="sd">&#39;&#39;&#39;This script extracts MARS data from ECMWF.</span>
    201201
    202202<span class="sd">At first, the necessary parameters from command line and CONTROL files are</span>
     
    206206<span class="sd">functions:</span>
    207207
    208 <span class="sd">    * main - the main function of the script</span>
    209 <span class="sd">    * get_mars_data - overall control of ECMWF data retrievment</span>
     208<span class="sd">    * main            - the main function of the script</span>
     209<span class="sd">    * get_mars_data   - overall control of ECMWF data retrievment</span>
    210210<span class="sd">    * write_reqheader - writes the header into the mars_request file</span>
    211 <span class="sd">    * mk_server - creates the server connection to ECMWF servers</span>
    212 <span class="sd">    * mk_dates - defines the start and end date</span>
    213 <span class="sd">    * remove_old - deletes old retrieved grib files</span>
    214 <span class="sd">    * do_retrievement - creates individual retrievals</span>
    215 
    216 <span class="sd">Type: get_mars_data.py --help</span>
     211<span class="sd">    * mk_server       - creates the server connection to ECMWF servers</span>
     212<span class="sd">    * mk_dates        - defines the start and end date</span>
     213<span class="sd">    * remove_old      - deletes old retrieved grib files</span>
     214<span class="sd">    * do_retrieval    - creates individual retrievals</span>
     215
     216<span class="sd">Type get_mars_data.py --help</span>
    217217<span class="sd">to get information about command line parameters.</span>
    218218<span class="sd">Read the documentation for usage instructions.</span>
     
    228228<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>
    229229
    230 <span class="c1"># software specific classes and modules from flex_extract</span>
    231 <span class="c1"># add path to local main python path for flex_extract to get full access</span>
     230<span class="c1"># software-specific classes and modules from flex_extract</span>
     231<span class="c1"># add path to local main Python path for flex_extract to get full access</span>
    232232<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>
    233233    <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">&#39;/../&#39;</span><span class="p">)</span>
     
    256256<span class="c1"># ------------------------------------------------------------------------------</span>
    257257<div class="viewcode-block" id="main"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
    258     <span class="sd">&#39;&#39;&#39;Controls the program to get data out of mars.</span>
    259 
    260 <span class="sd">    This is done if it is called directly from command line.</span>
    261 <span class="sd">    Then it also takes program call arguments and control file input.</span>
     258    <span class="sd">&#39;&#39;&#39;Controls the program to retrieve data from MARS.</span>
     259
     260<span class="sd">    This is done if called directly from command line.</span>
     261<span class="sd">    Then, arguments and control file are taken as input.</span>
    262262
    263263<span class="sd">    Parameters</span>
     
    276276
    277277<div class="viewcode-block" id="get_mars_data"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.get_mars_data">[docs]</a><span class="k">def</span> <span class="nf">get_mars_data</span><span class="p">(</span><span class="n">c</span><span class="p">):</span>
    278     <span class="sd">&#39;&#39;&#39;Retrieves the EC data needed for a FLEXPART simulation.</span>
    279 
    280 <span class="sd">    Start and end dates for retrieval period is set. Retrievals</span>
    281 <span class="sd">    are divided into smaller periods if necessary and datechunk parameter</span>
     278    <span class="sd">&#39;&#39;&#39;Retrieves the ECMWF data required for a FLEXPART simulation.</span>
     279
     280<span class="sd">    Start and end dates for retrieval period are set. Retrievals</span>
     281<span class="sd">    are divided into shorter periods if necessary and if datechunk parameter</span>
    282282<span class="sd">    is set.</span>
    283283
     
    299299
    300300    <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">request</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
    301         <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Retrieving EC data!&quot;</span><span class="p">)</span>
     301        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Retrieving ECMWF data!&quot;</span><span class="p">)</span>
    302302    <span class="k">else</span><span class="p">:</span>
    303303        <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">request</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
    304             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Printing mars requests!&quot;</span><span class="p">)</span>
     304            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Printing MARS requests!&quot;</span><span class="p">)</span>
    305305        <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">request</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
    306             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Retrieving EC data and printing mars request!&quot;</span><span class="p">)</span>
     306            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Retrieving ECMWF data and printing MARS request!&quot;</span><span class="p">)</span>
    307307        <span class="n">write_reqheader</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="n">_config</span><span class="o">.</span><span class="n">FILE_MARS_REQUESTS</span><span class="p">))</span>
    308308
     
    327327
    328328<div class="viewcode-block" id="write_reqheader"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.write_reqheader">[docs]</a><span class="k">def</span> <span class="nf">write_reqheader</span><span class="p">(</span><span class="n">marsfile</span><span class="p">):</span>
    329     <span class="sd">&#39;&#39;&#39;Writes header with column names into mars request file.</span>
     329    <span class="sd">&#39;&#39;&#39;Writes header with column names into MARS request file.</span>
    330330
    331331<span class="sd">    Parameters</span>
    332332<span class="sd">    ----------</span>
    333333<span class="sd">    marsfile : str</span>
    334 <span class="sd">        Path to the mars request file.</span>
     334<span class="sd">        Path to the MARS request file.</span>
    335335
    336336<span class="sd">    Return</span>
     
    350350
    351351<div class="viewcode-block" id="mk_server"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.mk_server">[docs]</a><span class="k">def</span> <span class="nf">mk_server</span><span class="p">(</span><span class="n">c</span><span class="p">):</span>
    352     <span class="sd">&#39;&#39;&#39;Creates a server connection with available python API.</span>
    353 
    354 <span class="sd">    Which API is used depends on availability and the dataset to be retrieved.</span>
    355 <span class="sd">    The CDS API is used for ERA5 dataset no matter if the user is a member or</span>
    356 <span class="sd">    a public user. ECMWF WebAPI is used for all other available datasets.</span>
     352    <span class="sd">&#39;&#39;&#39;Creates a server connection with available Python API.</span>
     353
     354<span class="sd">    The API selected depends on availability and the data set to be retrieved.</span>
     355<span class="sd">    The CDS API is used for ERA5 data, no matter whether the user is a </span>
     356<span class="sd">    member-state or a public user. </span>
     357<span class="sd">    ECMWF WebAPI is used for all other available datasets.</span>
    357358
    358359<span class="sd">    Parameters</span>
     
    409410
    410411<div class="viewcode-block" id="mk_dates"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.mk_dates">[docs]</a><span class="k">def</span> <span class="nf">mk_dates</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">fluxes</span><span class="p">):</span>
    411     <span class="sd">&#39;&#39;&#39;Prepares start and end date depending on flux or non flux data.</span>
    412 
    413 <span class="sd">    If forecast for maximum one day (upto 24h) are to be retrieved, then</span>
     412    <span class="sd">&#39;&#39;&#39;Prepares start and end date depending on flux or non-flux type of data.</span>
     413
     414<span class="sd">    If forecasts for a maximum of one day (24 h) are to be retrieved, then</span>
    414415<span class="sd">    collect accumulation data (flux data) with additional days in the</span>
    415 <span class="sd">    beginning and at the end (used for complete disaggregation of</span>
     416<span class="sd">    beginning and at the end (needed for complete disaggregation of</span>
    416417<span class="sd">    original period)</span>
    417418
    418 <span class="sd">    If forecast data longer than 24h are to be retrieved, then</span>
     419<span class="sd">    If forecast data for more than +24 h are to be retrieved, then</span>
    419420<span class="sd">    collect accumulation data (flux data) with the exact start and end date</span>
    420421<span class="sd">    (disaggregation will be done for the exact time period with</span>
     
    476477<span class="sd">    ----------</span>
    477478<span class="sd">    pattern : str</span>
    478 <span class="sd">        The sub string pattern which identifies the files to be deleted.</span>
     479<span class="sd">        The substring pattern which identifies the files to be deleted.</span>
    479480
    480481<span class="sd">    inputdir : str, optional</span>
    481 <span class="sd">        Path to the directory where the retrieved data is stored.</span>
    482 
    483 <span class="sd">    Return</span>
    484 <span class="sd">    ------</span>
    485 
    486 <span class="sd">    &#39;&#39;&#39;</span>
    487     <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... removing old content of &#39;</span> <span class="o">+</span> <span class="n">inputdir</span><span class="p">)</span>
     482<span class="sd">        Path to the directory where the retrieved data are stored.</span>
     483
     484<span class="sd">    Return</span>
     485<span class="sd">    ------</span>
     486
     487<span class="sd">    &#39;&#39;&#39;</span>
     488    <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... removing old files in &#39;</span> <span class="o">+</span> <span class="n">inputdir</span><span class="p">)</span>
    488489
    489490    <span class="n">tobecleaned</span> <span class="o">=</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">inputdir</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span>
     
    494495
    495496<div class="viewcode-block" id="do_retrievement"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.do_retrievement">[docs]</a><span class="k">def</span> <span class="nf">do_retrievement</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">server</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">,</span> <span class="n">delta_t</span><span class="p">,</span> <span class="n">fluxes</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
    496     <span class="sd">&#39;&#39;&#39;Divides the complete retrieval period in smaller chunks and</span>
     497    <span class="sd">&#39;&#39;&#39;Divides the total retrieval period into smaller chunks and</span>
    497498<span class="sd">    retrieves the data from MARS.</span>
    498499
     
    513514
    514515<span class="sd">    delta_t : datetime</span>
    515 <span class="sd">        Delta_t + 1 is the maximal time period of a single</span>
    516 <span class="sd">        retrieval.</span>
     516<span class="sd">        Delta_t + 1 is the maximum time period of a single retrieval.</span>
    517517
    518518<span class="sd">    fluxes : boolean, optional</span>
     
    527527
    528528    <span class="c1"># since actual day also counts as one day,</span>
    529     <span class="c1"># we only need to add datechunk - 1 days to retrieval</span>
    530     <span class="c1"># for a period</span>
     529    <span class="c1"># we only need to add datechunk - 1 days to retrieval for a period</span>
    531530    <span class="n">delta_t_m1</span> <span class="o">=</span> <span class="n">delta_t</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>
    532531
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG