输出网格数据
<p>[TOC]</p>
<pre><code class="language-python">%matplotlib inline
%load_ext autoreload
%autoreload 2
import meteva.base as meb
import os</code></pre>
<h1>输出成micaps第4类文件</h1>
<p><strong><font face="黑体" color=blue size = 3>write_griddata_to_micaps4(da,save_path = "a.txt",creat_dir = False,effectiveNum = 3,show = False,title = None,inte=None,vmin=None, vmax=None)</font></strong><br />
将格点数据以micaps第4类文本格式输出</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>grd</font></strong></td>
<td style="text-align: left;">格点数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">文件输出路径,缺省值为"a.txt"</td>
</tr>
<tr>
<td style="text-align: left;"><strong>creat_dir</strong></td>
<td style="text-align: left;">当数据文件路径对应的文件夹不存在时是否新建相应的文件夹</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;"><strong>effectiveNum</strong></td>
<td style="text-align: left;">文件数据的有效位数,缺省值为3</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕上打印文件成功输出的信息</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">micaps文件头中文件描述内容,它将在micaps软件系统中显示,缺省时由系统自动根据文件路径生成</td>
</tr>
<tr>
<td style="text-align: left;"><strong>inte</strong></td>
<td style="text-align: left;">将输出的micaps文件在micaps软件中显示时的等值线线间隔</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmin</strong></td>
<td style="text-align: left;">将输出的micaps文件在micaps软件中显示时的等值线线分析起始值</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmax</strong></td>
<td style="text-align: left;">将输出的micaps文件在micaps软件中显示时的等值线线分析最大值</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">输出成功返回True,输出失败返回False</td>
</tr>
</tbody>
</table>
<p><strong>调用示例</strong></p>
<pre><code class="language-python">filename = r&quot;H:\test_data\input\meb\m4.txt&quot;
grd = meb.read_griddata_from_micaps4(filename)
print(grd)</code></pre>
<pre><code>&lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 281, lon: 361)&gt;
array([[[[[[26.99, 27.08, 27.21, ..., 21.49, 22.36, 26.96],
[27.11, 27.21, 27.02, ..., 25.55, 26.52, 25.8 ],
[27.21, 27.43, 26.77, ..., 26.83, 26.61, 26.3 ],
...,
[-0.26, -0.04, 0.3 , ..., 3.9 , 3.71, 2.93],
[ 0.21, 0.71, 1.02, ..., 5.11, 4.61, 5.99],
[ 1.02, 1.15, 1.52, ..., 7.8 , 7.15, 7.08]]]]]])
Coordinates:
* member (member) &lt;U5 'data0'
* level (level) float64 0.0
* time (time) datetime64[ns] 2019-05-17
* dtime (dtime) int32 24
* lat (lat) float64 -10.0 -9.75 -9.5 -9.25 -9.0 ... 59.25 59.5 59.75 60.0
* lon (lon) float64 60.0 60.25 60.5 60.75 ... 149.2 149.5 149.8 150.0
Attributes:
dtime_units: hour</code></pre>
<pre><code class="language-python">save_path = r&quot;H:\test_data\output\meb_new\m4.txt&quot;
meb.write_griddata_to_micaps4(grd,save_path)</code></pre>
<pre><code>True</code></pre>
<pre><code class="language-python">meb.write_griddata_to_micaps4(grd,save_path,creat_dir = True,show = True,title = &quot;测试数据&quot;)
print(&quot;输出文件的大小:&quot;+ str(os.path.getsize(save_path)))</code></pre>
<pre><code>成功输出至H:\test_data\output\meb_new\m4.txt
输出文件的大小:792717</code></pre>
<p>在上述例子中,已知了网格数据的有效位数是小数点后两位,输出时effectiveNum 采用了默认的3位的方式,这会造成额外的存储空间的浪费。如果调用函数是设定effectiveNum = 2,则可以节省相应的空间。</p>
<pre><code class="language-python">meb.write_griddata_to_micaps4(grd,save_path,effectiveNum = 2)
print(&quot;输出文件的大小:&quot;+ str(os.path.getsize(save_path)))</code></pre>
<pre><code>输出文件的大小:691284</code></pre>
<h1>输出成netcdf文件</h1>
<p><strong><font face="黑体" color=blue size = 3>write_griddata_to_nc(da,save_path = "a.txt",creat_dir = False,effectiveNum = 3,show = False)</font></strong><br />
将格点数据以nc格式输出</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>grd</font></strong></td>
<td style="text-align: left;">格点数据</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">文件输出路径,缺省值为"a.txt"</td>
</tr>
<tr>
<td style="text-align: left;"><strong>creat_dir</strong></td>
<td style="text-align: left;">当数据文件路径对应的文件夹不存在时是否新建相应的文件夹</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;"><strong>effectiveNum</strong></td>
<td style="text-align: left;">文件数据的有效位数,缺省值为3</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕上打印文件成功输出的信息</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">输出成功返回True,输出失败返回False</td>
</tr>
</tbody>
</table>
<p><strong>调用示例</strong></p>
<pre><code class="language-python">meb.write_griddata_to_nc(grd,r&quot;H:\test_data\output\meb\grd.nc&quot;,effectiveNum = 2)</code></pre>
<pre><code>True</code></pre>
<h1>将风场输出成micap第11类文件</h1>
<p><strong><font face="黑体" color=blue size = 3>write_griddata_to_micaps11(wind,save_path = "a.txt",creat_dir = False,effectiveNum = 3,show = False,title = None)</font></strong><br />
将格点数据以micaps11类格式输出</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>wind</font></strong></td>
<td style="text-align: left;">格点数据,其中member维度的size = 2</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">文件输出路径,缺省值为"a.txt"</td>
</tr>
<tr>
<td style="text-align: left;"><strong>creat_dir</strong></td>
<td style="text-align: left;">当数据文件路径对应的文件夹不存在时是否新建相应的文件夹</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;"><strong>effectiveNum</strong></td>
<td style="text-align: left;">文件数据的有效位数,缺省值为3</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕上打印文件成功输出的信息</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">micaps文件头中文件描述内容,它将在micaps软件系统中显示,缺省时由系统自动根据文件路径生成</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">输出成功返回True,输出失败返回False</td>
</tr>
</tbody>
</table>
<p><strong>调用示例</strong></p>
<pre><code class="language-python">filename = r&quot;H:\test_data\input\meb\m11.024&quot;
wind = meb.read_gridwind_from_micaps11(filename)
print(wind)</code></pre>
<pre><code>&lt;xarray.DataArray 'wind' (member: 2, level: 1, time: 1, dtime: 1, lat: 281, lon: 361)&gt;
array([[[[[[ 7.32, 6.77, 6.83, ..., 0.36, 0.58, 0.6 ],
[ 6.72, 6.78, 6.86, ..., 0.1 , -0.18, 0. ],
[ 6.5 , 6.8 , 6.52, ..., -1.4 , -1.5 , -0.86],
...,
[-4.17, -4.45, -4.73, ..., -4.47, -4.14, -3.2 ],
[-2.93, -3.29, -3.64, ..., -4.64, -4.75, -4.37],
[-1.83, -2.15, -2.53, ..., -4.87, -5.58, -6.01]]]]],
[[[[[-9.29, -9.17, -9.07, ..., 1.14, 2.05, 2.68],
[-8.98, -8.7 , -8.54, ..., 1.21, 2.46, 3.04],
[-8.48, -8.14, -8.14, ..., 1.14, 2.79, 2.55],
...,
[-1.98, -1.86, -1.76, ..., 2.05, 1.64, 1.27],
[-1.5 , -1.37, -1.29, ..., 1.57, 1.55, 1.43],
[-1.01, -0.89, -0.79, ..., 1.33, 1.6 , 1.36]]]]]])
Coordinates:
* member (member) &lt;U1 'u' 'v'
* level (level) object None
* time (time) object None
* dtime (dtime) object None
* lat (lat) float64 -10.0 -9.75 -9.5 -9.25 -9.0 ... 59.25 59.5 59.75 60.0
* lon (lon) float64 60.0 60.25 60.5 60.75 ... 149.2 149.5 149.8 150.0</code></pre>
<pre><code class="language-python">meb.write_griddata_to_micaps11(wind,r&quot;H:\test_data\output\meb\m11.txt&quot;,show = True,title = &quot;测试title&quot;)</code></pre>
<pre><code>成功输出至H:\test_data\output\meb\m11.txt
True</code></pre>
<pre><code class="language-python">meb.write_griddata_to_nc(wind,r&quot;H:\test_data\output\meb\wind.nc&quot;)</code></pre>
<pre><code>True</code></pre>
<pre><code class="language-python"></code></pre>