本发明属于地球物理勘探,涉及一种跨平台油气勘探数据访问及可视化方法及装置。
背景技术:
1、油气勘探软件中,回调函数作为一种软件实现方法得到了广泛的使用。回调函数本质是一个函数指针的传递和调用,在软件实现过程中,一般包含三个方面:在回调函数定义的地方规定函数参数类型以及返回值类型,再由注册方按照定义的格式注册回调函数,最后在特定的条件下由调用方按照定义的参数类型构造参数值来调用回调函数。回调函数一般包含一个或多个参数,通常还有返回值,在一般的应用场景中,回调函数的参数或返回值一般都有固定的类型,如很多情况下参数是一个基类类型,而在实际传参时往往传递子类类型。这种规定参数类型的调用方式也限制了回调函数在一些应用场景的使用。很多情况下,为了简化实现通常会编写模板函数,而使用特定的类型在使用模板时就会变得受限而不适用。
2、底图软件geobasemap作为地震数据处理解释系统geoeast中的重要组成软件,负责显示各种类型的数据,通过回调函数以平面图的形式显示诸如工区、层位、断层、井等数据,在该软件中数据通常以图层或者图元的形式存在。而浏览和编辑这些图层或图元的属性也是底图软件在可视化方面的重要组成功能之一,而且底图软件面临的数据类型较多,显示在工作区的图层和图元种类繁杂,因而显示这些内容的属性也较为复杂。若按照以前回调函数的模板创建属性,再处理属性变化的方式会造成大量重复或类似的代码,给软件实现以及维护带来较大的困难。
技术实现思路
1、本发明的目的,是要提供一种跨平台油气勘探数据访问及可视化方法,以解决地震数据处理解释软件的底图软件中不同种类数据浏览编辑属性的问题。
2、本发明的另一个目的,是要提供一种跨平台油气勘探数据访问及可视化装置。
3、本发明为实现上述目的,所采用的技术方案如下:
4、一种跨平台油气勘探数据访问及可视化方法,包括以下步骤:
5、s1、创建用于对任意类型的函数进行包裹的函数封装容器类funcholder;
6、s2、根据函数封装容器类funcholder,创建用于属性创建和属性编辑处理的属性可视化模块;
7、s3、将属性可视化模块应用在解释系统的底图软件中,实现数据访问及可视化。
8、作为限定,步骤s1的具体过程包括:
9、s11、编写函数封装容器类funcholder中的invoker辅助类及函数封装容器类funcholder的构造函数;
10、所述函数封装容器类funcholder的构造函数,用于接收任意类型的函数作为参数,支持函数的延迟调用,构造函数关联一个stl function对象,通过绑定invoker辅助类的静态函数apply来实现对由构造函数传入的函数的持有;
11、s12、编写函数封装容器类funcholder的call方法,使函数封装容器类funcholder的接口支持变参模板参数,并定义函数封装容器类funcholder的接口的返回值和返回指定的类型。
12、作为第二种限定,步骤s2的具体过程包括:
13、s21、根据函数封装容器类funcholder,创建属性节点类property node及其派生类、节点的创建类property node creator,所述属性节点类property node的派生类用于处理不同数据类型的属性的参数,节点的创建类property node creator用于根据数据类型创建不同的属性节点类property node或其派生类;
14、s22、创建属性值类property node data,所述属性值类property node data用于设置属性的值和返回属性的值;
15、s23、创建属性数据基类property base,所述属性数据基类property base作为属性的管理类,负责定义属性列表、更新属性值及处理属性变化和管理属性处理接口类property handler;
16、s24、创建属性项结构类property item,所述属性项结构类property item包含属性的类型、属性的名称、属性的set方法、属性的get方法以及子属性列表;
17、s25、创建属性实体类property entry,所述属性实体类property entry包括属性项结构类property item的集合,以及属性实体类property entry的指针;属性数据基类property base依靠属性实体类property entry,遍历属性项结构类property item对象列表进行属性创建;
18、s26、根据属性项结构类property item和属性实体类property entry,创建属性处理接口类property handler及其派生类,在属性数据基类property base中聚合属性处理接口类property handler列表,根据数据的类型,找到对应的属性处理接口类propertyhandler派生类,调用派生类的相应接口;
19、s27、结合步骤s24~s26,在属性数据基类property base中增加一个属性实体类property entry对象,并增加根据属性实体类property entry中的属性项结构类propertyitem列表创建属性节点类property node列表、更新属性节点值和响应属性变化的功能;
20、s28、创建关联底层gui模块的适配器,所述适配器聚合一个属性数据基类property base对象,根据属性数据基类property base提供的属性节点类property node列表创建底层gui模块中对应的属性及设置属性值,处理底层gui模块中属性变化,并传递给属性数据基类property base处理属性变化的接口;
21、s29、将步骤s21~s28汇总为一个独立的动态库模块,即属性可视化模块。
22、作为进一步限定,步骤s21中,所述属性节点类property node代表一个属性,属性包含属性的名称、属性值及子属性列表。
23、作为再进一步限定,步骤s23的具体过程为:
24、s231、创建属性列表,用于底层gui模块根据属性列表针对每一个属性节点对象创建底层gui模块支持的属性对象;
25、s232、更新属性值,用于初始化或刷新属性值;
26、s233、管理属性处理接口,用于当底层gui模块中属性节点对象修改后,在属性处理接口中进行通知。
27、作为更进一步限定,步骤s24的具体过程为:
28、采用宏注册生成一个属性项结构property item对象列表,然后根据属性项结构property item对象列表创建属性节点,再根据属性节点创建底层gui模块的属性节点对象。
29、作为再更进一步限定,步骤s27中,根据属性实体类property entry中属性项结构类property item列表创建属性节点类property node列表,具体过程为:
30、根据属性实体类property entry中属性项结构类property item列表,通过属性项结构类property item的数据类型,采用键值对方式找到对应的属性处理接口类property handler,在属性处理接口类property handler中调用对应数据类型的节点的创建类property node creator来创建属性节点类property node列表。
31、作为进一步限定,步骤s27中,根据属性实体类property entry中属性项结构类property item列表更新属性节点值和响应属性变化的功能,具体过程为:
32、根据属性项结构类property item的数据类型,采用键值对方式找到对应的属性处理接口类property handler,在属性处理接口类property handler中调用自身的属性更新或者属性变化接口处理对应功能。
33、本发明还提供了一种跨平台油气勘探数据访问及可视化装置,包括:
34、函数封装容器类模块,用于创建对任意函数进行包裹的函数封装容器类funcholder;
35、属性可视化接口库模块,用于根据函数封装容器类funcholder,创建用于属性创建和属性编辑处理的属性可视化模块;
36、据访问及可视化模块,用于将属性可视化模块应用在油气勘探解释系统的底图软件中,实现数据访问及可视化。
37、本发明由于采用了上述的技术方案,其与现有技术相比,所取得的技术进步在于:
38、(1)本发明提供了一种函数封装容器的方法,以此为基础,提供了一套简化浏览和编辑可视化数据属性实现的属性可视化模块,并将该属性可视化模块应用到解释系统的底图软件的数据访问及可视化中;
39、(2)本发明的函数封装容器类funcholder,增强了回调函数的实现方式,支持可变参回调函数,支持模板调用,解决了常见回调函数实现和底图软件中大量数据属性显示的问题;
40、(3)本发明创建的属性可视化模块简化了底图软件大量属性浏览显示功能的实现,并且软件更容易编写与维护,有效的提高了软件的开发和执行效率,大大减少了代码量和后期维护的复杂性。
41、综上所述,本发明简化了震数据处理解释系统的底图软件中的属性浏览编辑并提升了底图软件的显示效率。
1.一种跨平台油气勘探数据访问及可视化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s1的具体过程包括:
3.根据权利要求1所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s2的具体过程包括:
4.根据权利要求3所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s21中,所述属性节点类property node代表一个属性,属性包含属性的名称、属性值及子属性列表。
5.根据权利要求3所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s23的具体过程为:
6.根据权利要求3所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s24的具体过程为:
7.根据权利要求3所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s27中,根据属性实体类property entry中属性项结构类property item列表创建属性节点类property node列表,具体过程为:
8.根据权利要求4所述的跨平台油气勘探数据访问及可视化方法及装置,其特征在于,步骤s27中,根据属性实体类property entry中属性项结构类property item列表更新属性节点值和响应属性变化的功能,具体过程为:
9.一种跨平台油气勘探数据访问及可视化装置,其特征在于,包括:
