era5数据源
<p>[TOC]</p>
<p>era5数据源属性列表详见:<a href="https://www.showdoc.com.cn/metdig/6060999066114040" title="era5数据源属性列表">era5数据源属性列表</a></p>
<h1>读取单层单时次数据</h1>
<p>单层单时次数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_grid(init_time=None, var_name=None, level=None, extent=None, x_percent=0, y_percent=0, force_local=False, **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;">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;">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>
<tr>
<td style="text-align: left;">force_local</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>**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
from metdig.io.era5 import get_model_grid
init_time = datetime.datetime(2020, 8, 2, 8)
var_name = 'hgt'
level = 500
data = get_model_grid(init_time=init_time, var_name=var_name, level=level)
print(data)
print(data.attrs)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"><xarray.DataArray (member: 1, level: 1, time: 1, dtime: 1, lat: 281, lon: 441)>
array([[[[[[587.10565, 587.10565, 587.1029 , ..., 588.2762 ,
588.32196, 588.38617],
[587.1029 , 587.1029 , 587.1029 , ..., 588.28644,
588.3397 , 588.4012 ],
[587.0722 , 587.07965, 587.08246, ..., 588.2912 ,
588.35266, 588.4067 ],
...,
[554.06226, 554.06226, 554.06433, ..., 559.383 ,
559.26355, 559.13855],
[554.1995 , 554.1995 , 554.1995 , ..., 559.3066 ,
559.19183, 559.0723 ],
[554.34503, 554.33746, 554.33 , ..., 559.2096 ,
559.0976 , 558.98285]]]]]], dtype=float32)
Coordinates:
* dtime (dtime) int32 0
* time (time) datetime64[ns] 2020-08-02T08:00:00
* level (level) int32 500
* member (member) <U4 'era5'
* lon (lon) float32 50.0 50.25 50.5 50.75 ... 159.2 159.5 159.8 160.0
* lat (lat) float32 0.0 0.25 0.5 0.75 1.0 ... 69.0 69.25 69.5 69.75 70.0
Attributes:
data_source: cds
level_type: high
var_name: hgt
var_cn_name: 位势高度
var_units: dagpm
valid_time: 0
{'data_source': 'cds', 'level_type': 'high', 'var_name': 'hgt', 'var_cn_name': '位势高度', 'var_units': 'dagpm', 'valid_time': 0}</code></pre>
<h1>读取单层多时次数据</h1>
<p>单层多时次数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_grids(init_times=None, var_name=None, level=None, extent=None, x_percent=0, y_percent=0, force_local=False, **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;">init_times</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;">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;">裁剪区域</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>
<tr>
<td style="text-align: left;">force_local</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>**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"></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, var_name=None, levels=None,extent=None, x_percent=0, y_percent=0, force_local=False, **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;">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;">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>
<tr>
<td style="text-align: left;">force_local</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>**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
from metdig.io.era5 import get_model_3D_grid
init_time = datetime.datetime(2020, 8, 2, 8)
var_name = 'hgt'
levels = [500, 600]
data = get_model_3D_grid(init_time=init_time, var_name=var_name, levels=levels)
print(data)
print(data.attrs)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"><xarray.DataArray (member: 1, level: 2, time: 1, dtime: 1, lat: 281, lon: 441)>
array([[[[[[587.10565, 587.10565, 587.1029 , ..., 588.2762 ,
588.32196, 588.38617],
[587.1029 , 587.1029 , 587.1029 , ..., 588.28644,
588.3397 , 588.4012 ],
[587.0722 , 587.07965, 587.08246, ..., 588.2912 ,
588.35266, 588.4067 ],
...,
[554.06226, 554.06226, 554.06433, ..., 559.383 ,
559.26355, 559.13855],
[554.1995 , 554.1995 , 554.1995 , ..., 559.3066 ,
559.19183, 559.0723 ],
[554.34503, 554.33746, 554.33 , ..., 559.2096 ,
559.0976 , 558.98285]]]],
[[[[440.9922 , 440.99982, 440.99982, ..., 442.2444 ,
442.22916, 442.22916],
[440.99435, 441.00195, 441.00742, ..., 442.21393,
442.191 , 442.18073],
[440.97916, 440.99707, 441.00742, ..., 442.1856 ,
442.1578 , 442.14258],
...,
[415.74716, 415.7521 , 415.75974, ..., 421.9919 ,
421.8694 , 421.74472],
[415.79785, 415.80054, 415.81088, ..., 421.9641 ,
421.8438 , 421.72403],
[415.88223, 415.8795 , 415.88498, ..., 421.9309 ,
421.81332, 421.69357]]]]]], dtype=float32)
Coordinates:
* dtime (dtime) int32 0
* time (time) datetime64[ns] 2020-08-02T08:00:00
* level (level) int64 500 600
* member (member) <U4 'era5'
* lon (lon) float32 50.0 50.25 50.5 50.75 ... 159.2 159.5 159.8 160.0
* lat (lat) float32 0.0 0.25 0.5 0.75 1.0 ... 69.0 69.25 69.5 69.75 70.0
Attributes:
data_source: cds
level_type: high
var_name: hgt
var_cn_name: 位势高度
var_units: dagpm
valid_time: 0
{'data_source': 'cds', 'level_type': 'high', 'var_name': 'hgt', 'var_cn_name': '位势高度', 'var_units': 'dagpm', 'valid_time': 0}</code></pre>
<h1>读取多层多时次数据</h1>
<p>多层多时次数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_3D_grids(init_times=None, var_name=None, levels=None, extent=None, x_percent=0, y_percent=0, force_local=False, **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;">init_times</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;">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;">int32 or 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>
<tr>
<td style="text-align: left;">force_local</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>**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
from metdig.io.era5 import get_model_3D_grids
init_times = [datetime.datetime(2020, 8, 2, 8), datetime.datetime(2020, 8, 3, 8)]
var_name = 'hgt'
levels = [500, 600]
data = get_model_3D_grids(init_times=init_times, var_name=var_name, levels=levels)
print(data)
print(data.attrs)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"><xarray.DataArray (member: 1, level: 2, time: 2, dtime: 1, lat: 281, lon: 441)>
array([[[[[[587.10565, 587.10565, 587.1029 , ..., 588.2762 ,
588.32196, 588.38617],
[587.1029 , 587.1029 , 587.1029 , ..., 588.28644,
588.3397 , 588.4012 ],
[587.0722 , 587.07965, 587.08246, ..., 588.2912 ,
588.35266, 588.4067 ],
...,
[554.06226, 554.06226, 554.06433, ..., 559.383 ,
559.26355, 559.13855],
[554.1995 , 554.1995 , 554.1995 , ..., 559.3066 ,
559.19183, 559.0723 ],
[554.34503, 554.33746, 554.33 , ..., 559.2096 ,
559.0976 , 558.98285]]],
[[[587.2795 , 587.2592 , 587.24664, ..., 587.1243 ,
587.155 , 587.16766],
[587.2977 , 587.2851 , 587.2746 , ..., 587.1474 ,
587.1774 , 587.19073],
[587.31024, 587.30536, 587.2977 , ..., 587.16 ,
...
421.8694 , 421.74472],
[415.79785, 415.80054, 415.81088, ..., 421.9641 ,
421.8438 , 421.72403],
[415.88223, 415.8795 , 415.88498, ..., 421.9309 ,
421.81332, 421.69357]]],
[[[441.6446 , 441.59634, 441.54294, ..., 440.9637 ,
440.94333, 440.9331 ],
[441.6372 , 441.59122, 441.54523, ..., 440.91266,
440.89963, 440.89963],
[441.61392, 441.57812, 441.535 , ..., 440.882 ,
440.87973, 440.8945 ],
...,
[410.84653, 410.9305 , 411.01462, ..., 420.87442,
420.8029 , 420.7313 ],
[411.21393, 411.29 , 411.36667, ..., 420.64502,
420.57574, 420.50705],
[411.66534, 411.7363 , 411.80786, ..., 420.4253 ,
420.35886, 420.29297]]]]]], dtype=float32)
Coordinates:
* dtime (dtime) int32 0
* time (time) datetime64[ns] 2020-08-02T08:00:00 2020-08-03T08:00:00
* level (level) int64 500 600
* member (member) <U4 'era5'
* lon (lon) float32 50.0 50.25 50.5 50.75 ... 159.2 159.5 159.8 160.0
* lat (lat) float32 0.0 0.25 0.5 0.75 1.0 ... 69.0 69.25 69.5 69.75 70.0
Attributes:
data_source: cds
level_type: high
var_name: hgt
var_cn_name: 位势高度
var_units: dagpm
valid_time: 0
{'data_source': 'cds', 'level_type': 'high', 'var_name': 'hgt', 'var_cn_name': '位势高度', 'var_units': 'dagpm', 'valid_time': 0}</code></pre>
<h1>读取单层/多层、单时效/多时效站点数据</h1>
<p>单层/多层、单时效/多时效站点数据读取接口代码示例如下:</p>
<pre><code class="language-python">get_model_points(init_time=None, var_name=None, levels=None, points={}, **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;">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;">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;">否</td>
<td style="text-align: left;">dict</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">站点信息,字典中必须包含经纬度{'lon':[], 'lat':[]}</td>
</tr>
<tr>
<td style="text-align: left;"><code>**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
from metdig.io.era5 import get_model_points
init_time = datetime.datetime(2020, 8, 2, 8)
var_name = 'hgt'
levels = [500, 600]
points = {
'lon': [116.3833, ],
'lat': [39.9, ],
'id': ['测试站点名', ],
'city': ['测试城市', ],
'province': ['测试省', ],
}
data = get_model_points(init_time=init_time, var_name=var_name, levels=levels, points=points)
print(data)
print(data.attrs)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"> level time dtime id lon lat era5
0 500 2020-08-02 08:00:00 0 1 110 50 563.988098
1 600 2020-08-02 08:00:00 0 1 110 50 421.688629
{'data_source': 'cds', 'level_type': 'high', 'var_name': 'hgt', 'var_cn_name': '位势高度', 'var_units': 'dagpm', 'valid_time': 0, 'data_start_columns': 6}</code></pre>