空间分布对比
<p>[TOC]</p>
<pre><code class="language-python">%matplotlib inline
%load_ext autoreload
%autoreload 2
import meteva.base as meb
import meteva.product as mpd
import numpy as np
import datetime</code></pre>
<h1>预报和观测分布对比图</h1>
<p><strong><font face="黑体" color=blue size = 3>compare_sg(sta_ob,grd_fo,grade_list,cmap_sta = None,cmap_grid= None,extend = "both",save_path=None,show  = False,dpi = 200,add_county_line = False,x_y = "dtime_member",sup_fontsize = 10,
height = None,width = None,add_worldmap =False,sup_title = None,point_size = None,ts_grade = None):</font></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><font face="黑体" color=blue size = 5>sta_ob </font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grd_fo </font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中可以包含多种预报,多种起报时间和预报时效的预报</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grade_list </font></strong></td>
<td style="text-align: left;">对比图中的要素等级</td>
</tr>
<tr>
<td style="text-align: left;">cmap_sta</td>
<td style="text-align: left;">站点实况数据的cmap</td>
</tr>
<tr>
<td style="text-align: left;">cmap_grid</td>
<td style="text-align: left;">格点预报数据的cmap</td>
</tr>
<tr>
<td style="text-align: left;">extend</td>
<td style="text-align: left;">colorbar的类型,默认两头是尖的</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">控制输出输出图片的清晰度,和matplotlib参数dpi设置方式一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><strong>x_y</strong></td>
<td style="text-align: left;">当包含多个子图对比时,该参数取为dtime_member时,列向是不同时效的对比,纵向是不同预报成员的对比</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize <em> 0.9, 坐标刻度的字体大小 = sup_fontsize </em> 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_worldmap</strong></td>
<td style="text-align: left;">是否添加世界地图</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_title</strong></td>
<td style="text-align: left;">sub_plot 不为None图片中包含多个子图时起作用,sup_title可以时None,字符串或字符串列表,当取值为字符时,所有批量制作的图片会有相同的sup_title,当其为列表时,会逐一为每张图片设置sup_title</td>
</tr>
<tr>
<td style="text-align: left;"><strong>point_size</strong></td>
<td style="text-align: left;">观测散点的大小</td>
</tr>
<tr>
<td style="text-align: left;"><strong>ts_grade</strong></td>
<td style="text-align: left;">在多模式多时效对比的图形中,每个子图左下角会标注一个等级的TS评分,以便对比,Ts评分的降水等级由该参数确定,缺省时ts_grade = grade_list[0]确定</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<h2>固定实况时间的示例</h2>
<p>固定一个实况时间,对比该实况时间匹配的不同模式的不同时效的预报场</p>
<pre><code class="language-python">grd_m = meb.read_griddata_from_nc(r&quot;H:\test_data\input\meb\grd_sele_test.nc&quot;)
print(grd_m)</code></pre>
<pre><code>&lt;xarray.DataArray &#039;data0&#039; (member: 3, level: 1, time: 10, dtime: 4, lat: 81, lon: 101)&gt;
array([[[[[[ 2.59400e+00,  2.88400e+00,  1.60200e+00, ...,
             7.60000e-02,  3.21000e-01,  4.58000e-01],
           [ 4.63900e+00,  5.85900e+00,  9.62000e-01, ...,
             1.60000e-02,  2.59000e-01,  8.24000e-01],
           [ 6.62200e+00,  3.31100e+00,  1.81500e+00, ...,
             0.00000e+00,  4.50000e-02,  4.12000e-01],
           ...,
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             9.10900e+00,  1.01930e+01,  1.11390e+01],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             1.12450e+01,  1.05900e+01,  8.63600e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             7.20200e+00,  1.03300e+01,  9.93300e+00]],
          [[ 2.36050e+01,  2.25220e+01,  1.80360e+01, ...,
             6.10000e-02,  3.00000e-02,  1.50000e-02],
           [ 2.42310e+01,  2.88090e+01,  2.12860e+01, ...,
             4.60000e-02,  7.60000e-02,  1.99000e-01],
           [ 1.75020e+01,  2.56500e+01,  2.76190e+01, ...,
             7.60000e-02,  6.10000e-02,  1.38000e-01],
...
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00]],
          [[ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           ...,
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00]]]]]])
Coordinates:
  * member   (member) object &#039;ECMWF&#039; &#039;网格预报指导报&#039; &#039;国省融合预报&#039;
  * level    (level) float64 0.0
  * time     (time) datetime64[ns] 2021-07-15T20:00:00 ... 2021-07-20T08:00:00
  * dtime    (dtime) int32 24 48 72 96
  * lat      (lat) float64 30.0 30.1 30.2 30.3 30.4 ... 37.6 37.7 37.8 37.9 38.0
  * lon      (lon) float64 108.0 108.1 108.2 108.3 ... 117.7 117.8 117.9 118.0
Attributes:
    dtime_units:  hour</code></pre>
