基于规则引擎的气象台站元数据质量控制方法
2024-01-10王钰
王 钰
(1. 江西省气象数据中心,330096,南昌;2. 江西省气象档案馆,330096,南昌)
0 引言
气象台站历史沿革数据是气象台站自建站以来有关台站名称、台站级别、隶属机构、台站位置、台站环境、观测要素、观测仪器、观测时制及其他影响观测数据质量的变动情况记录,是关于气象台站的元数据,其变化直接影响气象观测数据序列的比较性和均一性。气象台站历史沿革数据为用户分析、选择和利用气象资料,提供了科学依据,是气候变化研究的基础[1-3]。我国一直都十分重视气象台站历史沿革数据的编研,形成了一套气象台站历史沿革数据编制、审核、管理和服务的工作流程和制度。但由于沿革数据项目多、时间跨度长、信息来源渠道众多,内容涉及气象观测的全过程,沿革内容和变化复杂[3-5],数据的完整性、规范性、准确性多依赖于数据质量检查人员人工检查和检查规则与程序代码绑定方式的质量控制[6-7],影响到质量控制效率,为此提出基于规则引擎的气象台站历史沿革数据质量控制方法。
1 气象台站历史沿革数据内容
气象台站历史沿革数据文件简称“L文件”,由首部和沿革数据组成。首部由台站档案号、区站号、省名、站名、建站和撤站时间6数据组成。沿革数据由20个项目组成,各项目名称及标识码见表1。每个项目由一条或多条记录组成,每条记录由若干数据组成,各数据组之间用“/”分隔,每组数据长度有固定或规定的最大字符数。
表1 台站历史沿革文件各项目标识码及名称
2 气象台站沿革数据质量控制规则
规则引擎起源于基于规则的专家系统,属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能够理解的术语解释和证明它的推理结论。规则引擎的应用简化了人类向计算机表述复杂业务逻辑的过程,它通过规则文件来存储业务逻辑,又通过对规则文件的解析来处理业务,从而实现业务逻辑与处理逻辑的分离[8]。
2.1 规则集
规则集的定义和规则的编写是规则集构建的两个主要方面[9]。物理结构上,规则集是一张或几张二位数据表。逻辑功能上,是用于存储记录待检查数据质量使用到的最基本规则[10]。依据气象行业标准《气象台站历史沿革数据文件格式》《气象台站历史沿革数据文件编制说明(简称:编制说明)》,梳理各时期气象观测规范及月、年数据文件形成校验指标,制定气象台站历史沿革各数据项质量控制规则,构建质量控制规则集,并将规则以数据库表的形式存储管理, 以提高规则库的灵活性和可维护性,数据库表的逻辑结构如图1所示。
2.2 规则的编制
根据图1的逻辑结构,从数据格式、时间一致性、内部一致性、数据的合理性编制气象台站沿革数据质量控制规则。
图1 规则库数据表逻辑结构
2.2.1 数据格式检查 检查数据格式与气象行业标准中沿革数据格式的一致性。1)文件名检查,气象台站历史沿革数据文件名:LXIIiiixY1 Y1 Y1 Y1Y2 Y2 Y2 Y2.TXT,其长度为20字符,各字符含义固定,首字母固定为“L”,第2个字符是台站类型识别码,为“D”或“G”或“R”,第3~7位气象台站区站号,第8位专用识别码,为“1”或“0”,第9~12位和13~16位为文件数据开始、终止年份,且第9~12位小于13~16位,第17位为“.”,第18~20位为“TXT”,沿革数据文件名需符合上述命名规则,否则设置“格式有误”提示。2)数据项完整性检查,判断文件首部和数据项是否完整。缺少,则设置“xx项缺少”提示。3)数据组检查,计算首部和每条记录中数据组分隔符“/”的数量,比对气象行业标准中各项数据的组数,检查各条记录数据组的完整性。4)数据组长度检查。计算首部和每条记录中各组数据长度,检查首部和数据项各组数据的长度是否与气象行业标准规定的长度一致。5)数据项重复记录检查,检查各数据项是否包含重复记录即是否存在2条或以上相同记录。6)非法特殊字符检查,检查各项目中使用的分隔符、标识符,如“/”“;”“?”“(”等是否均为半角;“厘米”和“毫米”等计量单位是否为使用英文大写“CM”和“MM”;数据文件中16个方位是否符合气象观测规范的缩写规则,否则提示“xx项有非法字符”。
2.2.2 时间一致性检查 检查项目间开始、终止时间变化的同步性。1)项目时间一致性检查,数据文件相关联项目的开始时间与结束时间应一致,若文件名、文件首部中开始、终止时间与台站名称、区站号、台站级别、所属机构、台站位置、台站周围障碍物、观测时制、观测时间、守班情况、观测记录、观测规范的第一条开始时间和最后一条终止时间不一致,则设置信息提示。2)时间连续性检查,同一数据项中,若后一条记录的开始年月日和前一条记录的终止年月日不连续,且在12项中无说明,则设置疑误信息。3)观测要素时间检查,观测要素07项中各观测要素最早的开始时间与首部信息不一致,且在12项中无说明,则设置疑误信息。4)观测仪器时间检查,观测仪器开始终止时间需与对应观测要素的开始终止时间保持一致,否则提示可疑。
2.2.3 内部一致性检查 检查数据文件中关联项目、同一项目或同一条数据的内部一致性。1)台站名称一致性检查,检查台站名称是否和月、年报数据文件的台站名称一致。2)区站号一致性检查,检查数据文件中区站号与文件名、文件首部中区站号的一致性;检查数据文件中区站号与对应的月、年报数据文件中的区站号是否一致。3)台站级别与10项观测时间一致性检查,当台站级别与10项中的观测次数不相符时,提示“03项台站级别称谓与10项内容不一致”。4)台站位置标识符与数据组“距原址距离;方向”一致性检查,当标识符为“05”时,同一条记录中的“距原址距离;方向”若为“00000;000”,或标识符为“55”时,“距原址距离;方向”若不为“00000;000”,都提示“05项内容不一致”。5)台站位置与台站周围障碍物一致性检查,当台站位置迁移变化标志符为“05”时,而障碍物未随之同步变化,则提示“05项环境变化06项障碍物未变”。6)观测要素与观测仪器一致性检查,若07项观测要素是器测要素,08项必编报对应的观测仪器项,否则设置疑误信息,反之亦然。7)观测仪器与观测记录一致性检查,当使用仪器不与14项观测记录相匹配时,如某年代08项使用某自记仪器,而14项同时段没有该仪器观测记录载体的编报,且在12项中无说明,则提示疑误信息。8)10项观测次数与11项一致性检查,若10项中的观测次数与11项中的守班情况不匹配时,如10项观测时间中的观测次数为“4”,而11项守班情况为“不守班”,则设置疑误信息提示。
2.2.4 数据的合理性检查 按照沿革数据项目内容[11]和编制说明中各类参考表内容,检查数据名称、数据内容规范性、合理性。1)开始、终止时间合理性检查,检查开始、终止年份数组是否符合年份的特征数字,其日期应配合小月不出现31日;2月应判断是否有闰日,同时开始时间应小于终止时间。2)名称合理性检查,台站级别、观测要素、观测仪器设备、观测记录载体名称等称谓应与编制说明中各称谓参考表内的名称一致。3)台站位置合理性检查,检查项目中的经度、纬度、观测场海拔高度与对应月、年数据文件中的是否一致;“台站地理环境”应与编制说明中台站地理环境参考表内的名称一致;“距原址距离;方向”应与通过台站前后两点的经纬度计算得出的距原址距离、方向一致,否则设置疑误信息。4)周围障碍物合理性检查,当障碍物为山体时,高度应小于等于3 000 m;障碍物为建筑物时,高度应小于等于60 m,障碍物为树木时,高度应小于等于18 m,否则提示疑误信息;障碍物仰角小于3度时,提示不为障碍物;障碍物宽度角方位使用16方位表示,且每个方位不大于23度,否则提示疑误信息。5)观测仪器距地高度合理性检查,观测仪器距地高度均需符合气象观测规范中各类仪器安装高度,同时需与对应的月、年数据文件中仪器高度一致,对仪器高度长期未变化的,设置疑误信息。6)观测时制合理性检查,观测时制以气象观测规范的定时观测时制为准,如:1951—1953年的地面定时观测时制有120E标准时、105E标准时及90E标准时3种;1954年01月01日—1960年06月30日地面定时观测时制为“地方平均太阳时”;1960年07月01日后地面定时观测时制为“北京时”,否则提示错误。7)观测规范合理性检查,观测规范名称及执行时间应与编制说明中规范参考表内的名称及时间一致,否则设置疑误信息。
2.3 规则引擎的实现
进行质量检查时,首先依据各条项目中分隔符“/”,将L文件的各条项目数据组进行分解,去除3个预留项目,按数据文件01-20标识码,分别存放到17个二维数据中,“行”为各项目记录条数,“列”为项目的数据组个数。规则引擎从规则数据库中提取规则,逐项检查,对错误和可疑信息进行确认、定位、分析、处理、数据修改、标识,最后生成质量控制后的L文件。
图2 基于规则引擎的质量控制流程图
3 应用效果
基于规则引擎研发的气象台站历史沿革数据质量控制软件在《全国基础气象资料建设》中应用于地面气象台站历史沿革数据的质量检查,完成全国2 400余个国家级地面气象台站历史沿革数据的审核,检查出错误、可疑信息数万条。通过软件的错误定位功能,人机交互界面,对错误、可疑信息进行核对、判断,完成了数据修正工作,大大提高了审核工作效率,保证了历史沿革数据的规范性、完整性和准确性,为全国基础气象资料提供了质量可靠的台站元数据,满足数据共享服务需求。该方法具有规则库维护的灵活性,能较好地满足气象台站观测元数据后续变化的需要,在近年的“历史与实时资料一体化”“气象台站历史沿革数据阶段编研”等业务中发挥着积极作用,实践证明,方法的应用是行之有效的。
4 结论
基于规则引擎的气象台站历史沿革数据质量控制方法,能高效地检查、过滤气象台站历史沿革数据文件中不符合气象行业标准及相关规范的数据,确保沿革数据的真实性、规范性,解决了气象台站元数据质量控制效率低的问题。该方法不仅提供便捷、直观、完整的信息提示,还提供数据质控规则编制接口,便于规则的增加与改进,实现规则库动态交互,以适应气象台站历史沿革数据规则的完善及检查规则不断更新变化的需求。