meteva

提供气象产品检验相关python程序


读取站点数据

<p>[TOC]</p> <pre><code class="language-python">%matplotlib inline %load_ext autoreload %autoreload 2 import meteva.base as meb import numpy as np import datetime import pandas as pd</code></pre> <h1>读取站点信息</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_station(filename,keep_alt = False,show = False)&lt;/font&gt;</strong><br /> 从micaps第1、2、3、8类数据文件中读取站点的经纬度和站号,返回一个站点形式的数据。 &lt;font face=&quot;黑体&quot; color=red size=5&gt;注意:该函数不读取要素取值部分内容。如果需要从文件中读取每个站点的默认取值,建议用meb.read_stadata_from_micaps3等函数&lt;/font&gt; </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据文件名,站点文件路径,它可以是micaps第1、2、3、8类文件</td> </tr> <tr> <td style="text-align: left;"><strong>keep_alt</strong></td> <td style="text-align: left;">在keep_alt = False时,读取站点信息时会丢弃站点高度信息,keep_alt= True时,返回的站点数据中会保留站点高度</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,其中time,dtime,level属性为设置的缺省值,&lt;font face=&quot;黑体&quot; color=red size=5&gt;数据内容都设置为0&lt;/font&gt;</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">station = meb.read_station(r&amp;quot;H:\resource\infomation-dat\sta2513.dat&amp;quot;) #读取micaps16类文件获取站点 print(station)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2099-01-01 08:00:00 0 45001 114.016667 22.200000 0 1 0 2099-01-01 08:00:00 0 45004 114.166667 22.316667 0 2 0 2099-01-01 08:00:00 0 45005 114.166667 22.300000 0 3 0 2099-01-01 08:00:00 0 45007 114.200000 22.316667 0 4 0 2099-01-01 08:00:00 0 45009 114.300000 22.183333 0 ... ... ... ... ... ... ... ... 2512 0 2099-01-01 08:00:00 0 59985 111.616667 16.533333 0 2513 0 2099-01-01 08:00:00 0 59995 112.883333 9.383333 0 2514 0 2099-01-01 08:00:00 0 59997 114.366667 10.383333 0 2515 0 2099-01-01 08:00:00 0 51747 83.666667 39.000000 0 2516 0 2099-01-01 08:00:00 0 52974 102.016667 35.516667 0 [2517 rows x 7 columns]</code></pre> <pre><code class="language-python">#meb.station_国家站是程序库中内置的micaps3类文件的路径名 station = meb.read_station(meb.station_国家站) #读取micaps3类文件获取站点,print(meb.station_国家站) print(station)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2099-01-01 08:00:00 0 50136 122.52 52.97 0 1 0 2099-01-01 08:00:00 0 50137 122.37 53.47 0 2 0 2099-01-01 08:00:00 0 50246 124.72 52.35 0 3 0 2099-01-01 08:00:00 0 50247 123.57 52.03 0 4 0 2099-01-01 08:00:00 0 50349 124.40 51.67 0 ... ... ... ... ... ... ... ... 2406 0 2099-01-01 08:00:00 0 59945 109.70 18.65 0 2407 0 2099-01-01 08:00:00 0 59948 109.58 18.22 0 2408 0 2099-01-01 08:00:00 0 59951 110.33 18.80 0 2409 0 2099-01-01 08:00:00 0 59954 110.03 18.55 0 2410 0 2099-01-01 08:00:00 0 59981 112.33 16.83 0 [2411 rows x 7 columns]</code></pre> <h1>读取micaps3数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_micaps3(filename, station=None, level=None, time=None, dtime=None, data_name='data0', drop_same_id=True,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从micaps第3类数据文件中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">Micaps3格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>station</strong></td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>, 从文件读取到数据后,会按station变量里的站点顺序重新排列,文件中存在而station里不存在的站点将被删除,station里存在但文件中不存在的站点上的取值采用station里的原始值, id,lon,lat,alt共4个列的数据会采用station里的值</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>drop_same_id</strong></td> <td style="text-align: left;">在一些文件中,有些站号的id是相同的,默认情况下仅保留1个站点的结果,如果drop_same_id = False时则会全部保留。</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m3.txt&amp;quot; sta = meb.read_stadata_from_micaps3(filename) #在其他参数缺省的情况下,站点列表、时间和层次信息均根据文件内容设置,时效设置为0 print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2020-01-03 20:00:00 0 57671 112.37 28.85 1.3 1 0 2020-01-03 20:00:00 0 57845 109.78 26.17 5.4 2 0 2020-01-03 20:00:00 0 57466 111.75 30.46 0.1 3 0 2020-01-03 20:00:00 0 57842 109.72 26.88 0.8 4 0 2020-01-03 20:00:00 0 57584 113.09 29.38 1.3 .. ... ... ... ... ... ... ... 561 0 2020-01-03 20:00:00 0 57589 113.88 29.27 2.2 562 0 2020-01-03 20:00:00 0 57583 113.97 29.92 4.2 563 0 2020-01-03 20:00:00 0 55690 91.95 27.98 2.3 564 0 2020-01-03 20:00:00 0 55597 91.68 29.03 0.0 565 0 2020-01-03 20:00:00 0 56434 97.47 28.67 0.2 [566 rows x 7 columns]</code></pre> <pre><code class="language-python">sta = meb.read_stadata_from_micaps3(filename,station = station,time = &amp;quot;2019123108&amp;quot;,dtime = 24,level = 850) print(sta) # 更加参数设置了站点列表、时间、时效和层次信息</code></pre> <pre><code> level time dtime id lon lat data0 0 850 2019-12-31 08:00:00 24 50136 122.52 52.97 0.0 1 850 2019-12-31 08:00:00 24 50137 122.37 53.47 0.0 2 850 2019-12-31 08:00:00 24 50246 124.72 52.35 0.0 3 850 2019-12-31 08:00:00 24 50247 123.57 52.03 0.0 4 850 2019-12-31 08:00:00 24 50349 124.40 51.67 0.0 ... ... ... ... ... ... ... ... 2406 850 2019-12-31 08:00:00 24 59945 109.70 18.65 0.0 2407 850 2019-12-31 08:00:00 24 59948 109.58 18.22 0.0 2408 850 2019-12-31 08:00:00 24 59951 110.33 18.80 0.0 2409 850 2019-12-31 08:00:00 24 59954 110.03 18.55 0.0 2410 850 2019-12-31 08:00:00 24 59981 112.33 16.83 0.0 [2411 rows x 7 columns]</code></pre> <h1>读取micaps1、micaps2、micaps8数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_micaps1_2_8(filename,column, station=None, level=None, time=None, dtime=None, data_name='data0', drop_same_id=True,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong> 从micaps第1、2、8类数据文件中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">Micaps1、2、8格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;column&lt;/font&gt;</strong></td> <td style="text-align: left;">读取数据中的第column列作为返回站点数据的内容</td> </tr> <tr> <td style="text-align: left;"><strong>station</strong></td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>, 从文件读取到数据后,会按station变量里的站点顺序重新排列,文件中存在而station里不存在的站点将被删除,station里存在但文件中不存在的站点上的取值采用station里的原始值, id,lon,lat,alt共4个列的数据会采用station里的值</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>drop_same_id</strong></td> <td style="text-align: left;">在一些文件中,有些站号的id是相同的,默认情况下仅保留1个站点的结果,如果drop_same_id = False时则会全部保留。</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m1.txt&amp;quot; sta = meb.read_stadata_from_micaps1_2_8(filename,meb.m1_element_column_dict[&amp;quot;温度&amp;quot;]) # meb.m1_element_column_dict[&amp;quot;温度&amp;quot;] 是micaps1文件中温度所对应的列序号 print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2018-08-01 08:00:00 0 1009 89.49 3.99 27.9 2 0 2018-08-01 08:00:00 0 29645 86.22 55.25 8.1 3 0 2018-08-01 08:00:00 0 28593 74.63 56.10 15.1 5 0 2018-08-01 08:00:00 0 36022 80.33 52.02 9.5 6 0 2018-08-01 08:00:00 0 29209 77.22 57.81 11.0 ... ... ... ... ... ... ... ... 4072 0 2018-08-01 08:00:00 0 48679 103.67 1.63 24.4 4073 0 2018-08-01 08:00:00 0 16364 16.37 38.76 18.4 4074 0 2018-08-01 08:00:00 0 16415 14.87 38.58 24.1 4075 0 2018-08-01 08:00:00 0 16081 9.26 45.46 26.7 4076 0 2018-08-01 08:00:00 0 16314 16.66 40.68 22.9 [3999 rows x 7 columns]</code></pre> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m1.txt&amp;quot; sta = meb.read_stadata_from_micaps1_2_8(filename,meb.m1_element_column.温度,station=station,time = datetime.datetime(2019,1,1,8,0)) # meb.m1_element_column.温度 是micaps1文件中温度所对应的列序号 print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2019-01-01 08:00:00 0 50136 122.52 52.97 14.0 1 0 2019-01-01 08:00:00 0 50137 122.37 53.47 0.0 2 0 2019-01-01 08:00:00 0 50246 124.72 52.35 15.9 3 0 2019-01-01 08:00:00 0 50247 123.57 52.03 12.4 4 0 2019-01-01 08:00:00 0 50349 124.40 51.67 14.4 ... ... ... ... ... ... ... ... 2406 0 2019-01-01 08:00:00 0 59945 109.70 18.65 0.0 2407 0 2019-01-01 08:00:00 0 59948 109.58 18.22 25.6 2408 0 2019-01-01 08:00:00 0 59951 110.33 18.80 0.0 2409 0 2019-01-01 08:00:00 0 59954 110.03 18.55 25.6 2410 0 2019-01-01 08:00:00 0 59981 112.33 16.83 29.9 [2411 rows x 7 columns]</code></pre> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m2.txt&amp;quot; sta = meb.read_stadata_from_micaps1_2_8(filename,meb.m2_element_column.温度) # meb.m1_element_column.温度 是micaps2文件中温度所对应的列序号 print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 850 2020-01-01 08:00:00 0 1028 19.00 74.50 -13 1 850 2020-01-01 08:00:00 0 1241 9.61 63.71 -4 2 850 2020-01-01 08:00:00 0 1415 5.66 58.87 -3 3 850 2020-01-01 08:00:00 0 2365 17.43 62.52 -3 4 850 2020-01-01 08:00:00 0 2527 12.28 57.65 1 .. ... ... ... ... ... ... ... 426 850 2020-01-01 08:00:00 0 98444 123.72 13.15 9999 427 850 2020-01-01 08:00:00 0 98618 118.75 9.73 9999 428 850 2020-01-01 08:00:00 0 98646 123.97 10.32 9999 429 850 2020-01-01 08:00:00 0 98753 125.65 7.12 9999 430 850 2020-01-01 08:00:00 0 0 0.00 0.00 0 [431 rows x 7 columns]</code></pre> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m8.txt&amp;quot; sta = meb.read_stadata_from_micaps1_2_8(filename,meb.m8_element_column.最高温度) # meb.m1_element_column.温度 是micaps8文件中温度所对应的列序号 print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2020-01-02 20:00:00 24 57661 111.48 28.92 7 1 0 2020-01-02 20:00:00 24 57662 111.68 29.05 6 2 0 2020-01-02 20:00:00 24 57663 111.95 28.92 7 3 0 2020-01-02 20:00:00 24 57673 112.88 28.68 6 4 0 2020-01-02 20:00:00 24 57680 113.07 28.80 7 ... ... ... ... ... ... ... ... 2391 0 2020-01-02 20:00:00 24 50956 126.58 45.88 -13 2392 0 2020-01-02 20:00:00 24 50958 126.95 45.52 -12 2393 0 2020-01-02 20:00:00 24 50968 127.97 45.22 -12 2394 0 2020-01-02 20:00:00 24 50867 127.35 46.08 -13 2395 0 2020-01-02 20:00:00 24 50468 127.45 50.25 -11 [2396 rows x 7 columns]</code></pre> <h1>设置IO配置文件</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;set_io_config(filename)&lt;/font&gt;</strong><br /> 设置读取GDS服务器上数据所需的ip和port信息,设置的方式是将这些信息编辑成一个文本文件,格式(示例)如下: </p> <p>[CIMISS]<br /> DNS = xxx.xxx.xxx.xxx<br /> USER_ID = xxxx<br /> PASSWORD = xxxxx </p> <p>[MICAPS]<br /> GDS_IP = xxx.xxx.xxx.xxx<br /> GDS_PORT = 8080 </p> <p>[CMADaaS]<br /> DNS = xxx.xxx.xxx.xxx<br /> PORT = 80<br /> USER_ID = xxxx<br /> PASSWORD = xxxx<br /> serviceNodeId = NMIC_MUSIC_CMADAAS </p> <p>上述信息包含两部分,第一部分是cimiss的账号信息,目前meteva暂时还没有包含从cimiss读取数据的功能,但对这块配置信息先做了预留。第二部分是读取gds服务器所需要的配置信息。该配置文件的文件格式和nmc_met_io包的格式是一致的。</p> <p><strong>参数说明:</strong><br />  <strong>filename</strong>: 存储ip和port的文件路径<br />  <strong>return</strong>:None,成功后程序会将ip,port信息赋值给一个全局变量,失败后会返回提示信息。</p> <p><strong>调用示例</strong>:</p> <pre><code class="language-python">meb.set_io_config(r&amp;quot;H:\test_data\config.ini&amp;quot;)</code></pre> <pre><code>配置文件设置成功</code></pre> <h1>从Cimiss读取站点数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_cimiss(dataCode,element,time,station = None,level = 0,dtime = 0,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从cimiss数据库中读取站点数据。以下是cimiss数据信息的截图,从中可以查询dataCode 和element参数。 <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/32efb748799e817fe594f1848d83bc06" alt="" /></p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;dataCode&lt;/font&gt;</strong></td> <td style="text-align: left;">cimiss中的站点数据的数据编码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;element&lt;/font&gt;</strong></td> <td style="text-align: left;">cimiss中的站点数据的要素代码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;time&lt;/font&gt;</strong></td> <td style="text-align: left;">数据的时间</td> </tr> <tr> <td style="text-align: left;"><strong>station</strong></td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>, 从cimiss读取到同一时刻的所有站点数据后,会按station变量里的站点顺序重新排列,文件中存在而station里不存在的站点将被删除,station里存在但文件中不存在的站点上的取值采用station里的原始值, id,lon,lat,alt共4个列的数据会采用station里的值</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,数据读取成站点数据格式时,赋给level列的值</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,数据读取成站点数据格式时,赋给dtime列的值</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">数据读取成站点数据格式时,数据列的名称</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">如果show = True,显示数据下载所用到的url,如果数据下载失败,点开该url也可以看见cimiss提供的错误反馈信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">sta = meb.read_stadata_from_cimiss(&amp;quot;SURF_CHN_MUL_HOR&amp;quot;,&amp;quot;PRS_Sea&amp;quot;,&amp;quot;20200101200000&amp;quot;,show =True) print(sta)</code></pre> <pre><code>http://10.20.76.55/cimiss-web/api?userId=NMC_YBS_liucouhua&amp;amp;pwd=20130913&amp;amp;interfaceId=getSurfEleByTime&amp;amp;dataCode=SURF_CHN_MUL_HOR&amp;amp;times=20200101200000&amp;amp;orderby=Station_Id_d&amp;amp;elements=Station_Id_d,lat,lon,PRS_Sea&amp;amp;dataFormat=json level time dtime id lon lat PRS_Sea 0 0 2020-01-01 20:00:00 0 631 37.92 102.67 1036.1 1 0 2020-01-01 20:00:00 0 631 37.92 102.67 1036.1 2 0 2020-01-01 20:00:00 0 6110 43.64 89.8 999999 3 0 2020-01-01 20:00:00 0 7129 44.85 84.7 999999 4 0 2020-01-01 20:00:00 0 9168 46.85 84.18 999999 ... ... ... ... ... ... ... ... 60956 0 2020-01-01 20:00:00 0 999999 24.86 121.43 999998 60957 0 2020-01-01 20:00:00 0 999999 23.4 121.35 999998 60958 0 2020-01-01 20:00:00 0 999999 23.81 120.84 999998 60959 0 2020-01-01 20:00:00 0 999999 24.28 121.02 999998 60960 0 2020-01-01 20:00:00 0 999999 24.55 121.22 999998 [60961 rows x 7 columns]</code></pre> <h1>从大数据云平台读取站点数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_cmadaas(dataCode,element,time,station = None,level=0,dtime=0,data_name= None,id_type = &quot;Station_Id_D&quot;,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从大数据云平台中读取站点数据。以下是云平台网页中关于数据信息的截图 <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/c2c7e6a7fc96151d56321ec953e3094d" alt="" /></p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;dataCode&lt;/font&gt;</strong></td> <td style="text-align: left;">大数据云平台中的站点数据的数据编码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;element&lt;/font&gt;</strong></td> <td style="text-align: left;">大数据云平台中的站点数据的要素代码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;time&lt;/font&gt;</strong></td> <td style="text-align: left;">数据的时间</td> </tr> <tr> <td style="text-align: left;"><strong>station</strong></td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>, 从云平台上读取到同一时刻的所有站点数据后,会按station变量里的站点顺序重新排列,文件中存在而station里不存在的站点将被删除,station里存在但文件中不存在的站点上的取值采用station里的原始值, id,lon,lat,alt共4个列的数据会采用station里的值</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,数据读取成站点数据格式时,赋给level列的值</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,数据读取成站点数据格式时,赋给dtime列的值</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">数据读取成站点数据格式时,数据列的名称</td> </tr> <tr> <td style="text-align: left;"><strong>id_type</strong></td> <td style="text-align: left;">大数据云平台上站号的数据类型,默认参数Station_Id_D表示数字站号,如果是字符型站号,则需设置为Station_Id_C</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">如果show = True,显示数据下载所用到的url,如果数据下载失败,点开该url也可以看见大数据云平台提供的错误反馈信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">sta = meb.read_stadata_from_cmadaas(&amp;quot;SURF_CHN_MUL_HOR_MAIN&amp;quot;,&amp;quot;TEM&amp;quot;,datetime.datetime(2021,2,19,8,0),show = True) print(sta)</code></pre> <pre><code>http://10.40.17.54/music-ws/api?interfaceId=getSurfEleByTime&amp;amp;dataCode=SURF_CHN_MUL_HOR_MAIN&amp;amp;elements=Datetime,Station_Id_D,Lat,Lon,TEM&amp;amp;userId=USR_LIUCOUHUA&amp;amp;times=20210219080000&amp;amp;serviceNodeId=NMIC_MUSIC_CMADAAS&amp;amp;timestamp=1613744382890&amp;amp;nonce=3696663f-d202-4570-b39d-16306f419575&amp;amp;dataFormat=json&amp;amp;sign=73C0A40DD597D479E66CFD7D505E329F level time dtime id lon lat \ 0 0 2021-02-19 08:00:00 0 666651 113.362198 37.287498 1 0 2021-02-19 08:00:00 0 713260 113.216400 23.412201 2 0 2021-02-19 08:00:00 0 837290 102.163101 29.478600 3 0 2021-02-19 08:00:00 0 856041 93.868301 31.663300 4 0 2021-02-19 08:00:00 0 837891 107.118301 30.563299 ... ... ... ... ... ... ... 63754 0 2021-02-19 08:00:00 0 833778 104.700798 29.161699 63755 0 2021-02-19 08:00:00 0 684556 117.597198 36.399200 63756 0 2021-02-19 08:00:00 0 657149 106.973297 29.447800 63757 0 2021-02-19 08:00:00 0 812545 111.187500 32.193600 63758 0 2021-02-19 08:00:00 0 749505 116.021896 26.859200 SURF_CHN_MUL_HOR_MAIN 0 9.9 1 21.9 2 9999.0 3 -3.7 4 9999.0 ... ... 63754 9999.0 63755 9999.0 63756 19.5 63757 9999.0 63758 9999.0 [63759 rows x 7 columns]</code></pre> <h1>打印Micaps二进制站点数据的要素id</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;print_gds_file_values_names(filename)&lt;/font&gt;</strong><br /> 在gds格式的站点数据文件中,可能包含多个类别的要素,为了读取其中的一种要素,需要了解该要素的element_id,本函数则可以打印出文件中包含的所有要素和对应element_id,方便用户查阅。</p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据在服务器中的文件路径,或者已经下载到了本地的文件的绝对路径,程序首先判断filename是否是本地文件,如果不是则进一步判断其是否为gds服务器上的文件</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;">返回一个字典形式数据,其中关键词是要素名称,value是element_id, 同事在屏幕上打印相关结果</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = &amp;quot;SURFACE/PLOT_NATIONAL_1H/20201003220000.000&amp;quot; ele_dict = meb.print_gds_file_values_names(filename)</code></pre> <pre><code>现在天气:1601 露点温度:801 测站高度:3 测站级别:4 降水_3小时:1005 降水_6小时:1007 平均风向_2分钟:209 海平面气压:401 平均风速_2分钟:211 变压_3小时:403 变压_24小时:405 水平能见度_人工:1207 温度:601 总云量:1401 低云量:1403 云底高度:1405 变温_24小时:607</code></pre> <h1>从服务器读取Micaps二进制站点数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_gds(filename,element_id = None,station = None,level=None,time=None, dtime=None, data_name='data0',dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从micaps服务器中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据在服务器中的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>element_id</strong></td> <td style="text-align: left;">当文件中包含多个要素时,通过该参数指定具体读取的要素,它为整数形式, 要了解element_id 可选值可以先采用上面的print_gds_file_values_names函数功能</td> </tr> <tr> <td style="text-align: left;"><strong>station</strong></td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>, 从文件读取到数据后,会按station变量里的站点顺序重新排列,文件中存在而station里不存在的站点将被删除,station里存在但文件中不存在的站点上的取值采用station里的原始值, id,lon,lat,alt共4个列的数据会采用station里的值</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>drop_same_id</strong></td> <td style="text-align: left;">在一些文件中,有些站号的id是相同的,默认情况下仅保留1个站点的结果,如果drop_same_id = False时则会全部保留。</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">sta = meb.read_stadata_from_gds(filename,element_id =1401,show = True) print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0.0 2020-10-03 22:00:00 0 57345 109.616699 31.400000 2.0 1 0.0 2020-10-03 22:00:00 0 57348 109.483299 31.033300 10.0 2 0.0 2020-10-03 22:00:00 0 57349 109.866699 31.083300 10.0 3 0.0 2020-10-03 22:00:00 0 57355 110.349998 31.048300 10.0 4 0.0 2020-10-03 22:00:00 0 57358 110.966698 30.833300 0.0 ... ... ... ... ... ... ... ... 2444 0.0 2020-10-03 22:00:00 0 57329 107.849998 31.100000 10.0 2445 0.0 2020-10-03 22:00:00 0 57333 108.666702 31.950001 2.0 2446 0.0 2020-10-03 22:00:00 0 57338 108.416702 31.183300 9.0 2447 0.0 2020-10-03 22:00:00 0 57339 108.683296 30.950001 10.0 2448 0.0 2020-10-03 22:00:00 0 57343 109.533302 31.900000 0.0 [2449 rows x 7 columns]</code></pre> <h1>从文件中读取Micaps二进制站点数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_gdsfile(filename,element_id = None,station = None, level=None,time=None, dtime=None, data_name='data0',dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从micaps服务器中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">gds格式站点数据的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>element_id</strong></td> <td style="text-align: left;">当文件中包含多个要素时,通过该参数指定具体读取的要素,它为整数形式, 要了解element_id 可选值可以先采用上面的print_gds_file_values_names函数功能</td> </tr> <tr> <td style="text-align: left;"><strong>station</strong></td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>, 从文件读取到数据后,会按station变量里的站点顺序重新排列,文件中存在而station里不存在的站点将被删除,station里存在但文件中不存在的站点上的取值采用station里的原始值, id,lon,lat,alt共4个列的数据会采用station里的值</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>drop_same_id</strong></td> <td style="text-align: left;">在一些文件中,有些站号的id是相同的,默认情况下仅保留1个站点的结果,如果drop_same_id = False时则会全部保留。</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\gds_stadata.000&amp;quot; # 从micasp服务器上下载的站点数据文件,文件格式未做改变。 meb.print_gds_file_values_names(filename) # 打印文件中的要素内容 </code></pre> <pre><code>测站高度:3 测站级别:4 降水_3小时:1005 {'测站高度': 3, '测站级别': 4, '降水_3小时': 1005}</code></pre> <pre><code class="language-python">sta = meb.read_stadata_from_gdsfile(filename,element_id = 1005,show = True) print(sta) #根据上面的要素信息,选择element_id= 1005的3小时降水量进行读取</code></pre> <pre><code> level time dtime id lon lat data0 0 0.0 2020-06-10 08:00:00 0 55299 92.066704 31.483299 10.1 1 0.0 2020-06-10 08:00:00 0 57358 110.966698 30.833300 0.2 2 0.0 2020-06-10 08:00:00 0 57361 111.266701 31.883301 1.2 3 0.0 2020-06-10 08:00:00 0 57362 110.660004 31.748301 0.1 4 0.0 2020-06-10 08:00:00 0 57363 111.833298 31.799999 1.3 .. ... ... ... ... ... ... ... 634 0.0 2020-06-10 08:00:00 0 58354 120.349998 31.616699 0.3 635 0.0 2020-06-10 08:00:00 0 57333 108.666702 31.950001 2.5 636 0.0 2020-06-10 08:00:00 0 58358 120.434402 31.079700 0.9 637 0.0 2020-06-10 08:00:00 0 58359 120.616699 31.133301 0.3 638 0.0 2020-06-10 08:00:00 0 57343 109.533302 31.900000 0.2 [639 rows x 7 columns]</code></pre> <h1>读取精细化城镇预报数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_sevp(filename,element_id,level=None,time=None, data_name='data0',dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从sevp格式数据中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">sevp格式文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;element_id&lt;/font&gt;</strong></td> <td style="text-align: left;">读取数据中的第element_id列作为返回站点数据的内容</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\sevp.txt&amp;quot; element_id = meb.sevp_element_id.温度 #sevp文件中温度要素的id sta = meb.read_stadata_from_sevp(filename,element_id) print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2019-06-28 3 10141 10.04 50.00 16.5 1 0 2019-06-28 6 10141 10.04 50.00 19.4 2 0 2019-06-28 9 10141 10.04 50.00 25.1 3 0 2019-06-28 3 10147 9.59 53.38 13.0 4 0 2019-06-28 6 10147 9.59 53.38 17.0 ... ... ... ... ... ... ... ... 5654 0 2019-06-28 120 98429 121.00 14.32 29.6 5655 0 2019-06-28 132 98429 121.00 14.32 29.3 5656 0 2019-06-28 144 98429 121.00 14.32 29.0 5657 0 2019-06-28 156 98429 121.00 14.32 29.3 5658 0 2019-06-28 168 98429 121.00 14.32 30.0 [5659 rows x 7 columns]</code></pre> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\sevp.txt&amp;quot; sta = meb.read_stadata_from_sevp(filename,element_id,level = 850,time = datetime.datetime(2019,1,1,8,0),data_name = &amp;quot;temper&amp;quot;) print(sta)</code></pre> <pre><code> level time dtime id lon lat temper 0 0 2019-06-28 3 10141 10.04 50.00 16.5 1 0 2019-06-28 6 10141 10.04 50.00 19.4 2 0 2019-06-28 9 10141 10.04 50.00 25.1 3 0 2019-06-28 3 10147 9.59 53.38 13.0 4 0 2019-06-28 6 10147 9.59 53.38 17.0 ... ... ... ... ... ... ... ... 5654 0 2019-06-28 120 98429 121.00 14.32 29.6 5655 0 2019-06-28 132 98429 121.00 14.32 29.3 5656 0 2019-06-28 144 98429 121.00 14.32 29.0 5657 0 2019-06-28 156 98429 121.00 14.32 29.3 5658 0 2019-06-28 168 98429 121.00 14.32 30.0 [5659 rows x 7 columns]</code></pre> <h1>从文本文件中读取站点数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_csv(filename, columns, member_list,skiprows=0,sep = &quot;\s+&quot;,drop_same_id=False,level = None,time = None,dtime = None,dtime_units = &quot;hour&quot;,show = False,)&lt;/font&gt;</strong><br /> 从文本文件中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">csv 或txt 格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;columns&lt;/font&gt;</strong></td> <td style="text-align: left;">文件的规则数据部分,每一列的变量名称,其中涉及层次、时间、时效、站号、经度、纬度的六变量其名称必须设置为level,time,dtime,id,lon,lat,其它的数据内容的名称可以自行设置。读取后属于时空坐标的维度会被放置在前6列,其余会被视作为数据部分</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</strong></td> <td style="text-align: left;">列表,表示需要保留的数据部分, member_list 必须属于columns列表的一部分</td> </tr> <tr> <td style="text-align: left;"><strong>skiprows</strong></td> <td style="text-align: left;">规则数据前文件头的行数</td> </tr> <tr> <td style="text-align: left;"><strong>sep</strong></td> <td style="text-align: left;">文本数据的分隔符</td> </tr> <tr> <td style="text-align: left;"><strong>drop_same_id</strong></td> <td style="text-align: left;">是否删除相同站号的数据**</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <p><strong>示例1,测试数据文件如下:</strong> <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/a904fdb5d125fad46128fe1b22b2a8a8?showdoc=.jpg" alt="" /></p> <pre><code class="language-python">sta = meb.read_stadata_from_csv(r&amp;quot;H:\test_data\input\meb\read_stadata_from_csv_test.txt&amp;quot; ,columns = [&amp;quot;id&amp;quot;,&amp;quot;lon&amp;quot;,&amp;quot;lat&amp;quot;,&amp;quot;alt&amp;quot;,&amp;quot;temp_2m&amp;quot;],member_list = [&amp;quot;temp_2m&amp;quot;]) print(sta) #其中level,time,dtime 系统自动设置的默认值</code></pre> <pre><code> level time dtime id lon lat temp_2m 0 0 2099-01-01 08:00:00 0 47035 124.4 40.1 9999.00 1 0 2099-01-01 08:00:00 0 50134 121.6 53.4 15.48 2 0 2099-01-01 08:00:00 0 50136 122.5 53.0 19.92 3 0 2099-01-01 08:00:00 0 50137 122.4 53.5 19.83 4 0 2099-01-01 08:00:00 0 50241 123.9 52.7 9999.00 ... ... ... ... ... ... ... ... 2943 0 2099-01-01 08:00:00 0 896464 82.8 43.5 9999.00 2944 0 2099-01-01 08:00:00 0 897608 82.5 44.9 9999.00 2945 0 2099-01-01 08:00:00 0 898210 85.3 39.2 9999.00 2946 0 2099-01-01 08:00:00 0 898641 80.4 40.3 9999.00 2947 0 2099-01-01 08:00:00 0 899193 77.0 39.0 9999.00 [2948 rows x 7 columns]</code></pre> <pre><code class="language-python"></code></pre> <p><strong>示例2:测试数据文件如下:</strong> <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/b9496cbe2a1e93678ac6506a5baa10bb?showdoc=.jpg" alt="" /></p> <pre><code class="language-python">sta = meb.read_stadata_from_csv(r&amp;quot;H:\test_data\input\meb\read_stadata_from_csv_test2.txt&amp;quot;, columns=[&amp;quot;index&amp;quot;,&amp;quot;level&amp;quot;,&amp;quot;time&amp;quot;,&amp;quot;dtime&amp;quot;,&amp;quot;id&amp;quot;,&amp;quot;lon&amp;quot;,&amp;quot;lat&amp;quot;,&amp;quot;ob&amp;quot;,&amp;quot;ecmwf&amp;quot;,&amp;quot;grapes&amp;quot;], member_list=[&amp;quot;ob&amp;quot;,&amp;quot;ecmwf&amp;quot;],sep = &amp;quot;,&amp;quot;,skiprows=1) print(sta)</code></pre> <pre><code> level time dtime id lon lat ob ecmwf 0 0 2020-05-04 08:00:00 0 54511 116.47 39.8 0.0 1.207963 1 0 2020-05-11 08:00:00 0 54511 116.47 39.8 0.2 2.567102 2 0 2020-05-14 08:00:00 0 54511 116.47 39.8 0.0 1.041131 3 0 2020-05-18 08:00:00 0 54511 116.47 39.8 0.0 3.906674 4 0 2020-05-21 08:00:00 0 54511 116.47 39.8 0.0 1.396064 .. ... ... ... ... ... ... ... ... 287 0 2020-07-09 08:00:00 0 54511 116.47 39.8 0.0 9.182969 288 0 2020-07-13 08:00:00 0 54511 116.47 39.8 0.0 12.777467 289 0 2020-07-16 08:00:00 0 54511 116.47 39.8 3.5 9.375208 290 0 2020-07-20 08:00:00 0 54511 116.47 39.8 13.6 8.328259 291 0 2020-07-23 08:00:00 0 54511 116.47 39.8 0.1 6.704370 [292 rows x 8 columns]</code></pre> <pre><code class="language-python"></code></pre> <p><strong>示例3:测试数据文件如:</strong> <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/b07fc2d782bc8ecce8b39f37975b564e?showdoc=.jpg" alt="" /></p> <pre><code class="language-python">sta = meb.read_stadata_from_csv(r&amp;quot;H:\test_data\input\meb\read_stadata_from_csv_test3.csv&amp;quot;, columns=[&amp;quot;level&amp;quot;,&amp;quot;time&amp;quot;,&amp;quot;dtime&amp;quot;,&amp;quot;id&amp;quot;,&amp;quot;lon&amp;quot;,&amp;quot;lat&amp;quot;,&amp;quot;ob&amp;quot;,&amp;quot;ece_mon&amp;quot;,&amp;quot;correction&amp;quot;], member_list=[&amp;quot;ob&amp;quot;,&amp;quot;ece_mon&amp;quot;],sep = &amp;quot;,&amp;quot;,skiprows=1) print(sta)</code></pre> <pre><code> level time dtime id lon lat ob ece_mon 0 0 2020-05-04 08:00:00 384 45004 114.17 22.31 0.0 5.459755 1 0 2020-05-04 08:00:00 384 45005 114.17 22.30 0.0 5.432201 2 0 2020-05-04 08:00:00 384 45007 113.91 22.30 0.1 5.739068 3 0 2020-05-04 08:00:00 384 45011 113.55 22.15 1.4 5.720931 4 0 2020-05-04 08:00:00 384 45032 114.15 22.52 0.0 6.136110 5 0 2020-05-04 08:00:00 384 45035 113.98 22.47 0.0 6.093537 6 0 2020-05-04 08:00:00 384 45039 114.20 22.40 0.0 5.679669 7 0 2020-05-04 08:00:00 384 45044 114.02 22.20 0.0 5.311912 8 0 2020-05-04 08:00:00 384 45045 114.30 22.17 0.0 4.937521 9 0 2020-05-04 08:00:00 384 50136 122.51 52.97 0.0 2.081967 10 0 2020-05-04 08:00:00 384 50247 123.57 52.04 0.0 2.553758 11 0 2020-05-04 08:00:00 384 50349 124.39 51.67 0.0 2.483796 12 0 2020-05-04 08:00:00 384 50425 120.18 50.25 0.0 1.567029</code></pre> <pre><code class="language-python"></code></pre> <h1>读取micaps41闪电数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_stadata_from_micaps41_lightning(filename, column, level=0,data_name='data0', show = False,keep_millisecond = False,dtime_units = &quot;hour&quot;)&lt;/font&gt;</strong> 从micaps第41数据文件中读取站点数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">Micaps41格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;column&lt;/font&gt;</strong></td> <td style="text-align: left;">读取数据中的第column列作为返回站点数据的内容</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;"><strong>keep_millisecond</strong></td> <td style="text-align: left;">返回结果中是否保留毫秒的时间信息,默认为不保留</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a></td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">path = r&amp;quot;H:\test_data\input\meb\m41.txt&amp;quot; sta = meb.read_stadata_from_micaps41_lightning(path,column = meb.m41_element_column.归一化电流强度值) print(sta)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2008-06-24 17:11:04 0 1 114.8664 26.57132 -29.16124 1 0 2008-06-24 17:11:04 0 2 106.4083 23.33219 -51.30987 2 0 2008-06-24 17:11:05 0 3 121.0393 28.38015 -28.92107 3 0 2008-06-24 17:11:05 0 4 102.8865 25.18426 -205.69330 4 0 2008-06-24 17:11:06 0 5 110.0666 24.17627 -46.67589 5 0 2008-06-24 17:11:06 0 6 109.5917 24.25497 -31.43308</code></pre> <h1>读取Micap7台风数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_cyclone_trace(filename, id_cyclone,column=8, data_name=&quot;data0&quot;,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong> </p> <p>从micaps第7类数据文件中读取台风预报和观测数据 </p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">Micaps7格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;column&lt;/font&gt;</strong></td> <td style="text-align: left;">读取数据中的第column列作为返回站点数据的内容,缺省值column = 8对应的是风速,column也可以设置成列表的形式,以读取多列数据</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;id_cyclone&lt;/font&gt;</strong></td> <td style="text-align: left;">台风编号</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">当只读取一列数据时,可以将返回的站点数据的数据列的名称将设置为data_name</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</td> </tr> <tr> <td style="text-align: left;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;"><a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,其中lon,lat是台风的中心位置,id列设置为id_cyclone, 数据列则是文件中第7列数据</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\babj2106.dat&amp;quot; #设置台风路径文件 sta1 = meb.read_cyclone_trace(filename,id_cyclone = 2106) #缺省时读取风速数据 print(sta1)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2021-07-18 02:00:00 36 2106 130.4 24.7 25.0 1 0 2021-07-18 02:00:00 12 2106 132.0 23.3 20.0 2 0 2021-07-18 02:00:00 60 2106 127.9 25.7 33.0 3 0 2021-07-18 02:00:00 0 2106 132.5 22.2 18.0 4 0 2021-07-18 02:00:00 48 2106 129.6 25.2 30.0 ... ... ... ... ... ... ... ... 1021 0 2021-07-30 11:00:00 18 2106 120.1 39.7 15.0 1022 0 2021-07-30 14:00:00 0 2106 118.7 38.4 15.0 1023 0 2021-07-30 14:00:00 6 2106 119.6 38.8 15.0 1024 0 2021-07-30 14:00:00 12 2106 120.2 39.3 13.0 1025 0 2021-07-30 17:00:00 0 2106 119.0 38.4 15.0 [1026 rows x 7 columns]</code></pre> <pre><code class="language-python">sta1 = meb.read_cyclone_trace(filename,id_cyclone = 2106, column= meb.m7_element_column.中心气压) #指定读取台风中心气压 print(sta1)</code></pre> <pre><code> level time dtime id lon lat data0 0 0 2021-07-18 02:00:00 36 2106 130.4 24.7 985 1 0 2021-07-18 02:00:00 12 2106 132.0 23.3 995 2 0 2021-07-18 02:00:00 60 2106 127.9 25.7 975 3 0 2021-07-18 02:00:00 0 2106 132.5 22.2 998 4 0 2021-07-18 02:00:00 48 2106 129.6 25.2 980 ... ... ... ... ... ... ... ... 1021 0 2021-07-30 11:00:00 18 2106 120.1 39.7 988 1022 0 2021-07-30 14:00:00 0 2106 118.7 38.4 988 1023 0 2021-07-30 14:00:00 6 2106 119.6 38.8 988 1024 0 2021-07-30 14:00:00 12 2106 120.2 39.3 990 1025 0 2021-07-30 17:00:00 0 2106 119.0 38.4 988 [1026 rows x 7 columns]</code></pre> <pre><code class="language-python"> sta1 = meb.read_cyclone_trace(filename,id_cyclone = 2106, column= [meb.m7_element_column.中心气压, meb.m7_element_column.移向, meb.m7_element_column.移速]) #读取多列数据 print(sta1)</code></pre> <pre><code> level time dtime id lon lat 中心气压 移向 \ 0 0 2021-07-18 02:00:00 36 2106 130.4 24.7 985 999998.0 1 0 2021-07-18 02:00:00 12 2106 132.0 23.3 995 999998.0 2 0 2021-07-18 02:00:00 60 2106 127.9 25.7 975 999998.0 3 0 2021-07-18 02:00:00 0 2106 132.5 22.2 998 337.5 4 0 2021-07-18 02:00:00 48 2106 129.6 25.2 980 999998.0 ... ... ... ... ... ... ... ... ... 1021 0 2021-07-30 11:00:00 18 2106 120.1 39.7 988 999998.0 1022 0 2021-07-30 14:00:00 0 2106 118.7 38.4 988 45.0 1023 0 2021-07-30 14:00:00 6 2106 119.6 38.8 988 999998.0 1024 0 2021-07-30 14:00:00 12 2106 120.2 39.3 990 999998.0 1025 0 2021-07-30 17:00:00 0 2106 119.0 38.4 988 135.0 移速 0 999998.00 1 999998.00 2 999998.00 3 3.33 4 999998.00 ... ... 1021 999998.00 1022 3.89 1023 999998.00 1024 999998.00 1025 4.17 [1026 rows x 9 columns]</code></pre> <pre><code class="language-python">trace_ob = meb.sele_by_para(sta1,dtime = 0,member = [&amp;quot;中心气压&amp;quot;]) #提取其中定位数据部分(0时效)的气压 print(trace_ob)</code></pre> <pre><code> level time dtime id lon lat 中心气压 3 0 2021-07-18 02:00:00 0 2106 132.5 22.2 998 12 0 2021-07-18 05:00:00 0 2106 132.5 22.4 998 18 0 2021-07-18 08:00:00 0 2106 132.4 22.5 998 27 0 2021-07-18 14:00:00 0 2106 132.3 22.7 995 36 0 2021-07-18 17:00:00 0 2106 132.3 23.0 995 ... ... ... ... ... ... ... ... 1009 0 2021-07-30 05:00:00 0 2106 117.8 38.6 988 1012 0 2021-07-30 08:00:00 0 2106 118.2 38.8 988 1018 0 2021-07-30 11:00:00 0 2106 118.2 38.8 988 1022 0 2021-07-30 14:00:00 0 2106 118.7 38.4 988 1025 0 2021-07-30 17:00:00 0 2106 119.0 38.4 988 [203 rows x 7 columns]</code></pre>

页面列表

ITEM_HTML