stda网格数据utl_stda_grid
<p>[TOC]</p>
<h1>xarray转网格stda标准格式数据</h1>
<p><font size='4'><b>说明</b></font></p>
<p>将一个xarray数据,转换成网格stda标准格式数据</p>
<p>通过给出('member','level','time','dtime','lat','lon')在原始xrda中的维度名称,将xrda转成stda(如果不给出缺失的维度数据,默认填0)</p>
<pre><code class="language-python">xrda_to_gridstda(xrda, member_dim='member', level_dim='level', time_dim='time', dtime_dim='dtime', lat_dim='lat', lon_dim='lon',
member=None, level=None, time=None, dtime=None, lat=None, lon=None,
np_input_units='', var_name='', **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>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">xrda</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">xarray.DataArray</td>
<td style="text-align: left;">输入的DataArray</td>
</tr>
<tr>
<td style="text-align: left;">member_dim</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">xrda中代表stda的member维的名称</td>
</tr>
<tr>
<td style="text-align: left;">level_dim</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">xrda中代表stda的level维的名称</td>
</tr>
<tr>
<td style="text-align: left;">time_dim</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">xrda中代表stda的time维的名称</td>
</tr>
<tr>
<td style="text-align: left;">dtime_dim</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">xrda中代表stda的dtime维的名称</td>
</tr>
<tr>
<td style="text-align: left;">lat_dim</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">xrda中代表stda的lat维的名称</td>
</tr>
<tr>
<td style="text-align: left;">lon_dim</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">xrda中代表stda的lon维的名称</td>
</tr>
<tr>
<td style="text-align: left;">member</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">使用该参数替换xrda的member数据</td>
</tr>
<tr>
<td style="text-align: left;">level</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">使用该参数替换xrda的level数据</td>
</tr>
<tr>
<td style="text-align: left;">time</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">使用该参数替换xrda的time数据</td>
</tr>
<tr>
<td style="text-align: left;">dtime</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">使用该参数替换xrda的dtime数据</td>
</tr>
<tr>
<td style="text-align: left;">lat</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">使用该参数替换xrda的lat数据</td>
</tr>
<tr>
<td style="text-align: left;">lon</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">使用该参数替换xrda的lon数据</td>
</tr>
<tr>
<td style="text-align: left;">np_input_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>
</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>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">其他参数<code>**attrs_kwargv</code></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;">data_source</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据源</td>
</tr>
<tr>
<td style="text-align: left;">data_type</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据类型</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</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>调用示例1</b></font></p>
<pre><code class="language-python">import metdig
import xarray as xr
xrda = xr.DataArray([[271, 272, 273], [274, 275, 276]], dims=("X", "Y"), coords={"X": [10, 20], 'Y': [80, 90, 100]})
# 指定xrda中各个维度对应的stda的维度名称
stda = metdig.utl.xrda_to_gridstda(xrda, lon_dim='X', lat_dim='Y')
print(stda)</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: 3, lon: 2)>
array([[[[[[271, 274],
[272, 275],
[273, 276]]]]]])
Coordinates:
* dtime (dtime) int32 0
* time (time) int32 0
* level (level) int32 0
* member (member) int32 0
* lon (lon) int32 10 20
* lat (lat) int32 80 90 100
Attributes:
data_source: undefined stda
level_type: undefined stda
var_name: undefined stda
var_cn_name: undefined stda
var_units:
valid_time: undefined stda</code></pre>
<p><font size='4'><b>调用示例2</b></font></p>
<pre><code class="language-python">import metdig
import xarray as xr
xrda = xr.DataArray([[271, 272, 273], [274, 275, 276]], dims=("X", "Y"), coords={"X": [10, 20], 'Y': [80, 90, 100]})
# 可以指定缺失的stda维度
stda = metdig.utl.xrda_to_gridstda(xrda, lon_dim='X', lat_dim='Y', member=['cassandra'])
print(stda)</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: 3, lon: 2)>
array([[[[[[271, 274],
[272, 275],
[273, 276]]]]]])
Coordinates:
* dtime (dtime) int32 0
* time (time) int32 0
* level (level) int32 0
* member (member) <U9 'cassandra'
* lon (lon) int32 10 20
* lat (lat) int32 80 90 100
Attributes:
data_source: undefined stda
level_type: undefined stda
var_name: undefined stda
var_cn_name: undefined stda
var_units:
valid_time: undefined stda</code></pre>
<p><font size='4'><b>调用示例3</b></font></p>
<pre><code class="language-python">import metdig
import xarray as xr
xrda = xr.DataArray([[271, 272, 273], [274, 275, 276]], dims=("X", "Y"), coords={"X": [10, 20], 'Y': [80, 90, 100]})
# 可以指定stda的要素,同时给定输入单位,自动转换为stda的单位
stda = metdig.utl.xrda_to_gridstda(xrda, lon_dim='X', lat_dim='Y', member=['cassandra'], np_input_units='K', var_name='tmp')
print(stda)</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: 3, lon: 2)>
array([[[[[[-2.15, 0.85],
[-1.15, 1.85],
[-0.15, 2.85]]]]]])
Coordinates:
* dtime (dtime) int32 0
* time (time) int32 0
* level (level) int32 0
* member (member) <U9 'cassandra'
* lon (lon) int32 10 20
* lat (lat) int32 80 90 100
Attributes:
data_source:
level_type:
var_name: tmp
var_cn_name: 温度
var_units: degC
valid_time: 0</code></pre>
<h1>numpy转网格stda标准格式数据</h1>
<p><font size='4'><b>说明</b></font></p>
<p>将一个numpy数据,转换成网格stda标准格式数据</p>
<p>通过给出npda的维度信息及其维度数据,('member', 'level', 'time', 'dtime', 'lat', 'lon'),将npda转成stda(如果不给出缺失的维度数据,默认填0)</p>
<pre><code class="language-python">npda_to_gridstda(npda, dims=('lat', 'lon'),
member=None, level=None, time=None, dtime=None, lat=None, lon=None,
np_input_units='', var_name='', **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>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">npda</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">ndarray</td>
<td style="text-align: left;">numpy数据</td>
</tr>
<tr>
<td style="text-align: left;">dims</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda对应的stda的维度</td>
</tr>
<tr>
<td style="text-align: left;">member</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda的member维数据</td>
</tr>
<tr>
<td style="text-align: left;">level</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda的level维数据</td>
</tr>
<tr>
<td style="text-align: left;">time</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda的time维数据</td>
</tr>
<tr>
<td style="text-align: left;">dtime</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda的dtime维数据</td>
</tr>
<tr>
<td style="text-align: left;">lat</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda的lat维数据</td>
</tr>
<tr>
<td style="text-align: left;">lon</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">array_like</td>
<td style="text-align: left;">npda的lon维数据</td>
</tr>
<tr>
<td style="text-align: left;">np_input_units</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">np_input数据对应的单位,自动转换为能查询到的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>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">其他参数<code>**attrs_kwargv</code></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;">data_source</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据源</td>
</tr>
<tr>
<td style="text-align: left;">data_type</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据类型</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</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>调用示例1</b></font></p>
<pre><code class="language-python">import metdig
import numpy as np
npda = np.array([[271, 272, 273], [274, 275, 276]])
# 指定xrda中各个维度对应的stda的维度名称
stda = metdig.utl.npda_to_gridstda(npda, dims=('lat', 'lon'), lon=[80, 90, 100], lat=[10, 20])
print(stda)</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: 2, lon: 3)>
array([[[[[[271, 272, 273],
[274, 275, 276]]]]]])
Coordinates:
* level (level) int32 0
* dtime (dtime) int32 0
* time (time) int32 0
* member (member) int32 0
* lat (lat) int32 10 20
* lon (lon) int32 80 90 100
Attributes:
data_source: undefined stda
level_type: undefined stda
var_name: undefined stda
var_cn_name: undefined stda
var_units:
valid_time: undefined stda</code></pre>
<p><font size='4'><b>调用示例2</b></font></p>
<pre><code class="language-python">import metdig
import numpy as np
npda = np.array([[271, 272, 273], [274, 275, 276]])
# 可以指定缺失的stda维度
stda = metdig.utl.npda_to_gridstda(npda, dims=('lat', 'lon'), lon=[80, 90, 100], lat=[10, 20], member=['cassandra'])
print(stda)</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: 2, lon: 3)>
array([[[[[[271, 272, 273],
[274, 275, 276]]]]]])
Coordinates:
* level (level) int32 0
* dtime (dtime) int32 0
* time (time) int32 0
* member (member) <U9 'cassandra'
* lat (lat) int32 10 20
* lon (lon) int32 80 90 100
Attributes:
data_source: undefined stda
level_type: undefined stda
var_name: undefined stda
var_cn_name: undefined stda
var_units:
valid_time: undefined stda</code></pre>
<p><font size='4'><b>调用示例3</b></font></p>
<pre><code class="language-python">import metdig
import numpy as np
npda = np.array([[271, 272, 273], [274, 275, 276]])
# 可以指定stda的要素,同时给定输入单位,自动转换为stda的单位
stda = metdig.utl.npda_to_gridstda(npda, dims=('lat', 'lon'), lon=[80, 90, 100], lat=[10, 20], member=['cassandra'], np_input_units='K' ,var_name='tmp')
print(stda)</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: 2, lon: 3)>
array([[[[[[-2.15, -1.15, -0.15],
[ 0.85, 1.85, 2.85]]]]]])
Coordinates:
* level (level) int32 0
* dtime (dtime) int32 0
* time (time) int32 0
* member (member) <U9 'cassandra'
* lat (lat) int32 10 20
* lon (lon) int32 80 90 100
Attributes:
data_source:
level_type:
var_name: tmp
var_cn_name: 温度
var_units: degC
valid_time: 0</code></pre>
<h1>按fill_value定义一个stda数据(与a具有相同纬度信息)</h1>
<p><font size='4'><b>说明</b></font></p>
<p>返回一个和参数a具有相同维度信息的stda数据,并且均按fill_value填充该stda。</p>
<pre><code class="language-python">gridstda_full_like(a, fill_value, dtype=None, var_name='', **attrs_kwargv)</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;">a</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">stda数据</td>
</tr>
<tr>
<td style="text-align: left;">fill_value</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;"></td>
<td style="text-align: left;">scalar</td>
<td style="text-align: left;">Value to fill the new object with before returning it</td>
</tr>
<tr>
<td style="text-align: left;">dtype</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">[dtype, optional]</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">dtype of the new array. If omitted, it defaults to other.dtype</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>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">其他参数<code>**attrs_kwargv</code></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;">data_source</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据源</td>
</tr>
<tr>
<td style="text-align: left;">data_type</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据类型</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</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>
<h1>按参数levels逐层赋值定义一个stda数据(和a具有相同维度信息)</h1>
<p><font size='4'><b>说明</b></font></p>
<p>返回一个和参数a具有相同维度信息的stda数据,并且按参数levels逐层赋值。</p>
<pre><code class="language-python">gridstda_full_like_by_levels(a, levels, dtype=None, var_name='pres', **attrs_kwargv)</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;">a</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">stda数据</td>
</tr>
<tr>
<td style="text-align: left;">levels</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;"></td>
<td style="text-align: left;">type</td>
<td style="text-align: left;">层次</td>
</tr>
<tr>
<td style="text-align: left;">dtype</td>
<td style="text-align: left;"><font color='red'>是</font></td>
<td style="text-align: left;">[dtype, optional]</td>
<td style="text-align: left;">None</td>
<td style="text-align: left;">dtype of the new array. If omitted, it defaults to other.dtype</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;">'pres'</td>
<td style="text-align: left;">要素名</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">其他参数<code>**attrs_kwargv</code></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;">data_source</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据源</td>
</tr>
<tr>
<td style="text-align: left;">data_type</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</td>
<td style="text-align: left;">数据类型</td>
</tr>
<tr>
<td style="text-align: left;">data_name</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">str</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>