metdig

智能网格预报可视化诊断分析及权重推荐系统


多维插值interpolate

<p>[TOC]</p> <h1>空气质点追踪算法</h1> <p>气压坐标下的空气质点追踪算法,代码示例如下:</p> <pre><code class="language-python">trajectory_on_pressure_level(u,v,vvel,var_diag=None,     s_point={'lon':[119.3,119.31],'lat':[32.4,32.41],'level':[925,900],'id':[1,2]},     t_s=None,t_e=None,dt=1800)</code></pre> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;参数说明&lt;/b&gt;&lt;/font&gt;</p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">u</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">标准u风</td> </tr> <tr> <td style="text-align: left;">v</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">标准v风</td> </tr> <tr> <td style="text-align: left;">vvel</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">气压垂直速度</td> </tr> <tr> <td style="text-align: left;">var_diag</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;否&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">任意stda标准格式的诊断量,如spfh、rh等</td> </tr> <tr> <td style="text-align: left;">s_point</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;否&lt;/font&gt;</td> <td style="text-align: left;">dict</td> <td style="text-align: left;">质点起始位置经纬度和气压,如果用户没有给定id,则自动生成连续数字</td> </tr> <tr> <td style="text-align: left;">t_s</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;否&lt;/font&gt;</td> <td style="text-align: left;">datetime</td> <td style="text-align: left;">起始时间,如未给定,则为u的预报时间的起始时间</td> </tr> <tr> <td style="text-align: left;">t_e</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;否&lt;/font&gt;</td> <td style="text-align: left;">datetime</td> <td style="text-align: left;">终止时间如未给定,则为u的预报时间的终止时间</td> </tr> <tr> <td style="text-align: left;">dt</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;否&lt;/font&gt;</td> <td style="text-align: left;">int</td> <td style="text-align: left;">追踪时间步长 单位为s</td> </tr> <tr> </tr> </tbody> </table> <table> <thead> <tr> <th style="text-align: left;">返回值</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">stda</td> <td style="text-align: left;">质点追踪路径</td> </tr> </tbody> </table> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;调用示例&lt;/b&gt;&lt;/font&gt;</p> <pre><code class="language-python"> s_point = {'lon':[117,118],'lat':[30,31],'level':[850,925],'id':[1,2]} # 质点位置 dt = -900 # 追踪时间步长 单位为s trajectories=metdig.cal.interpolate.trajectory_on_pressure_level(u,v,vvel,s_point=s_point, dt=dt) print(trajectories)</code></pre> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;输出信息&lt;/b&gt;&lt;/font&gt;</p> <pre><code class="language-python"> id dtime time lon lat level ecmwf 0 1 0 2024-06-29 08:00:00 117.000000 30.000000 850.000000 0.908648 1 1 0 2024-06-29 08:00:00 116.855541 29.843701 841.822172 0.501046 2 1 0 2024-06-29 07:45:00 116.714630 29.699228 837.312757 0.181864 3 1 0 2024-06-29 07:30:00 116.577017 29.560265 835.675983 -0.109585 4 1 0 2024-06-29 07:15:00 116.439444 29.428769 836.662250 0.018218 .. .. ... ... ... ... ... ... 285 2 0 2024-06-26 09:00:00 120.304955 13.399990 674.007377 0.130443 286 2 0 2024-06-26 08:45:00 120.389834 13.371585 672.833394 0.177753 287 2 0 2024-06-26 08:30:00 120.474463 13.343211 671.233615 0.197987 288 2 0 2024-06-26 08:15:00 120.559171 13.314675 669.451735 0.111416 289 2 0 2024-06-26 08:00:00 120.643930 13.285462 668.448994 -0.011209</code></pre> <h1>interpolate_3d</h1> <p>利用位势高度,站点高度,和各层模式数据进行三维不规则点插值,获取初步订正的山地地形站点预报,对输入点的范围进行自动切割循环,以控制输入三维插值方法的数据范围,达到加速的效果,代码示例如下:</p> <pre><code class="language-python">interpolate_3d(stda, hgt, points, stda_sfc=None, psfc=None,if_split=None)</code></pre> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;参数说明&lt;/b&gt;&lt;/font&gt;</p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">stda</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">被插值的要素</td> </tr> <tr> <td style="text-align: left;">hgt</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">模式位势高度</td> </tr> <tr> <td style="text-align: left;">points</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">'lon':[110],'lat':[30],'alt':[1000]</td> <td style="text-align: left;">被插值站点的经度,维度,高度</td> </tr> <tr> <td style="text-align: left;">stda_sfc</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">可选量,stda的对应地面量,当站点高度低于hgt中对应位置高度最小值,则直接用stda_sfc中的线性插值结果</td> </tr> <tr> <td style="text-align: left;">psfc</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">当psfc&lt;stda的等压面,则为模式地下部分,赋值nan,如果此时stda_sfc不为None,则为其线性插值结果</td> </tr> <tr> <td style="text-align: left;">if_split</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">None or int</td> <td style="text-align: left;">是否采用站点数据范围拆分方法加速多维插值</td> </tr> </tbody> </table> <table> <thead> <tr> <th style="text-align: left;">返回值</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">stda</td> <td style="text-align: left;">被插值后的站点数据,超出给定范围复制nan</td> </tr> </tbody> </table> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;调用示例&lt;/b&gt;&lt;/font&gt;</p> <pre><code class="language-python"></code></pre> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;输出信息&lt;/b&gt;&lt;/font&gt;</p> <pre><code class="language-python"></code></pre> <h1>interpolate_3d_whole_area</h1> <p>利用位势高度,站点高度,和各层模式数据进行三维不规则点插值,获取初步订正的山地地形站点预报,该方法对全区域进行直接三维插值,对于范围较大的数据运行效率会很慢,代码示例如下:</p> <pre><code class="language-python">interpolate_3d_whole_area(stda, hgt, points, stda_sfc=None, psfc=None)</code></pre> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;参数说明&lt;/b&gt;&lt;/font&gt;</p> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">stda</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">被插值的要素</td> </tr> <tr> <td style="text-align: left;">hgt</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">模式位势高度</td> </tr> <tr> <td style="text-align: left;">points</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">'lon':[110],'lat':[30],'alt':[1000]</td> <td style="text-align: left;">被插值站点的经度,维度,高度</td> </tr> <tr> <td style="text-align: left;">stda_sfc</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">可选量,stda的对应地面量,当站点高度低于hgt中对应位置高度最小值,则直接用stda_sfc中的线性插值结果</td> </tr> <tr> <td style="text-align: left;">psfc</td> <td style="text-align: left;">&lt;font color=&quot;red&quot;&gt;是&lt;/font&gt;</td> <td style="text-align: left;">stda</td> <td style="text-align: left;">当psfc&lt;stda的等压面,则为模式地下部分,赋值nan,如果此时stda_sfc不为None,则为其线性插值结果</td> </tr> </tbody> </table> <table> <thead> <tr> <th style="text-align: left;">返回值</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">stda</td> <td style="text-align: left;">被插值后的站点数据,超出给定范围复制nan</td> </tr> </tbody> </table> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;调用示例&lt;/b&gt;&lt;/font&gt;</p> <pre><code class="language-python"></code></pre> <p>&lt;font size=&quot;4&quot;&gt;&lt;b&gt;输出信息&lt;/b&gt;&lt;/font&gt;</p> <pre><code class="language-python"></code></pre>

页面列表

ITEM_HTML