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')等压面:散度/涡度/平流¶
散度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 散度 | div | RELD | d | (0, 2, 13) | pl | 7层 | 372-378 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="RELD",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 372field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="d",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 374field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="div",
level_type="pl",
level=500,
lazy=True
)
assert field.attrs["GRIB_count"] == 376field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 13},
level_type="pl",
level=100,
lazy=True
)
assert field.attrs["GRIB_count"] == 378涡度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 涡度 | vor | RELV | vo | (0, 2, 12) | pl | 7层 | 379-385 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="RELV",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 379field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="vo",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 381field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="vor",
level_type="pl",
level=500,
lazy=True
)
assert field.attrs["GRIB_count"] == 383field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 12},
level_type="pl",
level=100,
lazy=True
)
assert field.attrs["GRIB_count"] == 385温度平流¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 温度平流 | tadv | - | - | (0, 0, 224) | pl | 7层 | 386-392 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="tadv",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 386field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 224},
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 388水汽通量¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 水汽通量 | qflx | - | - | (0, 1, 224) | pl | 7层 | 393-399 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="qflx",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 393field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 1, "parameterNumber": 224},
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 395水汽通量散度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 水汽通量散度 | qdiv | FRZR | - | (0, 1, 225) | pl | 7层 | 400-406 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="FRZR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 400field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="qdiv",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 402field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 1, "parameterNumber": 225},
level_type="pl",
level=500,
lazy=True
)
assert field.attrs["GRIB_count"] == 404等压面:露点与温度露点差¶
露点温度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 露点温度 | td | DPT | dpt | (0, 0, 6) | pl | 26层 | 407-432 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="DPT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 407field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="dpt",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 415field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="td",
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 424field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 6},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 432温度露点差¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 温度露点差 | ttd | DEPR | - | (0, 0, 7) | pl | 7层 | 433-439 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="DEPR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 433field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="ttd",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 435field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 7},
level_type="pl",
level=500,
lazy=True
)
assert field.attrs["GRIB_count"] == 437等压面:假相当位温¶
假相当位温¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 假相当位温 | thetaSe | EPOT | papt | (0, 0, 3) | pl | 26层 | 440-465 |
field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="EPOT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 440field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="papt",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 448field = load_field_from_file(
tym_grib2_orig_file_path,
parameter="thetaSe",
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 457field = load_field_from_file(
tym_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 3},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 465