import numpy as np
import pandas as pd
import xarray as xr
from reki.format.grib.eccodes import load_field_from_file/home/wangdp/project/cedarkit/notebook-project/notebook-devel/repo/data-notebook-project/data-notebook/.venv/lib/python3.14/site-packages/gribapi/__init__.py:23: UserWarning: ecCodes 2.42.0 or higher is recommended. You are running version 2.34.1
warnings.warn(
from data_notebook.data import get_data_file
tym_grib2_orig_file_path = get_data_file("cma-tym")
tym_grib2_orig_file_pathPosixPath('/home/wangdp/project/cedarkit/notebook-project/notebook-devel/repo/data-notebook-project/data-notebook/data/cma-tym/grib2/orig/Z_NAFP_C_BABJ_20260811000000_P_NWPC-GRAPES-TYM-ACWP-02400.grib2')稳定度指数¶
K指数¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| K指数 | kidx | KX | kx | (0, 7, 2) | meanSea | - | 466 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="KX",
lazy=True
)
assert field.attrs["GRIB_count"] == 466field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="kx",
lazy=True
)
assert field.attrs["GRIB_count"] == 466field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="kidx",
lazy=True
)
assert field.attrs["GRIB_count"] == 466field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 7, "parameterNumber": 2},
lazy=True
)
assert field.attrs["GRIB_count"] == 466对流有效位能¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 对流有效位能 | cape | CAPE | - | (0, 7, 6) | surface | - | 467 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="CAPE",
lazy=True
)
assert field.attrs["GRIB_count"] == 467field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="cape",
lazy=True
)
assert field.attrs["GRIB_count"] == 467field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 7, "parameterNumber": 6},
lazy=True
)
assert field.attrs["GRIB_count"] == 467对流抑制能量¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 对流抑制能量 | cin | CIN | - | (0, 7, 7) | surface | - | 468 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="CIN",
lazy=True
)
assert field.attrs["GRIB_count"] == 468field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="cin",
lazy=True
)
assert field.attrs["GRIB_count"] == 468field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 7, "parameterNumber": 7},
lazy=True
)
assert field.attrs["GRIB_count"] == 4680-1000米垂直风切变¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 0-1000米垂直风切变 | shr(0-1000) | VWSH | vwsh | (0, 2, 25) | heightAboveGroundLayer | 1000, 0 | 469 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="VWSH",
lazy=True
)
assert field.attrs["GRIB_count"] == 469field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="vwsh",
lazy=True
)
assert field.attrs["GRIB_count"] == 469field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="shr(0-1000)",
lazy=True
)
assert field.attrs["GRIB_count"] == 469field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 25},
lazy=True
)
assert field.attrs["GRIB_count"] == 4690-3000米垂直风切变¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 0-3000米垂直风切变 | shr(0-3000) | VWSH | vwsh | (0, 2, 25) | heightAboveGroundLayer | 3000, 0 | 470 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="VWSH",
level_type="heightAboveGroundLayer",
level=3000,
lazy=True
)
assert field.attrs["GRIB_count"] == 470field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="vwsh",
level_type="heightAboveGroundLayer",
level=3000,
lazy=True
)
assert field.attrs["GRIB_count"] == 470field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="shr(0-3000)",
lazy=True
)
assert field.attrs["GRIB_count"] == 470field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 25},
level_type="heightAboveGroundLayer",
level=3000,
lazy=True
)
assert field.attrs["GRIB_count"] == 4700-6000米垂直风切变¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 0-6000米垂直风切变 | shr(0-6000) | VWSH | vwsh | (0, 2, 25) | heightAboveGroundLayer | 6000, 0 | 471 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="VWSH",
level_type="heightAboveGroundLayer",
level=6000,
lazy=True
)
assert field.attrs["GRIB_count"] == 471field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="vwsh",
level_type="heightAboveGroundLayer",
level=6000,
lazy=True
)
assert field.attrs["GRIB_count"] == 471field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="shr(0-6000)",
lazy=True
)
assert field.attrs["GRIB_count"] == 471field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 25},
level_type="heightAboveGroundLayer",
level=6000,
lazy=True
)
assert field.attrs["GRIB_count"] == 471最优抬升指数¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 最优抬升指数 | bli | BLI | bli | (0, 7, 1) | surface | - | 472 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="BLI",
lazy=True
)
assert field.attrs["GRIB_count"] == 472field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="bli",
lazy=True
)
assert field.attrs["GRIB_count"] == 472field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 7, "parameterNumber": 1},
lazy=True
)
assert field.attrs["GRIB_count"] == 472整层可降水量¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 整层可降水量 | pwat | PWAT | pwat | (0, 1, 3) | atmosphere | - | 473 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="PWAT",
lazy=True
)
assert field.attrs["GRIB_count"] == 473field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="pwat",
lazy=True
)
assert field.attrs["GRIB_count"] == 473field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 1, "parameterNumber": 3},
lazy=True
)
assert field.attrs["GRIB_count"] == 473能见度、雾与阵风¶
能见度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 能见度 | vis | VIS | vis | (0, 19, 0) | surface | - | 474 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="VIS",
lazy=True
)
assert field.attrs["GRIB_count"] == 474field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="vis",
lazy=True
)
assert field.attrs["GRIB_count"] == 474field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 19, "parameterNumber": 0},
lazy=True
)
assert field.attrs["GRIB_count"] == 474雾顶高度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 雾顶高度 | fogh | - | - | (0, 19, 224) | surface | - | 475 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="fogh",
lazy=True
)
assert field.attrs["GRIB_count"] == 475field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 19, "parameterNumber": 224},
lazy=True
)
assert field.attrs["GRIB_count"] == 475雾光学厚度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 雾光学厚度 | fogod | - | - | (0, 19, 225) | surface | - | 476 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="fogod",
lazy=True
)
assert field.attrs["GRIB_count"] == 476field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 19, "parameterNumber": 225},
lazy=True
)
assert field.attrs["GRIB_count"] == 476阵风风速¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 阵风风速 | gust | GUST | i10fg | (0, 2, 22) | heightAboveGround | 10 | 477 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="GUST",
lazy=True
)
assert field.attrs["GRIB_count"] == 477field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="i10fg",
lazy=True
)
assert field.attrs["GRIB_count"] == 477field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="gust",
lazy=True
)
assert field.attrs["GRIB_count"] == 477field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 22},
lazy=True
)
assert field.attrs["GRIB_count"] == 477卫星红外通道模拟亮温¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 卫星红外通道模拟亮温 | bti | - | - | (0, 4, 228) | surface | - | 478 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="bti",
lazy=True
)
assert field.attrs["GRIB_count"] == 478field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 4, "parameterNumber": 228},
lazy=True
)
assert field.attrs["GRIB_count"] == 478卫星水汽通道模拟亮温¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 卫星水汽通道模拟亮温 | btv | - | - | (0, 4, 227) | surface | - | 479 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="btv",
lazy=True
)
assert field.attrs["GRIB_count"] == 479field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 4, "parameterNumber": 227},
lazy=True
)
assert field.attrs["GRIB_count"] == 479