<pre><code class="language-python">rain24_ob = meb.read_stadata_from_micaps3(r&quot;H:\test_data\input\mpd\rain24h_21072108.000&quot;)
print(rain24_ob)</code></pre>
<pre><code>      level                time  dtime     id     lon    lat  data0
0         0 2021-07-21 08:00:00      0  45007  113.91  22.30   97.5
1         0 2021-07-21 08:00:00      0  45032  113.98  22.47  100.0
2         0 2021-07-21 08:00:00      0  45035  114.16  22.53   67.5
3         0 2021-07-21 08:00:00      0  45039  114.21  22.40  159.0
4         0 2021-07-21 08:00:00      0  45044  114.03  22.20   90.5
...     ...                 ...    ...    ...     ...    ...    ...
2713      0 2021-07-21 08:00:00      0  59981  112.33  16.83    1.2
2714      0 2021-07-21 08:00:00      0  59985  111.60  16.53    0.0
2715      0 2021-07-21 08:00:00      0  59993  114.22  10.21    0.0
2716      0 2021-07-21 08:00:00      0  59994  114.29   9.71    0.0
2717      0 2021-07-21 08:00:00      0  59996  114.50   9.91    0.0
[2718 rows x 7 columns]</code></pre>
<pre><code class="language-python">mpd.compare_sg(rain24_ob,grd_m, grade_list = [0.1,3,5,10,20,50],cmap_sta = &quot;Reds&quot;,cmap_grid = &quot;Blues&quot;,point_size=3,show = False,ts_grade=50)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=464393fd9ca5fd1ad3498cbc4a0c7b6f&amp;file=file.png" alt="" /></p>
<h2>固定起报时间的示例</h2>
<p>固定一个起报时间,对比不同模式的不同时效的预报场和对应实况站点数据</p>
<pre><code class="language-python">time_fo= datetime.datetime(2022,6,12,20,0)   
station = meb.read_stadata_from_micaps3(meb.station_国家站) 
station.iloc[:,-1] = meb.IV 
##读取收集观测数据
dir1 = r&quot;D:\book\test_data\input\OBS_with_noise\rain01\YYYYMMDDHH.000&quot;  
sta_list = []
for dh in range(1,13,1):
    time_ob = time_fo + datetime.timedelta(hours = dh)
    path = meb.get_path(dir1,time_ob)
    sta = meb.read_stadata_from_micaps3(path,station = station,time = time_ob,dtime = 0,data_name = &quot;OBS&quot;,show = True)
    sta_list.append(sta)
ob_rain01 = meb.concat(sta_list)  
ob_rain01 = meb.sele_by_para(ob_rain01,value=[0,300])  #保留取值合理的样本
#由逐小时降水计算逐3小时降水
ob_rain03 = meb.sum_of_sta(ob_rain01,used_coords=[&quot;time&quot;],span = 3) 
</code></pre>
<pre><code>success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061221.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061222.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061223.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061300.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061301.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061302.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061303.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061304.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061305.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061306.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061307.000
success read from D:\book\test_data\input\OBS_with_noise\rain01\2022061308.000</code></pre>
<pre><code class="language-python">dir_A = r&quot;D:\book\test_data\input\MODEL_A\ACPC\YYYYMMDD\YYMMDDHH.TTT.nc&quot;
grd_list =[]
for dh in range(0,13,3):
        path = meb.get_path(dir_A,time_fo,dh)
        grd = meb.read_griddata_from_nc(path,time = time_fo,dtime = dh,
                                        data_name = &quot;MODEL_A&quot;,show = True)
        if grd is not None:
            grd_list.append(grd)
MODEL_A_ACPC = meb.concat(grd_list)  
MODEL_A_rain03 = meb.change(MODEL_A_ACPC,used_coords=[&quot;dtime&quot;],delta=3)
</code></pre>
<pre><code>success read from D:\book\test_data\input\MODEL_A\ACPC\20220612\22061220.000.nc
success read from D:\book\test_data\input\MODEL_A\ACPC\20220612\22061220.003.nc
success read from D:\book\test_data\input\MODEL_A\ACPC\20220612\22061220.006.nc
success read from D:\book\test_data\input\MODEL_A\ACPC\20220612\22061220.009.nc
success read from D:\book\test_data\input\MODEL_A\ACPC\20220612\22061220.012.nc</code></pre>
<pre><code class="language-python">dir_B = r&quot;D:\book\test_data\input\MODEL_B\rain03\YYYYMMDD\YYMMDDHH.TTT.nc&quot;
grd_list =[]
for dh in range(0,13,3):
    path = meb.get_path(dir_B,time_fo,dh)
    grd = meb.read_griddata_from_nc(path,time = time_fo,dtime = dh,
                                    data_name = &quot;MODEL_B&quot;,show = True)
    if grd is not None:
        grd_list.append(grd)
