基于CIMISS的农业气象观测数据自动质量控制系统
2021-11-13韩仲强
韩仲强
(内蒙古自治区气象信息中心,内蒙古 呼和浩特 010051)
农业气象学是研究农业生产对象和过程与气象条件之间的相互关系,以利用、创造有利并抗避不利气象条件为目的,为农业的高产、优质、低消耗而服务的一门学科。随着农业科学技术的飞速发展,我国农业已进入了一个高产、优质、高效、生态、安全为发展方向的新阶段,农业对气象服务提出了更高的要求,迫切需要农业气象为现代农业的发展提供时效更快、内容更多、水平更高的、针对性更强的服务产品。然而,当前的农业气象观测技术手段、时效远不能满足现代农业气象业务和服务发展需求[1]。
内蒙古自治区幅员辽阔,有丰富的气候资源与土地资源,农作物种植多样化,是我国农业生产大省。农业气象观测数据包含作物生长发育、天然牧草生长状况、自然物候、土壤水分等观测内容,是农业气象的基础。通过农业气象观测可以鉴定农业气象条件对作物生长发育和产量形成以及品质影响,为农业气象情报、预报,以及农作物的气候条件评价等提供理论依据,为高产、优质、高效的农业生产提供服务。因此对农业气象观测数据进行质量控制十分有必要。
目前在农业气象观测数据质量控制过程中,主要由农业气象资料审核员依托AgMODOS(农业气象测报业务系统)软件,每年对各台站上传的C文件[2]进行集中审核。上述质量控制过程不仅时效性差,而且耗费时间多,不能及时做到农业气象观测数据质量控制,增加了工作量。为有效解决上述问题,推进观测自动化观测进程与现行业务流程相适应,完成观测业务转型,因此有必要开发一个高精度、高时效性的自动数据质量控制系统。
1 总体设计及相关技术
1.1 系统设计
农业气象数据自动质量控制系统基于CIMISS数据环境,通过获取CIMISS数据库中由各台站上传的农业气象观测数据,按照《农业气象观测规范》[3](后简称《规范》)建立和优选农业气象数据质量控制方法,开展对全区29个农业气象观测站所观测的牧草发育期、牧草生长高度、牧草产量、牧草盖度、作物生长发育期、干物质与叶面积测定、灌浆速度等数据的质量控制,开发自动质量控制系统并将质控后的疑误信息通过推送至台站,实现疑误数据及时处理与更正。
农业气象观测数据质量控制系统逻辑结构上可分为基础层、数据层以及应用层3层(图1)。基础层主要提供农业气象观测数据质量控制系统开发运行环境、CIMISS中的Oracle数据库及基于Python开发的相关质量控制方法。数据层主要处理牧草发育期、牧草生长高度、牧草产量、牧草盖度、作物生长发育期、干物质与叶面积测定、灌浆速度等农业气象观测数据,采用Oracle关系型数据库进行存储和管理。应用层是与省级数据处理人员与台站人员进行业务交互的平台,MUSIC接口为对外数据服务的统一接口。
图1 农业气象观测数据质量控制系统总体架构
1.2 Python简介
农业气象数据自动质量控制系统采用Python语言进行开发,基于Orcale数据库管理系统对本系统中的数据持久化进行操作。
Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品。由于其具有简单易学、用途广泛、可移至性以及可扩展性、可扩充性等优点,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
2 质量控制码规定
在对数据进行质量控制的过程中,随着质量控制进程的进行,需要不断地对被检数据设置或修改质量控制码,简称QC码。QC码的规定如下,见表1。
表1 质量控制码规定
3 农业气象观测数据质量控制方法
3.1 质量控制流程
对AgoMDOS上传的农业气象观测数据采用完整性检查、数据小数位检查、值域检查、内部一致性检查[4,5]。农业气象观测数据对应的要素表见《规范》发育期观测部分。表2给出了农业气象观测数据中各要素实施的检查项目,图2给出了数据处理和质量控制流程图。
表2 快速质量控制对报文数据中各要素实施的检查步骤
图2 农业气象观测数据质量控制流程图
3.2 质量控制方法
作物部分质量控制对象包含作物生长发育期、干物质与叶面积测定、灌浆速度共三张数据表。牧草部分质量控制对象包含牧草发育期、牧草生长高度、牧草产量、牧草盖度共4张数据表。对上述农业气象观测数据主要进行完整性检查、数据小数位检查、值域检查以及内部一致性检查。
3.2.1 完整性检查。完整性检查指对原始观测数据的种类、项目进行检查,以确保观测数据完整无遗漏。
对于作物部分的观测数据,完整性检查应包括作物观测基础数据、作物发育期观测数据、作物密度观测数据、作物叶面积与干物质质量观测数据以及灌浆速度观测数据。其中作物观测基础数据包括:农业气象观测台站名称、农业气象观测台站号、观测作物名称、观测作物品种名称、观测作物成熟年份。作物叶面积和干物质重量观测包括作物名称、旬内作物发育名称、生长率、含水率、叶面积指数。灌浆速度观测包括作物名称、含水率、千粒重。各类作物的发育期观测要求及观测项目见《规范》发育期观测部分。作物密度观测项目及观测时间见《规范》生长状况测定部分。对于牧草部分的观测数据,完整性检查应包括牧草发育期观测数据、牧草生长高度观测数据、牧草产量观测数据、牧草盖度观测数据。其中牧草发育期观测数据应包括牧业气象观测台站名称、牧业气象观测台站号、(动)物名称/牧草名称、旬内作物发育期名称、发育期百分率。牧草生长高度观测数据应包括牧草名称、植(动)物名称/牧草名称、植株高度。牧草产量观测数据应包括牧草名称、植(动)物名称/牧草名称、干重、鲜重、干鲜比(计算方法为干重/鲜重)×100%。牧草盖度观测数据应包括覆盖度、草层状况评定、采食率、采食度。
根据《规范》中要求的观测项目无相应观测值、调查值或记载值的为缺测数据时,赋质控码为8,不再作为后续质量控制步骤中的质量控制对象或参考数据,并作为疑误数据及时告知台站进行修正或补发。否则赋为质控码0,进入下一步检查。
3.2.2 数据小数位检查。《规范》中明确要求了各类观测要素的小数位,按照《规范》中附录D中规定对主要作物观测要素值的小数位进行检查,对于小数位不正确的数据,质控码置为2,标记为错误数据并告知台站进行修改。
3.2.3 数据值域检查。值域检查指对农业气象观测数据进行气候学、生态学的阈值检查。在《规范》中明确了各类观测作物以及牧草的阈值范围,对于超出阈值范围的观测值,系统将该条记录的质控码置为2,并反馈台站进行数据修正。具体质控方法如下:
属于下列值域范围的数据为错误数据:(1)作物生长发育普遍期生长高度大于其上限值(主要作物各发育期生长高度最大值见《规范》中附录E);(2)作物生长发育普遍期密度值大于其上限值(主要作物各发育期密度最大值见《规范》中附录F);(3)作物生长状况评定记录不为“1”,“2”,“3”;(4)草层状况评定记录不为“1”,“2”,“3”,“4”,“5”。
属于下列值域范围的数据为可疑数据:(1)作物各发育期生长高度值大于其最大值而小于其上限值(主要作物各发育期生长高度最大值见《规范》中附录E);(2)作物各发育普遍期密度值大于其最大观测值而小于其上限值(主要作物各发育期密度最大值见《规范》中附录F);除a),b)所列要素之外暂不做值域检查。
3.2.4 内部一致性检查。内部一致性指同一时间观测的农业气象要素记录之间的关系必须符合一定规律的检查。农业气象观测数据未通过以下一致性检查时,相应数据为可疑数据,质控码置为1,具体质控方法如下:(1)前一发育期观测日期在后一发育期观测日期之前;(2)前一发育植株生长高度小于或等于后一发育期植株生长高度。
4 结语
针对于文件上传不及时、不规范出现的上报文件不完整、农业气象观测数据审核不及时等情况,本文以Python为开发工具,基于CIMISS数据环境,开发并建立了一套农业气象观测数据自动质量控制系统,该系统提高了农业气象观测数据审核效率,极大地减小了省级资料审核人员的工作负担,并且对于各单位的用户来说可以及时获取经过质量控制后的农业气象观测数据,这对于提高农业生产,指导农事活动具有重要意义。
本文开发的质量控制系统目前仅针对于农业气象中的作物与牧草两部分内容进行了质量控制,对于其他观测数据例如自然物候观测、农业气象灾害观测等内容暂时未进行自动质量控制。本文所采取的质量控制方法目前只有完整性检查、数据小数位检查、数据值域检查、内部一致性检查共4种方法,后续应该考虑加入更多方法进行数据质量控制进行优化。