李耀东
内蒙古自治区新巴尔虎右旗气象局
气象地面月报表A0文件的数据库实现
李耀东
内蒙古自治区新巴尔虎右旗气象局
本文阐述了气象数据文件A0的命名规则及结构组成等,包括异常记录情况,然后以数据库设计三原则为标准,通过VC++编程语言实现了气象站气象数据A0文件的数据存储。
A0文件;Oracle;存储
气象地面月报表A0文件(以下简称A0文件)是气象观测数据的基本存储格式,全国通用的格式,这有利于气象数据的延续和比较,是一种文本文件,统计起来耗时耗力,并时有错误发生,不能有效的发挥气象观测资料的作用。
用Oracle数据库来存储A0文件,从而实现将文本文件的无序读取转化为数据库的有序存储,实现的过程需要经过数据库建模、计算机编程等来完成。
气象数据A0文件的命名规则:如A050425.J01中,A0表示文件类型,50425表示站号,J代表月份,01代表2001年,以此类推,即可获得全部A0文件。
分析气象资料存储的维度,主要是时间维度的设计,例如查询某日或某时段的相应气象要素的最小值、、最大值均值等,实现历史天气的再现,挖掘气象要素记录间的横向联系,建立气象灾害虚拟视图。
根据相应的设计规划,以气象台站和气象要素来设置数据表,如表T50425表示为的气温表,表中记录为50425多年气温资料(表略)。
以气温例(图略),构造了气温E-R图,仿气温构造其他气象要素E-R图。气温E-R图主要包括站号、日期时间和各时次气象观测资料等相应属性。根据相应的操作在构造操作员实体,并赋予不同的操作权限。设计各气象台站实体,主要含各气象站的一些元信息。
气象数据与操作人员之间的关系,以及气象站与操作员的关系(图略)。
此部分是从“E/R模型”与“关系模型”的转换,通过转化,可以得到如下:
1、查询关系
属性:区站号,日期等数据
2、隶属关系
属性:区站号,操作员名,密要,台站名等
从无到有,培育垦区新产业。2013年,广东农垦从保障国家粮食安全的层面考虑,以实施农业农村部农垦局培育本土垦区国际大粮商战略为己任,成立广垦粮油,通过实施大项目带动战略,兼并重组迅速切入粮油行业,目标是构建涵盖粮油原料生产、加工、零售服务三大环节于一体的全程产业链。为保障城市优质安全食品的供给,粮油产业被列为垦区“十三五”重点支持的优势产业之一。为了快速切入,2014-2015年期间,广垦粮油通过并购、增资扩股等方式先后成立了广垦长晟、广垦嘉益、东莞新沙实业投资有限公司(简称“东莞新沙”)以及广垦华粮等4家混合所有制企业。
3、气温记录
根据气象要素表构造,由“区站号+年+月”组成联合主键,数据项部分气象要素指示码开头,记录一天四个时次(02时、08时、14时、20时)以及最高最低等气象要素数据,以此类推,记录各要素数据。
以气温为例,实现气温导入相应的数据表中,其他气象要素类似。
月份处理:自建simple函数来提取A0文件中的月份,对月份进行操作(代码略)。
天数计算:在程序主界面设置相应的时间框,提取月份,自建daycount函数来计算天数,主要是2月份天数的计算(程序代码略)。
A0文件的数据库存储实现核心的设计是数据表及表中字段的设计,其设计的优劣直接影响后期数据查询等应用,如气象台站50425中温度表t50425的数据字典(表略)所示,存储的数据要完整记录本段温度的发生情况,不能失真,否则无意义。在T50425中一条记录以日为单位划分的,一条记录包括站号、日期时间、各时次气温值等,主健是站号+日期时间,避免重复记录的产生。依次建立每个气象台站每个气象要素的数据表。
数据表设计好以后,为避免操作的越界,对数据表进行相应的操作权限等设计。
{正常记录}
经判别后,一条完整的气象要素记录形成,存入数据库相应的数据表中。
A0文件通过VC++语言包进行相应的编程,程序运行后将相应的要到存入Oracle数据库,首先判断导入时间,其次,逐月打开该站的A0文件,如该A0文件存在就使用openFile函数将气象要素分别导入各数据表中,直至所有A0文件全部入库,(程序代码略)。
自建openFile函数来打开文件进行数据的存储,这是本次数据存储的核心程序,该函数依气象数据A0文件命名规范及记录规范,依次对各气象要素的日记录进行存储,最终将全部的A0文件实现数据库的转存(程序代码略)。
本文阐述了A0文件的命名规则及结构组成等,包括异常记录情况,然后以数据库设计三原则为标准,通过VC++编程语言实现了气象站气象数据A0文件的数据存储。
[1]中国气象局.地面气象观测规范.1979.气象出版社
[2]刘明吉,王秀峰,黄亚楼.数据挖掘中的数据预处理[J].计算机科学,2000,vol.10,No.4,54-58.