ncep下载的hrrr file开始.

读入xarray.数据集个字母,如...

ds: xr.数据集 = xr.open_dataset(file, engine="pynio")

数据集

<xarray.数据集>
Dimensions:                        (ygrid_0: 1059, xgrid_0: 1799, lv_HYBL0: 50,
                                    lv_HTGL1: 2, lv_HTGL2: 2, lv_TMPL3: 2,
                                    lv_SPDL4: 3, lv_HTGL5: 2, lv_HTGL6: 2,
                                    lv_DBLL7: 2, lv_HTGL8: 2, lv_HTGL9: 3)
Coordinates:
  * lv_HTGL6                       (lv_HTGL6) float32 1e+03 4e+03
  * lv_TMPL3                       (lv_TMPL3) float32 253.0 263.0
  * lv_HTGL1                       (lv_HTGL1) float32 10.0 80.0
  * lv_HYBL0                       (lv_HYBL0) float32 1.0 2.0 3.0 ... 49.0 50.0
    gridlat_0                      (ygrid_0, xgrid_0) float32 ...
    gridlon_0                      (ygrid_0, xgrid_0) float32 ...
Dimensions without coordinates: ygrid_0, xgrid_0, lv_HTGL2, lv_SPDL4, lv_HTGL5,
                                lv_DBLL7, lv_HTGL8, lv_HTGL9
Data variables: (12/149)
    TMP_P0_L1_GLC0                 (ygrid_0, xgrid_0) float32 ...
    TMP_P0_L103_GLC0               (ygrid_0, xgrid_0) float32 ...
    TMP_P0_L105_GLC0               (lv_HYBL0, ygrid_0, xgrid_0) float32 ...
    POT_P0_L103_GLC0               (ygrid_0, xgrid_0) float32 ...
    DPT_P0_L103_GLC0               (ygrid_0, xgrid_0) float32 ...
    LHTFL_P0_L1_GLC0               (ygrid_0, xgrid_0) float32 ...
    ...                             ...
    lv_HTGL5_l0                    (lv_HTGL5) float32 ...
    lv_SPDL4_l1                    (lv_SPDL4) float32 ...
    lv_SPDL4_l0                    (lv_SPDL4) float32 ...
    lv_HTGL2_l1                    (lv_HTGL2) float32 ...
    lv_HTGL2_l0                    (lv_HTGL2) float32 ...
    gridrot_0                      (ygrid_0, xgrid_0) float32 ...

目前我只关心Variables个包含这3个公共Coordinates [lv_HYBL0, gridlat_0, gridlon_0]

我可以手动 Select /索引那些拥有我想要的CoordinatesVariables,比如....

ds[["TMP_P0_L105_GLC0",...]]

但我更喜欢abstract种以上的方法.在《Pandas 》中,我会做一些bool种索引,大致如下...ds[ds.variables[ds.coords.isin(["gridlat_0","gridlon_0","lv_HYBL0"])]]

不幸的是,这不起作用.

如何根据VariableCoordinate相连的情况 Select Variables

推荐答案

你仍然可以做类似的事情.您可以使用键列表过滤数据集的变量,并通过测试每个数组的dims属性(即元组)的元素来确定维度.

在这种情况下:

required_dims = ['lv_HYBL0', 'gridlat_0', 'gridlon_0']

#sorted tuple
required_dims = tuple(sorted(required_dims))

subset = ds[[
    k for k, v in ds.data_vars.items()
    if tuple(sorted(v.dims)) == required_dims
]]

Python相关问答推荐

Gekko解算器错误results.json未找到,无法找出原因

Python-Polars:如何用两个值的平均值填充NA?

有没有办法清除气流中的僵尸

自动编码器和极坐标

如何观察cv2.erode()的中间过程?

如何修复使用turtle和tkinter制作的绘画应用程序的撤销功能

多处理代码在while循环中不工作

仅从风格中获取 colored颜色 循环

使用LineConnection动画1D数据

时间序列分解

Pandas 滚动最接近的价值

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

查找两极rame中组之间的所有差异

如何访问所有文件,例如环境变量

如何在solve()之后获得症状上的等式的值

未知依赖项pin—1阻止conda安装""

python中的解释会在后台调用函数吗?

Python Pandas获取层次路径直到顶层管理

如何在TensorFlow中分类多个类

在pandas/python中计数嵌套类别