目录
- WRF运行时间标准
- 注意事项-本地时区问题
- 输入数据:ERA5时间标准
- ERA5数据和WRF模型需要转换为北京时间!!!
- 北京时间(CST)与协调世界时(UTC)的关系
- 转换方法
- 参考
WRF运行时间标准
WRF 时间标准:WRF 模型输入和输出的时间同样基于 UTC。
- 在 WRF 的 namelist.input 配置文件中,start_time 和 end_time 参数均要求输入 UTC 时间。
- WRF 模型内部时间处理也遵循 UTC 标准,比如输出 NetCDF 文件中的时间变量(Times)都使用 UTC。
WRF 用户手册:namelist.input 配置文件中明确规定所有时间以 UTC 格式输入
注意事项-本地时区问题
本地时区问题:如果需要将 WRF 模型输出或 ERA5 数据转换到某个本地时区(如东八区 CST),应在后处理阶段手动进行转换。
例如:
- Python 中可以使用 pandas 或 datetime 模块进行时区转换。
- NCL 的 time_axis_labels 函数也支持设置本地时区。
输入数据:ERA5时间标准
ERA5 时间标准:ERA5 数据使用的是 协调世界时 (UTC, Coordinated Universal Time)。
- 这是由 ECMWF(欧洲中期天气预报中心)发布的一种全球再分析数据集,其时间戳始终基于 UTC。
- 无论数据是每小时还是每三小时,时间标记均为 UTC 标准时间。
ERA5 数据文档:ECMWF ERA5 数据的官方文档明确指出时间标准为 UTC
由于 ERA5 数据和 WRF 模型的时间标准都是 UTC,因此直接使用 ERA5 数据作为 WRF 的初始场和边界条件时,不需要额外的时间转换。
只需保证 ERA5 数据时间范围覆盖 WRF 模拟时间范围即可。
ERA5数据和WRF模型需要转换为北京时间!!!
因为 ERA5数据 和 WRF模型 的时间标准均为 UTC(协调世界时),而 北京时间(CST) 是东八区时间(UTC+8)。因此,需要将时间从 UTC 转换为 CST。
【举例】以某站点邻近栅格数据为例,WRF模拟结果绘制24小时气温如下:
最高气温时间未出现在午时,需要进行转换!!!
北京时间(CST)与协调世界时(UTC)的关系
北京时间(CST) = UTC + 8 小时,即北京时间比 UTC 快 8 小时。
例如:
- UTC 时间:2024-12-05 00:00
- 转换为北京时间:2024-12-05 08:00
转换方法
a) 使用 Python 转换
Python 中可以使用 pandas 或 datetime 模块进行时区转换。
以下是一个基于 pandas 的示例代码:
import pandas as pd# 示例:ERA5/WRF 的 UTC 时间
utc_time = pd.date_range("2024-12-05 00:00", periods=5, freq="H", tz="UTC")# 转换为北京时间(CST)
beijing_time = utc_time.tz_convert("Asia/Shanghai")print("UTC 时间:", utc_time)
print("北京时间:", beijing_time)
b) 使用 NCL 转换
在 NCL 中,可以直接对时间进行调整,例如:
; 假设时间是 UTC,需要加 8 小时转为 CST
time_cst = time_utc + 8