CN103268245B - 一种气象数据快速处理流程化的方法 - Google Patents

一种气象数据快速处理流程化的方法 Download PDF

Info

Publication number
CN103268245B
CN103268245B CN201210495573.7A CN201210495573A CN103268245B CN 103268245 B CN103268245 B CN 103268245B CN 201210495573 A CN201210495573 A CN 201210495573A CN 103268245 B CN103268245 B CN 103268245B
Authority
CN
China
Prior art keywords
data
file
source data
carries out
processing flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210495573.7A
Other languages
English (en)
Other versions
CN103268245A (zh
Inventor
吕京国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Civil Engineering and Architecture
Original Assignee
Beijing University of Civil Engineering and Architecture
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Civil Engineering and Architecture filed Critical Beijing University of Civil Engineering and Architecture
Priority to CN201210495573.7A priority Critical patent/CN103268245B/zh
Publication of CN103268245A publication Critical patent/CN103268245A/zh
Application granted granted Critical
Publication of CN103268245B publication Critical patent/CN103268245B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种气象数据快速处理流程化的方法,包括:S1,对不同文件结构的源数据通过序列化的方法导入计算机系统;S2,自定义数据格式,对所述源数据进行预处理;S3,以VC++开发语言作为工具平台,对气象数据处理工具进行整合与集成,形成自动化气象数据处理专用工具,对所述源数据进行专业化处理;S4,采用集群分布存储和分发的方式,将所述源数据导入数据库。通过本发明的方法提高其自动化水平,敲一个命令,即可画一系列的图和进行一系列的模式运行所需数据的准备,实现海量卫星观测气象数据的快速流程化处理。

Description

一种气象数据快速处理流程化的方法
技术领域
本发明涉及气象数据处理技术领域,尤其涉及一种气象数据快速处理流程化的方法。
背景技术
现有技术中,对气象数据的处理方法是采用不同编程语言如fortran、matlab编写的,或者用ncl、grads、ferret等地学中常用的绘图软件实现,开发工具和规范不统一,而且程序自动化水平不高,每画一张图,需要单独去运行某一个对应的程序。因此非常有必要整合一下现有的模式前、后处理软件,提高其自动化水平,敲一个命令,即可画一系列的图和进行一系列的模式运行所需数据的准备。
目前,气候模式中比较常用的模式数据是NetCDF数据。NetCDF是由大气研究大学协会(UCAR)在UnidataProgram中开发的。由于NetCDF是一种灵活的,自描述的,并能表达大量数组数据的格式,因此NetCDF在地球、海洋、大气科学中得到了广泛的应用。NetCDF的灵活性允许数据提供者和用户创建NetCDF模式来满足自己特殊的需求。这种灵活性的不利方面是有许多各种各样的NetCDF模式在使用,许多科学家都使用他们自己的规范。开发NetCDF工具和支持NetCDF中的问题之一是产生大量非标准格式的遗留数据。针对这种情况,UCAR已经初步定义了一些NetCDF规范,比如COARDS规范,它是由海洋-大气合作研究数据服务和CF(气候和预报元数据)发起的。这些规范为NetCDF提供了非常有用的结构和元数据标准。这就为我们使用和支持NetCDF数据提供了很大方便。
同时,现有工作都是针对文本文件的地基观测资料。随着对地观测技术的发展,利用卫星观测资料来反演气象数据已经成熟。因而需要一定的技术和方法来快速处理海量卫星观测气象数据。
如果用同一个开发平台,同一种编程语言,采用同样的规范对现有科研成果进行重新开发,显然会浪费大量的财力物力。为了避免重复开发和其他不必要的浪费,本发明采用动态链接库技术实现不同软件、处理工具的整合与集成。发明内容
本发明的目的在于设计一种新型的气象数据快速处理流程化的方法,实现快速处理海量卫星观测气象数据。
为了实现上述目的,本发明采用的技术方案如下:
一种气象数据快速处理流程化的方法,其特征在于,包括:
S1,对不同文件结构的源数据通过序列化的方法导入计算机系统;
S2,自定义数据格式,对所述源数据进行预处理;
S3,以VC++开发语言作为工具平台,对气象数据处理工具进行整合与集成,形成自动化气象数据处理专用工具,对所述源数据进行专业化处理;
S4,采用集群分布存储和分发的方式,将所述源数据导入数据库。
优选的,S1所述的序列化,具体为:
S11,把所述源数据的一部分映射到虚拟地址空间内,但不提交RAM,所述计算机系统存取所述虚拟地址空间的内存指令时产生一个页面异常,所述计算机系统捕获到所述页面异常后,分配一页所述RAM,并把所述RAM映射到当前进程发生异常的地址处;
S12,所述计算机系统把所述源数据读到所述异常页面中,继续执行产生异常的指令。
优选的,S2所述数据格式为复合文档二进制结构,所述复合文档中有至少一个目录,每个所述目录下面有子目录,所述目录和所述子目录中包含固定字节。
优选的,所述源数据包括地面观测气象数据、遥感反演数据和数值预报数据。
优选的,S2所述对源数据进行预处理,具体为:源数据格式转换、图像数据几何纠正、投影变换、源数据镶嵌和矢量/栅格转换。
优选的,S3对所述气象数据处理工具进行整合与集成,具体为:采用动态链接库技术,实现VC++语言与其它编程语言的程序接口。
优选的,实现VC++与编程语言的程序接口,具体为:实现VC++与FORTRAN语言的程序接口或实现VC++与matlab语言的程序接口。
优选的,S4所述集群分布存储和分发,具体为:所述数据源数据以文件的形式存储在文件系统中,所述源数据描述信息以记录的形式存储在所述数据库中,所述数据库中的所述数据源描述信息将对应的数据文件建立映射关系;
在集群分发时,当有大量用户同时访问时,所述服务器先查询所述数据库中是否有用户请求的数据,若没有,则计算处理源数据,所述服务器采用单个线程响应处理检索用户请求的数据;若有,则结束。
优选的,当有大量用户同时访问时,所述服务器采用按需处理的数据处理机制以及多线程池策略处理用户请求。
从以上技术方案可以看出,本发明的有益效果可以总结如下:
本发明整合现有的模式前、后处理软件,提高其自动化水平,敲一个命令,即可画一系列的图和进行一系列的模式运行所需数据的准备,实现海量卫星观测气象数据的快速流程化。
附图说明
图1是本发明的方法流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
本发明提供了一种气象数据快速处理流程化的方法,用于快速处理海量卫星观测气象数据。
请参阅图1,本发明实施例中的气象数据快速处理流程化的方法,包括以下步骤:
S1,对不同文件结构的源数据通过序列化的方法导入计算机系统;
其中,所述源数据包括地面观测气象数据、遥感反演数据和数值预报数据。
其中,序列化的具体方法为:
S11,把所述源数据的一部分映射到虚拟地址空间内,但不提交RAM,所述计算机系统存取所述虚拟地址空间的内存指令时产生一个页面异常,所述计算机系统捕获到所述页面异常后,分配一页所述RAM,并把所述RAM映射到当前进程发生异常的地址处;
S12,所述计算机系统把所述源数据读到所述异常页面中,继续执行产生异常的指令。
所述序列化,就是向一个持久性的存储媒体保存对象或读取对象的过程,这种机制通过更高层次的接口功能向开发者提供了更利于使用和透明于字节流的文件操纵方法。在VisualC++编译环境下,这一功能由MFC的基类CObject的成员函数Serialize()提供。
MFC使用一个类型为CArchive的归档对象充当磁盘文件与程序中的对象的中介。归档对象总是与一个CFile对象相关联,从中获得一些进行序列化所需要的信息,比如文件名以及存取标志等。对象的序列化的主要工作就是将自己的成员变量或者当前状态保存起来,使用经过重载的流入和流出操作符直接向归档对象中保存或者取出变量成员的值,而将这些数据保存到磁盘文件中的工作由CArchive对象指示CFile对象来完成。当用户在打开或保存拥有文档对象数据的文件或者使用文档对象的Open、Save、SaveAs菜单命令时,MFC便会自动调用Serialize函数。
使类实现序列化,需要五个步骤:
(1)从Cobject类或其派生类派生用户类;
(2)在类声明中使用DECLARE_SERIAL宏;
(3)重载Serialize函数;
(4)提供一个缺省的构造函数;
(5)在类实现文件中使用宏IMPLEMENT_SERIAL,来指明类名和版本号。
本发明内部格式的数据流主要通过序列化的方法来实现。序列化与反序列化两个过程结合起来,可以轻松地存储和传输数据。这种实现是非常简洁有效的,类的设计和实现者只需要关心各个类自身的序列化,而整个文件的组织以及恢复都可留给MFC相应的类去处理。这样可以将程序员从复杂、繁琐的文件读写以及对象重构中解脱出来。
但是在MFC库中,利用序列化功能只能在磁盘文件中进行顺序读或顺序写,并不支持对象在磁盘文件中的随机存取。对于栅格和矢量数据一体化存储管理的文件来说,这种方式存在效率问题。多数情况下,栅格的数据量很大,如果栅格数据并没有修改,就不应该重写,以免耗费太多时间。但序列化函数的特点就是读的时候全读出来,写的时候全写进去,因而需要改造。
序列化函数改造的原则是:将修改可能性小,数据量大的对象集中存储在文件的前端。具体做法是,增加一个数据成员m_bWriteHugeData,通过函数SetWriteHugeData()来设置。若对象发生改变或有所修改,则置m_bWriteHugeData为真,否则为假。在存盘时,若m_bWriteHugeData为真,则重写所有栅格对象,再接着序列化其他对象;否则,栅格对象所占位置不变,其他对象在其后序列化,位置记录在m_lSerializePosition变量中。这样,如果栅格对象没有变化,就不会被重写,从而也不会为此浪费时间,提高了效率。
m_bWriteInactiveObs用于标示是否存储已被删除的对象。在本系统中,图形图像类的对象被删除时,对象本身并没有被删除,只是其状态标志被置为“非活动的”。如果m_bWriteInactiveObs的值为真,已被删除的对象将被写进文件,这样可以支持撤销存盘以前的编辑修改的操作,使得undo和redo功能更加强大。
序列化技术,能够在需要的时候自动地保存和恢复自己的数据,并且保持最新的修改结果。在数据存取时也不需要人为地进行文件指针的定位,而是由系统按照顺序自动进行数据流的输入/输出,这种输入/输出是一种高效、精简的二进制流,从而提高了效率。
其中,内存映射技术解决大数据量的数据调度问题。
内存映射文件技术是Windows操作系统提供的一种新的文件数据存取机制。利用内存映射文件技术,系统可以在2GB的地址空间中为文件保留一部分空间,并将文件映射到这块保留空间.一旦文件被映射之后,操作系统将管理页映射、缓冲以及高速缓冲等任务,而不需要调用分配、释放内存块和文件输入/输出的API函数,也不需要自己提供任何缓冲算法。
当遇到大数据量文件时,内存映射文件技术能够为我们“分配”一块足够大的内存来满足请求。这一显著特点是与操作系统的内存管理有密切关系的。在Win32操作系统中,每个Win32进程都拥有自己的地址空间,虽然它们可以用具有相同值的指针来进行寻址,但是为了保证了进程之间的相互独立性,一个进程不能存取另一个进程的私有数据,这样就使系统的健壮性得到了增强;另一方面,每个Win32进程都拥有4GB的地址空间,但这4GB的地址空间仅仅是虚拟地址而不是真正的实际物理内存。一般情况下,绝大多数虚拟地址并没有物理内存与之相对应,只有在需要的时候,才会有操作系统为之“提交(Commit)”。在不同情况下,系统提交的物理内存的类型是不相同的,可能是RAM,也可能是硬盘模拟的虚拟内存[3]。总之,正是由于操作系统的内存管理,内存映射文件技术才得以实现。
Windows操作系统对Win32进程地址空间的划分如下[4]:
(表一)Windows操作系统对进程地址空间的划分
从上表可以看出,从0x80000000~0xBFFFFFFF的1GB空间有所有的Win32进程共享,内存映射文件就使用这段地址空间。
内存映射文件分三种情况,第一种是可执行文件的内存映射,主要由操作系统自身使用;第二种是数据文件的内存映射;第三种是借助于页面交换文件的内存映射。这里应用的是数据文件的内存映射。系统在进行工作时,首先把数据文件的一部分映射到虚拟地址空间(映射的区域是0x8000~0xBFFF)内,但不提交RAM,存取这段内存指令时会产生一个页面异常,系统捕获到这个异常后,分配一页RAM,并把它映射到当前进程发生异常的地址处,然后系统把文件中相应的数据读到这个页面中,继续执行刚才产生异常的指令。这就是应用程序自己不需要调用文件I/O函数的原因,也是内存映射文件技术的工作机理。
运用内存映射文件技术,主要有以下几个步骤:
1)用CreateFile()函数,以适当的方式创建或打开一个文件核心对象;
2)将CreateFile()函数返回的文件句柄作为参数,调用CreateFileMapping()函数,创建一个文件内存映射对象;
3)调用MapViewOfFile()函数将整个文件的部分区域或者全部映射到内存。
4)用MapViewOfFile()函数返回的指针来读写文件。
5)调用UnmapViewOfFile()来解除文件映射;
6)调用CloseHandle()来关闭内存映射文件。
7)调用CloseHandle()来关闭文件核心对象;
S2,自定义数据格式,对所述源数据进行预处理;
自定义内部数据格式可以将不同文件结构的数据按照同样规范进行组织和管理,方便数据内部的处理与调度。本系统内部格式拟采用类似于“复合文档二进制结构”,即栅-矢一体化的管理方式。在复合文档中,可以有很多目录,每个目录下面可以有子目录,目录和子目录中包含了固定字节,一个固定字节就相当于磁盘上的一个文件或程序中某个具体的类。整个复合文档就形成了一个类似于磁盘上的目录和文件所组成的树状结构。
内部数据格式主要负责组织文档数据并完成对对象数据的实际读和写工作,提供对文档对象数据的全局性操作,同时还要提供必要的接口,使得其他类可以取得和修改数据的公开成员函数,具体定义如下:
关于数据区:在数据流的输入/输出中,拟采用序列化的思想,因而数据区的大小和数据类型是动态的,由编写各个类的程序员自行定义,此功能在各个类的serialize()函数中实现。
其中,所述对源数据进行预处理,具体为:源数据格式转换、图像数据几何纠正、投影变换、源数据镶嵌变换和矢量/栅格转换。
S3,以VC++开发语言作为工具平台,对气象数据处理工具进行整合与集成,形成自动化气象数据处理专用工具,对所述源数据进行专业化处理;
其中,采用动态链接库技术,实现VC++语言与编程语言的程序接口,具体为:实现VC++与FORTRAN语言的程序接口或实现VC++与matlab语言的程序接口。
由于VC++语言是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,在内存管理、进程调度、封装性、可移植性等方面具有显著的优点,因而采用VC++语言作为平台的主要开发语言。采用动态链接库技术,实现VC++与不同编程语言的程序接口。
一、利用动态连接库技术,实现VC++与FORTRAN语言的程序接口。
动态链接库(dll)是包含共享函数库的二进制文件,可以被多个应用程序同时使用。DLL具有如下优点:1)DLL可以有自己的数据段,而堆栈模式与调用它的应用程序相同,这样减少了编程上的不便。2)DLL代码使用内存共享技术。当多个工程调用同一个DLL库时,只有第一个应用程序把DLL库调入内存,其他应用程序并不调入,而是到同一个共享内存区读取。并且,DLL的执行代码是动态调入应用程序的,而不是在程序运行时就与应用程序一起调入内存。这种技术最大限度的节省了计算机内存资源。3)DLL实现的代码封装性,使得程序简洁明晰。4)DLL的编制与具体的编程语言及编译器无关。只要遵守DLL的开发规范和编程策略,并安排正确的调用接口,不管用何种编程语言编制的DLL都具有通用性。
正是因为DLL的上述优点,在软件的编写过程中,充分利用了DLL技术。FORTRAN语言在数学运算的编程方面有非常强大的优势,因而现有的很多气候统计算法大都采用FORTRAN语言编写。为了充分利用现有资源,将现有用FORTRAN语言编写的算法生成动态库,然后在应用程序中调用。其过程如下:
首先用fortran语言编写*.f90源文件,即fortran子程序,用以生成dll.如Sub-EOF.f90(文件名)
SUBROUTINESubEof(m,n,egvt,ecof)!子例程名为SubEof,Arr,m,n作为传入形式参数,
!egvt,ecof数组作为传出形式参数
IMPLICITNONE
!DEC$ATTRIBUTESDLLEXPORT,STDCALL,ALIAS:’SubEof16’::SubEof
!(DLLEXPORT表明将要导出的动态库例程的名字,STDCALL表明采用STDCALL约定的标准,这样可以和Win32API的调用约定相统一;若不添加ALIAS,则程序将导出两个例程名’FRowSum12‘和’FRowSum’,但如果添加ALIAS,则只产生唯一的例程名:’FRowSum16’,这样既符合STDCALL的约定标准,又没有大小写的混淆。FRowSumnumber中number的数值是形参个数*4)
!DEC$ATTRIBUTESVALUE::m,n
!(指定变量m,n是值传递)
!DEC$ATTRIBUTESREFERENCE::egvt,ecof
!(指定变量egvt,ecof是地址传递,即引用传递)
………(函数体)
ENDSUBROUTINE
生成dllfortran动态库
在ComaqVisuallFortran编译环境下,新建一个项目,选择DynamicLinkLibrary,在项目中添加Sub-EOF.f90程序文件(Project/AddtoProject/Files…)。执行(Build/Rebuildall),得到.lib和.dll两个文件。以备将来拷贝到VC的项目路径下。
在应用程序中调用此动态链接库
要调用DLL例程,首先要链接DLL。DLL的链接方式有两种:隐式链接和显式链接。本软件采用的是隐式链接。
添加库文件名。在VC++编译环境下,菜单(Project/Settings…/Links下有Object/LibraryModules),将库文件.lib添加上
将库文件.lib和.dll文件拷贝到当前应用程序的路径下或系统路径下。
在.h文件中,加上DLL输出函数的原型声明。这样就可以在.cpp文件中直接调用dll中的子例程了
二、VC++与matlab语言的程序接口
Matlab是一种解释性语言,其特点是以矩阵为基本数据结构,导致其执行效率相对C或C++语言要低很多;因为Matlab程序不能脱离其环境运行,故不能直接用于商用软件的开发。
目前VC++与Matlab混合编程主要有如下几种方法:
1)通过MatlabEngine方式
MatlabEngine是指一组Matlab提供的接口函数,支持C语言,MatlabEngine采用C/S(客户机/服务器)模式,Matlab作为后台服务器,而C程序作为前台客户机,通过Windows的动态控件与服务器通信,向MatlabEngine传递命令和数据信息,从MatlabEngine接受数据信息。用户可以在前台应用程序中调用这些接口函数,实现对MatlabEngine的控制。采用这种方法几乎能利用Matlab全部功能,但是需要在机器上安装Matlab软件,而且执行效率低,因此在实际应用中不采用这种方法,在软件开发中也不可行,这种模式只适合个人使用或做演示。
2)直接调用Matlab的C/C++数学函数库
Matlab中提供了可以供C/C++语言调用的C/C++数学函数库,其中包含了大量用C/C++语言重新编写的Matlab数学函数,这些函数涉及到线形代数、数值分析、傅立叶变换、多项式计算、解微分方程等,并且函数库中提供了大量各种矩阵操作函数,在VC中可以直接使用这些函数,通过这些函数可以在VC中方便的实现在Matlab中矩阵运算功能。用这种方法可以很灵活的调用Matlab来编写应用程序,但要求读者对C/C++语言非常熟悉,并且这种模式不能包括所有的Matlab函数,尤其是无法充分使用Matlab提供的详尽的绘图函数。
3)用Matlab自带的MatlabCompiler
MatlabCompiler的作用是将m文件转化成C/C++代码(也就是通常所用的mcc命令),这种源代码需要用C/C++编译器编译连接成独立应用程序,在将m文件转成独立应用程序的过程中生成的C/C++文件,原则上是可以被其它的C/C++代码调用的,编译器可以通过设置mcc命令的选项,将m文件编译成动态链接库文件、C/C++文件、可执行文件等一系列文件。到matlabR21.1为止,MatlabCompiler的m程序转换成C/C++代码功能有很多限制:
(1)不能转换脚本m文件,只能转换m函数;
(2)不能使用matlab对象;
(3)不能用input或者eval操作matlab空间变量;
(4)不能动态地命名变量,然后用load或者save命令来操作;
(5)不能处理具有嵌套调用其他m文件的m文件;
(6)不能使用MATLAB内联函数;
4)使用matcom工具
这是第三方控件,很小(8M多),使用该工具可以将m脚本文件和m函数转化成相同功能的C/C++文件,相比其它方法使用matcom具有如下优点:
(1)转换过程简单(由matcom工具自动实现),容易实现;
(2)可以方便的生成动态链接库文件(dll)和可执行文件(exe);
(3)不仅可以转换独立的脚本文件,也可以转换嵌套脚本文件;
(4)设置环境后,可以使用Matlab的工具箱函数;
但matcom也有以下不足:
(1)对struct等类的支持有缺陷,对class数据类型;
(2)部分绘图语句无法实现或得不到准确图象,尤其是三维图象;
(3)当涉及到的复杂函数调用时嵌套的文件数量很多。
(4)因此在不涉及到三维做图以及m文件不大的情况下推荐使用。
(5)使用Matlab的Combuilde工具
COM是componentobjectmodule的简称,它是一种通用的对象接口,任何语言只要按照这种接口标准,就可以实现调用它。Matlab6.5新推出来的Combuilder就是把用Matlab编写的程序做成com组件,供其他语言调用。该方法实现简单,通用性强,而且几乎可以使用Matlab的任何函数(注意:不支持脚本文件,脚本文件使用时要改为函数文件),因此在程序较大、调用工具箱函数或调用函数较多时推荐使用,这也是Matlab公司推荐的使用方法。
以上几种方法并不是相互独立的,而是有相互联系的,比如使用C/C++函数库与使用编译器,对于实现相同功能的程序,直接调用函数库与使用编译器最终生成的代码可能相差不大,只不过一个是直接在VC中写C/C++代码,一个是在Matlab中写好m代码,然后通过编译器将m代码转化成相同功能的C/C++代码,而在转化的过程中也需要调用相应的C/C++函数库文件。
S4,采用集群分布存储和分发的方式,将所述源数据导入数据库。
其中,所述数据源数据以文件的形式存储在文件系统中,所述源数据描述信息以记录的形式存储在所述数据库中,所述数据库中的所述数据源描述信息将对应的数据文件建立映射关系。
本发明的方法中,用户通过集群控制终端对集群进行操作,通过集中终端api将具体任务转变为系统内部的作业文件,作业管理服务将该作业文件的详细信息存入到作业数据库中,并将该作业信息转发给作业调度服务,作业调度服务根据当前系统中的所有作业状态生成一个作业调度表,作业管理服务根据作业调度表信息向计算与负载监视服务申请计算所需要的资源,计算与负载服务将每个计算机节点的当前状态数据发送给资源信息服务,资源信息服务收集到集群中所有计算节点的状态后事件通知给作业管理服务,作业管理服务再根据集群资源信息将作业交给计算与监视服务开始启动作业。最终计算与负载服务将执行结果的状态返回给作业数据库。
所有涉及到与数据交互的环节都是通过统一的并行文件系统posix接口对文件进行并行操作。
用户除了可以通过控制台获取集群状态外,还可以通过浏览器,通过web管理服务查询集群作业的状态。
InfiniBand架构是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5Gbps的运行速度。这种架构在一个链接的时候速度是500MB/秒,四个链接的时候速度是2GB/秒,12个链接的时候速度可以达到6GB/秒。
以上通过具体的和优选的实施例详细的描述了本发明,但本领域技术人员应该明白,本发明并不局限于以上所述实施例,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种气象数据快速处理流程化的方法,其特征在于,包括:
S1,对不同文件结构的源数据通过序列化的方法导入计算机系统;
S2,自定义数据格式,对所述源数据进行预处理;
S3,以VC++开发语言作为工具平台,对气象数据处理工具进行整合与集成,形成自动化气象数据处理专用工具,对所述源数据进行专业化处理;
S4,采用集群分布存储和分发的方式,将所述源数据导入数据库;
S1所述序列化,具体为:
S11,把所述源数据的一部分映射到虚拟地址空间内,但不提交RAM,所述计算机系统存取所述虚拟地址空间的内存指令时产生一个页面异常,所述计算机系统捕获到所述页面异常后,分配一页所述RAM,并把所述RAM映射到当前进程发生异常的地址处;
S12,所述计算机系统把所述源数据读到异常页面中,继续执行产生异常的指令;
S2对源数据进行预处理,具体为:源数据格式转换、图像数据几何纠正、投影变换、源数据镶嵌和矢量/栅格转换;
S3对气象数据处理工具进行整合与集成,具体为:采用动态链接库技术,实现VC++语言与其它编程语言的程序接口;
S4所述集群分布存储和分发,具体为:所述数据源数据以文件的形式存储在文件系统中,所述源数据描述信息以记录的形式存储在所述数据库中,所述数据库中的所述数据源描述信息将对应的数据文件建立映射关系;
在集群分发时,当有大量用户同时访问时,服务器先查询所述数据库中是否有用户请求的数据,若没有,则计算处理源数据,所述服务器采用单个线程响应处理检索用户请求的数据;若有,则结束。
2.根据权利要求1所述的气象数据快速处理流程化的方法,其特征在于,S2所述数据格式为复合文档二进制结构,所述复合文档中有至少一个目录,每个所述目录下面有子目录,所述目录和所述子目录中包含固定字节。
3.根据权利要求1所述的气象数据快速处理流程化的方法,其特征在于,所述源数据包括地面观测气象数据、遥感反演数据和数值预报数据。
4.根据权利要求1所述的气象数据快速处理流程化的方法,其特征在于,实现VC++与编程语言的程序接口,具体为:实现VC++与FORTRAN语言的程序接口或实现VC++与matlab语言的程序接口。
5.根据权利要求1所述的气象数据快速处理流程化的方法,其特征在于,当有大量用户同时访问时,所述服务器采用按需处理的数据处理机制以及多线程策略处理用户请求。
CN201210495573.7A 2012-11-28 2012-11-28 一种气象数据快速处理流程化的方法 Expired - Fee Related CN103268245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210495573.7A CN103268245B (zh) 2012-11-28 2012-11-28 一种气象数据快速处理流程化的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210495573.7A CN103268245B (zh) 2012-11-28 2012-11-28 一种气象数据快速处理流程化的方法

