meteva

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


数值型指标——位置

<pre><code class="language-python"> import meteva.method as mem import meteva.base as meb import numpy as np</code></pre> <pre><code class="language-python">#生成算法测试数据 lon_ob = np.array([130,131,132,133]) lat_ob = np.array([30,31,32,33]) lon_fo = np.array([131,132,133,134]) lat_fo = np.array([31,32,33,34]) </code></pre> <h1>位置误差</h1> <p><strong><font face="黑体" color=blue size = 5> distance(lon_ob,lat_ob,lon_fo,lat_fo,on_earth_surface = True)</font></strong> </p> <p>计算两组位置之间的两两距离的平均。</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>lon_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>lat_ob</font></strong></td> <td style="text-align: left;">观测的纬度,numpy数组,和lon_ob的shape必须一致</td> </tr> <tr> <td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>lon_fo</font></strong></td> <td style="text-align: left;">预报的经度,numpy数组,numpy可以比lat_ob高一维(用于同时进行多家预报结果检验),lon_fo.shape低维与lat_ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>lat_fo</font></strong></td> <td style="text-align: left;">预报的纬度,numpy数组,numpy可以比lat_ob高一维(用于同时进行多家预报结果检验),lat_fo.shape低维与lat_ob.shape保持一致,和lon_fo的shape必须一致</td> </tr> <tr> <td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td> <td style="text-align: left;">位置误差的平均值,如果lat_fo和lat_ob的shape一致,说明只有一家预报,则返回实数,否则说明是在同时检验多家预报,返回结果为一维数组</td> </tr> </tbody> </table> <p><strong>调用示例:</strong> </p> <pre><code class="language-python">dis = mem.distance(lon_ob,lat_ob,lon_fo,lat_fo) print(dis)</code></pre> <pre><code>145.79061830031182</code></pre> <h1>位置误差统计中间量</h1> <p><strong><font face="黑体" color=blue size = 5> tdis(lon_ob,lat_ob,lon_fo,lat_fo,on_earth_surface = True)</font></strong> </p> <p>为方便开展并行计算,计算两组位置之间的误差的平均值统计两个中间量:样本数,位置误差总和。</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>lon_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>lat_ob</font></strong></td> <td style="text-align: left;">观测的纬度,numpy数组,和lon_ob的shape必须一致</td> </tr> <tr> <td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>lon_fo</font></strong></td> <td style="text-align: left;">预报的经度,numpy数组,numpy可以比lat_ob高一维(用于同时进行多家预报结果检验),lon_fo.shape低维与lat_ob.shape保持一致</td> </tr> <tr> <td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>lat_fo</font></strong></td> <td style="text-align: left;">预报的纬度,numpy数组,numpy可以比lat_ob高一维(用于同时进行多家预报结果检验),lat_fo.shape低维与lat_ob.shape保持一致,和lon_fo的shape必须一致</td> </tr> <tr> <td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td> <td style="text-align: left;">根据预报和观测的风向数据,统计得到的样本数、位置误差的总和,lat_fo和lat_ob的shape一致,则说明只有一家预报,此时返回一维的数据,size= 2。 如果lat_fo和lat_ob的shape不一致,则说明有多个预报,则返回的数据shape = (预报成员数,2)</td> </tr> </tbody> </table> <p><strong>调用示例:</strong> </p> <pre><code class="language-python">tdis_array = mem.tdis(lon_ob,lat_ob,lon_fo,lat_fo) print(tdis_array)</code></pre> <pre><code>[ 4. 583.1624732]</code></pre> <h1>位置误差(并行)</h1> <p><strong><font face="黑体" color=blue size = 5>distance_tdis(tdis_array)</font></strong> </p> <p>基于中间统计量计算位置误差的平均值</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>tdis_array</font></strong></td> <td style="text-align: left;">包含检验中间结果的多维数组,其中最后一维长度为2,分别记录了样本数数,位置误差的总和,它通常是tdis函数的计算结果,或者计算结果的累加</td> </tr> <tr> <td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td> <td style="text-align: left;">位置误差的平均值,nasws_array少了最后一维</td> </tr> </tbody> </table> <p><strong>调用示例:</strong> </p> <pre><code class="language-python">dis = mem.distance_tdis(tdis_array) print(dis)</code></pre> <pre><code>145.79061830031182</code></pre>

页面列表

ITEM_HTML