MODEL_B_rain03 = meb.concat(grd_list)  
</code></pre>
<pre><code>D:\book\test_data\input\MODEL_B\rain03\20220612\22061220.000.nc not exists
success read from D:\book\test_data\input\MODEL_B\rain03\20220612\22061220.003.nc
success read from D:\book\test_data\input\MODEL_B\rain03\20220612\22061220.006.nc
success read from D:\book\test_data\input\MODEL_B\rain03\20220612\22061220.009.nc
success read from D:\book\test_data\input\MODEL_B\rain03\20220612\22061220.012.nc</code></pre>
<pre><code class="language-python">grd_all = meb.combine_griddata([MODEL_A_rain03,MODEL_B_rain03],dtime_list=[3,6,9,12])
print(grd_all)</code></pre>
<pre><code>&lt;xarray.DataArray &#039;data0&#039; (member: 2, level: 1, time: 1, dtime: 4, lat: 25, lon: 41)&gt;
array([[[[[[ 0. ,  0. ,  0. , ...,  0. ,  0. ,  0. ],
           [ 0.1,  0. ,  0.9, ...,  0. ,  0. ,  0. ],
           [ 0. ,  0. ,  0.1, ...,  0. ,  0. ,  0. ],
           ...,
           [ 0.1,  0.2,  0.2, ..., 10. , 12.6, 19.7],
           [ 0. ,  0.1,  0.1, ..., 20. , 25.3, 19.3],
           [ 0. ,  0. ,  0. , ...,  4.8,  5. ,  5. ]],
          [[ 0. ,  0.2,  0.1, ...,  0. ,  0. ,  0. ],
           [ 0.3,  0. ,  0. , ...,  0. ,  0. ,  0. ],
           [ 2.7,  0.6,  0.3, ...,  0. ,  0. ,  0. ],
           ...,
           [ 0. ,  0. ,  0. , ...,  0. ,  0.4,  4.2],
           [ 0. ,  0. ,  0. , ...,  0.2,  0.2,  0.4],
           [ 0. ,  0. ,  0. , ...,  0.6,  0.1,  0.2]],
          [[ 0. ,  0.3,  0. , ...,  0. ,  0. ,  0. ],
           [ 0.1,  0. ,  0. , ...,  0. ,  0. ,  0. ],
           [ 0.6,  0.6,  0. , ...,  0. ,  0. ,  0. ],
           ...,
...
           ...,
           [ 0.5,  0.5,  0.6, ...,  0.4,  0.4,  0.4],
           [ 0.2,  0.3,  0.6, ...,  0.4,  0.5,  0.6],
           [ 0. ,  0. ,  0. , ...,  0.2,  0.3,  0.5]],
          [[ 1.4,  1.2,  0.9, ...,  0. ,  0. ,  0. ],
           [ 2.7,  2.5,  1.7, ...,  0.3,  0.1,  0. ],
           [ 4.5,  4.4,  3. , ...,  1.7,  1.1,  0.4],
           ...,
           [ 0. ,  0. ,  0. , ...,  0.3,  0.4,  0.4],
           [ 0. ,  0. ,  0. , ...,  0.2,  0.2,  0.3],
           [ 0. ,  0. ,  0. , ...,  0.3,  0.4,  0.4]],
          [[ 4.7,  3.3,  2.5, ...,  0.1,  0.1,  0.1],
           [ 6.6,  5.8,  4.4, ...,  0.5,  0.4,  0.2],
           [ 9.1,  9.3,  9. , ...,  1.6,  0.9,  0.3],
           ...,
           [ 0. ,  0. ,  0. , ...,  0.4,  0.4,  0.5],
           [ 0. ,  0. ,  0. , ...,  0.5,  0.6,  0.8],
           [ 0. ,  0. ,  0. , ...,  0.7,  0.9,  1.1]]]]]])
Coordinates:
  * member   (member) &lt;U7 &#039;MODEL_A&#039; &#039;MODEL_B&#039;
  * level    (level) float64 0.0
  * time     (time) datetime64[ns] 2022-06-12T20:00:00
  * dtime    (dtime) int32 3 6 9 12
  * lat      (lat) float64 24.0 24.25 24.5 24.75 25.0 ... 29.25 29.5 29.75 30.0
  * lon      (lon) float64 110.0 110.2 110.5 110.8 ... 119.2 119.5 119.8 120.0</code></pre>
