meteva

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


读取网格数据

<p>[TOC]</p> <pre><code class="language-python">%matplotlib inline %load_ext autoreload %autoreload 2 import meteva.base as meb import numpy as np import datetime import xarray as xr import pandas as pd</code></pre> <h1>读取micaps4文本格式数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_micaps4(filename,grid=None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">Micaps4格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;">网格数据类](<a href="https://www.showdoc.cc/meteva?page_id=3975600815874861)变量">https://www.showdoc.cc/meteva?page_id=3975600815874861)变量</a></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_type: hour</code></pre> <pre><code class="language-python">grid = meb.grid([70,140,0.25],[20,50,0.25]) print(grid) grd = meb.read_griddata_from_micaps4(filename,grid,level = 1000,time = &amp;quot;2020032308&amp;quot;,dtime = 48,data_name = &amp;quot;ec&amp;quot;,show = True) print(grd) #裁剪了部分数据,重置了层次,时间,时效和成员名称等信息</code></pre> <pre><code>members:['data0'] levels:[0] gtime:['20990101000000', '20990101000000', '1h'] dtimes:[0] glon:[70, 140.0, 0.25] glat:[20, 50.0, 0.25] success read from H:\test_data\input\meb\m4.txt &amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 121, lon: 281)&amp;gt; array([[[[[[27.99, 27.99, 27.86, ..., 27.83, 27.68, 27.77], [27.99, 27.9 , 27.83, ..., 27.55, 27.71, 27.68], [27.86, 27.74, 27.74, ..., 26.77, 27.15, 27.52], ..., [ 8.02, 7.8 , 7.43, ..., 14.18, 14.83, 13.55], [ 8.9 , 8.55, 8.24, ..., 15.18, 16.43, 13.77], [ 9.27, 9.15, 8.74, ..., 14.96, 15.3 , 14.74]]]]]]) Coordinates: * member (member) &amp;lt;U2 'ec' * level (level) int32 1000 * time (time) datetime64[ns] 2020-03-23T08:00:00 * dtime (dtime) int32 48 * lat (lat) float64 20.0 20.25 20.5 20.75 21.0 ... 49.25 49.5 49.75 50.0 * lon (lon) float64 70.0 70.25 70.5 70.75 ... 139.2 139.5 139.8 140.0</code></pre> <h1>读取netcdf数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_nc(filename,grid = None,value_name = None,member_dim = None,level_dim = None,time_dim = None,dtime_dim = None,lat_dim = None,lon_dim = None,level=None, time=None, dtime=None, data_name=&quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从netdf类数据文件中读取网格数据,但并非将nc文件中所有的内容都同时读入,而是仅只读取其中一个物理量,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">nc格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>value_name</strong></td> <td style="text-align: left;">在nc文件中,要读取的要素名称,如果value_name是None,就通过程序自动判断所要读取的要素名称,方法是排除time,latitude,longitude等时空坐标信息量之后的物理量</td> </tr> <tr> <td style="text-align: left;"><strong>member_dim</strong></td> <td style="text-align: left;">在nc文件中,代表集合成员维度的坐标量的名称, nc文件中没有集合维度,该参数可缺省。</td> </tr> <tr> <td style="text-align: left;"><strong>level_dim</strong></td> <td style="text-align: left;">在nc文件中,代表垂直层次维度的坐标量的名称, 该参数缺省时,自动以文件中名称为&quot;level&quot;的变量作为层次坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>time_dim</strong></td> <td style="text-align: left;">在nc文件中,代表时间维度的坐标量的名称,该参数缺省时,会自动以文件中名称为&quot;time&quot;的变量作为时间坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_dim</strong></td> <td style="text-align: left;">在nc文件中,代表时效维度的坐标量的名称, nc文件中没有时效维度,该参数可缺省。</td> </tr> <tr> <td style="text-align: left;"><strong>lat_dim</strong></td> <td style="text-align: left;">在nc文件中,代表经向维度的坐标量的名称,该参数缺省时,会自动以文件中名称为&quot;lat&quot;或&quot;latitude&quot;的变量作为东西向坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>lon_dim</strong></td> <td style="text-align: left;">在nc文件中,代表纬向维度的坐标量的名称,该参数缺省时,会自动以文件中名称为&quot;lon&quot;或&quot;longtitue&quot;的变量作为南北向坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,当数据文件中不包含层次维度时,返回的格点数据中level维度设置为该参数值,level=None时读取一层数据,并将level设置为0。当数据文件中包含层次时,level可以用来指定所需要读取的数据的层次,level 为实数时表示取一层的数据,level为实数的列表时,表示取多层数据,level为None时读取所有层数据</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,当数据文件中不包含时效维度时,返回的格点数据中dtime维度设置为该参数值,dtime = None时读取一个时效数据,并将dtime设置为0。当数据文件中包含时效维度时,dtime可以用来指定所需要读取的数据的时效,dtime 为实数时表示取单个时效的数据,dtime为实数的列表时,表示取多个时效的数据,dtime = None时读取所有时效数据</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">filename = r&amp;quot;H:\test_data\input\meb\ecfine.I2021040600.000.F2021040600.nc&amp;quot; dataarray = xr.open_dataset(filename) #通过xarray程序库读取nc文件中的所有内容 print(dataarray)</code></pre> <pre><code>&amp;lt;xarray.Dataset&amp;gt; Dimensions: (latP: 281, latS: 561, lev: 15, lonP: 361, lonS: 721, time: 1) Coordinates: * lonS (lonS) float32 60.0 60.12 60.25 60.38 ... 149.6 149.8 149.9 150.0 * latS (latS) float32 60.0 59.88 59.75 59.62 ... -9.625 -9.75 -9.875 -10.0 * lonP (lonP) float32 60.0 60.25 60.5 60.75 ... 149.2 149.5 149.8 150.0 * latP (latP) float32 60.0 59.75 59.5 59.25 ... -9.25 -9.5 -9.75 -10.0 * lev (lev) int32 1000 950 925 900 850 700 600 ... 300 250 200 150 100 50 * time (time) datetime64[ns] 2021-04-06 Data variables: vis (time, latS, lonS) float32 ... deg0l (time, latS, lonS) float32 ... tmax3 (time, latS, lonS) float32 ... tmin3 (time, latS, lonS) float32 ... fg310 (time, latS, lonS) float32 ... sst (time, latS, lonS) float32 ... capes (time, latS, lonS) float32 ... cape (time, latS, lonS) float32 ... tmax6 (time, latS, lonS) float32 ... tmin6 (time, latS, lonS) float32 ... fg610 (time, latS, lonS) float32 ... t (time, lev, latP, lonP) float32 ... u (time, lev, latP, lonP) float32 ... v (time, lev, latP, lonP) float32 ... q (time, lev, latP, lonP) float32 ... w (time, lev, latP, lonP) float32 ... tcw (time, latS, lonS) float32 ... tcwv (time, latS, lonS) float32 ... sd (time, latS, lonS) float32 ... lsp (time, latS, lonS) float32 ... cp (time, latS, lonS) float32 ... sf (time, latS, lonS) float32 ... slp (time, latS, lonS) float32 ... h (time, lev, latP, lonP) float32 ... r (time, lev, latP, lonP) float32 ... tcc (time, latS, lonS) float32 ... u10 (time, latS, lonS) float32 ... v10 (time, latS, lonS) float32 ... t2 (time, latS, lonS) float32 ... d2 (time, latS, lonS) float32 ... lcc (time, latS, lonS) float32 ... tp (time, latS, lonS) float32 ... skt (time, latS, lonS) float32 ... u100 (time, latS, lonS) float32 ... v100 (time, latS, lonS) float32 ... Attributes: Description: This is ECMWF fine grid operational forecasting, converted ... Author: SunZhang @ Zhejiang Observatory (sunzhang@mail.iap.ac.cn) CreateTime: 2021-04-06 14:50:08 &amp;lt;xarray.DataArray 'vis' (member: 1, level: 1, time: 1, dtime: 1, lat: 561, lon: 721)&amp;gt; array([[[[[[3296.8723, 3174.1738, 2727.7896, ..., 3387.065 , 2285.526 , 2393.5737], [2733.7415, 2905.8855, 3129.7644, ..., 4492.724 , 2878.4158, 2340.4656], [3100.4634, 2963.5723, 3054.6802, ..., 2554.272 , 1034.7344, 823.6748], ..., [3459.4019, 3520.2935, 3518.92 , ..., 3042.3188, 3263.4507, 3278.559 ], [3550.0522, 3647.5703, 3644.3652, ..., 2948.9216, 3384.776 , 3521.209 ], [3461.2334, 3456.1973, 3567.45 , ..., 3415.9082, 3399.4263, 3491.4502]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 0 * time (time) datetime64[ns] 2021-04-06 * dtime (dtime) int32 0 * lat (lat) float32 -10.0 -9.875 -9.75 -9.625 ... 59.62 59.75 59.88 60.0 * lon (lon) float32 60.0 60.12 60.25 60.38 ... 149.6 149.8 149.9 150.0 Attributes: units: 10m long_name: Visibility ( 10m )</code></pre> <pre><code class="language-python">grd = meb.read_griddata_from_nc(filename,value_name=&amp;quot;vis&amp;quot;,lon_dim = &amp;quot;lonS&amp;quot;,lat_dim = &amp;quot;latS&amp;quot;) print(grd) #读取地面数据,其中经纬度的坐标名称分别是lonS和latS</code></pre> <pre><code>&amp;lt;xarray.DataArray 'vis' (member: 1, level: 1, time: 1, dtime: 1, lat: 561, lon: 721)&amp;gt; array([[[[[[3296.8723, 3174.1738, 2727.7896, ..., 3387.065 , 2285.526 , 2393.5737], [2733.7415, 2905.8855, 3129.7644, ..., 4492.724 , 2878.4158, 2340.4656], [3100.4634, 2963.5723, 3054.6802, ..., 2554.272 , 1034.7344, 823.6748], ..., [3459.4019, 3520.2935, 3518.92 , ..., 3042.3188, 3263.4507, 3278.559 ], [3550.0522, 3647.5703, 3644.3652, ..., 2948.9216, 3384.776 , 3521.209 ], [3461.2334, 3456.1973, 3567.45 , ..., 3415.9082, 3399.4263, 3491.4502]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 0 * time (time) datetime64[ns] 2021-04-06 * dtime (dtime) int32 0 * lat (lat) float32 -10.0 -9.875 -9.75 -9.625 ... 59.62 59.75 59.88 60.0 * lon (lon) float32 60.0 60.12 60.25 60.38 ... 149.6 149.8 149.9 150.0 Attributes: units: 10m long_name: Visibility ( 10m )</code></pre> <pre><code class="language-python">grd = meb.read_griddata_from_nc(filename,value_name=&amp;quot;h&amp;quot;,lon_dim = &amp;quot;lonP&amp;quot;,lat_dim = &amp;quot;latP&amp;quot;,level_dim = &amp;quot;lev&amp;quot;) print(grd) #读取高空数据,其中经纬度的坐标名称分别是lonP和latP,层次坐标的名称是lev</code></pre> <pre><code>&amp;lt;xarray.DataArray 'h' (member: 1, level: 15, time: 1, dtime: 1, lat: 281, lon: 361)&amp;gt; array([[[[[[ 8.542908 , 8.542908 , 8.542908 , ..., 11.44281 , 10.450745 , 9.687622 ], [ 8.466614 , 8.466614 , 8.466614 , ..., 10.527039 , 9.458679 , 9.229736 ], [ 8.466614 , 8.466614 , 8.466614 , ..., 9.30603 , 9.30603 , 9.458679 ], ..., [ 7.4745483, 7.3982544, 7.2456055, ..., 16.326843 , 16.326843 , 16.326843 ], [ 7.2456055, 7.1693115, 6.9403687, ..., 16.326843 , 16.403137 , 16.403137 ], [ 6.9403687, 6.8640137, 6.635132 , ..., 16.403137 , 16.479492 , 16.479492 ]]]], [[[[ 53.720215 , 53.720215 , 53.720215 , ..., 55.62805 , 55.017517 , 54.559692 ], [ 53.64392 , 53.64392 , 53.64392 , ..., 55.093872 , 54.635986 , 54.559692 ], ... [1590.435 , 1590.435 , 1590.5114 , ..., 1574.104 , 1574.1804 , 1574.333 ], [1589.9772 , 1590.0535 , 1590.0535 , ..., 1573.341 , 1573.4935 , 1573.6462 ]]]], [[[[2059.531 , 2059.4546 , 2059.531 , ..., 2063.2705 , 2063.194 , 2062.965 ], [2059.531 , 2059.531 , 2059.6074 , ..., 2063.194 , 2063.1177 , 2062.965 ], [2059.531 , 2059.6074 , 2059.6074 , ..., 2063.1177 , 2063.0415 , 2062.965 ], ..., [2032.2872 , 2032.3636 , 2032.3636 , ..., 2026.4875 , 2026.5638 , 2026.6401 ], [2031.982 , 2031.982 , 2032.0583 , ..., 2025.6481 , 2025.7244 , 2025.8007 ], [2031.5242 , 2031.6005 , 2031.6768 , ..., 2024.7323 , 2024.8086 , 2024.9612 ]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 1000 950 925 900 850 700 ... 300 250 200 150 100 50 * time (time) datetime64[ns] 2021-04-06 * dtime (dtime) int32 0 * lat (lat) float32 -10.0 -9.75 -9.5 -9.25 -9.0 ... 59.25 59.5 59.75 60.0 * lon (lon) float32 60.0 60.25 60.5 60.75 ... 149.2 149.5 149.8 150.0 Attributes: units: 10m long_name: Geopotential height</code></pre> <h1>读取grib文件准备工作</h1> <p>grib数据是以另一种带压缩功能的自描述文件,和netcdf相比,它没有什么额外的优点,但有诸多使用上的不便。grib使用不便的原因有两个:</p> <ol> <li>该数据的标准定义严格且狭窄,仅有少数部门(或单位、或应用场景)能够完全遵守标准来制作数据,</li> <li> <p>数据读写接口工具支持的语言不丰富,接口容错性差。<br /> 当气象部门有些新的数据需要传输,若套用grib格式进行压码,往往由于难以完全符合标准,导致下游数据应用部门出现解码错误。当前,grib文件格式之所以仍然流行,一方面是因为和历史数据、系统的承接,另外一个重要原因是欧洲中心在使用,间接导致许多数值预报研究部门在使用该格式。实际上grib所需的功能用netcdf完全能够替代,且后者明显会更加便利。 </p> <p>为此,在使用以下功能读取grib数据时,若遇到各类无法读取的情况,请给予理解,并请大家向数据文件生成部门提出改用netcdf格式的倡议。以下是正式的功能介绍:</p> </li> </ol> <p>本程序开发的读取grib数据的功能是基于eccodes和cfgrib包的功能。在使用前首先需要安装这两个包,安装方式为 </p> <ul> <li>conda install -c conda-forge eccodes </li> <li>conda install -c conda-forge cfgrib </li> </ul> <p>安装之后需要设置环境变量, 在window下步骤为在环境变量配置窗口的“系统变量”点击“新建系统变量”,设置内容示例:<br /> 变量名:ECCODES_DEFINITION_PATH<br /> 变量值:C:\program1\anaconda\Library\share\eccodes\definitions<br /> 安装之后matploblib包可能会被更改导致报错,若遇到此种情况请卸载matplotlib 后再重装matploblib. </p> <h1>打印grib数据中的信息</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;print_grib_file_info(filename,filter_by_keys = {})&lt;/font&gt;</strong><br /> 读取grib文件,打印其中的信息。具体读取grib文件时需根据打印的信息,确定读取指定数据所需要的参数</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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">grib格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>filter_by_keys</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;">无</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">#打印一个测试文件中的信息 meb.print_grib_file_info(r&amp;quot;H:\test_data\input\meb\era5-levels-members.grib&amp;quot;)</code></pre> <pre><code>************************************************************************* 使用参数 filter_by_keys = {}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (isobaricInhPa: 2, latitude: 61, longitude: 120, number: 10, time: 4) Coordinates: * number (number) int32 0 1 2 3 4 5 6 7 8 9 * time (time) datetime64[ns] 2017-01-01 ... 2017-01-02T12:00:00 step timedelta64[ns] ... * isobaricInhPa (isobaricInhPa) int32 850 500 * latitude (latitude) float64 90.0 87.0 84.0 81.0 ... -84.0 -87.0 -90.0 * longitude (longitude) float64 0.0 3.0 6.0 9.0 ... 351.0 354.0 357.0 valid_time (time) datetime64[ns] ... Data variables: z (number, time, isobaricInhPa, latitude, longitude) float32 ... t (number, time, isobaricInhPa, latitude, longitude) float32 ... Attributes: GRIB_edition: 1 GRIB_centre: ecmf GRIB_centreDescription: European Centre for Medium-Range Weather Forecasts GRIB_subCentre: 0 Conventions: CF-1.7 institution: European Centre for Medium-Range Weather Forecasts history: 2022-08-12T15:43:44 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 请在读取该grib文件时添加参数 filter_by_keys= {'typeOfLevel':'isobaricInhPa'} 请根据以上数据内容信息,确认所需读取的物理量对应的levelType</code></pre> <pre><code class="language-python">#打印另一个测试文件,其中包含多个leve_type meb.print_grib_file_info(r&amp;quot;H:\test_data\input\meb\test.grib&amp;quot;)</code></pre> <pre><code>************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'meanSea'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... meanSea int32 ... * latitude (latitude) float64 28.0 28.01 28.02 28.03 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 116.5 valid_time datetime64[ns] ... Data variables: prmsl (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:02 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'unknown'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... level int32 ... * latitude (latitude) float64 28.0 28.01 28.02 28.03 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 116.5 valid_time datetime64[ns] ... Data variables: refc (latitude, longitude) float32 ... lcc (latitude, longitude) float32 ... mcc (latitude, longitude) float32 ... hcc (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:06 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'surface'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... surface int32 ... * latitude (latitude) float64 28.0 28.01 28.02 28.03 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 116.5 valid_time datetime64[ns] ... Data variables: vis (latitude, longitude) float32 ... t (latitude, longitude) float32 ... tp (latitude, longitude) float32 ... acpcp (latitude, longitude) float32 ... ncpcp (latitude, longitude) float32 ... cape (latitude, longitude) float32 ... cin (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:10 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'isobaricInhPa'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (isobaricInhPa: 6, latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... * isobaricInhPa (isobaricInhPa) int32 1000 925 850 700 500 200 * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 116.5 valid_time datetime64[ns] ... Data variables: gh (isobaricInhPa, latitude, longitude) float32 ... t (isobaricInhPa, latitude, longitude) float32 ... r (isobaricInhPa, latitude, longitude) float32 ... w (isobaricInhPa, latitude, longitude) float32 ... u (isobaricInhPa, latitude, longitude) float32 ... v (isobaricInhPa, latitude, longitude) float32 ... paramId_0 (isobaricInhPa, latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:14 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (heightAboveGround: 2, latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... * heightAboveGround (heightAboveGround) int32 1000 4000 * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: refd (heightAboveGround, latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:18 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 167}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: t2m (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:22 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 133}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: q (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:25 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 168}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: d2m (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:29 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 260242}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: r2 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:32 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 54}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: pres (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:36 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 165}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: u10 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:39 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 166}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: v10 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:42 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 131}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (heightAboveGround: 15, latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... * heightAboveGround (heightAboveGround) int32 30 50 80 305 ... 4572 6000 7010 * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: u (heightAboveGround, latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:46 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 132}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (heightAboveGround: 15, latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... * heightAboveGround (heightAboveGround) int32 30 50 80 305 ... 4572 6000 7010 * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: v (heightAboveGround, latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:49 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 228246}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: u100 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:52 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 228247}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGround int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: v100 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:44:56 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGroundLayer int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.99 34.0 * longitude (longitude) float64 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: paramId_0 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:00 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer', 'paramId': 260125}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (heightAboveGroundLayer: 2, latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... * heightAboveGroundLayer (heightAboveGroundLayer) int32 1000 3000 * latitude (latitude) float64 28.0 28.01 28.02 ... 33.99 34.0 * longitude (longitude) float64 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: hlcy (heightAboveGroundLayer, latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:03 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer', 'paramId': 3045}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGroundLayer int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.99 34.0 * longitude (longitude) float64 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: vucsh (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:06 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer', 'paramId': 3046}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGroundLayer int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.99 34.0 * longitude (longitude) float64 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: vvcsh (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:10 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'cloudBase'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... cloudBase int32 ... * latitude (latitude) float64 28.0 28.01 28.02 28.03 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 116.5 valid_time datetime64[ns] ... Data variables: gh (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:13 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'cloudTop'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... cloudTop int32 ... * latitude (latitude) float64 28.0 28.01 28.02 28.03 ... 33.98 33.99 34.0 * longitude (longitude) float64 108.0 108.0 108.0 ... 116.5 116.5 116.5 valid_time datetime64[ns] ... Data variables: gh (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:17 GRIB to CDM+CF via cfgrib-0.... ************************************************************************* 使用参数 filter_by_keys = {'typeOfLevel': 'pressureFromGroundLayer'}查看到的数据内容为: &amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851, pressureFromGroundLayer: 3) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... * pressureFromGroundLayer (pressureFromGroundLayer) int32 9000 18000 25500 * latitude (latitude) float64 28.0 28.01 28.02 ... 33.99 34.0 * longitude (longitude) float64 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: cape (pressureFromGroundLayer, latitude, longitude) float32 ... cin (pressureFromGroundLayer, latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-08-12T15:45:20 GRIB to CDM+CF via cfgrib-0.... 在读取数据时需添加如下参数当中的一个 filter_by_keys = {'typeOfLevel': 'meanSea'} filter_by_keys = {'typeOfLevel': 'unknown'} filter_by_keys = {'typeOfLevel': 'surface'} filter_by_keys = {'typeOfLevel': 'isobaricInhPa'} filter_by_keys = {'typeOfLevel': 'heightAboveGround'} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 167} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 133} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 168} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 260242} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 54} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 165} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 166} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 131} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 132} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 228246} filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 228247} filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer'} filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer', 'paramId': 260125} filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer', 'paramId': 3045} filter_by_keys = {'typeOfLevel': 'heightAboveGroundLayer', 'paramId': 3046} filter_by_keys = {'typeOfLevel': 'cloudBase'} filter_by_keys = {'typeOfLevel': 'cloudTop'} filter_by_keys = {'typeOfLevel': 'pressureFromGroundLayer'}</code></pre> <h1>读取grib数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_grib(filename,grid = None,value_name = None,member_dim = None,time_dim = None,dtime_dim = None,lat_dim = None,lon_dim = None,level=None, time=None, dtime=None, data_name=&quot;data0&quot;,filter_by_keys = {},dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从grib类数据文件中读取网格数据,但并非将grib文件中所有的内容都同时读入,而是仅只读取其中一个物理量,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">grib格式的文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>value_name</strong></td> <td style="text-align: left;">在grib文件中,要读取的要素名称,如果value_name是None,就通过程序自动判断所要读取的要素名称,方法是排除time,latitude,longitude等时空坐标信息量之后的第一个物理量</td> </tr> <tr> <td style="text-align: left;"><strong>member_dim</strong></td> <td style="text-align: left;">在grib文件中,代表集合成员维度的坐标量的名称, grib文件中没有集合维度,该参数可缺省。</td> </tr> <tr> <td style="text-align: left;"><strong>time_dim</strong></td> <td style="text-align: left;">在grib文件中,代表时间维度的坐标量的名称,该参数缺省时,会自动以文件中名称为&quot;time&quot;的变量作为时间坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_dim</strong></td> <td style="text-align: left;">在grib文件中,代表时效维度的坐标量的名称, grib文件中没有时效维度,该参数可缺省。</td> </tr> <tr> <td style="text-align: left;"><strong>lat_dim</strong></td> <td style="text-align: left;">在grib文件中,代表经向维度的坐标量的名称,该参数缺省时,会自动以文件中名称为&quot;lat&quot;或&quot;latitude&quot;的变量作为东西向坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>lon_dim</strong></td> <td style="text-align: left;">在grib文件中,代表纬向维度的坐标量的名称,该参数缺省时,会自动以文件中名称为&quot;lon&quot;或&quot;longtitue&quot;的变量作为南北向坐标。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,当数据文件中不包含层次维度时,返回的格点数据中level维度设置为该参数值,level=None时读取一层数据,并将level设置为0。当数据文件中包含层次时,level可以用来指定所需要读取的数据的层次,level 为实数时表示取一层的数据,level为实数的列表时,表示取多层数据,level为None时读取所有层数据</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,当数据文件中不包含时效维度时,返回的格点数据中dtime维度设置为该参数值,dtime = None时读取一个时效数据,并将dtime设置为0。当数据文件中包含时效维度时,dtime可以用来指定所需要读取的数据的时效,dtime 为实数时表示取单个时效的数据,dtime为实数的列表时,表示取多个时效的数据,dtime = None时读取所有时效数据</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>filter_by_keys</strong></td> <td style="text-align: left;">用于设置读取grib文件所需的filter_by_keys参数,字典,例如 filter_by_keys = {&quot;stepType&quot;:&quot;accum&quot;,&quot;typeOfLevel&quot;:&quot;surface&quot;}</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">#对照上面大于的信息,可以知道在era5-levels-members.grib文件中包含一个层次类型 'isobaricInhPa' #包含两个物理量 z和t, 坐标变量中的number实际上是时效,因此若需读取等压面层的温度场, #须用如下参数进行读取 grb = meb.read_griddata_from_grib(r&amp;quot;H:\test_data\input\meb\era5-levels-members.grib&amp;quot;, value_name = &amp;quot;t&amp;quot;, dtime_dim = &amp;quot;number&amp;quot;, filter_by_keys = {'typeOfLevel': 'isobaricInhPa'} ) print(grb) </code></pre> <pre><code>&amp;lt;xarray.DataArray 't' (member: 1, level: 2, time: 4, dtime: 10, lat: 61, lon: 120)&amp;gt; array([[[[[[258.5401 , 258.5401 , 258.5401 , ..., 258.5401 , 258.5401 , 258.5401 ], [258.1612 , 258.15143, 258.15143, ..., 258.40143, 258.27643, 258.1983 ], [258.71198, 258.49323, 258.22565, ..., 259.14752, 259.04987, 258.8897 ], ..., [251.11041, 251.36627, 251.6026 , ..., 250.73737, 250.94635, 250.98346], [252.61041, 252.68658, 252.73932, ..., 252.33502, 252.419 , 252.51666], [252.66315, 252.66315, 252.66315, ..., 252.66315, 252.66315, 252.66315]], [[258.2727 , 258.2727 , 258.2727 , ..., 258.2727 , 258.2727 , 258.2727 ], [257.8899 , 257.8977 , 257.91724, ..., 258.06177, 257.9602 , 257.90552], [258.5481 , 258.3313 , 258.04028, ..., 258.98364, 258.88013, 258.71606], ... [230.36823, 230.27838, 230.18561, ..., 230.63873, 230.53912, 230.45319], [230.3399 , 230.23737, 230.14459, ..., 230.70416, 230.57428, 230.45123], [230.57526, 230.57526, 230.57526, ..., 230.57526, 230.57526, 230.57526]], [[240.37822, 240.37822, 240.37822, ..., 240.37822, 240.37822, 240.37822], [239.8372 , 239.78545, 239.7288 , ..., 239.97685, 239.93193, 239.88603], [241.3079 , 241.23857, 241.1663 , ..., 241.36064, 241.38506, 241.36455], ..., [230.3792 , 230.221 , 230.07939, ..., 230.77568, 230.66435, 230.53252], [230.26591, 230.15068, 230.04619, ..., 230.66924, 230.52763, 230.39189], [230.40068, 230.40068, 230.40068, ..., 230.40068, 230.40068, 230.40068]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 850 500 * time (time) datetime64[ns] 2017-01-01 ... 2017-01-02T12:00:00 * dtime (dtime) int32 0 1 2 3 4 5 6 7 8 9 * lat (lat) float64 -90.0 -87.0 -84.0 -81.0 -78.0 ... 81.0 84.0 87.0 90.0 * lon (lon) float64 0.0 3.0 6.0 9.0 12.0 ... 348.0 351.0 354.0 357.0 Attributes: GRIB_paramId: 130 GRIB_shortName: t GRIB_units: K GRIB_name: Temperature GRIB_cfName: air_temperature GRIB_cfVarName: t GRIB_dataType: an GRIB_missingValue: 9999 GRIB_numberOfPoints: 7320 GRIB_totalNumber: 10 GRIB_typeOfLevel: isobaricInhPa GRIB_NV: 0 GRIB_stepUnits: 1 GRIB_stepType: instant GRIB_gridType: regular_ll GRIB_gridDefinitionDescription: Latitude/Longitude Grid GRIB_Nx: 120 GRIB_iDirectionIncrementInDegrees: 3.0 GRIB_iScansNegatively: 0 GRIB_longitudeOfFirstGridPointInDegrees: 0.0 GRIB_longitudeOfLastGridPointInDegrees: 357.0 GRIB_Ny: 61 GRIB_jDirectionIncrementInDegrees: 3.0 GRIB_jPointsAreConsecutive: 0 GRIB_jScansPositively: 0 GRIB_latitudeOfFirstGridPointInDegrees: 90.0 GRIB_latitudeOfLastGridPointInDegrees: -90.0 long_name: Temperature units: K standard_name: air_temperature</code></pre> <pre><code class="language-python">#对照上面大于的信息,可以知道在test.grib文件中层次类型 'isobaricInhPa' #包含多个物理量,其中t对应温度。若需从中读取温度,需用如下参数 grb = meb.read_griddata_from_grib(r&amp;quot;H:\test_data\input\meb\test.grib&amp;quot;, value_name = &amp;quot;t&amp;quot;, filter_by_keys = {'typeOfLevel': 'isobaricInhPa'}) print(grb) </code></pre> <pre><code>&amp;lt;xarray.DataArray 't' (member: 1, level: 6, time: 1, dtime: 1, lat: 601, lon: 851)&amp;gt; array([[[[[[298.30917, 298.30917, 298.20917, ..., 304.80917, 304.80917, 304.80917], [298.30917, 298.30917, 298.20917, ..., 304.90918, 304.80917, 304.80917], [298.30917, 298.30917, 298.30917, ..., 304.90918, 304.90918, 304.80917], ..., [303.1092 , 303.20917, 303.30917, ..., 308.90918, 308.90918, 308.90918], [303.0092 , 303.1092 , 303.20917, ..., 309.0092 , 309.0092 , 309.0092 ], [303.1092 , 303.1092 , 303.1092 , ..., 309.1092 , 309.1092 , 309.1092 ]]]], [[[[293.9 , 293.9 , 293.8 , ..., 298.3 , 298.3 , 298.3 ], [293.9 , 293.9 , 293.9 , ..., 298.3 , 298.3 , 298.3 ], ... [267.7107 , 267.6707 , 267.69067, ..., 268.85068, 268.8307 , 268.79068], [267.70068, 267.6707 , 267.69067, ..., 268.78067, 268.75067, 268.72067]]]], [[[[225.82127, 225.82127, 225.83127, ..., 223.99127, 223.99127, 223.99127], [225.81126, 225.81126, 225.82127, ..., 224.01128, 224.01128, 224.00127], [225.81126, 225.81126, 225.81126, ..., 224.02127, 224.02127, 224.02127], ..., [224.65128, 224.66127, 224.66127, ..., 224.22127, 224.22127, 224.22127], [224.63127, 224.64127, 224.62128, ..., 224.22127, 224.22127, 224.21127], [224.62128, 224.62128, 224.62128, ..., 224.23126, 224.23126, 224.22127]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 1000 925 850 700 500 200 * time (time) datetime64[ns] 2019-06-16 * dtime (dtime) datetime64[ns] 2019-06-16T06:00:00 * lat (lat) float64 28.0 28.01 28.02 28.03 ... 33.97 33.98 33.99 34.0 * lon (lon) float64 108.0 108.0 108.0 108.0 ... 116.5 116.5 116.5 116.5 Attributes: GRIB_paramId: 130 GRIB_shortName: t GRIB_units: K GRIB_name: Temperature GRIB_cfName: air_temperature GRIB_cfVarName: t GRIB_dataType: fc GRIB_missingValue: 9999 GRIB_numberOfPoints: 511451 GRIB_typeOfLevel: isobaricInhPa GRIB_NV: 0 GRIB_stepUnits: 1 GRIB_stepType: instant GRIB_gridType: regular_ll GRIB_gridDefinitionDescription: Latitude/longitude. Also called... GRIB_Nx: 851 GRIB_iDirectionIncrementInDegrees: 0.01 GRIB_iScansNegatively: 0 GRIB_longitudeOfFirstGridPointInDegrees: 108.0 GRIB_longitudeOfLastGridPointInDegrees: 116.5 GRIB_Ny: 601 GRIB_jDirectionIncrementInDegrees: 0.01 GRIB_jPointsAreConsecutive: 0 GRIB_jScansPositively: 1 GRIB_latitudeOfFirstGridPointInDegrees: 28.0 GRIB_latitudeOfLastGridPointInDegrees: 34.0 long_name: Temperature units: K standard_name: air_temperature</code></pre> <pre><code class="language-python">#对照上面大于的信息,可以知道在test.grib文件中包含1000 925 850 700 500 200等层次的数据, #如果只需读取其中一部分层次,可以通过level参数进行指定 grb = meb.read_griddata_from_grib(r&amp;quot;H:\test_data\input\meb\test.grib&amp;quot;, value_name = &amp;quot;t&amp;quot;, filter_by_keys = {'typeOfLevel': 'isobaricInhPa'},level = [850,500]) print(grb) </code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 2, time: 1, dtime: 1, lat: 601, lon: 851)&amp;gt; array([[[[[[290.4 , 290.4 , 290.4 , ..., 291.3 , 291.3 , 291.3 ], [290.4 , 290.4 , 290.4 , ..., 291.3 , 291.3 , 291.3 ], [290.3 , 290.4 , 290.4 , ..., 291.3 , 291.3 , 291.3 ], ..., [293.9 , 294. , 294.1 , ..., 294.4 , 294.4 , 294.4 ], [293.8 , 293.9 , 293.9 , ..., 294.3 , 294.3 , 294.4 ], [293.8 , 293.8 , 293.8 , ..., 294.3 , 294.3 , 294.4 ]]]], [[[[271.7107 , 271.70068, 271.69067, ..., 270.97067, 270.97067, 270.97067], [271.7107 , 271.6807 , 271.6407 , ..., 270.98068, 270.98068, 270.98068], [271.69067, 271.6807 , 271.66068, ..., 270.98068, 270.9907 , 270.9907 ], ..., [267.76068, 267.72067, 267.70068, ..., 268.94067, 268.9207 , 268.8907 ], [267.7107 , 267.6707 , 267.69067, ..., 268.85068, 268.8307 , 268.79068], [267.70068, 267.6707 , 267.69067, ..., 268.78067, 268.75067, 268.72067]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 850 500 * time (time) datetime64[ns] 2019-06-16 * dtime (dtime) int64 1560664800000000000 * lat (lat) float64 28.0 28.01 28.02 28.03 ... 33.97 33.98 33.99 34.0 * lon (lon) float64 108.0 108.0 108.0 108.0 ... 116.5 116.5 116.5 116.5 Attributes: dtime_units: hour</code></pre> <pre><code class="language-python">#对照上面大于的信息,可使用参数 filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 167}可 #读取到t2m的要素场 meb.print_grib_file_info(r&amp;quot;H:\test_data\input\meb\test.grib&amp;quot;, filter_by_keys = {'typeOfLevel': 'heightAboveGround', 'paramId': 167})</code></pre> <pre><code>&amp;lt;xarray.Dataset&amp;gt; Dimensions: (latitude: 601, longitude: 851) Coordinates: time datetime64[ns] ... step timedelta64[ns] ... heightAboveGroundLayer int32 ... * latitude (latitude) float64 28.0 28.01 28.02 ... 33.99 34.0 * longitude (longitude) float64 108.0 108.0 ... 116.5 116.5 valid_time datetime64[ns] ... Data variables: paramId_0 (latitude, longitude) float32 ... Attributes: GRIB_edition: 2 GRIB_centre: kwbc GRIB_centreDescription: US National Weather Service - NCEP GRIB_subCentre: 0 Conventions: CF-1.7 institution: US National Weather Service - NCEP history: 2022-03-02T13:50:59 GRIB to CDM+CF via cfgrib-0....</code></pre> <h1>设置IO配置文件</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;set_io_config(filename)&lt;/font&gt;</strong><br /> 设置读取GDS服务器上数据所需的ip和port信息,设置的方式是将这些信息编辑成一个文本文件,格式(示例)如下: </p> <p>[CIMISS]<br /> DNS = xxx.xxx.xxx.xxx<br /> USER_ID = xxxx<br /> PASSWORD = xxxxx </p> <p>[MICAPS]<br /> GDS_IP = xxx.xxx.xxx.xxx<br /> GDS_PORT = 8080 </p> <p>[CMADaaS]<br /> DNS = xxx.xxx.xxx.xxx<br /> PORT = 80<br /> USER_ID = xxxx<br /> PASSWORD = xxxx<br /> serviceNodeId = NMIC_MUSIC_CMADAAS </p> <p>上述信息包含两部分,第一部分是cimiss的账号信息,目前meteva暂时还没有包含从cimiss读取数据的功能,但对这块配置信息先做了预留。第二部分是读取gds服务器所需要的配置信息。该配置文件的文件格式和nmc_met_io包的格式是一致的。</p> <p><strong>参数说明:</strong><br />  <strong>filename</strong>: 存储ip和port的文件路径<br />  <strong>return</strong>:None,成功后程序会将ip,port信息赋值给一个全局变量,失败后会返回提示信息。</p> <p><strong>调用示例</strong>:</p> <pre><code class="language-python">meb.set_io_config(r&amp;quot;H:\test_data\config.ini&amp;quot;)</code></pre> <pre><code>配置文件设置成功</code></pre> <h1>从Cimiss读取网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_griddata_from_cimiss(dataCode,element,level,time,dtime,grid = None,data_name=None,dtime_units = &quot;hour&quot;,outer_value = None, show = False)&lt;/font&gt;</strong><br /> 从cimiss台中读取网格数据。以下是cimiss网页中关于数据信息的截图,从中可以查询dataCode和element参数: <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/38925f72d7463f183fe1eb8d75df6b2c" alt="" /></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;dataCode&lt;/font&gt;</strong></td> <td style="text-align: left;">cimiss中的网格数据的数据编码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;element&lt;/font&gt;</strong></td> <td style="text-align: left;">cimiss中的网格数的要素代码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;level&lt;/font&gt;</strong></td> <td style="text-align: left;">读取的网格数据的层次</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;time&lt;/font&gt;</strong></td> <td style="text-align: left;">读取的网格数据的起报时间</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">读取的网格数据的时效,如果读取对象时模式预报和零场数据,所用的数据读取接口为'getNafpEleGridByTimeAndLevelAndValidtime',此时dtime设置为整数。如果读取对象时网格实况数据,所用的数据读取接口为'getNafpAnaEleGridByTimeAndLevel',此时dtime 设置为None</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">如果show = True,显示数据下载所用到的url,如果数据下载失败,点开该url也可以看见大数据云平台提供的错误反馈信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python"># 读取cldas网格实况数据,此时dtime 需设置为None grd = meb.read_griddata_from_cimiss(&amp;quot;NAFP_CLDAS2.0_RT_NC&amp;quot;,&amp;quot;TEM&amp;quot;,0,&amp;quot;20210101120000&amp;quot;,dtime=None,show = True) print(grd)</code></pre> <pre><code>http://10.20.76.55/cimiss-web/api?userId=NMC_YBS_liucouhua&amp;amp;pwd=20130913&amp;amp;interfaceId=getNafpAnaEleGridByTimeAndLevel&amp;amp;dataCode=NAFP_CLDAS2.0_RT_NC&amp;amp;time=20210101120000&amp;amp;fcstLevel=0&amp;amp;fcstEle=TEM&amp;amp;dataFormat=json &amp;lt;xarray.DataArray 'TEM' (member: 1, level: 1, time: 1, dtime: 1, lat: 1040, lon: 1600)&amp;gt; array([[[[[[299.95724, 299.9395 , 299.93997, ..., 300.60504, 300.58926, 300.5807 ], [299.95374, 299.91284, 299.90057, ..., 300.56638, 300.54144, 300.5432 ], [299.98083, 299.93112, 299.9074 , ..., 300.51016, 300.47867, 300.4869 ], ..., [246.26569, 246.56516, 247.14737, ..., 235.91257, 236.52655, 237.03436], [246.46957, 247.1421 , 248.08691, ..., 235.91112, 236.51468, 237.0528 ], [246.3235 , 246.73386, 247.6212 , ..., 236.0478 , 236.66565, 237.24504]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U19 'NAFP_CLDAS2.0_RT_NC' * level (level) int32 0 * time (time) datetime64[ns] 2021-01-01T12:00:00 * dtime (dtime) object None * lat (lat) float64 0.03125 0.09375 0.1562 0.2188 ... 64.84 64.91 64.97 * lon (lon) float64 60.03 60.09 60.16 60.22 ... 159.8 159.8 159.9 160.0</code></pre> <pre><code class="language-python"># 读取ECMWF 高分辨率东北亚数据 grd = meb.read_griddata_from_cimiss(&amp;quot;NAFP_FOR_FTM_HIGH_EC_ANEA&amp;quot;,&amp;quot;TEM&amp;quot;,850,&amp;quot;20210101120000&amp;quot;,dtime=24,show = True) print(grd)</code></pre> <pre><code>http://10.20.76.55/cimiss-web/api?userId=NMC_YBS_liucouhua&amp;amp;pwd=20130913&amp;amp;interfaceId=getNafpEleGridByTimeAndLevelAndValidtime&amp;amp;dataCode=NAFP_FOR_FTM_HIGH_EC_ANEA&amp;amp;time=20210101120000&amp;amp;fcstLevel=850&amp;amp;validTime=24&amp;amp;fcstEle=TEM&amp;amp;dataFormat=json &amp;lt;xarray.DataArray 'TEM' (member: 1, level: 1, time: 1, dtime: 1, lat: 281, lon: 361)&amp;gt; array([[[[[[290.37366, 290.43616, 290.49866, ..., 292.20178, 292.12366, 292.17053], [290.31116, 290.2799 , 290.38928, ..., 291.54553, 291.79553, 291.98303], [290.29553, 290.23303, 290.2799 , ..., 291.63928, 291.88928, 291.93616], ..., [264.56116, 264.18616, 263.7799 , ..., 255.77989, 256.07678, 256.38928], [264.17053, 263.70178, 263.20178, ..., 255.34239, 255.70177, 255.71739], [263.70178, 263.12366, 262.5924 , ..., 256.23303, 256.18616, 255.88927]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U25 'NAFP_FOR_FTM_HIGH_EC_ANEA' * level (level) int32 850 * time (time) datetime64[ns] 2021-01-01T12:00:00 * 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.3 149.5 149.8 150.0</code></pre> <h1>从大数据云平台读取网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;read_griddata_from_cmadaas(dataCode,element,level_type,level,time,dtime = None,grid = None,data_name= None,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从大数据云平台中读取网格数据。以下是云平台网页中关于数据信息的截图 <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/781332121e7be95f764fac7611d27ff8" alt="" /></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;dataCode&lt;/font&gt;</strong></td> <td style="text-align: left;">大数据云平台中的网格数据的数据编码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;element&lt;/font&gt;</strong></td> <td style="text-align: left;">大数据云平台中的网格数的要素代码</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;level_type&lt;/font&gt;</strong></td> <td style="text-align: left;">大数据云平台中的网格数的层次类型</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;level&lt;/font&gt;</strong></td> <td style="text-align: left;">读取的网格数据的层次</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;time&lt;/font&gt;</strong></td> <td style="text-align: left;">读取的网格数据的起报时间</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">读取的网格数据的时效,如果读取对象时模式预报和零场数据,所用的数据读取接口为'getNafpEleGridByTimeAndLevelAndValidtime',此时dtime设置为整数。如果读取对象时网格实况数据,所用的数据读取接口为'getNafpAnaEleGridByTimeAndLevel',此时dtime 设置为None</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">如果show = True,显示数据下载所用到的url,如果数据下载失败,点开该url也可以看见大数据云平台提供的错误反馈信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">#读取grapes24小时时效u风分量0场, 注意大数据云平台中数值模式的零场和预报场的数据代码经常是不同的 grd = meb.read_griddata_from_cmadaas(&amp;quot;NAFP_CLDAS2.0_NRT_ASI_NC&amp;quot;,&amp;quot;TMP&amp;quot;,&amp;quot;-&amp;quot;,0, time = datetime.datetime(2021,1,1,0,0),dtime = None,show = True) print(grd)</code></pre> <pre><code>http://10.40.17.54/music-ws/api?interfaceId=getNafpAnaEleGridByTimeAndLevel&amp;amp;dataCode=NAFP_CLDAS2.0_NRT_ASI_NC&amp;amp;fcstEle=TMP&amp;amp;levelType=-&amp;amp;fcstLevel=0&amp;amp;userId=USR_LIUCOUHUA&amp;amp;time=20210101000000&amp;amp;serviceNodeId=NMIC_MUSIC_CMADAAS&amp;amp;timestamp=1613913795155&amp;amp;nonce=3696663f-d202-4570-b39d-16306f419575&amp;amp;dataFormat=json&amp;amp;sign=AD56FBB5F119E445291AB0C45F1CEC2F &amp;lt;xarray.DataArray 'TMP' (member: 1, level: 1, time: 1, dtime: 1, lat: 1040, lon: 1600)&amp;gt; array([[[[[[298.93073, 298.9793 , 298.98618, ..., 301.06656, 301.03564, 301.0021 ], [299.06628, 299.10992, 299.12228, ..., 300.898 , 300.85922, 300.82822], [299.1048 , 299.1318 , 299.14447, ..., 300.76395, 300.7355 , 300.724 ], ..., [250.03775, 250.12094, 250.53305, ..., 258.03192, 258.7222 , 259.32193], [250.65833, 251.11456, 251.91008, ..., 258.08777, 258.7677 , 259.40042], [251.0735 , 251.38469, 252.26468, ..., 258.26355, 258.96042, 259.6475 ]]]]]]) Coordinates: * member (member) &amp;lt;U24 'NAFP_CLDAS2.0_NRT_ASI_NC' * level (level) int32 0 * time (time) datetime64[ns] 2021-01-01 * dtime (dtime) int32 0 * lat (lat) float64 0.0312 0.0937 0.1562 0.2187 ... 64.84 64.91 64.97 * lon (lon) float64 60.03 60.09 60.16 60.22 ... 159.8 159.8 159.9 160.0</code></pre> <pre><code class="language-python">#读取grapes24小时时效u风分量预报 grd = meb.read_griddata_from_cmadaas(&amp;quot;NAFP_FOR_FTM_LOW_GRAPES_CHN&amp;quot;,&amp;quot;WIU&amp;quot;,100,850,datetime.datetime(2020,1,1,0,0),24,show =True) print(grd)</code></pre> <pre><code>http://10.40.17.54/music-ws/api?interfaceId=getNafpEleGridByTimeAndLevelAndValidtime&amp;amp;dataCode=NAFP_FOR_FTM_LOW_GRAPES_CHN&amp;amp;fcstEle=WIU&amp;amp;levelType=100&amp;amp;fcstLevel=850&amp;amp;validTime=24&amp;amp;userId=USR_LIUCOUHUA&amp;amp;time=20200101000000&amp;amp;serviceNodeId=NMIC_MUSIC_CMADAAS&amp;amp;timestamp=1613913798058&amp;amp;nonce=3696663f-d202-4570-b39d-16306f419575&amp;amp;dataFormat=json&amp;amp;sign=4C2BAF456F05897C06BF316047EAFA86 &amp;lt;xarray.DataArray 'WIU' (member: 1, level: 1, time: 1, dtime: 1, lat: 501, lon: 751)&amp;gt; array([[[[[[ 7.4913125, 7.4583125, 7.3853126, ..., -1.1116875, -1.1326874, -1.2476875], [ 7.3233123, 7.2713127, 7.1913123, ..., -1.2166874, -1.1096874, -1.1256875], [ 7.1553125, 7.1023126, 7.0233126, ..., -1.5016875, -1.3556875, -1.2116874], ..., [ 2.0843124, 2.1233125, 2.1523125, ..., -11.058687 , -11.180688 , -11.503688 ], [ 1.9413126, 1.9563125, 1.9383125, ..., -10.919687 , -10.849688 , -10.959687 ], [ 1.7973125, 1.7603126, 1.6863126, ..., -10.931687 , -10.682688 , -10.499687 ]]]]]]) Coordinates: * member (member) &amp;lt;U27 'NAFP_FOR_FTM_LOW_GRAPES_CHN' * level (level) int32 0 * time (time) datetime64[ns] 2020-01-01 * dtime (dtime) int32 24 * lat (lat) float64 65.0 64.9 64.8 64.7 64.6 ... 15.4 15.3 15.2 15.1 15.0 * lon (lon) float64 70.0 70.1 70.2 70.3 70.4 ... 144.7 144.8 144.9 145.0</code></pre> <pre><code class="language-python">#读取grapes24小时时效u风分量0场, 注意大数据云平台中数值模式的零场和预报场的数据代码经常是不同的 grd = meb.read_griddata_from_cmadaas(&amp;quot;NAFP_GRAPES_ANA_CHN_FTM_LOW&amp;quot;,&amp;quot;WIU&amp;quot;,100,850,datetime.datetime(2020,1,1,0,0),0,show =True) print(grd)</code></pre> <pre><code>http://10.40.17.54/music-ws/api?interfaceId=getNafpEleGridByTimeAndLevelAndValidtime&amp;amp;dataCode=NAFP_GRAPES_ANA_CHN_FTM_LOW&amp;amp;fcstEle=WIU&amp;amp;levelType=100&amp;amp;fcstLevel=850&amp;amp;validTime=0&amp;amp;userId=USR_LIUCOUHUA&amp;amp;time=20200101000000&amp;amp;serviceNodeId=NMIC_MUSIC_CMADAAS&amp;amp;timestamp=1613913799563&amp;amp;nonce=3696663f-d202-4570-b39d-16306f419575&amp;amp;dataFormat=json&amp;amp;sign=14CC82B7A38CAF245F6DF564A3058142 &amp;lt;xarray.DataArray 'WIU' (member: 1, level: 1, time: 1, dtime: 1, lat: 501, lon: 751)&amp;gt; array([[[[[[ 5.936084 , 6.016084 , 6.116084 , ..., -0.44391602, -0.463916 , -0.67391604], [ 6.056084 , 6.096084 , 6.186084 , ..., -0.703916 , -0.773916 , -0.80391604], [ 6.186084 , 6.186084 , 6.256084 , ..., -0.973916 , -1.043916 , -0.943916 ], ..., [ 1.076084 , 1.116084 , 1.186084 , ..., -10.823916 , -11.033916 , -11.273916 ], [ 1.026084 , 1.056084 , 1.116084 , ..., -10.733916 , -10.923916 , -11.163916 ], [ 0.986084 , 1.006084 , 1.056084 , ..., -10.603916 , -10.783916 , -11.023916 ]]]]]]) Coordinates: * member (member) &amp;lt;U27 'NAFP_GRAPES_ANA_CHN_FTM_LOW' * level (level) int32 0 * time (time) datetime64[ns] 2020-01-01 * dtime (dtime) int32 0 * lat (lat) float64 65.0 64.9 64.8 64.7 64.6 ... 15.4 15.3 15.2 15.1 15.0 * lon (lon) float64 70.0 70.1 70.2 70.3 70.4 ... 144.7 144.8 144.9 145.0</code></pre> <h1>读取Micaps服务器中的网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_gds(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从GDS服务器中读取网格数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据在micaps分布式服务器中的路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">time1 = datetime.datetime.now() - datetime.timedelta(hours = 24) time2 = datetime.datetime(time1.year,time1.month,time1.day,20,0) path = meb.get_path(r&amp;quot;ECMWF_HR/TMP_2M/YYMMDDHH.TTT&amp;quot;,time2,24) print(&amp;quot;read from &amp;quot;+ path) grd = meb.read_griddata_from_gds(path) meb.set_griddata_coords(grd,member_list = [&amp;quot;ECMWF_HR&amp;quot;],gtime = [time2],dtime_list = [24]) print(grd)</code></pre> <pre><code>read from ECMWF_HR/TMP_2M/21022020.024 &amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 601, lon: 1301)&amp;gt; array([[[[[[ 25.712742, 25.681492, 25.712742, ..., 25.993992, 25.900242, 25.962742], [ 25.650242, 25.618992, 25.618992, ..., 26.118992, 26.056492, 26.056492], [ 25.587742, 25.556492, 25.493992, ..., 26.150242, 26.150242, 26.118992], ..., [-23.724743, -23.630993, -23.537243, ..., -8.318508, -8.318508, -8.318508], [-24.162243, -24.068493, -23.943493, ..., -8.662258, -8.693508, -8.693508], [-24.287243, -24.224743, -24.130993, ..., -9.006008, -9.006008, -8.974758]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U8 'ECMWF_HR' * level (level) float64 0.0 * time (time) datetime64[ns] 2021-02-20T20:00:00 * dtime (dtime) int32 24 * lat (lat) float64 7.629e-06 0.1 0.2 0.3 0.4 ... 59.7 59.8 59.9 60.0 * lon (lon) float64 50.0 50.1 50.2 50.3 50.4 ... 179.7 179.8 179.9 180.0 Attributes: dtime_type: hour</code></pre> <pre><code class="language-python">path = meb.get_path(r&amp;quot;mdfs:///ECMWF_ENSEMBLE/RAW/RAIN24/YYMMDDHH.TTT&amp;quot;,time2,24) grd = meb.read_griddata_from_gds(path) #读取集合预报的数据 print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 51, level: 1, time: 1, dtime: 1, lat: 121, lon: 261)&amp;gt; array([[[[[[0.01525879, 0.01525879, 0.03051758, ..., 1.3885498 , 1.28936768, 1.09100342], [0. , 0.03814697, 0.03051758, ..., 1.41906738, 1.54876709, 1.69372559], [0.01525879, 0.01525879, 0.03814697, ..., 1.15966797, 1.14440918, 1.3961792 ], ..., [0.05340576, 0.09155273, 0.12969971, ..., 2.18963623, 2.12860107, 2.0980835 ], [0.05340576, 0.06103516, 0.08392334, ..., 2.63977051, 2.57110596, 2.54058838], [0.08392334, 0.06103516, 0.06866455, ..., 2.07519531, 2.01416016, 1.96838379]]]]], [[[[[0.03051758, 0.15258789, 0.45776367, ..., 1.28173828, 1.06811523, 1.17492676], [0.00762939, 0.12207031, 0.10681152, ..., 1.90734863, ... 3.92532349, 3.75366211], [0.08010864, 0.06866455, 0.08392334, ..., 3.08609009, 2.92205811, 2.83050537]]]]], [[[[[0.01525879, 0.23651123, 0.16021729, ..., 0.98800659, 0.90408325, 1.17874146], [0.00762939, 0.02670288, 0.34332275, ..., 0.84686279, 1.21307373, 1.15203857], [0.03433228, 0.01525879, 0.08392334, ..., 1.09481812, 0.94985962, 1.36184692], ..., [0.08392334, 0.10681152, 0.1373291 , ..., 2.5062561 , 2.54821777, 2.67410278], [0.08773804, 0.10299683, 0.12588501, ..., 2.48718262, 2.3765564 , 2.28881836], [0.05722046, 0.04577637, 0.05722046, ..., 1.98364258, 1.98745728, 1.99508667]]]]]]) Coordinates: * member (member) int32 0 1 2 3 4 5 6 7 8 9 ... 42 43 44 45 46 47 48 49 50 * level (level) float64 0.0 * time (time) datetime64[ns] 2021-02-20T20:00:00 * dtime (dtime) int32 24 * lat (lat) float64 0.0 0.5 1.0 1.5 2.0 2.5 ... 58.0 58.5 59.0 59.5 60.0 * lon (lon) float64 50.0 50.5 51.0 51.5 52.0 ... 178.5 179.0 179.5 180.0 Attributes: dtime_type: hour</code></pre> <h1>读取Micaps二进制网格数据文件</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_gds_file(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从GDS服务器中读取网格数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_griddata_from_gds_file(r&amp;quot;H:/test_data/input/meb/test.gds&amp;quot;) meb.set_griddata_coords(grd,member_list = [&amp;quot;ECMWF_HR&amp;quot;],gtime = [datetime.datetime(2019,12,31,8,0)],dtime_list = [24]) print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 721, lon: 1441)&amp;gt; array([[[[[[ 24.443943, 24.412693, 24.350193, ..., 27.975193, 28.193943, 28.006443], [ 24.350193, 24.318943, 24.350193, ..., 27.850193, 27.975193, 27.568943], [ 24.381443, 24.381443, 24.475193, ..., 27.818943, 27.537693, 27.287693], ..., [-22.493557, -22.306057, -22.118557, ..., -25.056057, -25.087307, -25.118557], [-22.931057, -22.774807, -22.681057, ..., -24.868557, -24.868557, -24.899807], [-23.181057, -23.087307, -22.993557, ..., -24.649807, -24.681057, -24.712307]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U8 'ECMWF_HR' * level (level) float64 0.0 * time (time) datetime64[ns] 2019-12-31T08:00:00 * dtime (dtime) int32 24 * lat (lat) float64 -10.0 -9.875 -9.75 -9.625 ... 79.63 79.75 79.88 80.0 * lon (lon) float64 0.0 0.125 0.25 0.375 0.5 ... 179.6 179.8 179.9 180.0 Attributes: dtime_type: hour</code></pre> <h1>从Micaps服务器中读取AWX云图数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_AWX_from_gds(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从GDS服务器中读取网格云图数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据在micaps分布式服务器中的路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_AWX_from_gds(r&amp;quot;SATELLITE/FY4A/L1/CHINA/C014/C014_20201005010000_FY4A.AWX&amp;quot;) print(grd)</code></pre> <pre><code>SATELLITE/FY4A/L1/CHINA/C014/C014_20201005010000_FY4A.AWX数据读取失败 None</code></pre> <h1>读取AWX云图数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_AWX_file(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从AWX格式文件中读取云图数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。<br /> (目前部分AWX格式文件解析仍有问题,功能待完善) </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">show = True时,会在屏幕中打印数据的输入文件路径信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p>调用示例 </p> <pre><code class="language-python">grd = meb.read_griddata_from_AWX_file(r&amp;quot;H:\test_data\input\meb\B13_20200229_2100_HMW8.AWX&amp;quot;) print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 2001, lon: 3501)&amp;gt; array([[[[[[288.13, 288.13, 288.13, ..., 284.86, 284.86, 285.33], [288.59, 288.59, 288.59, ..., 284.39, 285.33, 285.33], [288.59, 288.59, 288.59, ..., 284.86, 287.2 , 287.67], ..., [209.35, 209.35, 209.35, ..., 254.54, 252.54, 252.54], [209.35, 209.35, 209.35, ..., 252.54, 252.54, 252.54], [209.35, 209.35, 209.35, ..., 252.54, 252.54, 252.54]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) object None * time (time) object None * dtime (dtime) object None * lat (lat) float64 15.0 15.02 15.04 15.06 ... 54.94 54.96 54.98 55.0 * lon (lon) float64 70.0 70.02 70.04 70.06 ... 139.9 140.0 140.0 140.0 Attributes: dtime_type: hour</code></pre> <h1>从Micaps服务器中读取雷达拼图数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_radar_latlon_from_gds(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从GDS服务器中读取雷达拼图数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </p> <h1>从Micaps服务器中读取雷达拼图(mosaic_v3)数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_radar_mosaic_v3_gds(filename, grid=None, level=None, time=None, dtime=None, data_name=&quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show=False)&lt;/font&gt;</strong><br /> 从GDS服务器中读取新版雷达拼图数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据在micaps分布式服务器中的路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_radar_latlon_from_gds(r&amp;quot;mdfs:///RADARMOSAIC/CREF/ACHN.CREF000.20201004.110000.LATLON&amp;quot;) print(grd) </code></pre> <pre><code>None</code></pre> <pre><code class="language-python">grd = meb.read_griddata_from_radar_mosaic_v3_gds(r&amp;quot;mdfs:///RADARMOSAIC/QREF/ACHN_QREF_20211107_071000.BIN&amp;quot;) print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 4200, lon: 6200)&amp;gt; array([[[[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]]]]) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 0 * time (time) datetime64[ns] 2021-11-07T07:10:00 * dtime (dtime) int32 0 * lat (lat) float64 12.2 12.21 12.22 12.23 ... 54.16 54.17 54.18 54.19 * lon (lon) float64 73.0 73.01 73.02 73.03 ... 135.0 135.0 135.0 135.0</code></pre> <h1>从文件中读取雷达拼图数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_radar_latlon_file(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从文件中读取雷达拼图数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </p> <h1>从文件中读取雷达拼图(mosaic_v3)数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_radar_mosaic_v3_file(filename, grid=None, level=None, time=None, dtime=None, data_name=&quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show=False)&lt;/font&gt;</strong><br /> 从文件中读取雷达拼图(mosaic_v3)数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的站点数据的member维度将设置为[data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">show = True时,会在屏幕中打印数据的输入文件路径信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_griddata_from_radar_latlon_file(r&amp;quot;H:\test_data\input\meb\ACHN.CREF000.20200610.114200.LATLON&amp;quot;) print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 4200, lon: 6200)&amp;gt; array([[[[[[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]]]]]]) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) object None * time (time) object None * dtime (dtime) object None * lat (lat) float64 12.21 12.22 12.23 12.24 ... 54.17 54.18 54.19 54.2 * lon (lon) float64 73.0 73.01 73.02 73.03 ... 135.0 135.0 135.0 135.0</code></pre> <pre><code class="language-python">grd = meb.read_griddata_from_radar_mosaic_v3_file(r&amp;quot;H:\test_data\input\meb\radar_mosaic_v3.bin&amp;quot;) print(grd) grd.values[np.isnan(grd.values)] =-32 meb.pcolormesh_2d_grid(grd,cmap = meb.cmaps.radar)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 4200, lon: 6200)&amp;gt; array([[[[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]]]]) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) int32 0 * time (time) datetime64[ns] 2021-11-07T07:10:00 * dtime (dtime) int32 0 * lat (lat) float64 12.2 12.21 12.22 12.23 ... 54.16 54.17 54.18 54.19 * lon (lon) float64 73.0 73.01 73.02 73.03 ... 135.0 135.0 135.0 135.0</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/c368955fa07b47a48aecad4006d7c062" alt="" /></p> <h1>从micaps11文件读取风场</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_gridwind_from_micaps11(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;&quot;,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从micaps11类文件中读取风场,将其内容放置在本程序库支持的包含6维网格的网格数据内,u和v分量放在在member维度。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[&quot;u&quot;+data_name,&quot;v&quot;+data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_gridwind_from_micaps11(r&amp;quot;H:/test_data/input/meb/m11.024&amp;quot;) print(grd)</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> <h1>从micaps2文件读取风场</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;def read_gridwind_from_micaps2(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,show =False)&lt;/font&gt;</strong><br /> 从micaps2类文件中读取风场,将其内容放置在本程序库支持的包含6维网格的网格数据内,u和v分量放在在member维度。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[&quot;u&quot;+data_name,&quot;v&quot;+data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_gridwind_from_micaps2(r&amp;quot;H:/test_data/input/meb/m2.024&amp;quot;) print(grd)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'wind' (member: 2, level: 1, time: 1, dtime: 1, lat: 141, lon: 181)&amp;gt; array([[[[[[-8.24957739e+00, -8.05999988e+00, -7.65894709e+00, ..., 1.00314067e+00, -7.16045259e-01, -6.69819372e-01], [-8.10359989e+00, -7.65095379e+00, -7.49575966e+00, ..., -6.98885668e-01, -1.82758082e+00, -1.90469786e+00], [-7.73318251e+00, -8.09544178e+00, -7.77803244e+00, ..., 1.00231654e+00, -2.31277290e+00, -1.79432772e+00], ..., [ 7.84638074e+00, 8.09466653e+00, 8.06469306e+00, ..., -5.23304842e+00, -4.34034523e+00, -2.79282432e+00], [ 8.45729805e+00, 8.25180429e+00, 8.67384338e+00, ..., -1.19998831e+01, -1.17637528e+01, -1.03694922e+01], [ 8.43769354e+00, 8.64098482e+00, 8.45429033e+00, ..., -1.24375484e+01, -1.38122355e+01, -1.44809581e+01]]]]], [[[[[ 1.08021889e+00, 1.40673537e-03, 1.27001790e-01, ..., 1.40947111e+00, -1.57485847e+00, -3.20066275e+00], [ 1.54731021e+00, 1.23507334e+00, 1.12693705e+00, ..., 1.73086172e-01, -1.74952803e+00, -2.42043923e+00], [ 2.84525716e+00, 2.31521542e+00, 1.95514995e+00, ..., -3.46806308e+00, -2.09415413e+00, -1.82592115e+00], ..., [ 1.50470997e+01, 1.37201047e+01, 1.30019508e+01, ..., -6.74883725e+00, -7.96406324e+00, -5.55774525e+00], [ 1.56284039e+01, 1.48744017e+01, 1.38005232e+01, ..., -8.28125630e+00, -8.35697428e+00, -5.71482554e+00], [ 1.41095332e+01, 1.45936624e+01, 1.37368801e+01, ..., -1.07661455e+01, -1.34083799e+01, -1.64023246e+01]]]]]]) Coordinates: * member (member) &amp;lt;U1 'u' 'v' * level (level) int32 0 * time (time) datetime64[ns] 2019-12-01 * dtime (dtime) int32 0 * lat (lat) float64 -10.0 -9.5 -9.0 -8.5 -8.0 ... 58.5 59.0 59.5 60.0 * lon (lon) float64 60.0 60.5 61.0 61.5 62.0 ... 148.5 149.0 149.5 150.0</code></pre> <h1>从Micaps二进制文件读取风场</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_gridwind_from_gds_file(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,show = False)&lt;/font&gt;</strong><br /> 从gds类文件中读取风场,将其内容放置在本程序库支持的包含6维网格的网格数据内,u和v分量放在在member维度。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[&quot;u&quot;+data_name,&quot;v&quot;+data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_gridwind_from_gds_file(r&amp;quot;H:/test_data/input/meb/test_wind.gds&amp;quot;) print(grd)</code></pre> <pre><code>0 &amp;lt;xarray.DataArray 'wind' (member: 2, level: 1, time: 1, dtime: 1, lat: 361, lon: 720)&amp;gt; array([[[[[[-0.64478743, -0.64478743, -0.64478743, ..., -0.64478743, -0.64478743, -0.64478743], [-3.44478679, -3.34478831, -3.34478831, ..., -3.54478669, -3.44478679, -3.44478679], [-3.54478788, -3.54478765, -3.44478679, ..., -3.6447866 , -3.54478669, -3.54478788], ..., [-6.4447875 , -6.4447875 , -6.44478798, ..., -6.44478798, -6.4447875 , -6.4447875 ], [-5.74478769, -5.74478769, -5.74478722, ..., -5.74478817, -5.74478817, -5.74478769], [ 5.95521402, 5.95521402, 5.95521402, ..., 5.95521402, 5.95521402, 5.95521402]]]]], [[[[[ 3.96943331, 3.96943331, 3.96943331, ..., 3.96943331, 3.96943331, 3.96943331], [-3.93056679, -3.93056583, -3.93056583, ..., -3.73056698, -3.83056736, -3.83056736], [-3.83056664, -3.93056631, -3.93056679, ..., -3.73056746, -3.73056698, -3.83056664], ..., [ 0.86943507, 0.86943507, 0.96943164, ..., 0.76943201, 0.86943507, 0.86943507], [ 1.16943479, 1.16943479, 1.26943421, ..., 1.06943381, 1.06943381, 1.16943479], [-3.3305645 , -3.3305645 , -3.3305645 , ..., -3.3305645 , -3.3305645 , -3.3305645 ]]]]]]) Coordinates: * member (member) &amp;lt;U6 'udata0' 'vdata0' * level (level) float64 850.0 * time (time) datetime64[ns] 2020-01-05T08:00:00 * dtime (dtime) int32 0 * lat (lat) float64 -90.0 -89.5 -89.0 -88.5 -88.0 ... 88.5 89.0 89.5 90.0 * lon (lon) float64 0.0 0.5 1.0 1.5 2.0 ... 357.5 358.0 358.5 359.0 359.5</code></pre> <h1>从Micaps服务器读取风场</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_gridwind_from_gds(filename,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从gds中读取风场,将其内容放置在本程序库支持的包含6维网格的网格数据内,u和v分量放在在member维度。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">数据在micaps分布式服务器中的路径</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[&quot;u&quot;+data_name,&quot;v&quot;+data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">path = meb.get_path(r&amp;quot;ECMWF_HR/WIND/850/YYMMDDHH.TTT&amp;quot;,time2,24) grd = meb.io.read_gridwind_from_gds(path) print(grd)</code></pre> <pre><code>0 &amp;lt;xarray.DataArray 'wind' (member: 2, level: 1, time: 1, dtime: 1, lat: 301, lon: 651)&amp;gt; array([[[[[[ 0.5379802 , 0.19422944, -0.18077196, ..., -8.83702087, -8.55577087, -8.46202087], [-0.05577151, -0.4307684 , -0.74326944, ..., -9.18077087, -8.86826897, -8.68077087], [-0.71202147, -0.96202016, -1.36827028, ..., -9.49326992, -9.33702183, -9.14952087], ..., [ 2.25673151, 2.35047865, 2.50673199, ..., -3.21201873, -3.08701992, -3.05577207], [ 1.75673008, 1.85047698, 2.03798151, ..., -3.36826921, -3.24327064, -3.18077016], [ 1.22547841, 1.31923139, 1.44423032, ..., -3.24326921, -3.21202207, -3.1495223 ]]]]], [[[[[-5.6650238 , -4.69627428, -3.72752357, ..., -2.94627428, -2.94627452, -2.91502428], [-5.29002428, -4.35252428, -3.19627428, ..., -2.60252285, -2.63377786, -2.66502452], [-5.0712738 , -4.0712738 , -2.91502404, ..., -2.41502547, -2.44627309, -2.47752619], ..., [-6.85252285, -6.8525238 , -6.82127237, ..., -7.54002476, -7.4462738 , -7.32127333], [-6.8837738 , -6.85252428, -6.82127333, ..., -7.82127476, -7.69627333, -7.5712738 ], [-7.0400238 , -6.97752333, -6.9775238 , ..., -7.88377428, -7.79002333, -7.66502333]]]]]]) Coordinates: * member (member) &amp;lt;U6 'udata0' 'vdata0' * level (level) float64 850.0 * time (time) datetime64[ns] 2021-02-20T20:00:00 * dtime (dtime) int32 24 * lat (lat) float64 7.629e-06 0.2 0.4 0.6 0.8 ... 59.4 59.6 59.8 60.0 * lon (lon) float64 50.0 50.2 50.4 50.6 50.8 ... 179.4 179.6 179.8 180.0</code></pre> <pre><code class="language-python">path = meb.get_path(r&amp;quot;mdfs:///ECMWF_ENSEMBLE/RAW/WIND_10M/YYMMDDHH.TTT&amp;quot;,time2,24) grd = meb.io.read_gridwind_from_gds(path) #读取集合预报的风场 print(grd) </code></pre> <pre><code>51 &amp;lt;xarray.DataArray 'data0' (member: 102, level: 1, time: 1, dtime: 1, lat: 121, lon: 261)&amp;gt; array([[[[[[-3.34413433e+00, -3.20351005e+00, -2.85976005e+00, ..., -5.70350933e+00, -5.06288481e+00, -5.75038481e+00], [-3.48476052e+00, -2.76601005e+00, -2.96913409e+00, ..., -5.42226028e+00, -5.59413385e+00, -6.00038528e+00], [-4.23476028e+00, -3.21913409e+00, -3.25038505e+00, ..., -5.50038481e+00, -5.62538481e+00, -5.45351028e+00], ..., [ 6.71489894e-01, 5.46490014e-01, 7.80865073e-01, ..., -3.79725838e+00, -3.81288743e+00, -3.89100885e+00], [ 5.15240133e-01, 5.30865014e-01, 6.24614835e-01, ..., -3.64100695e+00, -3.34412980e+00, -3.40663218e+00], [ 3.58990669e-01, 4.52739477e-01, 4.21490371e-01, ..., -3.76600718e+00, -3.54725933e+00, -3.34413457e+00]]]]], [[[[[-3.99640226e+00, -3.56671429e+00, -3.41827703e+00, ..., -2.63702822e+00, -2.59796572e+00, -2.63702798e+00], [-4.30890179e+00, -3.92608953e+00, -3.48859024e+00, ..., ... -1.10531301e+01, -1.88398178e+02, 2.35310459e+01], [ 1.74888496e+01, 1.14563437e+01, 5.33587723e+01, ..., 2.35368176e+01, -1.61529045e+01, -2.74668884e+02]]]]], [[[[[ 1.49309731e-09, 5.23097053e+14, -2.15693440e+09, ..., -1.58731179e-15, 9.10844002e-44, -3.23175430e-01], [-3.37914512e-33, 5.17265344e+05, 4.99284378e+10, ..., 1.16903808e-16, -1.26370099e+09, 0.00000000e+00], [-1.44416822e-18, 2.54053512e-28, -2.62844512e+04, ..., -7.79035040e-13, 4.87730745e-08, -6.33292424e-04], ..., [-4.61591156e-07, -3.91865024e-06, 1.56379275e-32, ..., -1.18390798e-30, -6.64724212e-07, 8.70729370e+01], [-1.96876282e+02, -5.64161415e+01, -2.49802292e-29, ..., -4.87038803e+00, 2.88421539e+02, -1.69239641e-19], [-4.04481197e-22, 1.56422425e-06, -9.18545482e-38, ..., -9.79437256e+00, -3.54292603e+01, -1.69978271e+02]]]]]]) Coordinates: * member (member) &amp;lt;U3 'u0' 'v0' 'u1' 'v1' 'u2' ... 'u49' 'v49' 'u50' 'v50' * level (level) int32 0 * time (time) datetime64[ns] 2099-01-01 * dtime (dtime) int32 0 * lat (lat) float64 60.0 59.5 59.0 58.5 58.0 57.5 ... 2.0 1.5 1.0 0.5 0.0 * lon (lon) float64 50.0 50.5 51.0 51.5 52.0 ... 178.5 179.0 179.5 180.0</code></pre> <pre><code class="language-python">path = meb.get_path(r&amp;quot;GRAPES_GFS/HGT/500/YYMMDDHH.TTT&amp;quot;,time2,6) grid0 = meb.grid([0, 100, 0.5], [0, 40, 0.5]) grd = meb.read_griddata_from_gds(path,grid=grid0) meb.tool.plot_tools.contourf_2d_grid(grd)</code></pre> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/3dee9247f18d8adef8d51f66627c4d60?showdoc=.jpg" alt="" /></p> <h1>从雷达拼图格式字节流中解析出网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;decode_griddata_from_radar_byteArray(byteArray,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从雷达拼图格式字节流中解析出网格数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </p> <h1>从雷达拼图(mosaic_v3)字节流中解析出网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;decode_griddata_from_radar_mosaic_v3_byteArray(byteArray, grid=None, level=None, time=None, dtime=None,data_name=&quot;data0&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从新版的雷达拼图格式(mosaic_v3)字节流中解析出网格数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </p> <h1>从AWX格式字节流中解析出网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;decode_griddata_from_AWX_byteArray(byteArray,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从AWX格式的字节流byteArray中解析出网格预报数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </p> <h1>从Micaps二进制节流中解析出网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;decode_griddata_from_gds_byteArray(byteArray,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从micaps分布式服务器支持的网格数据的字节流byteArray中解析出网格预报数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </p> <h1>从Micaps二进制字节流中解析出风场网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;decode_gridwind_from_gds_byteArray(byteArray,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从micaps分布式服务器支持的网格数据的字节流byteArray中解析出网格预报数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。<br /> u和v分量放在在member维度。 </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;byteArray&lt;/font&gt;</strong></td> <td style="text-align: left;">字节数组</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[data_name],对于风场网格数据则设置为[&quot;u&quot;+data_name,&quot;v&quot;+data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">file = open(r&amp;quot;H:\test_data\input\meb\B13_20200229_2100_HMW8.AWX&amp;quot;, 'rb') #设置读取方式为rb,即读入字节 byteArray = file.read() # 读入字节数组 grd = meb.decode_griddata_from_AWX_byteArray(byteArray) #将字节数组转换为网格数据 print(grd) # 结果和前面用函数meb.read_griddata_from_AWX_file(r&amp;quot;H:\test_data\input\meb\B13_20200229_2100_HMW8.AWX&amp;quot;)读取的是一样的。 </code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 2001, lon: 3501)&amp;gt; array([[[[[[288.13, 288.13, 288.13, ..., 284.86, 284.86, 285.33], [288.59, 288.59, 288.59, ..., 284.39, 285.33, 285.33], [288.59, 288.59, 288.59, ..., 284.86, 287.2 , 287.67], ..., [209.35, 209.35, 209.35, ..., 254.54, 252.54, 252.54], [209.35, 209.35, 209.35, ..., 252.54, 252.54, 252.54], [209.35, 209.35, 209.35, ..., 252.54, 252.54, 252.54]]]]]], dtype=float32) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) object None * time (time) object None * dtime (dtime) object None * lat (lat) float64 15.0 15.02 15.04 15.06 ... 54.94 54.96 54.98 55.0 * lon (lon) float64 70.0 70.02 70.04 70.06 ... 139.9 140.0 140.0 140.0 Attributes: dtime_type: hour</code></pre> <p>上面的例子中提到,采用字节流转网格数据效果和用已有的函数读取是一样的,它其实是前面网格数据读取函数的调取对象。那为何需要了解这些底层能,原因在于,有可能我们的数据文件可能以某种压缩格式存储,了解这些功能可以让我们方便的读取一些压缩的数据文件。 </p> <h1>从bz2格式的压缩文件中读取网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_bz2_file(filename,decode_method,grid = None,level = None,time = None,dtime = None,data_name = &quot;data0&quot;,dtime_units = &quot;hour&quot;,outer_value = None,show = False)&lt;/font&gt;</strong><br /> 从bz2格式的压缩文件中读取网格数据,将其内容放置在本程序库支持的包含6维网格的网格数据内。 </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;filename&lt;/font&gt;</strong></td> <td style="text-align: left;">文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>&lt;font face=&quot;黑体&quot; color=blue size = 5&gt;decode_method&lt;/font&gt;</strong></td> <td style="text-align: left;">字节流转网格数据的方法,如本页前面所述,可选的包括:&lt;br&gt;decode_griddata_from_radar_byteArray,&lt;br&gt;decode_griddata_from_AWX_byteArray,&lt;br&gt;decode_griddata_from_gds_byteArray,&lt;br&gt;decode_gridwind_from_gds_byteArray</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,如果该参数不为None,返回的站点数据中level维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>dtime</strong></td> <td style="text-align: left;">时效,如果该参数不为None,返回的站点数据中dtime维度设置为该参数值,否则设0</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[data_name],对于风场网格数据则设置为[&quot;u&quot;+data_name,&quot;v&quot;+data_name]</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code class="language-python">grd = meb.read_griddata_from_bz2_file(r&amp;quot;H:\test_data\input\meb\ACHN.QREF000.20191201.000000.latlon.bz2&amp;quot; ,meb.decode_griddata_from_radar_byteArray) print(grd) #读取的过程直接不需要解压输出中间文件</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 4200, lon: 6200)&amp;gt; array([[[[[[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]]]]]]) Coordinates: * member (member) &amp;lt;U5 'data0' * level (level) object None * time (time) object None * dtime (dtime) object None * lat (lat) float64 12.21 12.22 12.23 12.24 ... 54.17 54.18 54.19 54.2 * lon (lon) float64 73.0 73.01 73.02 73.03 ... 135.0 135.0 135.0 135.0</code></pre> <h1>用ctl读取grads网格数据</h1> <p><strong>&lt;font face=&quot;黑体&quot; color=blue size = 3&gt;read_griddata_from_ctl(ctl_path,data_path = None,value_name = None,dtime_dim = None,dtime_start = 0,time = None,level = None, grid = None,endian = &quot;&lt;&quot;, data_name=None,dtime_units = &quot;hour&quot;,outer_value = None, show=False)&lt;/font&gt;</strong> </p> <p>根据ctl文件读取grads格式二进制数据 </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;ctl_path&lt;/font&gt;</strong></td> <td style="text-align: left;">ctl文件路径</td> </tr> <tr> <td style="text-align: left;"><strong>data_path</strong></td> <td style="text-align: left;">二进制文件的数据路径,如果ctl文件中包含正确的二进制数据文件名,且数据文件和clt文件在同一目录下,则该参数可缺省</td> </tr> <tr> <td style="text-align: left;"><strong>value_name</strong></td> <td style="text-align: left;">当数据文件中有多个要素时,需指定要素名称</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_dim</strong></td> <td style="text-align: left;">如果ctl中tdef 指的是时间维度,这该参数缺省,如果ctl文件中tdef指的是时效,则该参数设置为&quot;tdef&quot;</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_start</strong></td> <td style="text-align: left;">如果如果ctl文件中tdef指的是时效,ctl文件中tdef设置的时间序列的起始时间相对于实际起报时间的距离</td> </tr> <tr> <td style="text-align: left;"><strong>time</strong></td> <td style="text-align: left;">时间,如果该参数不为None,返回的站点数据中time维度设置为该参数值,否则根据文件内容自动设置</td> </tr> <tr> <td style="text-align: left;"><strong>level</strong></td> <td style="text-align: left;">层次,zdef中只有1层时,如果设置了level,则返回结果中层次设置为level,否则设置为zdef给定的取值。当zdef中包含多层时,level可以用来指定所需要读取的数据的层次,level 为实数时表示取一层的数据,level为实数的列表时,表示取多层数据,level为None时读取所有层数据</td> </tr> <tr> <td style="text-align: left;"><strong>grid</strong></td> <td style="text-align: left;">格点的经纬度信息,默认为:None,如果有传入grid信息,需要使用双线性插值进行提取。</td> </tr> <tr> <td style="text-align: left;"><strong>endian</strong></td> <td style="text-align: left;">可选项包括&quot;&lt;&quot;和&quot;&gt;&quot;,用于区分二进制数据是bigendian 还是littlediand</td> </tr> <tr> <td style="text-align: left;"><strong>data_name</strong></td> <td style="text-align: left;">返回的格点数据的member维度将设置为[data_name],如果ctl中包含edef参数时,该参数需设置为缺省值None</td> </tr> <tr> <td style="text-align: left;"><strong>outer_value</strong></td> <td style="text-align: left;">当文件中的网格范围无法覆盖参数grid制定的范围时,未覆盖部分的填充值</td> </tr> <tr> <td style="text-align: left;"><strong>dtime_units</strong></td> <td style="text-align: left;">时效的单位类型,可设置的选项包括&quot;hour&quot;和&quot;minute&quot;两种</td> </tr> <tr> <td style="text-align: left;"><strong>show</strong></td> <td style="text-align: left;">在show = False时,仅在读取数据失败是在屏幕上输出简要的错误信息,如果show = True,在读取数据失败时会在屏幕上打印完整的报错信息,在数据读取成功时也会打印相应的提示信息</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;"><a href="https://www.showdoc.cc/meteva?page_id=3975600815874861">网格数据类</a>变量</td> </tr> </tbody> </table> <p><strong>调用示例</strong> </p> <p><strong>调用示例</strong></p> <pre><code class="language-python">ctl_filename = r&amp;quot;H:\test_data\input\meb\ctl_test\ecmf_extend_2m_above_ground_temperature.ctl&amp;quot; file = open(ctl_filename, 'r') strs = file.read() file.close() print(strs)</code></pre> <pre><code>DSET ^ecmf_extend_2m_above_ground_temperature.dat TITLE ENSEMBLE DATA UNDEF 9.999E20 XDEF 161 LINEAR 70.0000 0.500000 YDEF 111 LINEAR 0.000000 0.500000 ZDEF 1 LEVELS -9999.0 TDEF 31 LINEAR 00Z05Feb2021 12hr EDEF 51 NAMES c00 p01 p02 p03 p04 p05 p06 p07 p08 p09 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33 p34 p35 p36 p37 p38 p39 p40 p41 p42 p43 p44 p45 p46 p47 p48 p49 p50 VARS 1 t2 0 99 2 metre temperature ENDVARS</code></pre> <pre><code class="language-python">data_filename = r&amp;quot;H:\test_data\input\meb\ctl_test\ecmf_extend_2m_above_ground_temperature.dat&amp;quot; grd = meb.read_griddata_from_ctl(ctl_filename,data_path = data_filename) print(grd)</code></pre> <pre><code>H:\test_data\input\meb\ctl_test/ecmf_extend_2m_above_ground_temperature.dat &amp;lt;xarray.DataArray 'data0' (member: 51, level: 1, time: 31, dtime: 1, lat: 111, lon: 161)&amp;gt; array([[[[[[ 2.6575195e+01, 2.6294464e+01, 2.6668793e+01, ..., 2.8794189e+01, 2.8825775e+01, 2.8638611e+01], [ 2.6450043e+01, 2.6793945e+01, 2.7044281e+01, ..., 2.8732208e+01, 2.8794189e+01, 2.8607025e+01], [ 2.6606781e+01, 2.7325012e+01, 2.7419769e+01, ..., 2.8732208e+01, 2.8106384e+01, 2.7732086e+01], ..., [-4.1748047e+00, -4.9561768e+00, -5.2369080e+00, ..., -1.0205933e+01, -1.0080780e+01, -1.0174347e+01], [-6.0802917e+00, -7.4243164e+00, -8.1121216e+00, ..., -7.4559021e+00, -8.5811768e+00, -8.7367554e+00], [-7.2687378e+00, -8.1741028e+00, -9.2678223e+00, ..., -6.6744995e+00, -6.4241943e+00, -7.3307495e+00]]], [[[ 2.6774933e+01, 2.7242920e+01, 2.7337311e+01, ..., 2.8399139e+01, 2.8337524e+01, 2.8586578e+01], [ 2.7337311e+01, 2.7775146e+01, 2.8087128e+01, ..., 2.7992767e+01, 2.7775146e+01, 2.7118378e+01], [ 2.8024200e+01, 2.8367676e+01, 2.8087128e+01, ..., ... [-1.4630310e+01, -1.6130981e+01, -1.6974182e+01, ..., -1.6302795e+00, -1.4748535e+00, -1.2864075e+00], [-1.3505127e+01, -1.4505127e+01, -1.5224518e+01, ..., -1.9122620e+00, -1.6935730e+00, -1.4748535e+00]]], [[[ 2.7564117e+01, 2.7656921e+01, 2.7625580e+01, ..., 2.7970428e+01, 2.8314026e+01, 2.8375488e+01], [ 2.7470062e+01, 2.7688263e+01, 2.7532776e+01, ..., 2.7782318e+01, 2.8063232e+01, 2.8532227e+01], [ 2.7470062e+01, 2.7719635e+01, 2.7719635e+01, ..., 2.7845032e+01, 2.7845032e+01, 2.7939087e+01], ..., [-1.4810852e+01, -1.6186523e+01, -1.7154633e+01, ..., -1.5620117e+00, -1.9056091e+00, -2.0297546e+00], [-1.5998413e+01, -1.6999115e+01, -1.7717682e+01, ..., -1.3111877e+00, -1.6861572e+00, -1.9056091e+00], [-1.6498779e+01, -1.6967773e+01, -1.7374084e+01, ..., -1.2485046e+00, -1.2171326e+00, -1.3739014e+00]]]]]], dtype=float32) Coordinates: * member (member) int32 0 1 2 3 4 5 6 7 8 9 ... 42 43 44 45 46 47 48 49 50 * level (level) float64 -9.999e+03 * time (time) datetime64[ns] 2021-02-05 2021-02-05T12:00:00 ... 2021-02-20 * dtime (dtime) int32 0 * lat (lat) float64 0.0 0.5 1.0 1.5 2.0 2.5 ... 53.0 53.5 54.0 54.5 55.0 * lon (lon) float64 70.0 70.5 71.0 71.5 72.0 ... 148.5 149.0 149.5 150.0 Attributes: dtime_units: hour</code></pre> <pre><code class="language-python"># 由于ctl里面包含的数据文件名,且数据文件和ctl文件在同一目录,因此data_path可缺省, # 有时不太时效的数据在ctl里是以tdef来表示的,此时设置dtime_dim = &amp;quot;tdef&amp;quot;,可以将tdef指定为时效维度 grd = meb.read_griddata_from_ctl(ctl_filename,dtime_dim = &amp;quot;tdef&amp;quot;) print(grd)</code></pre> <pre><code>H:\test_data\input\meb\ctl_test/ecmf_extend_2m_above_ground_temperature.dat members:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] levels:[-9999.0] gtime:['20210205000000', '20210205000000', '1h'] dtimes:[0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360] glon:[70.0, 150.0, 0.5] glat:[0.0, 55.0, 0.5] &amp;lt;xarray.DataArray 'data0' (member: 51, level: 1, time: 1, dtime: 31, lat: 111, lon: 161)&amp;gt; array([[[[[[ 2.6575195e+01, 2.6294464e+01, 2.6668793e+01, ..., 2.8794189e+01, 2.8825775e+01, 2.8638611e+01], [ 2.6450043e+01, 2.6793945e+01, 2.7044281e+01, ..., 2.8732208e+01, 2.8794189e+01, 2.8607025e+01], [ 2.6606781e+01, 2.7325012e+01, 2.7419769e+01, ..., 2.8732208e+01, 2.8106384e+01, 2.7732086e+01], ..., [-4.1748047e+00, -4.9561768e+00, -5.2369080e+00, ..., -1.0205933e+01, -1.0080780e+01, -1.0174347e+01], [-6.0802917e+00, -7.4243164e+00, -8.1121216e+00, ..., -7.4559021e+00, -8.5811768e+00, -8.7367554e+00], [-7.2687378e+00, -8.1741028e+00, -9.2678223e+00, ..., -6.6744995e+00, -6.4241943e+00, -7.3307495e+00]], [[ 2.6774933e+01, 2.7242920e+01, 2.7337311e+01, ..., 2.8399139e+01, 2.8337524e+01, 2.8586578e+01], [ 2.7337311e+01, 2.7775146e+01, 2.8087128e+01, ..., 2.7992767e+01, 2.7775146e+01, 2.7118378e+01], [ 2.8024200e+01, 2.8367676e+01, 2.8087128e+01, ..., 2.7118378e+01, 2.6836548e+01, 2.6868011e+01], ... -1.4748535e+00, -1.3180542e+00, -1.0057983e+00], [-1.4630310e+01, -1.6130981e+01, -1.6974182e+01, ..., -1.6302795e+00, -1.4748535e+00, -1.2864075e+00], [-1.3505127e+01, -1.4505127e+01, -1.5224518e+01, ..., -1.9122620e+00, -1.6935730e+00, -1.4748535e+00]], [[ 2.7564117e+01, 2.7656921e+01, 2.7625580e+01, ..., 2.7970428e+01, 2.8314026e+01, 2.8375488e+01], [ 2.7470062e+01, 2.7688263e+01, 2.7532776e+01, ..., 2.7782318e+01, 2.8063232e+01, 2.8532227e+01], [ 2.7470062e+01, 2.7719635e+01, 2.7719635e+01, ..., 2.7845032e+01, 2.7845032e+01, 2.7939087e+01], ..., [-1.4810852e+01, -1.6186523e+01, -1.7154633e+01, ..., -1.5620117e+00, -1.9056091e+00, -2.0297546e+00], [-1.5998413e+01, -1.6999115e+01, -1.7717682e+01, ..., -1.3111877e+00, -1.6861572e+00, -1.9056091e+00], [-1.6498779e+01, -1.6967773e+01, -1.7374084e+01, ..., -1.2485046e+00, -1.2171326e+00, -1.3739014e+00]]]]]], dtype=float32) Coordinates: * member (member) int32 0 1 2 3 4 5 6 7 8 9 ... 42 43 44 45 46 47 48 49 50 * level (level) float64 -9.999e+03 * time (time) datetime64[ns] 2021-02-05 * dtime (dtime) int32 0 12 24 36 48 60 72 ... 288 300 312 324 336 348 360 * lat (lat) float64 0.0 0.5 1.0 1.5 2.0 2.5 ... 53.0 53.5 54.0 54.5 55.0 * lon (lon) float64 70.0 70.5 71.0 71.5 72.0 ... 148.5 149.0 149.5 150.0</code></pre> <pre><code class="language-python"># 文件实际起报的时间是2023-04-18T12:00:00,但在ctl中 TDEF 60 LINEAR 18Z18Apr2023 6hr # 为因此可以推断第一个时效是006H,此设置dtime_start = 6 ctl_filename = r&amp;quot;H:\test_data\input\meb\ctl_test\babj_full_surface_total_precipitation.ctl&amp;quot; grd = meb.read_griddata_from_ctl(ctl_filename,dtime_dim = &amp;quot;tdef&amp;quot;,dtime_start=6) print(grd)</code></pre> <pre><code>H:\test_data\input\meb\ctl_test/babj_full_surface_total_precipitation.dat &amp;lt;xarray.DataArray 'data0' (member: 31, level: 1, time: 1, dtime: 60, lat: 111, lon: 161)&amp;gt; array([[[[[[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 2.82279998e-02, 7.36800022e-03, 6.27599983e-03], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 4.33479995e-02, 1.62924007e-01, 1.03667997e-01], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 1.91688001e-01, 2.24159993e-02, 1.76655993e-01], ..., [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], [[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 2.82240007e-02, 9.11200047e-03, 6.27999986e-03], [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 4.52799983e-02, 2.20855996e-01, 1.51695997e-01], [8.39999993e-04, 2.70056009e-01, 6.26223981e-01, ..., 2.79688001e-01, 2.32800003e-02, 1.90640002e-01], ... 1.93267202e+00, 2.00908804e+00, 2.48447990e+00], [2.50112009e+00, 1.85369599e+00, 1.84767997e+00, ..., 2.16038394e+00, 2.21977592e+00, 4.47910404e+00], [2.32153606e+00, 1.36140800e+00, 1.26310396e+00, ..., 2.15564799e+00, 3.30585599e+00, 5.98784018e+00]], [[1.50682878e+01, 8.00012779e+00, 7.71647978e+00, ..., 7.06056976e+01, 8.94935074e+01, 1.57353989e+02], [1.63491840e+01, 2.11752968e+01, 1.74717445e+01, ..., 7.14621429e+01, 6.26223373e+01, 7.52965088e+01], [1.71170559e+01, 1.88712959e+01, 2.29920006e+01, ..., 6.43678741e+01, 5.58790398e+01, 5.82782707e+01], ..., [1.92550397e+00, 2.00051188e+00, 2.52940798e+00, ..., 1.93267202e+00, 2.00908804e+00, 2.48447990e+00], [2.50112009e+00, 1.85369599e+00, 1.84767997e+00, ..., 2.16038394e+00, 2.21977592e+00, 4.47910404e+00], [2.32153606e+00, 1.36140800e+00, 1.26310396e+00, ..., 2.15564799e+00, 3.30585599e+00, 5.98784018e+00]]]]]], dtype=float32) Coordinates: * member (member) int32 0 1 2 3 4 5 6 7 8 9 ... 22 23 24 25 26 27 28 29 30 * level (level) float64 -9.999e+03 * time (time) datetime64[ns] 2023-04-18T12:00:00 * dtime (dtime) int32 6 12 18 24 30 36 42 ... 324 330 336 342 348 354 360 * lat (lat) float64 0.25 0.75 1.25 1.75 2.25 ... 53.75 54.25 54.75 55.25 * lon (lon) float64 70.0 70.5 71.0 71.5 72.0 ... 148.5 149.0 149.5 150.0 Attributes: dtime_units: hour</code></pre> <h1>读取非等经纬度网格并转换</h1> <p>meteva默认是只支持等经纬度网格的数据,当需要读入的网格数据不是等经纬度网格数据时,可以考虑先将网格数据读取成站点的形势,再通过插值的方法转换成等经纬度网格数据,下面结合wrfout的示例数据进行说明</p> <pre><code class="language-python">path = r&amp;quot;H:\test_data\input\meb\nc\wrfout.nc&amp;quot; grd0 = xr.open_dataset(path) #通过xarray读入网格数据 print(grd0) </code></pre> <pre><code>&amp;lt;xarray.Dataset&amp;gt; Dimensions: (Time: 1, south_north: 213, west_east: 213) Coordinates: XLAT (Time, south_north, west_east) float32 ... XLONG (Time, south_north, west_east) float32 ... XTIME (Time) datetime64[ns] ... Dimensions without coordinates: Time, south_north, west_east Data variables: RAINC (Time, south_north, west_east) float64 ...</code></pre> <p>物理量RAINC是用户需要读入的数据场,它是在维度变量south_north和 west_east上定义的网格数据。由于网格不是等经纬度的,每个格点的经纬度由XLONG和XLAT给定。为此可以通过如下方法提取每个点的经度、纬度和变量值,并存储于一个站点数据变量中。</p> <pre><code class="language-python">grd0.coords[&amp;quot;XTIME&amp;quot;].values[0]</code></pre> <pre><code>numpy.datetime64('2022-09-27T12:00:00.000000000')</code></pre> <pre><code class="language-python">sta = pd.DataFrame({&amp;quot;level&amp;quot;:0, &amp;quot;time&amp;quot;:grd0.coords[&amp;quot;XTIME&amp;quot;].values[0],&amp;quot;dtime&amp;quot;:0, &amp;quot;id&amp;quot;:np.arange(grd0.coords[&amp;quot;XLAT&amp;quot;].values.size), &amp;quot;lon&amp;quot;:grd0.coords[&amp;quot;XLONG&amp;quot;].values.flatten(), &amp;quot;lat&amp;quot;:grd0.coords[&amp;quot;XLAT&amp;quot;].values.flatten(), &amp;quot;RAINC&amp;quot;:grd0.variables[&amp;quot;RAINC&amp;quot;].values.flatten() }) print(sta)</code></pre> <pre><code> level time dtime id lon lat RAINC 0 0 2022-09-27 12:00:00 0 0 75.274979 1.747635 10.597 1 0 2022-09-27 12:00:00 0 1 75.555405 1.747635 9.175 2 0 2022-09-27 12:00:00 0 2 75.835831 1.747635 8.409 3 0 2022-09-27 12:00:00 0 3 76.116249 1.747635 7.947 4 0 2022-09-27 12:00:00 0 4 76.396675 1.747635 7.147 ... ... ... ... ... ... ... ... 45364 0 2022-09-27 12:00:00 0 45364 133.603317 52.068527 0.000 45365 0 2022-09-27 12:00:00 0 45365 133.883743 52.068527 0.000 45366 0 2022-09-27 12:00:00 0 45366 134.164169 52.068527 0.000 45367 0 2022-09-27 12:00:00 0 45367 134.444595 52.068527 0.000 45368 0 2022-09-27 12:00:00 0 45368 134.725021 52.068527 0.000 [45369 rows x 7 columns]</code></pre> <pre><code class="language-python">grid = meb.grid([70,140,0.05],[0,55,0.05]) # 设置一个等经纬度的网格信息变量 grd1 = meb.interp_sg_idw(sta,grid = grid,nearNum=4,effectR=20) # 将站点数据插值到网格上 print(grd1)</code></pre> <pre><code>&amp;lt;xarray.DataArray 'data0' (member: 1, level: 1, time: 1, dtime: 1, lat: 1101, lon: 1401)&amp;gt; array([[[[[[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]]]]]]) Coordinates: * member (member) &amp;lt;U5 'RAINC' * level (level) int32 0 * time (time) datetime64[ns] 2022-09-27T12:00:00 * dtime (dtime) int32 0 * lat (lat) float64 0.0 0.05 0.1 0.15 0.2 ... 54.8 54.85 54.9 54.95 55.0 * lon (lon) float64 70.0 70.05 70.1 70.15 ... 139.9 139.9 139.9 140.0</code></pre> <pre><code class="language-python">meb.contourf_2d_grid(grd1,cmap = &amp;quot;rain_1h&amp;quot;) #绘制插值结果</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=eabe28d00cc7474f1edc6553c636d16e&amp;amp;file=file.png" alt="" /></p>

页面列表

ITEM_HTML