数据集描述
简介

气象要素(如风、温度、湿度等)的变化,深刻影响着人类生活的各个方面。因此,准确预报未来气象要素,可广泛服务于人们日常生活(如穿衣着装),交通运输(如航班起降),工业(如风能发电),和农林畜牧业(如水产养殖),致灾天气避险(如台风预警),突发事件应急处理(如化工原料泄漏)等领域。天气预报数据集由北京市10个气象站点,共3年多的逐小时历史“观测”和“睿图”数据组成。这是中国气象局北京城市气象研究所公开发布的气象数据集,其时间跨度长且密度高,包含气象要素的实况和预报两部分,对提高天气预报准确性具有重要作用。

训练集:1188天样本

验证集:89天样本

测试A集:包含两个数据集,分别为2018年8月29日至9月24日和2018年8月29日至10月15日,分别有27天和48天样本

测试B集:包含7个数据集,全部以2018年8月29日为起始日期,以10月28日至11月3日分别为结束日期,分别有61–67天样本


数据说明

“观测”和“睿图”数据集均包含北京市10个气象观测站点,约3年多的数据,连续性较好,缺失样本(-9999.)很少,并通过NetCDF4格式共同存储于单个nc文件中。“观测”集逐时记录当前气象观测站点的9个地面气象要素,通过气象仪器实时监测得到;“睿图”集包含地面和特征气压层共计29个气象要素,由数值预报模式在超级计算机上运算产生,其在每天03:00(北京时11:00)启动区域数值模式,预报至第二天15:00(北京时23:00),共计37个时次(00–36)。两者区别为:前者仅记录当前气象要素实况;后者可预测未来36小时内气象要素估计值,但存在误差。其名称与描述分别列于表1和表2。其中,每个气象要素由维度(Dimensions)、物理量(Variables)和属性(Attributes)构成三维数组。

以表2中“睿图”集物理量psfc_M为例,构成其三维数组的三个维度依次为:

(1)date:数据日期(国际时UTC)

(2)foretimes:数据时次(00–36,默认为37个时次,时间间隔为1小时)

(3)stations:站点编号

亦即:psfc_M(date, foretimes, station)。上述三个维度值在Dimensions部分给出。psfc_M的属性包括单位名称(units)、缺省填充值(_FillValue)、变量的描述信息(description)。它们是对该物理量的补充说明。

“观测”集数据格式与“睿图”集类似,这里不做详述。

这里需要做三点特别说明:

1.对于“睿图”集:数值预报模式的运算和数据处理,需要花费约2-3小时,其预报时效可至第二天15:00(北京时23:00)。对于“观测”集:未来气象要素值无法通过“观测”方式获取,因此与“睿图”集的预报时效相对应的“观测”集数据,需要滞后至第二天的15:00(北京时23:00)才能全部获得(否则设为缺省值-9999.f)。综上所述,各参赛队伍实际需要预测如下图红色时间间隔内气象要素值,但在数据提交时,请务必提交从第一天03:00至第二天15:00的指定气象要素预报值。

2.相比训练集和验证集,测试集在“观测”数据集的组成上有所区别。训练集和验证集数据均以历史气象数据为基础,用于气象预报模型的建立,因此在两者发布时,“观测”集可以获得与“睿图”集的数据时间相对应的气象要素观测值。然而,测试集A和B集用于双周赛和决赛,用于实时天气预报,因此每个测试集的最后一天的“观测”集,总会出现特别说明1中的情况,即图中红色时间段内观测值被设为缺省值(-9999.f),这段时间也即本次竞赛的气象要素预报时段。

3.数据的重叠时段。“观测”集和“睿图”集数据以三维数组形式存储于NetCDF4文件中,三个维度分别为date, foretimes, station。其中foretimes预设为37个时次(00–36),因此,相邻两天的“观测”集和“睿图”集会有12小时的重叠时段。以训练集为例,两数据集的重叠时段如下图两蓝色虚线间标出。不同的是:“观测”集的重叠时段数据值相同,因为单一气象观测仪器对同一地点和同一时间的气象要素观测值是唯一的;而“睿图”集的重叠时段数据值会有差异,因为相邻两天用于数值天气预报模式运行的初始值会有差异。

表1. “观测”数据集气象要素信息

名称 物理描述(单位) 阈值
psur_obs 地面气压(百帕hPa) [850.0, 1100.0]
t2m_obs 地面以上2米高度处温度(摄氏度℃) [-40.0, 55.0]
q2m_obs 地面以上2米高度处比湿(克每千克g/kg) [0.0, 30.0]
rh2m_obs 地面以上2米高度处相对湿度(百分比%) [0.0,100.0]
w10m_obs 地面以上10米高度处风速(米每秒m/s) [0.0, 30.0]
d10m_obs 地面以上10米高度处风向(角度°) [0.0, 360.0]
u10m_obs 地面以上10米高度处经向风(米每秒m/s) [-30.0, 30.0]
v10m_obs 地面以上10米高度处纬向风(米每秒m/s) [-30.0, 30.0]
RAIN_obs 地面1小时累计降水量(毫米mm) [0.0, 400.0]