Publications (2)

Publication Number Publication Date
CN103268245A CN103268245A (zh) 2013-08-28
CN103268245B true CN103268245B (zh) 2016-04-13

Family

ID=49011878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210495573.7A Expired - Fee Related CN103268245B (zh) 2012-11-28 2012-11-28 一种气象数据快速处理流程化的方法

Country Status (1)

Country Link
CN (1) CN103268245B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791354A (zh) * 2014-12-23 2016-07-20 中兴通讯股份有限公司 作业调度方法和云调度服务器
CN106330474A (zh) * 2015-06-15 2017-01-11 国核(北京)科学技术研究院有限公司 核电站堆芯监测管理设备及其监测管理方法
CN105426235B (zh) * 2015-11-06 2018-09-25 东莞理工学院 一种陆地大气气溶胶反演分布式工作流依赖关系刻画方法
CN105468788B (zh) * 2015-12-29 2019-02-15 国能日新科技股份有限公司 Nco气象数据处理方法和系统
CN111736826B (zh) * 2020-06-16 2024-07-09 中国科学院空天信息创新研究院 多源遥感数据工程工具集系统及集成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0605945B1 (en) * 1992-12-15 1997-12-29 Sun Microsystems, Inc. Method and apparatus for presenting information in a display system using transparent windows
CN102012910A (zh) * 2010-11-19 2011-04-13 曙光信息产业(北京)有限公司 气象业务处理系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266063B1 (en) * 1997-10-20 2001-07-24 Baron Services, Inc. Real-time three-dimensional weather display method and weathercast system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0605945B1 (en) * 1992-12-15 1997-12-29 Sun Microsystems, Inc. Method and apparatus for presenting information in a display system using transparent windows
CN102012910A (zh) * 2010-11-19 2011-04-13 曙光信息产业(北京)有限公司 气象业务处理系统和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
对象链接与嵌入功能在GIS中应用;王艳东等;《测绘信息与工程》;20061231;第31卷(第3期);10-11页 *
用Visual C++实现大数据量快速存取;吕京国;《测绘科学》;20020930;第27卷(第3期);第29-33页 *
高性能集群计算机系统投入气象业务;张红平等;《陕西日报》;20030728;第1-2段 *

