Changeset 5920b7f in flex_extract.git for Documentation/html/_modules/get_mars_data.html
- Timestamp:
- May 30, 2020, 9:35:50 AM (4 years ago)
- Branches:
- master, ctbto, dev
- Children:
- a9d33f6
- Parents:
- 550435b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Documentation/html/_modules/get_mars_data.html
rb1674ed r5920b7f 172 172 <span class="c1"># November 2015 - Leopold Haimberger (University of Vienna):</span> 173 173 <span class="c1"># - moved the getEIdata program into a function "get_mars_data"</span> 174 <span class="c1"># - moved the AgurmentParser into a sep erate function</span>175 <span class="c1"># - ada tpted the function for theuse 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> 177 177 <span class="c1">#</span> 178 178 <span class="c1"># February 2018 - Anne Philipp (University of Vienna):</span> … … 184 184 <span class="c1"># online documentation)</span> 185 185 <span class="c1"># - use of UIFiles class for file selection and deletion</span> 186 <span class="c1"># - sep erated get_mars_data function into several smaller pieces:</span>186 <span class="c1"># - separated get_mars_data function into several smaller pieces:</span> 187 187 <span class="c1"># write_reqheader, mk_server, mk_dates, remove_old, do_retrievment</span> 188 188 <span class="c1">#</span> … … 198 198 <span class="c1"># Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</span> 199 199 <span class="c1">#*******************************************************************************</span> 200 <span class="sd">'''This script extracts MARS data from ECMWF servers.</span>200 <span class="sd">'''This script extracts MARS data from ECMWF.</span> 201 201 202 202 <span class="sd">At first, the necessary parameters from command line and CONTROL files are</span> … … 206 206 <span class="sd">functions:</span> 207 207 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> 210 210 <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_retriev ement- 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> 217 217 <span class="sd">to get information about command line parameters.</span> 218 218 <span class="sd">Read the documentation for usage instructions.</span> … … 228 228 <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> 229 229 230 <span class="c1"># software 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> 232 232 <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> 233 233 <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">'/../'</span><span class="p">)</span> … … 256 256 <span class="c1"># ------------------------------------------------------------------------------</span> 257 257 <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">'''Controls the program to get data out of mars.</span>259 260 <span class="sd"> This is done if it iscalled directly from command line.</span>261 <span class="sd"> Then it also takes program call arguments and control fileinput.</span>258 <span class="sd">'''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> 262 262 263 263 <span class="sd"> Parameters</span> … … 276 276 277 277 <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">'''Retrieves the EC data needed for a FLEXPART simulation.</span>279 280 <span class="sd"> Start and end dates for retrieval period isset. Retrievals</span>281 <span class="sd"> are divided into s maller periods if necessary anddatechunk parameter</span>278 <span class="sd">'''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> 282 282 <span class="sd"> is set.</span> 283 283 … … 299 299 300 300 <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">"Retrieving EC data!"</span><span class="p">)</span>301 <span class="nb">print</span><span class="p">(</span><span class="s2">"Retrieving ECMWF data!"</span><span class="p">)</span> 302 302 <span class="k">else</span><span class="p">:</span> 303 303 <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">"Printing marsrequests!"</span><span class="p">)</span>304 <span class="nb">print</span><span class="p">(</span><span class="s2">"Printing MARS requests!"</span><span class="p">)</span> 305 305 <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">"Retrieving EC data and printing marsrequest!"</span><span class="p">)</span>306 <span class="nb">print</span><span class="p">(</span><span class="s2">"Retrieving ECMWF data and printing MARS request!"</span><span class="p">)</span> 307 307 <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> 308 308 … … 327 327 328 328 <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">'''Writes header with column names into marsrequest file.</span>329 <span class="sd">'''Writes header with column names into MARS request file.</span> 330 330 331 331 <span class="sd"> Parameters</span> 332 332 <span class="sd"> ----------</span> 333 333 <span class="sd"> marsfile : str</span> 334 <span class="sd"> Path to the marsrequest file.</span>334 <span class="sd"> Path to the MARS request file.</span> 335 335 336 336 <span class="sd"> Return</span> … … 350 350 351 351 <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">'''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">'''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> 357 358 358 359 <span class="sd"> Parameters</span> … … 409 410 410 411 <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">'''Prepares start and end date depending on flux or non fluxdata.</span>412 413 <span class="sd"> If forecast for maximum one day (upto 24h) are to be retrieved, then</span>412 <span class="sd">'''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> 414 415 <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> 416 417 <span class="sd"> original period)</span> 417 418 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> 419 420 <span class="sd"> collect accumulation data (flux data) with the exact start and end date</span> 420 421 <span class="sd"> (disaggregation will be done for the exact time period with</span> … … 476 477 <span class="sd"> ----------</span> 477 478 <span class="sd"> pattern : str</span> 478 <span class="sd"> The sub 479 <span class="sd"> The substring pattern which identifies the files to be deleted.</span> 479 480 480 481 <span class="sd"> inputdir : str, optional</span> 481 <span class="sd"> Path to the directory where the retrieved data isstored.</span>482 483 <span class="sd"> Return</span> 484 <span class="sd"> ------</span> 485 486 <span class="sd"> '''</span> 487 <span class="nb">print</span><span class="p">(</span><span class="s1">'... removing old content of'</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"> '''</span> 488 <span class="nb">print</span><span class="p">(</span><span class="s1">'... removing old files in '</span> <span class="o">+</span> <span class="n">inputdir</span><span class="p">)</span> 488 489 489 490 <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> … … 494 495 495 496 <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">'''Divides the complete retrieval period insmaller chunks and</span>497 <span class="sd">'''Divides the total retrieval period into smaller chunks and</span> 497 498 <span class="sd"> retrieves the data from MARS.</span> 498 499 … … 513 514 514 515 <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> 517 517 518 518 <span class="sd"> fluxes : boolean, optional</span> … … 527 527 528 528 <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> 531 530 <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> 532 531
Note: See TracChangeset
for help on using the changeset viewer.