表2. “观测”数据集气象要素信息

名称 物理描述(单位) 阈值
psfc_M 地面气压(百帕hPa) [850.0, 1100.0]
t2m_M 地面以上2米高度处温度(摄氏度℃) [-40.0, 55.0]
q2m_M 地面以上2米高度处比湿(克每千克g/kg) [0.0, 30.0]
rh2m_M 地面以上2米高度处相对湿度(百分比%) [0.0,100.0]
w10m_M 地面以上10米高度处风速(米每秒m/s) [0.0, 30.0]
d10m_M 地面以上10米高度处风向(角度°) [0.0, 360.0]
u10m_M 地面以上10米高度处经向风(米每秒m/s) [-30.0, 30.0]
v10m_M 地面以上10米高度处纬向风(米每秒m/s) [-30.0, 30.0]
SWD_M 地面处下行短波辐射量(瓦特每平方米W/m2) [0.0, 1500.0]
GLW_M 地面处下行长波辐射量(瓦特每平方米W/m2) [0.0, 800.0]
HFX_M 地面感热扰动(瓦特每平方米W/m2) [ [-400.0, 1000.0]
LH_M 地面潜热扰动(瓦特每平方米W/m2) [-100.0, 1000.0]
RAIN_M 地面1小时累计降水量(毫米mm) [0.0, 400.0]
PBLH_M 边界层高度(米m) [0.0, 6000.0]
TC975_M 气压层975百帕的温度(摄氏度℃) [-50.0, 45.0]
TC925_M 气压层925百帕的温度(摄氏度℃) [-50.0, 45.0]
TC850_M 气压层850百帕的温度(摄氏度℃) [-55.0, 40.0]
TC700_M 气压层700百帕的温度(摄氏度℃) [-60.0, 35.0]
TC500_M 气压层500百帕的温度(摄氏度℃) [-70.0, 30.0]
wspd975_M 气压层975百帕的风速(米每秒m/s) [0.0, 60.0]
wspd925_M 气压层925百帕的风速(米每秒m/s) [0.0, 70.0]
wspd850_M 气压层850百帕的风速(米每秒m/s) [0.0, 80.0]
wspd700_M 气压层700百帕的风速(米每秒m/s) [0.0, 90.0]
wspd500_M 气压层500百帕的风速(米每秒m/s) [0.0, 100.0]
Q975_M 气压层975百帕的比湿(克每千克g/kg) [0.0, 30.0]
Q925_M 气压层925百帕的比湿(克每千克g/kg) [0.0, 30.0]
Q850_M 气压层850百帕的比湿(克每千克g/kg) [0.0, 30.0]
Q700_M 气压层700百帕的比湿(克每千克g/kg) [0.0, 25.0]
Q500_M 气压层500百帕的比湿(克每千克g/kg) [0.0, 25.0]

数据预览

以通过Python的netCDF4实现数据读取作为示例。


    Import netCDF4 as nc
    ori_data = nc.Dataset(‘test.nc’)     # 读取nc文件
    ori_dimensions, ori_variables= ori_data.dimensions, ori_data.variables    # 获取文件中的维度和变量
    t2m_obs = ori_variables[‘t2m_obs’]    # 获取特定观测要素的数据及对应属性
    print(t2m_obs)
    print(t2m_obs.units)
    print(t2m_obs._FillValue)
    print(t2m_obs.description)
    t2m_obs_data = t2m_obs[:]
    date_index, fortime_index, station_index = 1, 2, 3    # 根据三个维度,读取该变量在特定日期、特定站点的特定预报时刻的数值
    specified_data = t2m_obs[date_index, fortime_index, station_index]

以下简要给出训练集数据格式预览:


    netcdf AI_train_1188day_10sta {    # 数据集头文件开始
    dimensions:              # 维度值定义
           foretimes = 37 ;      # 数据时次值
           station = 10 ;        # 站点数
           date = 1188 ;        # 数据天数
    variables:               # 物理量定义
    ……
           float psfc_M(date, foretimes, station) ;   # psfc_M数组
                  psfc_M:units = "hPa" ;           # units属性
                  psfc_M:_FillValue = -9999.f ;     # _FillValue属性
                  psfc_M:description = "SFC pressure" ;   # 数据含义
           float t2m_M(date, foretimes, station) ;       # t2m_M数组
                  t2m_M:units = "C" ;
                  t2m_M:_FillValue = -9999.f ;
                  t2m_M:description = "Temperature at 2M" ;
    ……
           float RAIN_obs(date, foretimes, station) ;    # RAIN_obs数组
                  RAIN_obs:units = "mm" ;
                  RAIN_obs:_FillValue = -9999.f ;
                  RAIN_obs:description = "1 hour accumulated total cumulus precipitation of observation" ;
    }

数据下载
数据集请到相应竞赛页面下载