<pre><code class="language-python">print(ob_rain03)</code></pre>
<pre><code>       level                time  dtime     id     lon    lat   OBS
0          0 2022-06-12 23:00:00      0  50136  122.52  52.97  0.49
1          0 2022-06-12 23:00:00      0  50137  122.37  53.47  0.00
2          0 2022-06-12 23:00:00      0  50246  124.72  52.35  1.04
3          0 2022-06-12 23:00:00      0  50247  123.57  52.03  0.18
4          0 2022-06-12 23:00:00      0  50349  124.40  51.67  0.36
...      ...                 ...    ...    ...     ...    ...   ...
24085      0 2022-06-13 08:00:00      0  59945  109.70  18.65  0.00
24086      0 2022-06-13 08:00:00      0  59948  109.58  18.22  0.00
24087      0 2022-06-13 08:00:00      0  59951  110.33  18.80  0.00
24088      0 2022-06-13 08:00:00      0  59954  110.03  18.55  0.00
24089      0 2022-06-13 08:00:00      0  59981  112.33  16.83  0.00
[24090 rows x 7 columns]</code></pre>
<pre><code class="language-python">mpd.compare_sg(ob_rain03,grd_all,grade_list = [0.1,5,10,25,50,100,250],ts_grade=25,point_size=3)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=c52f062b27133cb716488526892680e6&amp;file=file.png" alt="" /></p>
<h1>降水预报和观测分布对比图</h1>
<p><strong><font face="黑体" color=blue size = 3>rain_sg(sta_ob,grd_fo,grade_list,save_path=None,show  = False,dpi = 200,add_county_line = False,x_y = "dtime_member",sup_fontsize = 10,height = None,width = None,add_worldmap =False,sup_title = None,point_size = None,ts_grade = None):</font></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><font face="黑体" color=blue size = 5>sta_ob </font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个时刻的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grd_fo </font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中可以包含多种预报,多种起报时间和预报时效的预报</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grade_list </font></strong></td>
<td style="text-align: left;">长度为7的列表,包含小雨、中雨、大雨、暴雨、大暴雨、特大暴雨以及一个降水上限值</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">控制输出输出图片的清晰度,和matplotlib参数dpi设置方式一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><strong>x_y</strong></td>
<td style="text-align: left;">当包含多个子图对比时,该参数取为dtime_member时,列向是不同时效的对比,纵向是不同预报成员的对比</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize <em> 0.9, 坐标刻度的字体大小 = sup_fontsize </em> 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_worldmap</strong></td>
<td style="text-align: left;">是否添加世界地图</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_title</strong></td>
<td style="text-align: left;">sub_plot 不为None图片中包含多个子图时起作用,sup_title可以时None,字符串或字符串列表,当取值为字符时,所有批量制作的图片会有相同的sup_title,当其为列表时,会逐一为每张图片设置sup_title</td>
</tr>
<tr>
<td style="text-align: left;"><strong>point_size</strong></td>
<td style="text-align: left;">观测散点的大小</td>
</tr>
<tr>
<td style="text-align: left;"><strong>ts_grade</strong></td>
<td style="text-align: left;">在多模式多时效对比的图形中,每个子图左下角会标注一个等级的TS评分,以便对比,Ts评分的降水等级由该参数确定,缺省时ts_grade = grade_list[0]确定</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">grd_m = meb.read_griddata_from_nc(r&quot;H:\test_data\input\meb\grd_sele_test.nc&quot;)
print(grd_m)</code></pre>
<pre><code>&lt;xarray.DataArray &#039;data0&#039; (member: 3, level: 1, time: 10, dtime: 4, lat: 81, lon: 101)&gt;
array([[[[[[ 2.59400e+00,  2.88400e+00,  1.60200e+00, ...,
             7.60000e-02,  3.21000e-01,  4.58000e-01],
           [ 4.63900e+00,  5.85900e+00,  9.62000e-01, ...,
             1.60000e-02,  2.59000e-01,  8.24000e-01],
           [ 6.62200e+00,  3.31100e+00,  1.81500e+00, ...,
             0.00000e+00,  4.50000e-02,  4.12000e-01],
           ...,
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             9.10900e+00,  1.01930e+01,  1.11390e+01],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             1.12450e+01,  1.05900e+01,  8.63600e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             7.20200e+00,  1.03300e+01,  9.93300e+00]],
          [[ 2.36050e+01,  2.25220e+01,  1.80360e+01, ...,
             6.10000e-02,  3.00000e-02,  1.50000e-02],
           [ 2.42310e+01,  2.88090e+01,  2.12860e+01, ...,
             4.60000e-02,  7.60000e-02,  1.99000e-01],
           [ 1.75020e+01,  2.56500e+01,  2.76190e+01, ...,
             7.60000e-02,  6.10000e-02,  1.38000e-01],
...
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00]],
          [[ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           ...,
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00],
           [ 0.00000e+00,  0.00000e+00,  0.00000e+00, ...,
             0.00000e+00,  0.00000e+00,  0.00000e+00]]]]]])
Coordinates:
  * member   (member) object &#039;ECMWF&#039; &#039;网格预报指导报&#039; &#039;国省融合预报&#039;
  * level    (level) float64 0.0
  * time     (time) datetime64[ns] 2021-07-15T20:00:00 ... 2021-07-20T08:00:00
  * dtime    (dtime) int32 24 48 72 96
  * lat      (lat) float64 30.0 30.1 30.2 30.3 30.4 ... 37.6 37.7 37.8 37.9 38.0
  * lon      (lon) float64 108.0 108.1 108.2 108.3 ... 117.7 117.8 117.9 118.0</code></pre>
