数值型指标——位置
<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>