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
meso_grib2_orig_file_path = get_data_file("cma-meso-1km")
meso_grib2_orig_file_pathPosixPath('/home/wangdp/project/cedarkit/notebook-project/notebook-devel/repo/data-notebook-project/data-notebook/data/cma-meso-1km/grib2/orig/Z_NAFP_C_BABJ_20260725000000_P_CEMC-CMA-MESO-1KM-ORIG-02400.grb2')K指数¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| K指数 | k | KX | kx | (0, 7, 2) | meanSea | - | 359 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="KX",
level_type="meanSea",
lazy=True
)
assert field.attrs["GRIB_count"] == 359field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="kx",
lazy=True
)
assert field.attrs["GRIB_count"] == 359field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="k",
lazy=True
)
assert field.attrs["GRIB_count"] == 359field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 7,
"parameterNumber": 2,
},
level_type="meanSea",
lazy=True
)
assert field.attrs["GRIB_count"] == 359对流有效位能¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 对流有效位能 | cape | CAPE | - | (0, 7, 6) | surface | - | 360 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="CAPE",
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 360field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="cape",
lazy=True
)
assert field.attrs["GRIB_count"] == 360field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 7,
"parameterNumber": 6,
},
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 360对流抑制能量¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 对流抑制能量 | cin | CIN | - | (0, 7, 7) | surface | - | 361 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="CIN",
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 361field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="cin",
lazy=True
)
assert field.attrs["GRIB_count"] == 361field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 7,
"parameterNumber": 7,
},
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 361抬升指数¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 抬升指数 | pli | PLI | pli | (0, 7, 0) | surface | - | 362 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="PLI",
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 362field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="pli",
lazy=True
)
assert field.attrs["GRIB_count"] == 362field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 7,
"parameterNumber": 0,
},
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 362抬升凝结高度处气压¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 抬升凝结高度处气压 | pc | - | - | (0, 1, 228) | surface | - | 363 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="pc",
lazy=True
)
assert field.attrs["GRIB_count"] == 363field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 228,
},
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 363下沉对流有效位能¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 下沉对流有效位能 | dcape | - | - | (0, 7, 224) | surface | - | 364 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="dcape",
lazy=True
)
assert field.attrs["GRIB_count"] == 364field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 7,
"parameterNumber": 224,
},
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 364垂直风切变¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 0-1000m垂直风切变 | shr(0-1000) | VWSH | vwsh | (0, 2, 25) | heightAboveGroundLayer | 1000, 0 | 365 |
| 0-3000m垂直风切变 | shr(0-3000) | VWSH | vwsh | (0, 2, 25) | heightAboveGroundLayer | 3000, 0 | 366 |
| 0-6000m垂直风切变 | shr(0-6000) | VWSH | vwsh | (0, 2, 25) | heightAboveGroundLayer | 6000, 0 | 367 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="VWSH",
level_type="heightAboveGroundLayer",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 365field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="vwsh",
level_type="heightAboveGroundLayer",
level={
"first_level": 3000,
"second_level": 0,
},
lazy=True
)
assert field.attrs["GRIB_count"] == 366field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="shr(0-6000)",
lazy=True
)
assert field.attrs["GRIB_count"] == 367field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 2,
"parameterNumber": 25,
},
level_type="heightAboveGroundLayer",
level={
"first_level": 6000,
"second_level": 0,
},
lazy=True
)
assert field.attrs["GRIB_count"] == 367最优抬升指数¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 最优抬升指数 | bli | BLI | bli | (0, 7, 1) | surface | - | 368 |
field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="BLI",
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 368field = load_field_from_file(
meso_grib2_orig_file_path,
parameter="bli",
lazy=True
)
assert field.attrs["GRIB_count"] == 368field = load_field_from_file(
meso_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 7,
"parameterNumber": 1,
},
level_type="surface",
lazy=True
)
assert field.attrs["GRIB_count"] == 368