Also Published As

Publication number Publication date
CN103268245A (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
Ernsting et al. Algorithmic skeletons for multi-core, multi-GPU systems and clusters
US8271259B2 (en) Virtual supercomputer
Qin et al. A strategy for raster-based geocomputation under different parallel computing platforms
US9465589B2 (en) Stateful component authoring and execution
MacIntyre et al. Language-level support for exploratory programming of distributed virtual environments
US9489183B2 (en) Tile communication operator
CN103268245B (zh) 一种气象数据快速处理流程化的方法
Heller et al. Closing the performance gap with modern c++
Docan et al. Activespaces: Exploring dynamic code deployment for extreme scale data processing
Zhang et al. In‐memory staging and data‐centric task placement for coupled scientific simulation workflows
US9092335B2 (en) Representing a tree structure on a flat structure
CN104133678B (zh) 构建、运行交互地震解释系统的方法及装置
Nguyen et al. Balancing performance, flexibility, and scalability in a parallel computing platform for membrane computing applications
Zou et al. Supernodal sparse Cholesky factorization on graphics processing units
Olden Performance Analysis of SWE Implementations based on modern parallel Runtime Systems
Coetzee et al. Towards unified secure on-and off-line analytics at scale
Valcke et al. The model coupling toolkit
EP3776195B1 (en) A system and a method of fast java object materialization from database data
US11586603B1 (en) Index sheets for robust spreadsheet-based applications
Nieplocha et al. Combining distributed and shared memory models: approach and evolution of the Global Arrays Toolkit
Malyshkin et al. Didal: Distributed Data Library for Development of Parallel Fragmented Programs
Bailey et al. SPEEDES: A brief overview
Fridrich et al. Hierarchical dynamic containers for fusion data
Guo et al. Research and Implementation of Interactive Analysis and Mining Technology for Big Data
Qian Improving Scientific Workflow with Cloud Offloading

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160413

Termination date: 20161128

CF01 Termination of patent right due to non-payment of annual fee