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> <h1>等级柱状图</h1> <p><strong><font face="黑体" color=blue size = 5>rank_histogram(ob,fo,vmax = None,save_path= None,show = False,dpi = 300,title = &quot;排序柱状图&quot;,sup_fontsize=10, width=None, height=None)</font></strong><br /> 反映集合预报的发散时候和其不确定性一致。设集合成员数为M,则对每一个观测样本,将其和M个预报构成M+1的序列从小到大排序,记录观测值在其中的排序的序号i。i的取值范围为0到M,统计所有观测样本的排序序号出现的频次占总样本数的比例,绘制成图。x轴为观测值在集合序列中的排序序号,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><font face="黑体" color=blue size = 5>ob</font></strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>fo</font></strong></td> <td style="text-align: left;">比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</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>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><font face="黑体" color=blue size=5>return</font></strong></td> <td style="text-align: left;">无返回结果</td> </tr> </tbody> </table> <pre><code class="language-python">sample_count = 1000 member_count = 50 ob = 0.003 * np.arange(sample_count) #生成一批观测样本数据 #设观测值随机出现在集合平均的周围,误差标准差为1 ensemble_mean = ob + np.random.randn(sample_count) fo = np.zeros((member_count,sample_count)) for i in range(member_count): #集合成员随机出现在集合平均的周围,集合发散标准差为0.5 fo[i,:] = ensemble_mean + np.random.randn(sample_count) * 0.5 mem.rank_histogram(ob,fo)</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/afdf6ab17caae23a20a0e9b477479958" alt="" /></p> <p>在上述示例中,集合预报的发散度小于集合预报的误差标准差,排序柱状图总体呈现U型分布。如果集合预报的发散度大于集合预报的预报标准差,排序柱状图将程序倒U型分布,如下面的示例所示:</p> <pre><code class="language-python">for i in range(member_count): #集合成员随机出现在集合平均的周围,集合发散标准差为2 fo[i,:] = ensemble_mean + np.random.randn(sample_count) * 2 mem.rank_histogram(ob,fo)</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/6a18b0ce985f5eb1643f56809399b1db" alt="" /></p> <h1>频率对比箱须图</h1> <p><strong><font face="黑体" color=blue size = 5>box_plot_ensemble(ob, fo,vmax = None,vmin = None,member_list = None, save_path=None,show = False,dpi = 300,title =&quot;频率对比箱须图&quot;,sup_fontsize=10, width=None, height=None)</font></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><font face="黑体" color=blue size = 5>ob</font></strong></td> <td style="text-align: left;">实况数据, 任意维numpy数组</td> </tr> <tr> <td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>fo</font></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>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>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 × 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><font face="黑体" color=blue size=5>return</font></strong></td> <td style="text-align: left;">无返回结果</td> </tr> </tbody> </table> <pre><code class="language-python">mem.box_plot_ensemble(ob,fo,save_path = r"H:\test_data\output\method\ensemble\box.png",show = True)</code></pre> <pre><code>检验结果已以图片形式保存至H:\test_data\output\method\ensemble\box.png</code></pre> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/f1d0c43d167c912253c57a7af32e6236?showdoc=.jpg" alt="" /></p> <pre><code class="language-python"></code></pre>

页面列表

ITEM_HTML