custom自定义数据
<p>[TOC]</p>
<h1>拆分自定义地面stda至metdig缓存目录</h1>
<p>拆分自定义地面stda至metdig缓存目录接口代码示例如下:</p>
<pre><code class="language-python">split_stda_to_cache_sfc(stda, var_name, data_name='custom', var_units='', is_overwrite=True, **attrs_kwargs)</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">xarray</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">stda格式数据</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">数据要素名</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_units</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">数据对应的单位。默认不给定单位即传进来的stda数据为标准格式,自动赋予stda标准单位属性。如给定单位则进行单位转换</td>
</tr>
<tr>
<td style="text-align: left;">is_overwrite</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">是否重写,默认重写覆盖</td>
</tr>
<tr>
<td style="text-align: left;"><code>**attrs_kwargs</code></td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
import metdig
import xarray as xr
import glob
#转换数据为STDA
cma_version = 'z_cma-gfs_v40'
init_time = datetime.datetime(2021,9,17,12)
cma_files_psfc=glob(r'\\10.28.19.90\CMA-GFS-update/{0:}/{1:%Y%m%d%H}_*_ps.nc'.format(cma_version,init_time))
psfc_cma_raw = xr.open_mfdataset(cma_files_psfc)['PRES_surface']
psfc_cma_raw = psfc_cma_raw.drop('time').assign_coords({'time':list(range(0,85,12))}).rename({'time':'dtime'})
psfc_cma_stda = metdig.utl.xrda_to_gridstda(
psfc_cma_raw,lon_dim='longitude',lat_dim='latitude',dtime_dim='dtime',
level=[2],member=['cma'],time=[init_time],var_name='psfc',np_input_units='hPa')
#导入到metdig缓存
metdig.io.custom.split_stda_to_cache_sfc(psfc_cma_stda,var_name='psfc',data_name='cma',is_overwrite=False)
</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>拆分自定义高空stda至metdig缓存目录</h1>
<p>拆分自定义高空stda至metdig缓存目录接口代码示例如下:</p>
<pre><code class="language-python">split_stda_to_cache_psl(stda, var_name, data_name='custom', var_units='', is_overwrite=True, **attrs_kwargs)</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">xarray</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">stda格式数据</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">数据要素名</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_units</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">数据对应的单位。默认不给定单位即传进来的stda数据为标准格式,自动赋予stda标准单位属性。如给定单位则进行单位转换</td>
</tr>
<tr>
<td style="text-align: left;">is_overwrite</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">是否重写,默认重写覆盖</td>
</tr>
<tr>
<td style="text-align: left;"><code>**attrs_kwargs</code></td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
import metdig
import xarray as xr
import glob
#转换数据为STDA
cma_version = 'z_cma-gfs_v40'
init_time = datetime.datetime(2021,9,17,12)
cma_files_h500=glob(r'\\10.28.19.90\CMA-GFS-update/{0:}/{1:%Y%m%d%H}_*_h500.nc'.format(cma_version,init_time))
h500_cma_raw = xr.open_mfdataset(cma_files_h500)['HGT_500mb']
h500_cma_raw = h500_cma_raw.drop('time').assign_coords({'time':list(range(0,85,12))}).rename({'time':'dtime'})
hgt_cma_stda = metdig.utl.xrda_to_gridstda(
h500_cma_raw,lon_dim='longitude',lat_dim='latitude',dtime_dim='dtime',
level=[500],member=['cma'],time=[init_time],var_name='hgt',np_input_units='m')
#导入到metdig缓存
metdig.io.custom.split_stda_to_cache_psl(hgt_cma_stda,var_name='hgt',data_name='cma',is_overwrite=True)
</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>读取单层单时次模式网格数据</h1>
<p>单层单时次模式网格数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_grid(init_time=None, fhour=None, data_name='custom', var_name=None, level=None,extent=None, x_percent=0, y_percent=0)</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">init_time</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">datetime</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">起报时间</td>
</tr>
<tr>
<td style="text-align: left;">fhour</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">int32</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">预报时效</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">数据要素名</td>
</tr>
<tr>
<td style="text-align: left;">level</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int32</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">层次,None代表地面层</td>
</tr>
<tr>
<td style="text-align: left;">extent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">tuple</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">裁剪区域,如(50, 150, 0, 65)</td>
</tr>
<tr>
<td style="text-align: left;">x_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</td>
<td style="text-align: left;">根据裁剪区域经度方向扩充百分比</td>
</tr>
<tr>
<td style="text-align: left;">y_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>读取单层多时次模式网格数据</h1>
<p>单层多时次数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_grids(init_time=None, fhours=None, data_name='custom', var_name=None, level=None, extent=None, x_percent=0, y_percent=0)</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">init_time</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">datetime</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">起报时间</td>
</tr>
<tr>
<td style="text-align: left;">fhours</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">预报时效</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">数据要素名</td>
</tr>
<tr>
<td style="text-align: left;">level</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int32</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">层次,None代表地面层</td>
</tr>
<tr>
<td style="text-align: left;">extent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">tuple</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">裁剪区域,如(50, 150, 0, 65)</td>
</tr>
<tr>
<td style="text-align: left;">x_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</td>
<td style="text-align: left;">根据裁剪区域经度方向扩充百分比</td>
</tr>
<tr>
<td style="text-align: left;">y_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>读取多层单时次模式网格数据</h1>
<p>多层单时次数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_3D_grid(init_time=None, fhour=None, data_name='custom', var_name=None, levels=None, extent=None, x_percent=0, y_percent=0)</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">init_time</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">datetime</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">起报时间</td>
</tr>
<tr>
<td style="text-align: left;">fhour</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">int32</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">预报时效</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">数据要素名</td>
</tr>
<tr>
<td style="text-align: left;">levels</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">层次,None代表地面层</td>
</tr>
<tr>
<td style="text-align: left;">extent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">tuple</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">裁剪区域,如(50, 150, 0, 65)</td>
</tr>
<tr>
<td style="text-align: left;">x_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</td>
<td style="text-align: left;">根据裁剪区域经度方向扩充百分比</td>
</tr>
<tr>
<td style="text-align: left;">y_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>读取多层多时次模式网格数据</h1>
<p>多层多时次数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_3D_grids(init_time=None, fhours=None, data_name='custom', var_name=None, levels=None, extent=None, x_percent=0, y_percent=0)</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">init_time</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">datetime</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">起报时间</td>
</tr>
<tr>
<td style="text-align: left;">fhours</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">预报时效</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">数据要素名</td>
</tr>
<tr>
<td style="text-align: left;">levels</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">层次,None代表地面层</td>
</tr>
<tr>
<td style="text-align: left;">extent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">tuple</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">裁剪区域,如(50, 150, 0, 65)</td>
</tr>
<tr>
<td style="text-align: left;">x_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</td>
<td style="text-align: left;">根据裁剪区域经度方向扩充百分比</td>
</tr>
<tr>
<td style="text-align: left;">y_percent</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">number</td>
<td style="text-align: left;">0</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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
import metdig
# 测试读取自定义高空数据
data = get_model_3D_grids(
init_time=datetime.datetime(2020, 7, 20, 8), fhours=[0, 24], levels=[500, 850],
data_name='custom', var_name='hgt')
print(data)
# 测试读取自定义地面数据
data = get_model_3D_grids(
init_time=datetime.datetime(2020, 8, 8, 8), fhours=[3, 6, 9, 12],
data_name='custom', var_name='rain03')
print(data)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>读取站点数据</h1>
<p>读取单层/多层,单时效/多时效模式网格数据,并插值到站点上。接口代码示例如下:</p>
<pre><code class="language-python">get_model_points(init_time=None, fhours=None, data_name='custom', var_name=None, levels=None, points={})</code></pre>
<p><font size="4"><b>参数说明</b></font></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>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">init_time</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">datetime</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">起报时间</td>
</tr>
<tr>
<td style="text-align: left;">fhours</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">预报时效</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">custom</td>
<td style="text-align: left;">模式名</td>
</tr>
<tr>
<td style="text-align: left;">var_name</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">要素名</td>
</tr>
<tr>
<td style="text-align: left;">levels</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">list</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">层次,None代表地面层</td>
</tr>
<tr>
<td style="text-align: left;">points</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">dict</td>
<td style="text-align: left;">{}</td>
<td style="text-align: left;">站点信息,字典中必须包含经纬度{'lon':[], 'lat':[]}</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;">STDA格式数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>