meteva

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


图形检验产品

<p>[TOC]</p> <pre><code class="language-python">%matplotlib inline %load_ext autoreload %autoreload 2 import meteva.method as mem import numpy as np</code></pre> <pre><code>The autoreload extension is already loaded. To reload it, use: %reload_ext autoreload</code></pre> <p><strong><em>通过随机函数生成测试数据,用于后续检验函数调用示例</em></strong></p> <pre><code class="language-python">list1 = np.random.rand(200).tolist() list1.append(2) #为了展示图像效果,增加一个离群数据点 ob = np.array(list1) #建立观测数据 fo1 = 0.1+0.8*ob+np.random.randn(201)*0.1 #在观测上加入线性变换和随机扰动作为预报 fo2 = np.array([fo1-0.4,fo1-0.3,fo1-0.2,fo1-0.1,fo1+0.1,fo1+0.2,fo1+0.3,fo1+0.4]) #构造一个比ob多一维的数组存储多家预报 fo_name_list = [&amp;quot;ECMWF&amp;quot;,&amp;quot;NCEP&amp;quot;,&amp;quot;T639&amp;quot;,&amp;quot;SCMOC&amp;quot;,&amp;quot;GRAPES&amp;quot;,&amp;quot;GRAPES_MESO&amp;quot;,&amp;quot;GRAPES-3KM&amp;quot;,&amp;quot;SHANGHAI&amp;quot;]</code></pre> <h1>散点回归图</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;scatter_regress(ob, fo,member_list = None, rtype=&quot;linear&quot;,vmax = None,vmin = None,ncol = None, save_path=None,show = False,dpi = 300, title=&quot;散点回归图&quot;,sup_fontsize = 10,width = None,height = None)&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;ob&lt;/font&gt;</strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;fo&lt;/font&gt;</strong></td> <td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</strong></td> <td style="text-align: left;">预报成员的名称列表</td> </tr> <tr> <td style="text-align: left;"><strong>rtype</strong></td> <td style="text-align: left;">绘制类型,默认为linear,还可以选择rate,选择rate时,会采用Y=AX函数进行拟合获得参数A</td> </tr> <tr> <td style="text-align: left;"><strong>vmax</strong></td> <td style="text-align: left;">绘图窗口y轴方向最大值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td> </tr> <tr> <td style="text-align: left;"><strong>vmin</strong></td> <td style="text-align: left;">绘图窗口y轴方向最小值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td> </tr> <tr> <td style="text-align: left;"><strong>ncol</strong></td> <td style="text-align: left;">subplot的列数,缺省时程序自动设置</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 和save_dir 为都None时,程序内部会自动将show设置True</td> </tr> <tr> <td style="text-align: left;"><strong>dpi</strong></td> <td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td> </tr> <tr> <td style="text-align: left;"><strong>title</strong></td> <td style="text-align: left;">图片标题,缺省时 为“散点回归图”</td> </tr> <tr> <td style="text-align: left;"><strong>sup_fontsize</strong></td> <td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize × 0.9, 坐标刻度的字体大小 = sup_fontsize × 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>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</strong></td> <td style="text-align: left;">无返回结果</td> </tr> </tbody> </table> <p><strong>调用示例:</strong></p> <pre><code class="language-python">mem.scatter_regress(ob,fo1,member_list =[&amp;quot;EC&amp;quot;]) #传入预报数据和观测数据shape一致的情况 #图中散点颜色表现的是散点附近的密度,散点越密集颜色越偏红,反之则偏蓝</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d4fa07c056fb8ba3081c617d63bbe390" alt="" /></p> <pre><code class="language-python">mem.scatter_regress(ob,fo2[0:4,:],member_list = fo_name_list[0:4]) #传入的预报比观测高出一维的情况</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=49846873ffa9206af32e15e0c8f82e35" alt="" /></p> <pre><code class="language-python">mem.scatter_regress(ob,fo2[0:4,:],member_list = fo_name_list[0:4],rtype = &amp;quot;rate&amp;quot;,ncol = 4) #回归的函数采用比例函数,设置列数为4</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=c2c5dc650b9b7a74261aba0be85df5c3" alt="" /></p> <h1>频率关系图</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;pdf_plot(ob, fo, member_list = None,vmax = None,vmin = None,save_path=None, show = False,dpi = 300,title=&quot;频率匹配检验&quot;,sup_fontsize = 10,width = None,height = None,yscale = None)&lt;/font&gt;</strong> 将观测和预报值分别从小到大排序,将排序后的两组数据绘制成包含两幅子图的频率匹配关系图。第一幅子图为观测和预报的概率分布函数对比图,其横坐标为要素取值,其纵坐标是累积概率,设(x,y)为在图中绘制的线条上的点,则 y = p(变量值 &lt;=x),第二幅子图频率匹配映射关系图,横坐标为观测值,纵坐标为预报值,设(x,y)为图中线条上的点,则 p(观测值 &lt;= x) = p(预报值 &lt;= y) , 图中横坐标很纵轴标取值范围自动设为一致,并在图形中间添加了完美预报的参考线。 </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;ob&lt;/font&gt;</strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;fo&lt;/font&gt;</strong></td> <td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</strong></td> <td style="text-align: left;">预报成员的名称列表</td> </tr> <tr> <td style="text-align: left;"><strong>vmax</strong></td> <td style="text-align: left;">绘图窗口y轴方向最大值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td> </tr> <tr> <td style="text-align: left;"><strong>vmin</strong></td> <td style="text-align: left;">绘图窗口y轴方向最小值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</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 和save_dir 为都None时,程序内部会自动将show设置True</td> </tr> <tr> <td style="text-align: left;"><strong>dpi</strong></td> <td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td> </tr> <tr> <td style="text-align: left;"><strong>title</strong></td> <td style="text-align: left;">图片标题,缺省时 为“频率匹配检验图”</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>yscale</strong></td> <td style="text-align: left;">包含None,&quot;log&quot;和&quot;logit&quot;三个选项 默认值为None,y轴为线性坐标, &lt;br&gt;  当yscale = &quot;log&quot; 时,y轴采用对数形式展示概率分布函数在y=0附近的细节,这在能见度等要素的检验更合适。 &lt;br&gt;  当yscale = &quot;logit&quot; 时,y轴采用对数形式展示概率分布函数在y=1附近的细节,这在降水等要素的检验更合适</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">是否在绘图框中添加网格线</td> </tr> <tr> <td style="text-align: left;"><strong>percent</strong></td> <td style="text-align: left;">由于在极值附近的频谱匹配结果不太可靠,如果只想保留频率匹配图中较可靠的部分,可以用该参数控制,默认只[0,1]表示保留所有的样本用于统计,如果[0.05,0.95]则表示观测和预报数据数据各自排序,再各自保留5%和95%分位之间的样本用于统计</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</strong></td> <td style="text-align: left;">无返回结果</td> </tr> </tbody> </table> <p><strong>调用示例:</strong></p> <pre><code class="language-python">mem.pdf_plot(ob,fo1) #检验单个预报</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fc479d895e53eb5c2daba1a81543950a" alt="" /></p> <pre><code class="language-python">mem.pdf_plot(ob,fo1,yscale= &amp;quot;log&amp;quot;) # yscale= &amp;quot;log&amp;quot;,将0附近以对数展示</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/6b383ab3bbc9fd46fb09aea5c8b68d41" alt="" /></p> <pre><code class="language-python">mem.pdf_plot(ob,fo1,yscale= &amp;quot;logit&amp;quot;) # yscale= &amp;quot;logit&amp;quot;,将1附近以对数展示</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/cd7c6f46b410e3d0ff22eb1d9afa3c72" alt="" /></p> <pre><code class="language-python">#同时对多个预报进行对比检验,将结果输出到图片且在屏幕中打印 mem.pdf_plot(ob,fo2,member_list = fo_name_list,save_path = r&amp;quot;H:\test_data\output\method\continue\pdf.png&amp;quot;,show = True)</code></pre> <pre><code>检验结果已以图片形式保存至H:\test_data\output\method\continue\pdf.png</code></pre> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/6febbf23e790e30d2a927eda1453e19b?showdoc=.jpg" alt="" /></p> <h1>频率对比箱须图</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;box_plot_continue(ob, fo, member_list=None, vmax = None,vmin = None,save_path=None, show = False,dpi = 300,title=&quot;频率对比箱须图&quot;,sup_fontsize = 10,width = None,height = None)&lt;/font&gt;</strong><br /> 分别绘制了观测和预报的频率箱须图,横坐标为&quot;观测&quot;、&quot;预报&quot;,纵坐标为数据值, 箱须图包含了第一四分位数、中位数、第三四分位数与异常值(离群值)等不同等级。</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;ob&lt;/font&gt;</strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;fo&lt;/font&gt;</strong></td> <td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</strong></td> <td style="text-align: left;">预报成员的名称列表</td> </tr> <tr> <td style="text-align: left;"><strong>vmax</strong></td> <td style="text-align: left;">绘图窗口y轴方向最大值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td> </tr> <tr> <td style="text-align: left;"><strong>vmin</strong></td> <td style="text-align: left;">绘图窗口y轴方向最小值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</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 和save_dir 为都None时,程序内部会自动将show设置True</td> </tr> <tr> <td style="text-align: left;"><strong>dpi</strong></td> <td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td> </tr> <tr> <td style="text-align: left;"><strong>title</strong></td> <td style="text-align: left;">图片标题,缺省时 为“频率对比箱须图”</td> </tr> <tr> <td style="text-align: left;"><strong>sup_fontsize</strong></td> <td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize × 0.9, 坐标刻度的字体大小 = sup_fontsize × 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>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</strong></td> <td style="text-align: left;">无返回结果</td> </tr> </tbody> </table> <p><strong>调用示例:</strong></p> <pre><code class="language-python">mem.box_plot_continue(ob,fo2,member_list = fo_name_list, save_path =r&amp;quot;H:\test_data\output\method\continue\boxplot.png&amp;quot;,show = True)</code></pre> <pre><code>检验结果已以图片形式保存至H:\test_data\output\method\continue\boxplot.png</code></pre> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/418b5d442b34b924c81a094340bb0495?showdoc=.jpg" alt="" /></p> <h1>泰勒图</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;taylor_diagram(ob, fo,member_list=None, save_path=None,show = False,dpi = 300, title=&quot;&quot;, sup_fontsize =10,width = None,height = None)&lt;/font&gt;</strong><br /> 根据输入的观测预报数据绘制泰勒图,其中可以同时展示观测数据的标准差,预报数据的标准差,rmse,和相关系数</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;ob&lt;/font&gt;</strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;fo&lt;/font&gt;</strong></td> <td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</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 和save_dir 为都None时,程序内部会自动将show设置True</td> </tr> <tr> <td style="text-align: left;"><strong>dpi</strong></td> <td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td> </tr> <tr> <td style="text-align: left;"><strong>title</strong></td> <td style="text-align: left;">图片标题,缺省时 为“频率对比箱须图”</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>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</strong></td> <td style="text-align: left;">无返回结果</td> </tr> </tbody> </table> <p><strong>调用示例:</strong></p> <pre><code class="language-python">list1 = np.random.rand(200).tolist() list1.append(2) #为了展示图像效果,增加一个离群数据点 ob = np.array(list1)*3 #建立观测数据 fo3 =np.array([ob +0.1* np.random.randn(201), ob + np.random.randn(201) * 0.6, ob + np.random.randn(201) *0.8, ob + np.random.randn(201) * 1]) #构造一个比ob多一维的数组存储多家预报 fo_name_list = [&amp;quot;ECMWF&amp;quot;,&amp;quot;NCEP&amp;quot;,&amp;quot;SCMOC&amp;quot;,&amp;quot;GRAPES&amp;quot;]</code></pre> <pre><code class="language-python">mem.taylor_diagram(ob,fo3,member_list = fo_name_list)</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/06e2f55945ea1361a097399c9426c7a7" alt="" /></p> <p>以上面的图为例,对泰勒图形样式说明如下:</p> <ul> <li>该图形的基本坐标是极坐标系,其中半径r代表观测或预报数据自身的标准差。</li> <li>蓝色圆点以及圆弧对应的半径代表的是个观测数据自身的标准差,其它颜色的点对应预报。</li> <li>圆弧角度代表预报和观测的相关系数,但两种关系不是线性的,具体相关系数值可根据图中蓝色射线(点划线)以及最外圈圆弧上的刻度值来确定</li> <li>绿色圆弧线(虚线)代表围绕观测数据的同心圆,它的半径代表预报数据的rmse</li> </ul> <pre><code class="language-python"></code></pre> <h1>降水量随强度的变化图</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt; accumulation_change_with_strength(ob,fo,member_list = None,save_path=None, show = False,dpi = 300,title=&quot;降水量随强度变化图&quot;, sup_fontsize = 14,width = None,height = None,log_y = False,max_x = None)&lt;/font&gt;</strong><br /> 根据输入的观测预报数据绘累计降水量随降水强度(逐1mm间隔)的变化</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;ob&lt;/font&gt;</strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;fo&lt;/font&gt;</strong></td> <td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</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 和save_dir 为都None时,程序内部会自动将show设置True</td> </tr> <tr> <td style="text-align: left;"><strong>dpi</strong></td> <td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td> </tr> <tr> <td style="text-align: left;"><strong>title</strong></td> <td style="text-align: left;">图片标题,缺省时 为“降水量随强度变化图”</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>log_y</strong></td> <td style="text-align: left;">y轴是否采用对数坐标</td> </tr> <tr> <td style="text-align: left;"><strong>max_x</strong></td> <td style="text-align: left;">该参数不为None时,X轴坐标保留[0,max_x]的范围</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</strong></td> <td style="text-align: left;">(n+1)×m的矩阵,其中n为预报种类数,m为最大降水量(保留整数),第一列为观测的统计值,第二列开始为预报的统计值序列</td> </tr> </tbody> </table> <p><strong>调用示例:</strong></p> <pre><code class="language-python">path = r&amp;quot;H:\test_data\input\mem\rain01.h5&amp;quot; rain01 = pd.read_hdf(path) print(rain01)</code></pre> <pre><code> level time dtime id lon lat ob RUC 122326 0 2022-05-06 08:00:00 1 57909 105.82 24.98 0.0 0.0 122338 0 2022-05-06 08:00:00 1 57927 107.18 24.97 0.0 0.0 122345 0 2022-05-06 08:00:00 1 57949 110.00 24.98 0.0 0.0 122758 0 2022-05-06 08:00:00 1 59001 105.33 24.78 0.0 0.0 122759 0 2022-05-06 08:00:00 1 59004 105.10 24.50 0.0 0.0 ... ... ... ... ... ... ... ... ... 788374 0 2022-05-17 20:00:00 24 59673 112.77 21.73 0.0 0.0 788375 0 2022-05-17 20:00:00 24 59750 110.07 20.97 0.0 0.0 788376 0 2022-05-17 20:00:00 24 59754 110.18 20.33 0.0 0.0 788377 0 2022-05-17 20:00:00 24 59757 110.37 20.00 0.0 0.0 788378 0 2022-05-17 20:00:00 24 59758 110.25 20.00 0.0 0.0 [104832 rows x 8 columns]</code></pre> <pre><code class="language-python">ob = rain01[&amp;quot;ob&amp;quot;].values fo = rain01[&amp;quot;RUC&amp;quot;].values</code></pre> <pre><code class="language-python">result = mem.accumulation_change_with_strenght(ob,fo,log_y = True)</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=dc7b48c0d8c50588275a5bbf6af75289" alt="" /></p> <pre><code class="language-python">print(result.shape)</code></pre> <pre><code>(2, 97)</code></pre> <h1>降水频次随强度的变化图</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt; frequency_change_with_strength(ob,fo,member_list = None,save_path=None, show = False,dpi = 300,title=&quot;降水频次随强度变化图&quot;, sup_fontsize = 14,width = None,height = None,log_y = False,max_x = None,color_list = None,linestyle = None,smooth = None)&lt;/font&gt;</strong><br /> 根据输入的观测预报数据绘累计降水频次随降水强度(逐1mm间隔)的变化</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;ob&lt;/font&gt;</strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size=5&gt;fo&lt;/font&gt;</strong></td> <td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong>member_list</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 和save_dir 为都None时,程序内部会自动将show设置True</td> </tr> <tr> <td style="text-align: left;"><strong>dpi</strong></td> <td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td> </tr> <tr> <td style="text-align: left;"><strong>title</strong></td> <td style="text-align: left;">图片标题,缺省时 为“降水量随强度变化图”</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>log_y</strong></td> <td style="text-align: left;">y轴是否采用对数坐标</td> </tr> <tr> <td style="text-align: left;"><strong>max_x</strong></td> <td style="text-align: left;">该参数不为None时,X轴坐标保留[0,max_x]的范围</td> </tr> <tr> <td style="text-align: left;"><strong>color_list</strong></td> <td style="text-align: left;">每根折线的颜色</td> </tr> <tr> <td style="text-align: left;"><strong>linestyle</strong></td> <td style="text-align: left;">每根折线的线型</td> </tr> <tr> <td style="text-align: left;"><strong>smooth</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;return&lt;/font&gt;</strong></td> <td style="text-align: left;">(n+1)×m的矩阵,其中n为预报种类数,m为最大降水量(保留整数),第一列为观测的统计值,第二列开始为预报的统计值序列</td> </tr> </tbody> </table> <p><strong>调用示例:</strong></p> <pre><code class="language-python">result = mem.frequency_change_with_strenght(ob,fo,log_y = True)</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d6be276cc8dc9a1872d556402e128a20" alt="" /></p>

页面列表

ITEM_HTML