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
meso3km_grib2_orig_file_path = get_data_file("cma-meso-3km")
meso3km_grib2_orig_file_pathPosixPath('/home/wangdp/project/cedarkit/notebook-project/notebook-devel/repo/data-notebook-project/data-notebook/data/cma-meso-3km/grib2/orig/Z_NAFP_C_BABJ_20260818000000_P_NWPC-GRAPES-3KM-ORIG-02400.grb2')等压面:散度/涡度/平流/水汽通量/露点/假相当位温¶
散度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 散度 | div | RELD | d | (0, 2, 13) | pl | 21层 | 337-357 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="RELD",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 337field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="d",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 345field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="div",
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 354field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 13},
level_type="pl",
level=100,
lazy=True
)
assert field.attrs["GRIB_count"] == 357涡度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 涡度 | vor | RELV | vo | (0, 2, 12) | pl | 21层 | 358-378 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="RELV",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 358field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="vo",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 366field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="vor",
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 375field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 12},
level_type="pl",
level=100,
lazy=True
)
assert field.attrs["GRIB_count"] == 378温度平流¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 温度平流 | tadv | - | - | (0, 0, 224) | pl | 21层 | 379-399 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="tadv",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 379field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 224},
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 387涡度平流¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 涡度平流 | voradv | - | - | (0, 2, 224) | pl | 21层 | 400-420 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="voradv",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 400field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 2, "parameterNumber": 224},
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 408水汽通量¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 水汽通量 | qflx | - | - | (0, 1, 224) | pl | 21层 | 421-441 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="qflx",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 421field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 1, "parameterNumber": 224},
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 429水汽通量散度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 水汽通量散度 | qdiv | FRZR | - | (0, 1, 225) | pl | 21层 | 442-462 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="FRZR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 442field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="qdiv",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 450field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 1, "parameterNumber": 225},
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 459露点温度¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 露点温度 | td | DPT | dpt | (0, 0, 6) | pl | 21层 | 463-483 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="DPT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 463field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="dpt",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 471field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="td",
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 480field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 6},
level_type="pl",
level=100,
lazy=True
)
assert field.attrs["GRIB_count"] == 483温度露点差¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 温度露点差 | ttd | DEPR | - | (0, 0, 7) | pl | 21层 | 484-504 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="DEPR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 484field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="ttd",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 492field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 7},
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 501假相当位温¶
| 要素名 | cemc | wgrib2 | eccodes | GRIB Key | 层次类型 | 层次 | 编号 |
|---|---|---|---|---|---|---|---|
| 假相当位温 | thetaSe | EPOT | papt | (0, 0, 3) | pl | 21层 | 505-525 |
field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="EPOT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 505field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="papt",
level_type="pl",
level=700,
lazy=True
)
assert field.attrs["GRIB_count"] == 513field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter="thetaSe",
level_type="pl",
level=250,
lazy=True
)
assert field.attrs["GRIB_count"] == 522field = load_field_from_file(
meso3km_grib2_orig_file_path,
parameter={"discipline": 0, "parameterCategory": 0, "parameterNumber": 3},
level_type="pl",
level=100,
lazy=True
)
assert field.attrs["GRIB_count"] == 525