GFS要素清单:774-784#

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

gfs_grib2_orig_file_path = get_data_file("cma-gfs")
gfs_grib2_orig_file_path
PosixPath('/home/wangdp/project/cedarkit/notebook-project/notebook-devel/ref/data-notebook-project/data-notebook/data/cma-gfs/grib2/orig/Z_NAFP_C_BABJ_20260725000000_P_NWPC-GRAPES-GFS-GLB-02400.grib2')

KX/SX/CAPE/CIN/PLI/pc/dcape#

K指数#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

K指数

KX

kx

k

(0, 7, 2)

meanSea

-

774

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="KX",
    level_type="meanSea",
    lazy=True
)
assert field.attrs["GRIB_count"] == 774
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="kx",
    lazy=True
)
assert field.attrs["GRIB_count"] == 774
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="k",
    lazy=True
)
assert field.attrs["GRIB_count"] == 774
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 2,
    },
    level_type="meanSea",
    lazy=True
)
assert field.attrs["GRIB_count"] == 774

强天气胁迫指数#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

强天气胁迫指数

SX

sx

sweatidx

(0, 7, 5)

surface

-

775

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="SX",
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 775
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="sx",
    level_type="sfc",
    lazy=True
)
assert field.attrs["GRIB_count"] == 775
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="sweatidx",
    lazy=True
)
assert field.attrs["GRIB_count"] == 775
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 5,
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 775

对流有效位能#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

对流有效位能

CAPE

-

cape

(0, 7, 6)

surface

-

776

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="CAPE",
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 776
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="cape",
    lazy=True
)
assert field.attrs["GRIB_count"] == 776
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 6,
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 776

对流抑制能量#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

对流抑制能量

CIN

-

cin

(0, 7, 7)

surface

-

777

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="CIN",
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 777
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="cin",
    lazy=True
)
assert field.attrs["GRIB_count"] == 777
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 7,
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 777

抬升指数#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

抬升指数

PLI

pli

pli

(0, 7, 0)

surface

-

778

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="PLI",
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 778
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="pli",
    lazy=True
)
assert field.attrs["GRIB_count"] == 778
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 0,
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 778

抬升凝结高度#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

抬升凝结高度

-

-

pc

(0, 1, 228)

surface

-

779

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="pc",
    lazy=True
)
assert field.attrs["GRIB_count"] == 779
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 1,
        "parameterNumber": 228, 
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 779

下沉对流有效位能#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

下沉对流有效位能

-

-

dcape

(0, 7, 224)

surface

-

780

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="dcape",
    lazy=True
)
assert field.attrs["GRIB_count"] == 780
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 224,
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 780

垂直风切变#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

0-1000m垂直风切变

VWSH

vwsh

shr(0-1000)

(0, 2, 25)

heightAboveGroundLayer

1000, 0

781

0-3000m垂直风切变

VWSH

vwsh

shr(0-3000)

(0, 2, 25)

heightAboveGroundLayer

3000, 0

782

0-6000m垂直风切变

VWSH

vwsh

shr(0-6000)

(0, 2, 25)

heightAboveGroundLayer

6000, 0

783

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="VWSH",
    level_type="heightAboveGroundLayer",
    level=1000,
    lazy=True
)
assert field.attrs["GRIB_count"] == 781
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="vwsh",
    level_type="heightAboveGroundLayer",
    level={
        "first_level": 3000,
        "second_level": 0,
    },
    lazy=True
)
assert field.attrs["GRIB_count"] == 782
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="shr(0-6000)",
    lazy=True
)
assert field.attrs["GRIB_count"] == 783
field = load_field_from_file(
    gfs_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"] == 783

最优抬升指数#

要素名

wgrib2

eccodes

cemc

GRIB Key

层次类型

层次

编号

最优抬升指数

BLI

bli

bli

(0, 7, 1)

surface

-

784

field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="BLI",
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 784
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter="bli",
    lazy=True
)
assert field.attrs["GRIB_count"] == 784
field = load_field_from_file(
    gfs_grib2_orig_file_path,
    parameter={
        "discipline": 0,
        "parameterCategory": 7,
        "parameterNumber": 1,
    },
    level_type="surface",
    lazy=True
)
assert field.attrs["GRIB_count"] == 784