<pre><code class="language-python">rain24_ob = meb.read_stadata_from_micaps3(r&quot;H:\test_data\input\mpd\rain24h_21072108.000&quot;)</code></pre>
<pre><code class="language-python">mpd.rain_sg(rain24_ob,grd_m, grade_list = [25,50,100,250,400,600,800],point_size=3,show = True,ts_grade=50)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/30bc606bc13739aeb52b54d84cf8d355" alt="" /></p>
<h1>降水预报和观测分布综合对比图</h1>
<p><strong><font face="黑体" color=blue size = 3>rain_comprehensive_sg(sta_ob,grd_fo,grade_list, save_path=None,show = False,add_county_line = False): </font></strong><br />
根据输入的站点观测数据和网格预报数据,绘制对比图 </p>
<h1>降水预报和观测分布综合对比图(中国范围)</h1>
<p><strong><font face="黑体" color=blue size = 3>rain_comprehensive_chinaland_sg(sta_ob,grd_fo,grade_list, save_path=None,show = False,add_county_line = False):</font></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><font face="黑体" color=blue size = 5>sta_ob </font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grd_fo </font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grade_list </font></strong></td>
<td style="text-align: left;">长度为7的列表,包含小雨、中雨、大雨、暴雨、大暴雨、特大暴雨以及一个降水上限值</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">#降水预报和实况的测试数据
grid0 = meb.grid([73,135,0.25],[18,55,0.25])
grd_fo = meb.read_griddata_from_micaps4(r&#039;H:\test_data\input\mpd\ec_rain24_BT19123008.024&#039;,grid = grid0)
meb.set_griddata_coords(grd_fo,gtime = [datetime.datetime(2019,12,30,8,0)],dtime_list= [24],member_list= [&quot;ECMWF&quot;])
sta = meb.read_stadata_from_micaps3(r&#039;H:\test_data\input\mpd\ob_rain24_BT19123108.000&#039;)
sta = meb.between_value_range(sta, 0, 1000)
sta_ob_rain03 = sta.copy()
meb.set_stadata_attrs(sta_ob_rain03,var_name = &quot;rain03&quot;)
sta_ob_rain24 = sta.copy()
meb.set_stadata_attrs(sta_ob_rain24,var_name = &quot;rain24&quot;)</code></pre>
<pre><code class="language-python">print(sta)  #打印降水观测数据</code></pre>
<pre><code>      level                time  dtime     id     lon    lat  data0
0         0 2019-12-31 08:00:00      0  45004  114.17  22.31    0.0
1         0 2019-12-31 08:00:00      0  45005  114.17  22.30    0.0
2         0 2019-12-31 08:00:00      0  45007  113.91  22.30    0.0
7         0 2019-12-31 08:00:00      0  45032  114.15  22.52    0.0
8         0 2019-12-31 08:00:00      0  45035  113.98  22.47    0.0
...     ...                 ...    ...    ...     ...    ...    ...
2736      0 2019-12-31 08:00:00      0  59981  112.33  16.83    0.0
2737      0 2019-12-31 08:00:00      0  59985  111.62  16.53    0.0
2738      0 2019-12-31 08:00:00      0  59993  114.22  10.21    0.4
2739      0 2019-12-31 08:00:00      0  59994  114.29   9.71    0.4
2740      0 2019-12-31 08:00:00      0  59996  114.50   9.91    0.0
[2444 rows x 7 columns]</code></pre>
<pre><code class="language-python">print(grd_fo)   #打印降水预报数据</code></pre>
<pre><code>&lt;xarray.DataArray &#039;data0&#039; (member: 1, level: 1, time: 1, dtime: 1, lat: 149, lon: 249)&gt;
array([[[[[[0. , 0. , 0. , ..., 0.2, 0.4, 0.8],
           [0. , 0. , 0. , ..., 0.4, 0.3, 1. ],
           [0. , 0. , 0. , ..., 0.5, 0.5, 0.6],
           ...,
           [0.5, 0.6, 0.7, ..., 5. , 5.9, 6.8],
           [0.4, 0.5, 0.6, ..., 6.3, 7. , 7.4],
           [0.3, 0.4, 0.4, ..., 6.2, 6.9, 8.2]]]]]])
Coordinates:
  * member   (member) &lt;U5 &#039;ECMWF&#039;
  * level    (level) float64 0.0
  * time     (time) datetime64[ns] 2019-12-30T08:00:00
  * dtime    (dtime) int32 24
  * lat      (lat) float64 18.0 18.25 18.5 18.75 19.0 ... 54.25 54.5 54.75 55.0
  * lon      (lon) float64 73.0 73.25 73.5 73.75 ... 134.2 134.5 134.8 135.0</code></pre>
<pre><code class="language-python">mpd.rain_comprehensive_chinaland_sg(sta_ob_rain03,grd_fo,grade_list = [0.1,4,13,25,60,120,500],show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/9bb82b14deba94d3728fa593a835f2ff" alt="" /></p>
<pre><code class="language-python">grid_jx = meb.grid([113,119,0.25],[24,31,0.25])
grd_fo_jx = meb.interp_gg_linear(grd_fo,grid_jx)
print(grd_fo_jx)</code></pre>
<pre><code>&lt;xarray.DataArray &#039;data0&#039; (member: 1, level: 1, time: 1, dtime: 1, lat: 29, lon: 25)&gt;
array([[[[[[ 0. ,  0. ,  0. ,  0. ,  0. ,  0.1,  0.1,  0. ,  0. ,
             0. ,  0.1,  0.8,  2. ,  6. ,  1.2,  4.9,  1.6,  3.6,
             3. ,  2.9,  4. ,  1.9,  4.4,  7.3, 13.5],
           [ 0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,
             0. ,  0. ,  0.3,  0.5,  0.8,  5.2,  3. ,  2.8,  2.5,
             5.2,  2.5,  2.2,  2.4,  3.5,  2.9,  6.1],
           [ 0.1,  0.2,  0. ,  0.1,  0. ,  0. ,  0.1,  0.1,  0. ,
             0. ,  0. ,  0.1,  0.4,  0.8,  1.1,  2.5,  3.3,  6. ,
             2.5,  9.1,  6. ,  3. ,  1.6,  3.7,  4.2],
           [ 1.5,  0.2,  0. ,  0.2,  0.1,  0.1,  0. ,  0.1,  0. ,
             0. ,  0. ,  0. ,  0.2,  0.2,  0.1,  2. ,  3.2,  4.9,
             4.7,  3.2,  3.4,  6.7,  4. ,  1.8,  1.7],
           [ 3.8,  3.8,  1.4,  0.3,  0.1,  0. ,  0.1,  0.1,  0.1,
             0.1,  0. ,  0.1,  0. ,  0.1,  0.1,  2. ,  0.2,  4.1,
             8.9,  5.7,  0.9,  1.9,  5.3,  8.4,  2.7],
           [ 2.9,  4.2,  2.4,  2.2,  2. ,  0.4,  0.7,  0.6,  0.3,
             0.2,  0.3,  0.3,  0.1,  0.1,  0.1,  0.1,  3.1,  0.4,
             1.1,  8.7,  4.1,  3.5,  2. ,  3.8,  5.5],
           [ 4. ,  1.8,  2.4,  3.7,  3.5,  1.6,  1.6,  1.5,  1.5,
             1.6,  0.7,  0.5,  0.2,  0.2,  0.2,  0.1,  0.4,  0.4,
...
             0.3,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0.1,
             0.3,  0.6,  0.8,  1.4,  2.3,  1.1,  1.8],
           [ 0. ,  0.1,  0. ,  0.2,  0.6,  1.1,  1.1,  1.4,  0.9,
             0.5,  0.1,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,
             0. ,  0.5,  0.6,  0.1,  0.4,  0.6,  0.4],
           [ 0. ,  0. ,  0. ,  0. ,  0.5,  0.2,  0.3,  0.4,  1. ,
             1.8,  0.5,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0.2,
             0.4,  0.5,  0.6,  0.8,  0.4,  0.3,  0.9],
           [ 0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0.2,
             0.5,  0.6,  1.2,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,
             0.1,  0.2,  0.5,  1.1,  0.5,  0.9,  1.5],
           [ 0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,
             0. ,  0. ,  0.4,  0.4,  0. ,  0. ,  0. ,  0. ,  0. ,
             0.1,  0.3,  0.2,  0.2,  0.3,  0.5,  0.3],
           [ 0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,
             0. ,  0. ,  0. ,  0.1,  0.6,  0.2,  0. ,  0. ,  0. ,
             0. ,  0.1,  0. ,  0. ,  0.1,  0.2,  0.1],
           [ 0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,  0. ,
             0.1,  0.2,  0.1,  0.7,  1.3,  1.1,  0.4,  0. ,  0. ,
             0. ,  0.2,  0. ,  0. ,  0. ,  0. ,  0.1]]]]]])
Coordinates:
  * member   (member) &lt;U5 &#039;ECMWF&#039;
  * level    (level) float64 0.0
  * time     (time) datetime64[ns] 2019-12-30T08:00:00
  * dtime    (dtime) int32 24
  * lat      (lat) float64 24.0 24.25 24.5 24.75 25.0 ... 30.25 30.5 30.75 31.0
  * lon      (lon) float64 113.0 113.2 113.5 113.8 ... 118.2 118.5 118.8 119.0</code></pre>
<pre><code class="language-python">mpd.rain_comprehensive_sg(sta_ob_rain03,grd_fo_jx,grade_list = [0.1,4,13,25,60,120,500],show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/4e90c0b49968cb27fc4a3676bd2cd47f" alt="" /></p>
<h2>24h降水预报和观测分布对比图</h2>
<p><strong><font face="黑体" color=blue size = 3>rain_24h_sg(sta_ob,grd_fo,save_path=None,show  = False,add_county_line = False):</font></strong><br />
根据输入的站点观测数据和网格预报数据,绘制对比图 </p>
<h2>24h降水预报和观测分布综合对比图</h2>
<p><strong><font face="黑体" color=blue size = 3>rain_24h_comprehensive_sg(sta_ob,grd_fo, save_path=None,show = False,add_county_line = False): </font></strong><br />
根据输入的站点观测数据和网格预报数据,绘制对比图 </p>
<h2>24h降水预报和观测分布综合对比图(中国范围)</h2>
<p><strong><font face="黑体" color=blue size = 3>rain_24h_comprehensive_chinaland_sg(sta_ob,grd_fo,  save_path=None,show = False,add_county_line = False):</font></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><font face="黑体" color=blue size = 5>sta_ob </font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grd_fo </font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">mpd.rain_24h_sg(sta_ob_rain24,grd_fo,r&quot;H:\test_data\output\mpd\program\rain_24h_sg.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/f9621290a7bd7869beacd7891dcb3cf8?showdoc=.jpg" alt="" /></p>
<pre><code class="language-python">mpd.rain_24h_comprehensive_sg(sta_ob_rain24,grd_fo,r&quot;H:\test_data\output\mpd\program\rain_24h_comp.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/08727fe5bbfce48970a03f6578a5b85a" alt="" /></p>
<pre><code class="language-python">mpd.rain_24h_comprehensive_chinaland_sg(sta_ob_rain24,grd_fo,r&quot;H:\test_data\output\mpd\program\rain_24h_comp_c.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/4495ee48422397011ea90163e3b772e2" alt="" /></p>
<pre><code class="language-python">mpd.rain_24h_comprehensive_sg(sta_ob_rain24,grd_fo_jx,r&quot;H:\test_data\output\mpd\program\rain_24h_jx.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/9138e71a2882e083d32bebdbad3d5167" alt="" /></p>
<h2>24h主观落区和观测分布综合对比图</h2>
<p><strong><font face="黑体" color=blue size = 3>rain_comprehensive_sl(sta_ob,m14,map_extend,grade_list,save_path=None,show = False,dpi = 200,add_county_line = False,fontsize = None):</font></strong><br />
根据输入的站点观测数据和主观落区,绘制对比图 </p>
<h2>24h主观落区和观测分布综合对比图(中国范围)</h2>
<p><strong><font face="黑体" color=blue size = 3>rain_comprehensive_chinaland_sl(sta_ob,m14,grade_list, save_path=None,show = False,dpi = 200,add_county_line = False,point_size = None,fontsize = None):</font></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><font face="黑体" color=blue size = 5>sta_ob </font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.cc/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>m14 </font></strong></td>
<td style="text-align: left;">读取micaps14文件所得的字典型变量</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>map_extend </font></strong></td>
<td style="text-align: left;">底图的范围,采用[slon,elon,slat,elat] 列表作为参数,也可也接受网格信息类变量作为地图范围的参数,注意该参数仅rain_comprehensive_sl 函数包含</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grade_list </font></strong></td>
<td style="text-align: left;">需要检验的落区等值线的等级</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">输出图片的dpi</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><strong>point_size</strong></td>
<td style="text-align: left;">散点的大小</td>
</tr>
<tr>
<td style="text-align: left;"><strong>fontsize</strong></td>
<td style="text-align: left;">等值线标注的大小</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">path = r&quot;H:\test_data\input\mpd\rr073008.024&quot;
time1 = datetime.datetime(2021,1,5,8,0)
m14 = meb.read_micaps14(path,time = time1,dtime = 24,data_name = &quot;主观落区&quot;)
station = meb.read_station(meb.station_国家站)
sta = meb.read_stadata_from_micaps3(r&quot;H:\test_data\input\mpd\ob21053108.000&quot;,station = station)
meb.set_stadata_names(sta,[&quot;rr&quot;])
sta = meb.sele_by_para(sta,value = [0,500])  
grade_list = [0.1,10,25,50,100,250,1000]  
mpd.rain_comprehensive_chinaland_sl(sta,m14,grade_list = grade_list,dpi = 300,point_size = 3,fontsize = 8)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=bc62f95290d908da2522925f13a46d1a" alt="" /></p>
<pre><code class="language-python">mpd.rain_comprehensive_sl(sta,m14,map_extend = [110,120,20,30],grade_list = grade_list)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=2ffa307771c900b40a621ea83446e017" alt="" /></p>
<h1>温度预报观测对比图(gg)</h1>
<p><strong><font face="黑体" color=blue size = 4>temper_gg(grd_ob,grd_fo,save_path = None,show = False,add_county_line = False,unit = "c",ob_name = "实况",fo_name = "预报"): </font></strong><br />
根据输入的站点观测数据和预报数据,绘制对比图 </p>
<h1>温度预报观测综合对比图(gg)</h1>
<p><strong><font face="黑体" color=blue size = 4> temper_comprehensive_gg(grd_ob,grd_fo,save_path = None,show = False,add_county_line = False,unit = "c",ob_name = "实况",fo_name = "预报"):</font></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><font face="黑体" color=blue size = 5>grd_ob</font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grd_fo</font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><strong>unit</strong></td>
<td style="text-align: left;">温度的单位,默认时温度colorbar以摄氏度作为单位,覆盖范围为-50℃到44℃,若utint = "k",则以开尔文温度作为单位,colorbar的覆盖范围为223.15k 到 317.15k</td>
</tr>
<tr>
<td style="text-align: left;"><strong>ob_name</strong></td>
<td style="text-align: left;">观测场的名称,将在左上角子图和右侧子图的标注中出现</td>
</tr>
<tr>
<td style="text-align: left;"><strong>fo_name</strong></td>
<td style="text-align: left;">预报场的名称,将在左下角子图和右侧子图的标注中出现</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">grd_fo48 = meb.read_griddata_from_nc(r&#039;H:\test_data\input\mpd\grapes_t2m_BT20020108.048.nc&#039;,
                                     grid = grid0,time = &quot;2020020108&quot;,dtime = 48,data_name = &quot;GRAPES_GFS&quot;) 
grd_fo00 = meb.read_griddata_from_nc(r&#039;H:\test_data\input\mpd\grapes_t2m_BT20020308.000.nc&#039;,
                                     grid = grid0,time = &quot;2020020308&quot;,dtime = 0,data_name = &quot;GRAPES_GFS&quot;)
mpd.temper_gg(grd_fo00,grd_fo48,r&quot;H:\test_data\output\mpd\program\temp.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/690f0add489e155b98efcfb076760317" alt="" /></p>
<pre><code class="language-python">mpd.temper_comprehensive_gg(grd_fo00,grd_fo48,r&quot;H:\test_data\output\mpd\program\temp_comp.png&quot;,show = True,
                            ob_name = &quot;分析&quot;,fo_name = &quot;零场&quot;)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/6ee09c2a2d9fc2eb319ac0a537e871d7" alt="" /></p>
<h1>温度预报观测对比图(sg)</h1>
<p><strong><font face="黑体" color=blue size = 4>temper_sg(sta_ob,grd_fo,save_path = None,show = False,add_county_line = False,unit = "c",ob_name = "观测",fo_name = "预报"): </font></strong><br />
根据输入的站点观测数据和预报数据,绘制对比图 </p>
<h1>温度预报观测综合对比图(sg)</h1>
<p><strong><font face="黑体" color=blue size = 4> temper_comprehensive_sg(sta_ob,grd_fo,save_path = None,show = False,add_county_line = False,unit = "c",ob_name = "观测",fo_name = "预报"):</font></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><font face="黑体" color=blue size = 5>sta_ob</font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.com.cn/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>grd_fo</font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><strong>unit</strong></td>
<td style="text-align: left;">温度的单位,默认时温度colorbar以摄氏度作为单位,覆盖范围为-50℃到44℃,若utint = "k",则以开尔文温度作为单位,colorbar的覆盖范围为223.15k 到 317.15k</td>
</tr>
<tr>
<td style="text-align: left;"><strong>ob_name</strong></td>
<td style="text-align: left;">观测场的名称,将在左上角子图和右侧子图的标注中出现</td>
</tr>
<tr>
<td style="text-align: left;"><strong>fo_name</strong></td>
<td style="text-align: left;">预报场的名称,将在左下角子图和右侧子图的标注中出现</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">station = meb.read_station(meb.station_国家站)
sta_fo00 = meb.interp_gs_linear(grd_fo00,station)
mpd.temper_sg(sta_fo00,grd_fo48,r&quot;H:\test_data\output\mpd\program\temp_comp_sg.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/8a9dbfa8a56e7834b6bcc1042bbe1309" alt="" /></p>
<pre><code class="language-python">mpd.temper_comprehensive_sg(sta_fo00,grd_fo48,r&quot;H:\test_data\output\mpd\program\temp_comp_sg.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/2ed74ce6f2aa4a02ff2268662265ecbd" alt="" /></p>
<h1>温度预报观测对比图(ss)</h1>
<p><strong><font face="黑体" color=blue size = 4>temper_ss(sta_ob,sta_fo,save_path = None,show = False,add_county_line = False,unit = "c",ob_name = "观测",fo_name = "预报"): </font></strong><br />
根据输入的站点观测数据和预报数据,绘制对比图 </p>
<h1>温度预报观测综合对比图(ss)</h1>
<p><strong><font face="黑体" color=blue size = 4> temper_comprehensive_ss(sta_ob,sta_fo,save_path = None,show = False,add_county_line = False,unit = "c",ob_name = "观测",fo_name = "预报"):</font></strong>
根据输入的观测数据和预报数据,绘制对比图 </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><font face="黑体" color=blue size = 5>sta_ob</font></strong></td>
<td style="text-align: left;">实况<a href="https://www.showdoc.com.cn/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>sta_fo</font></strong></td>
<td style="text-align: left;">预报<a href="https://www.showdoc.com.cn/meteva?page_id=3975600580125986">站点数据</a>,数据中只能有单个起报时刻,单个时效的数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片输出文件路径</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path  为None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>add_county_line</strong></td>
<td style="text-align: left;">绘制底图时是否添加县界</td>
</tr>
<tr>
<td style="text-align: left;"><strong>unit</strong></td>
<td style="text-align: left;">温度的单位,默认时温度colorbar以摄氏度作为单位,覆盖范围为-50℃到44℃,若utint = "k",则以开尔文温度作为单位,colorbar的覆盖范围为223.15k 到 317.15k</td>
</tr>
<tr>
<td style="text-align: left;"><strong>ob_name</strong></td>
<td style="text-align: left;">观测场的名称,将在左上角子图和右侧子图的标注中出现</td>
</tr>
<tr>
<td style="text-align: left;"><strong>fo_name</strong></td>
<td style="text-align: left;">预报场的名称,将在左下角子图和右侧子图的标注中出现</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">无返回值</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">station = meb.read_station(meb.station_国家站)
sta_fo00 = meb.interp_gs_linear(grd_fo00,station)
sta_fo48 = meb.interp_gs_linear(grd_fo48,station)
mpd.temper_ss(sta_fo00,sta_fo48,r&quot;H:\test_data\output\mpd\program\temp_comp_ss.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/53f93a88a6554f8a3ec396f829d704b4" alt="" /></p>
<pre><code class="language-python">mpd.temper_comprehensive_ss(sta_fo00,sta_fo48,r&quot;H:\test_data\output\mpd\program\temp_comp_ss.png&quot;,show = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/30650fd2ed668656591765eddc29c78e" alt="" /></p>
<pre><code class="language-python"></code></pre>