meteva

提供气象产品检验相关python程序


输出网格数据

<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>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;write_griddata_to_micaps4(da,save_path = &quot;a.txt&quot;,creat_dir = False,effectiveNum = 3,show = False,title = None,inte=None,vmin=None, vmax=None)&lt;/font&gt;</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>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;grd&lt;/font&gt;</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;">文件输出路径,缺省值为&quot;a.txt&quot;</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;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;">输出成功返回True,输出失败返回False</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m4.txt&amp;quot; grd = meb.read_griddata_from_micaps4(filename) print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 281, lon: 361)&amp;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) &amp;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&amp;quot;H:\test_data\output\meb_new\m4.txt&amp;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 = &amp;quot;测试数据&amp;quot;) print(&amp;quot;输出文件的大小:&amp;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(&amp;quot;输出文件的大小:&amp;quot;+ str(os.path.getsize(save_path)))</code></pre> <pre><code>输出文件的大小:691284</code></pre> <h1>输出成netcdf文件</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;write_griddata_to_nc(da,save_path = &quot;a.txt&quot;,creat_dir = False,effectiveNum = 3,show = False)&lt;/font&gt;</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>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;grd&lt;/font&gt;</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;">文件输出路径,缺省值为&quot;a.txt&quot;</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;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</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&amp;quot;H:\test_data\output\meb\grd.nc&amp;quot;,effectiveNum = 2)</code></pre> <pre><code>True</code></pre> <h1>将风场输出成micap第11类文件</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;write_griddata_to_micaps11(wind,save_path = &quot;a.txt&quot;,creat_dir = False,effectiveNum = 3,show = False,title = None)&lt;/font&gt;</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>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;wind&lt;/font&gt;</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;">文件输出路径,缺省值为&quot;a.txt&quot;</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;">&lt;font face=&quot;黑体&quot; color=blue size=5&gt;return&lt;/font&gt;</td> <td style="text-align: left;">输出成功返回True,输出失败返回False</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\m11.024&amp;quot; wind = meb.read_gridwind_from_micaps11(filename) print(wind)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'wind' (member: 2, level: 1, time: 1, dtime: 1, lat: 281, lon: 361)&amp;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) &amp;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&amp;quot;H:\test_data\output\meb\m11.txt&amp;quot;,show = True,title = &amp;quot;测试title&amp;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&amp;quot;H:\test_data\output\meb\wind.nc&amp;quot;)</code></pre> <pre><code>True</code></pre> <pre><code class="language-python"></code></pre>

页面列表

ITEM_HTML