GFS要素清单:472-773#
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
相对湿度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
相对湿度 |
RH |
r |
rh |
(0, 1, 1) |
pl |
30层 |
472-501 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="RH",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 472
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="r",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 477
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="rh",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 497
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 1,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 501
RH/DPT#
2米相对湿度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
2米相对湿度 |
RH |
2r |
rh2m |
(0, 1, 1) |
heightAboveGround |
2 |
502 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="RH",
level_type="heightAboveGround",
level=2,
lazy=True
)
assert field.attrs["GRIB_count"] == 502
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="2r",
lazy=True
)
assert field.attrs["GRIB_count"] == 502
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="rh2m",
lazy=True
)
assert field.attrs["GRIB_count"] == 502
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 1,
},
level_type="heightAboveGround",
level=2,
lazy=True
)
assert field.attrs["GRIB_count"] == 502
2米露点温度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
2米露点温度 |
DPT |
2d |
td2m |
(0, 0, 6) |
heightAboveGround |
2 |
503 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="DPT",
level_type="heightAboveGround",
level=2,
lazy=True
)
assert field.attrs["GRIB_count"] == 503
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="2d",
lazy=True
)
assert field.attrs["GRIB_count"] == 503
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="td2m",
lazy=True
)
assert field.attrs["GRIB_count"] == 503
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 0,
"parameterNumber": 6,
},
level_type="heightAboveGround",
level=2,
lazy=True
)
assert field.attrs["GRIB_count"] == 503
RELD/RELV/tadv/voradv/qflx/qdiv/DPT/DEPR/EPOT#
散度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
散度 |
RELD |
d |
div |
(0, 2, 13) |
pl |
30层 |
504-533 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="RELD",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 504
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="d",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 509
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="div",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 529
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 2,
"parameterNumber": 13,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 533
涡度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
涡度 |
RELV |
vo |
vor |
(0, 2, 12) |
pl |
30层 |
534-563 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="RELV",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 534
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="vo",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 539
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="vor",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 559
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 2,
"parameterNumber": 12,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 563
温度平流#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
温度平流 |
- |
- |
tadv |
(0, 0, 224) |
pl |
30层 |
564-593 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="tadv",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 564
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="tadv",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 569
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="tadv",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 589
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 0,
"parameterNumber": 224,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 593
涡度平流#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
涡度平流 |
- |
- |
voradv |
(0, 2, 224) |
pl |
30层 |
594-623 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="voradv",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 594
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="voradv",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 599
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="voradv",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 619
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 2,
"parameterNumber": 224,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 623
水汽通量#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
水汽通量 |
- |
- |
qflx |
(0, 1, 224) |
pl |
30层 |
624-653 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qflx",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 624
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qflx",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 629
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qflx",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 649
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 224,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 653
水汽通量散度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
水汽通量散度 |
- |
- |
qdiv |
(0, 1, 225) |
pl |
30层 |
654-683 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qdiv",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 654
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qdiv",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 659
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="qdiv",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 679
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 1,
"parameterNumber": 225,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 683
露点温度#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
露点温度 |
DPT |
dpt |
td |
(0, 0, 6) |
pl |
30层 |
684-713 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="DPT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 684
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="dpt",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 689
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="td",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 709
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 0,
"parameterNumber": 6,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 713
温度露点差#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
温度露点差 |
DEPR |
- |
ttd |
(0, 0, 7) |
pl |
30层 |
714-743 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="DEPR",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 714
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="DEPR",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 719
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="ttd",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 739
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 0,
"parameterNumber": 7,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 743
假相当位温#
要素名 |
wgrib2 |
eccodes |
cemc |
GRIB Key |
层次类型 |
层次 |
编号 |
|---|---|---|---|---|---|---|---|
假相当位温 |
EPOT |
papt |
thetaSe |
(0, 0, 3) |
pl |
30层 |
744-773 |
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="EPOT",
level_type="pl",
level=1000,
lazy=True
)
assert field.attrs["GRIB_count"] == 744
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="papt",
level_type="pl",
level=850,
lazy=True
)
assert field.attrs["GRIB_count"] == 749
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter="thetaSe",
level_type="pl",
level=70,
lazy=True
)
assert field.attrs["GRIB_count"] == 769
field = load_field_from_file(
gfs_grib2_orig_file_path,
parameter={
"discipline": 0,
"parameterCategory": 0,
"parameterNumber": 3,
},
level_type="pl",
level=10,
lazy=True
)
assert field.attrs["GRIB_count"] == 773