MESO要素清单:154-279#

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/ref/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_path
PosixPath('/home/wangdp/project/cedarkit/notebook-project/notebook-devel/ref/data-notebook-project/data-notebook/data/cma-meso-1km/grib2/orig/Z_NAFP_C_BABJ_20260725000000_P_CEMC-CMA-MESO-1KM-ORIG-02400.grb2')

层次#

21 层,层次列表如下:

  • 1000

  • 975

  • 950

  • 925

  • 900

  • 850

  • 800

  • 750

  • 700

  • 650

  • 600

  • 550

  • 500

  • 450

  • 400

  • 350

  • 300

  • 250

  • 200

  • 150

  • 100

比湿#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

比湿

SPFH

q

q

(0, 1, 0)

pl

21层

154-174

field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="SPFH",
    level_type="pl",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 154
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="q",
    level_type="pl",
    level=850,
    lazy=True
)
assert field.attrs["GRIB_count"] == 159
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 0,
    },
    level_type="pl",
    level=100,
    lazy=True
)
assert field.attrs["GRIB_count"] == 174

云水混合比#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

云水混合比

CLMR

clwmr

qc

(0, 1, 22)

pl

21层

175-195

Note

wgrib2 建议云水混合比 (CLWMR) 使用 CLLMR

field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="CLMR",
    level_type="pl",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 175
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="clwmr",
    level_type="pl",
    level=850,
    lazy=True
)
assert field.attrs["GRIB_count"] == 180
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="qc",
    level_type="pl",
    level=200,
    lazy=True
)
assert field.attrs["GRIB_count"] == 193
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 22,
    },
    level_type="pl",
    level=100,
    lazy=True
)
assert field.attrs["GRIB_count"] == 195

雨水混合比#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

雨水混合比

RWMR

rwmr

qr

(0, 1, 24)

pl

21层

196-216

field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="RWMR",
    level_type="pl",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 196
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="rwmr",
    level_type="pl",
    level=850,
    lazy=True
)
assert field.attrs["GRIB_count"] == 201
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="qr",
    level_type="pl",
    level=200,
    lazy=True
)
assert field.attrs["GRIB_count"] == 214
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 24,
    },
    level_type="pl",
    level=100,
    lazy=True
)
assert field.attrs["GRIB_count"] == 216

冰水混合比#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

冰水混合比

ICMR

icmr

qi

(0, 1, 23)

pl

21层

217-237

field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="ICMR",
    level_type="pl",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 217
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="icmr",
    level_type="pl",
    level=850,
    lazy=True
)
assert field.attrs["GRIB_count"] == 222
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="qi",
    level_type="pl",
    level=200,
    lazy=True
)
assert field.attrs["GRIB_count"] == 235
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 23,
    },
    level_type="pl",
    level=100,
    lazy=True
)
assert field.attrs["GRIB_count"] == 237

雪水混合比#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

雪水混合比

SNMR

snmr

qs

(0, 1, 25)

pl

30层

238-258

field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="SNMR",
    level_type="pl",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 238
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="snmr",
    level_type="pl",
    level=850,
    lazy=True
)
assert field.attrs["GRIB_count"] == 243
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="qs",
    level_type="pl",
    level=200,
    lazy=True
)
assert field.attrs["GRIB_count"] == 256
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 25,
    },
    level_type="pl",
    level=100,
    lazy=True
)
assert field.attrs["GRIB_count"] == 258

#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

GRLE

grle

graupel

(0, 1, 32)

pl

21层

259-279

field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="GRLE",
    level_type="pl",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 259
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="grle",
    level_type="pl",
    level=850,
    lazy=True
)
assert field.attrs["GRIB_count"] == 264
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter="graupel",
    level_type="pl",
    level=200,
    lazy=True
)
assert field.attrs["GRIB_count"] == 277
field = load_field_from_file(
    meso_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 32,
    },
    level_type="pl",
    level=100,
    lazy=True
)
assert field.attrs["GRIB_count"] == 279