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> <p>在检验业务实践中常常要计算一种预报的准确率相对于一种基准预报的技巧,以诊断该预报的价值贡献,此类相对技巧的计算方法并不复杂,但会包含一些特殊情况的处理规则,本程序库将此类平均规则进行集成,促进不同的检验部门在计算规则上达成更强的一致性。</p> <pre><code class="language-python">ob = np.random.randn(100) ob[ob &lt; 0] = 0 #观测 fo_nmc = np.random.randn(100) fo_nmc[fo_nmc &lt; 0] = 0 #中央台预报 fo_pro = np.random.randn(100) fo_pro[fo_pro &lt; 0] = 0 #s省台预报</code></pre> <h1>晴雨预报相对技巧</h1> <p><strong><font face="黑体" color=blue size = 5>spc(pc, pc_base)</font></strong><br /> 对比计算晴雨准确率的相对技巧。其中pc_base是参考基准,例如评价省台相对于中央台预报技巧是,pc是省台预报的晴雨准确率,pc_base是中央台预报的晴雨准确率。</p> <ul> <li>当pc_base 和pc 同为1 时返回0 </li> <li>当只有pc_base=1 时,pc&lt;1 时,返回 -999999</li> <li>其它情况返回 (pc - pc_base) / (1 - pc_base)</li> </ul> <p><strong>参数说明:</strong><br />  pc: 晴雨准确率<br />  pc_base:晴雨准确率,技巧评价的参考基准<br />  return: 和pc的shape一致的数值或数组,其中元素为负无穷到正无穷的实数,取值越大代表技巧越高<br /> <strong>调用示例:</strong></p> <pre><code class="language-python">pc_nmc = mem.pc_of_sun_rain(ob,fo_nmc) pc_pro = mem.pc_of_sun_rain(ob,fo_pro) mem.pc_skill(pc_pro,pc_nmc)</code></pre> <pre><code>0.04255319148936174</code></pre> <h1>Ts评分相对技巧</h1> <p><strong><font face="黑体" color=blue size = 5>sts(ts, ts_base)</font></strong><br /> 对比计算ts评分的相对技巧。其中ts_base是参考基准,例如评价省台相对于中央台预报技巧是,ts是省台预报的TS评分,ts_base是中央台预报的TS评分。 </p> <ul> <li>当ts_base 和ts 同为1 时返回0 </li> <li>当只有ts_base=1 时,ts&lt;1 时,返回 -999999 </li> <li>其它情况返回 (ts - ts_base) / (1 - ts_base) </li> </ul> <p>对比计算Ts评分的相对技巧 ts_skill = (ts - ts_base) / (1 - ts_base),当ts_base和ts 同为1 时返回0,当只有ts_base=1 时,返回缺省值。 </p> <p><strong>参数说明:</strong><br />  ts: ts评分<br />  ts_base: ts评分,技巧评价的参考基准<br />  return: 和ts的shape一致的数值或数组,其中元素为负无穷到正无穷的实数,取值越大代表技巧越高<br /> <strong>调用示例:</strong></p> <pre><code class="language-python">ts_nmc = mem.ts(ob,fo_nmc) ts_pro = mem.ts(ob,fo_pro) mem.ts_skill(ts_pro,ts_nmc)</code></pre> <pre><code>0.05413832199546487</code></pre> <h1>偏差幅度相对技巧</h1> <p><strong><font face="黑体" color=blue size = 5>sbi(be,be_base)</font></strong><br /> 对比计算偏差幅度的相对技巧 bias_extend_skill = (bias_extend - bias_extend_base) / bias_extend_base,当bias_extend和bias_extend_base 同为0 时返回0,当只有bias_extend_base=0 时,返回缺省值。 </p> <p><strong>参数说明:</strong><br />  be: bias_extend评分  be_base: bias_extend评分,技巧评价的参考基准<br />  return: 和be的shape一致的数值或数组,其中元素为负无穷到正无穷的实数,取值越大代表技巧越高<br /> <strong>调用示例:</strong></p> <pre><code class="language-python">be_nmc = mem.bias_extend_linear(mem.bias(ob,fo_nmc)) # 根据ob,fo计算bias,在计算线性的偏差幅度 be_pro = mem.bias_extend_linear(mem.bias(ob,fo_pro)) mem.bias_extend_skill(be_pro,be_nmc) #计算偏差幅度的相对技巧</code></pre> <pre><code>0.7999999999999998</code></pre> <pre><code class="language-python">be_nmc = mem.bias_extend_log(mem.bias(ob,fo_nmc)) # 根据ob,fo计算bias,在计算对数的偏差幅度 be_pro = mem.bias_extend_log(mem.bias(ob,fo_pro)) mem.bias_extend_skill(be_pro,be_nmc) # 计算偏差幅度的相对技巧</code></pre> <pre><code>0.8084255322824786</code></pre> <h1>命中率相对技巧</h1> <p><strong><font face="黑体" color=blue size = 5>spo(pod,pod_base)</font></strong><br /> 对比计算命中率的相对技巧。其中pod_base是参考基准,例如评价省台相对于中央台预报技巧是,pod是省台预报的命中率,pod_base是中央台预报的命中率。</p> <ul> <li>当pod_base和pod 同为1 时返回0,</li> <li>当只有pod_base=1 时,返回-999999。</li> <li>当 pod和pod_base 同时为IV时,返回0,</li> <li>其他情况返回 (pod - pod_base)/(1-pod_base)</li> </ul> <p><strong>参数说明:</strong><br />  pod: 命中率  pod_base: 命中率,技巧评价的参考基准<br />  return: 和podr的shape一致的数值或数组,其中元素为负无穷到正无穷的实数,取值越大代表技巧越高<br /> <strong>调用示例:</strong></p> <pre><code class="language-python">pod_nmc = mem.pod(ob,fo_nmc) # 根据ob,fo计算far pod_pro = mem.pod(ob,fo_pro) mem.spo(pod_pro,pod_nmc) # 计算空报率的相对技巧</code></pre> <pre><code>0.111</code></pre> <h1>空报率相对技巧</h1> <p><strong><font face="黑体" color=blue size = 5>sfa(far,far_base)</font></strong><br /> 对比计算偏差幅度的相对技巧。其中far_base是参考基准,例如评价省台相对于中央台预报技巧是,far是省台预报的空报率,far_base是中央台预报的空报率。</p> <ul> <li>当far_base和far 同为0 时返回0,</li> <li>当只有far_base=0 时,返回-999999。</li> <li>其他情况返回 (far_base - far)/far</li> </ul> <p><strong>参数说明:</strong><br />  far: 空报率  far_base: 空报率,技巧评价的参考基准<br />  return: 和far的shape一致的数值或数组,其中元素为负无穷到正无穷的实数,取值越大代表技巧越高<br /> <strong>调用示例:</strong></p> <pre><code class="language-python">far_nmc = mem.far(ob,fo_nmc) # 根据ob,fo计算far far_pro = mem.far(ob,fo_pro) mem.sfa(far_pro,far_nmc) # 计算空报率的相对技巧</code></pre> <pre><code>0.042</code></pre> <pre><code class="language-python"></code></pre>

页面列表

ITEM_HTML