【技术实现步骤摘要】
区域气象数据拼接系统
本专利技术涉及计算机设计
,具体涉及一种区域气象数据拼接系统。
技术介绍
近十年来,计算机计算和存储能力的提升为地球系统高分辨率数值模拟和数据同化提供了可能,但目前对于大范围区域百米分辨率的模拟,普通的超级计算机仍显吃力。为解决这一难题,通常在模拟阶段会将空间区域划分为很多子区域,并分子区域存储模拟结果。但对模拟结果的后续分析和可视化工作往往又需要将多各子区域的数据合并为一个整体。将多个子区域的数据进行合并的难点在于当合并的数据量巨大时,此过程消耗的时间过长而无法满足实际应用的要求。区域气象数据拼接的研发正是旨在解决大量数据合并消耗时间过多的问题。以往进行多区域高分辨率气象数据合并时,通常采用最近邻居法将子区域各个网格点的数值映射到一个能囊括所有子区域的目标网格中,以实现数据拼接的目的。这个过程通常分两步进行,首先是通过子区域网格和目标网格中各个格点的经纬度坐标找出两套网格中各格点的映射关系,并将其输出为一个文件;然后即是通过该映射关系进行格点数据从子区域网格向目标网格的映射。经验表明,当数据量很大时,第二个步骤所消耗的时间要远多于第一个步骤,所以解决数据合并消耗时间多的问题,关键在于提高第二个步骤的执行效率。C语言具有对指针的强大控制能力,同时兼备编译型语言在执行效率上的先天优势,因此被选择作为区域气象数据拼接的开发语言。
技术实现思路
本专利技术为解决现有气象数据合并过程中,存在合并消耗时间长,导致执行效率低等问题,提供一种区域气象数据拼接系统。r>区域气象数据拼接系统,该系统包括两个主功能模块和两个辅助功能模块;所述两个主功能模块分别为格点映射关系建立模块和格点数据映射模块;两个辅助功能模块分别为命令行参数解析模块和软件信息输出模块;所述格点映射关系建立模块自动根据原始输入数据生成目标网格以及建立从输入的子区域格点到目标格点的映射关系,并将其保存为文件;所述格点数据映射模块先为每一个子区域申请一个数组,并将所述子区域中的数据读入内存,然后建立一个与目标网格形状一致的指针数组,所述指针数组中的每个元素均与目标网格中相应位置的格点对应,根据所述格点映射关系建立模块建立的网格间映射关系,将各数组元素赋予与其存在映射关系的子区域格点数据的地址;所述命令行参数解析模块按照Linux的设计规范解析命令行参数;所述软件信息输出模块按照Linux的设计规范向用户提供必要的软件信息。本专利技术的有益效果:本专利技术所述的拼接系统能够将原本繁琐的区域数据拼接过程简化,能够极大地提高此类工作的效率。附图说明图1为本专利技术所述的区域气象数据拼接系统的原理框图;图2为本专利技术所述的子区域格点与目标格点的映射关系示意图。具体实施方式结合图1和图2说明本实施方式,区域气象数据拼接系统,将多个空间区域的气象数据拼接为一个整体,采用C语言的指针操作使数据的拼接工作能够更高效地进行。该系统包含两个主功能模块和两个辅助功能模块,所述两个主功能模块包括格点映射关系建立模块和格点数据映射模块,两个辅助功能模块包括命令行参数解析模块和软件信息输出模块。所述格点映射关系建立模块对于目标网格中的每一个格点,若在一定范围内能够找到若干子区域格点,则取与之空间距离最近的子区域格点与之建立关系。该模块工作的详细流程如下:d.根据所有子区域格点所覆盖的经纬度范围,确定目标网格的边界。e.根据给定的目标网格的格距,计算出目标网格各点的经纬度。f.根据各个子区域的各网格点经纬度,计算其落在在目标网格中的哪个网格元中,并将该网格在子区域中的位置和目标网格中的位置记录下来。g.遍历目标网格的各个格点,根据步骤c的记录可以找出哪些子区域中的格点落在该目标格点的附近,并分别计算这些子区域格点到目标格点的空间距离,将距离目标格点最近的子区域格点记录下来,即建立该格点到目标格点的映射关系。所述格点数据映射模块先为每一个子区域申请一个数组,并将子区域中的数据读入内存。然后建立一个与目标网格形状一致的指针数组,该数组中的每个元素都与目标网格中相应位置的格点对应,根据已经建立的网格间映射关系,给各数组元素赋予与其存在映射关系的子区域格点数据的地址,结合图1。本实施方式中,不是每一个子区域网格都会映射到某一个目标网格上,因为部分子区域网格会因与周围目标网格的距离不够近而被淘汰。反过来,对每一个目标网格,也并不是一定存在向其映射的子区域网格,因为部分目标网格可能距离任何一个子区域网格都过远,这种情况下,目标网格会被赋予缺测值。在完成指针数组后,只需将该数组各元素所指向的数据输出到硬盘即可完成数据的映射。所述命令行参数解析模块采用Linux的命令行软件规范进行开发,其命令行选项详情如下。为了解析命令行选项和参数,dataint(dataintegration,数据集成)采用了getopt_long函数进行命令行选项和参数的解析,并有专门的模块对各个选项参数进行相应的处理。当用户执行dataint命令时,命令行参数解析模块会先对命令行选项和参数进行解析,然后决定执行哪个功能模块以及将哪些参数赋予该功能模块。正因为命令行参数解析模块决定了其它模块是否应该被执行,所以它和其余模块并非并列关系。所述软件信息输出模块:dataint提供了用户帮助、软件许可、版本等信息的显示功能,用户可以通过相应的命令行选项调用相应的模块来显示这些信息。具体实施方式二、结合图2说明本实施方式,本实施方式为具体实施方式一所述的区域气象数据拼接系统的实施例:本实施例由dataint系统采用Linux命令行工具标准开发,故其使用方法也同其它Linux命令相仿。图2显示了dataint系统中各模块工作之间的关系。首先,用户应调用格点映射关系建立模块根据原始数据建立原始数据中各子区域格点到目标格点的映射关系,该映射关系会以NetCDF格式文件的形式输出在磁盘上。在此过程中,命令行参数解析模块会调用格点映射关系建立模块根据in01.nc、in02.nc、in03.nc等输入文件生成格点映射关系文件mp.nc。然后,用户调用格点数据映射模块,将刚才输出的格点映射关系文件和原始数据一并读入,即可得到最终的输出数据。在此过程中,命令行参数解析模块会调用格点数据映射模块,利用刚刚生成的格点关系映射文件mp.nc将输入数据in01.nc、in02.nc、in03.nc等输入文件读入,并最终拼接成新数据文件out.nc。软件信息输出模块主要用于向用户展示系统的用户帮助、软件许可、版本等信息的显示功能。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本专利技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利技术专利范围的限制。应当指出的是,对于本文档来自技高网...
【技术保护点】
1.区域气象数据拼接系统,其特征是:该系统包括两个主功能模块和两个辅助功能模块;所述两个主功能模块分别为格点映射关系建立模块和格点数据映射模块;两个辅助功能模块分别为命令行参数解析模块和软件信息输出模块;/n所述格点映射关系建立模块自动根据原始输入数据生成目标网格以及建立从输入的子区域格点到目标格点的映射关系,并将其保存为文件;/n所述格点数据映射模块先为每一个子区域申请一个数组,并将所述子区域中的数据读入内存,然后建立一个与目标网格形状一致的指针数组,所述指针数组中的每个元素均与目标网格中相应位置的格点对应,根据所述格点映射关系建立模块建立的网格间映射关系,将各数组元素赋予与其存在映射关系的子区域格点数据的地址;/n所述命令行参数解析模块按照Linux的设计规范解析命令行参数;/n所述软件信息输出模块按照Linux的设计规范向用户提供必要的软件信息。/n
【技术特征摘要】
1.区域气象数据拼接系统,其特征是:该系统包括两个主功能模块和两个辅助功能模块;所述两个主功能模块分别为格点映射关系建立模块和格点数据映射模块;两个辅助功能模块分别为命令行参数解析模块和软件信息输出模块;
所述格点映射关系建立模块自动根据原始输入数据生成目标网格以及建立从输入的子区域格点到目标格点的映射关系,并将其保存为文件;
所述格点数据映射模块先为每一个子区域申请一个数组,并将所述子区域中的数据读入内存,然后建立一个与目标网格形状一致的指针数组,所述指针数组中的每个元素均与目标网格中相应位置的格点对应,根据所述格点映射关系建立模块建立的网格间映射关系,将各数组元素赋予与其存在映射关系的子区域格点数据的地址;
所述命令行参数解析模块按照Linux...
【专利技术属性】
技术研发人员:郭辰,董理,杨萍,张晓朝,梁思超,卜照军,冯笑丹,王森,蒋贲,王志勇,
申请(专利权)人:华能新能源股份有限公司,北京朗润知天科技有限公司,华能集团技术创新中心有限公司,中国华能集团清洁能源技术研究院有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。