GFS要素清单:224-463#
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')
层次#
30 层列表,单位百帕 (mb):
1000
975
950
925
900
850
800
750
700
650
600
550
500
450
400
350
300
275
250
225
200
175
150
125
100
70
50
30
20
10
DZDT/SPFH/CLMR/RWMR/ICMR/SNMR/GRLE/CDCC#
垂直速度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
垂直速度 |
DZDT |
wz |
w |
(0, 2, 9) |
pl |
30层 |
224-253 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="DZDT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 224
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="wz",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 229
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="w",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 249
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 2,
"parameterNumber": 9,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 253
比湿#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
比湿 |
SPFH |
q |
q |
(0, 1, 0) |
pl |
30层 |
254-283 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="SPFH",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 254
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="q",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 259
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="q",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 279
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 0,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 283
云水混合比#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
云水混合比 |
CLMR |
clwmr |
qc |
(0, 1, 22) |
pl |
30层 |
284-313 |
注:wgrib2 建议云水混合比 (CLWMR) 使用 CLLMR
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="CLMR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 284
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="clwmr",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 289
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qc",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 309
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 22,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 313
雨水混合比#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
雨水混合比 |
RWMR |
rwmr |
qr |
(0, 1, 24) |
pl |
30层 |
314-343 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="RWMR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 314
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="rwmr",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 319
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qr",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 339
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 24,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 343
冰水混合比#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
冰水混合比 |
ICMR |
icmr |
qi |
(0, 1, 23) |
pl |
30层 |
344-373 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="ICMR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 344
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="icmr",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 349
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qi",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 369
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 23,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 373
雪水混合比#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
雪水混合比 |
SNMR |
snmr |
qs |
(0, 1, 25) |
pl |
30层 |
374-403 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="SNMR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 374
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="snmr",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 379
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qs",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 399
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 25,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 403
霰#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
霰 |
GRLE |
grle |
graupel |
(0, 1, 32) |
pl |
30层 |
404-433 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="GRLE",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 404
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="grle",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 409
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="graupel",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 429
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 32,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 433
云量#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
云量 |
CDCC |
ccl |
cc |
(0, 6, 22) |
pl |
30层 |
434-463 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="CDCC",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 434
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="ccl",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 439
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="cc",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 459
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 6,
"parameterNumber": 22,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 463