本节介绍如何使用 cedar-graph 工具绘制图形。
Notebook Cell
# 隐藏日志 DEBUG 输出,不影响最终结果
import sys
from loguru import logger
logger.remove()
logger.add(sys.stderr, level="INFO")# 数据环境配置:使用本地数据目录(可用环境变量 CEDARKIT_NOTEBOOK_DATA_ROOT 覆盖)
from cedarkit_notebook.data import get_data_root, get_dataset_query
DATA_CLASS = "cmadaas"
STORAGE_BASE = str(get_data_root())
Notebook Cell
# 自动识别 CEMC 地图包
from importlib.metadata import metadata, PackageNotFoundError
from cedarkit.plots.map import set_default_map_loader_package
try:
meda_metadata = metadata("cemc_meda_data")
set_default_map_loader_package("cedarkit.plots.map.cemc")
except PackageNotFoundError:
# package is not installed
pass快速绘图¶
quick_plot 可以使用 CMA 气象超算中的 CEMC 数值天气预报业务系统数据绘制并显示图形。
下面代码使用 CMA-GFS 全球预报系统的 GRIB2 数据绘制东亚区域 2 米温度填充图。
import pandas as pd
# 起报时次与预报时效固定为本地已下载数据(见 data/metadata/ 下的元信息文件)
gfs_query = get_dataset_query("cma-gfs")
meso_query = get_dataset_query("cma-meso-3km")
start_time = gfs_query["start_time"]
start_time'2026072500'from cedar_graph.quickplot import quick_plot
plot_type = "cn.t_2m.default"
plot_settings = dict(
system_name="CMA-GFS",
start_time=start_time,
forecast_time=gfs_query["forecast_time"],
data_class=DATA_CLASS,
storage_base=STORAGE_BASE,
)
quick_plot(
plot_type=plot_type,
**plot_settings,
)/home/wangdp/project/cedarkit/notebook-project/notebook-devel/repo/cedarkit-notebook-project/cedarkit-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(

使用 CMA-MESO 区域预报系统的 GRIB2 数据绘制东北区域 10 米风速填充图。
from cedar_graph.quickplot import quick_plot
from cedarkit.plots.types import AreaRange
plot_type = "cn.wind_10m.default"
plot_settings = dict(
system_name="CMA-MESO-3KM",
start_time=meso_query["start_time"],
forecast_time=meso_query["forecast_time"],
area_name="NorthEast",
area_range=AreaRange.from_tuple((108, 137, 37, 55)),
data_class=DATA_CLASS,
storage_base=STORAGE_BASE,
)
quick_plot(
plot_type=plot_type,
**plot_settings,
)
手动绘图¶
可以使用绘图模块中的函数和类绘制图形。
下面的示例使用 CMA-MESO 数据绘制 2 米相对湿度填充图,包括以下步骤:
创建
LocalDataSource对象获取 CMA 气象超算中的 CMA-MESO 数据文件路径使用
cedar_graph.plots.t_2m.default模块中的load_data加载数据,生成plot_data对象使用
cedar_graph.plots.t_2m.default模块中的plot函数绘制图形,生成panel对象调用
panel.show()方法显示结果
import pandas as pd
from cedar_graph.plots.cn.rh_2m.default import PlotMetadata, plot, load_data
from cedar_graph.data import LocalDataSource, DataLoader
system_name = "CMA-MESO-3KM"
start_time = pd.to_datetime(meso_query["start_time"], format="%Y%m%d%H")
forecast_time = pd.to_timedelta(meso_query["forecast_time"])
metadata = PlotMetadata(
start_time=start_time,
forecast_time=forecast_time,
system_name=system_name
)
# system -> field
data_source = LocalDataSource(
system_name=system_name,
data_class=DATA_CLASS,
storage_base=STORAGE_BASE,
)
data_loader = DataLoader(data_source=data_source)
plot_data = load_data(
data_loader=data_loader,
start_time=start_time,
forecast_time=forecast_time,
)
# field -> plot
panel = plot(
plot_data=plot_data,
plot_metadata=metadata,
)
# plot -> output
panel.show()