基于Qt的海量离散数据的快速绘图方法及系统与流程

文档序号:17470565发布日期:2019-04-20 05:47阅读:846来源:国知局
基于Qt的海量离散数据的快速绘图方法及系统与流程

本发明涉及地震勘探领域,更具体地,涉及一种基于qt的海量离散数据的快速绘图方法及系统。



背景技术:

随着石油天然气勘探对象越来越复杂,勘探精度要求越来越高,地震资料采集和处理的数据量也越来越大。然而,相关地震数据处理技术、可视化手段仍停留在早期的简单数据处理阶段,远远滞后于地震数据采集技术的发展,已无法满足当前勘探处理对象的精度和深度要求。如何提高和改进地震资料处理技术和相关数据图形显示技术已成为当前物探工作中亟待解决的首要问题。同时,如何利用现代计算机的高速处理能力,提高地震数据处理精度,丰富现有图形显示技术,也是目前迫切需要解决的重要问题。迄今为止,国内外众多石油地球物理勘探公司、相关高校研究院所投入了大量的资金和技术力量,致力于地震数据处理及可视化相关技术的研究。

地震数据图形的显示包含了地震数据的坐标系统、波形显示图、灰度模式显示图形、彩色模式显示图形、fk滤波、频谱图、速度谱图等以及图形交互的相关显示和处理。对地震数据的二维可视化的建模就是将相关数字信息如何显示在二维平面上,通过点(集)、线、几何曲线、面等基本几何图形结合,就可以在二维平面上形象显示丰富全面的地震数据信息。

利用计算机图形学以及图像处理技术,将地震勘探过程中采集得到的大规模、离散、抽象的数据进行处理,然后在计算机上直观地显示或输出相应图形、图像,并提供交互性人机接口,为相关技术人员分析地质构造分布、岩性特征及油气矿藏提供详细的技术依据,从而加快矿藏勘探进程,对于石油天然气工业的发展是至关重要的。

因此,有必要开发一种基于qt的海量离散数据的快速绘图方法及系统,为软件寻求一个高效、快速的海量离散数据图形绘制方法,将离散的、杂乱的地震数据经过加工处理,利用计算机可视化技术形成形象直观的图像,通过对图像的研究促进对地质构造的理解,并从大规模的无序的地震数据中找出隐藏在其中的数据分布规律,从而大大提高了探寻及确定油气矿藏的效率,具有深远的经济和社会效益。

公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。



技术实现要素:

本发明提出了一种基于qt的海量离散数据的快速绘图方法及系统,其能够通过基于qt的海量离散数据的快速绘图技术,结合π-frame地震处理软件系统平台的显示与交互特点,研究和分析其他相关软件的地震数据可视化技术方法,为软件寻求一个高效、快速的海量离散数据图形绘制方法。

根据本发明的一方面,提出了一种基于qt的海量离散数据的快速绘图方法,所述快速绘图方法包括:

基于准备的离散数据,对所述离散数据进行规则化处理;

基于所述规则化处理,创建所述离散数据的自定义颜色方案的列表;

创建临时缓冲区;

计算规则化处理后的所述离散数据在所述自定义颜色方案的列表中的位置和绘图区域的位置;

在临时缓冲区内绘制图像;

将所述临时缓冲区的图像复制到窗口部件。

优选地,所述快速绘图方法包括交互绘制,所述交互绘制步骤如下:

创建所述临时缓冲区,交互绘制时将图像缓冲区的图像内容复制到所述临时缓冲区;

在所述临时缓冲区的基础上进行绘图,将所述临时缓冲区绘制好的图像内容复制到图像缓冲区;

将所述图像缓冲区的图像复制到窗口部件。

优选地,所述快速绘图方法还包括非交互绘制:

在非交互绘制时,直接将所述图像缓冲区的图像内容显示在所述窗口部件上。

优选地,在所述临时缓冲区内绘制图像包括:

计算所述离散数据的样点值在所述自定义颜色方案的列表中的位置;

计算所述样点值在所述临时缓冲区中的位置。

优选地,所述准备的离散数据包括:

定义一个结构体;

获取所述离散数据的路径,为所述结构体赋值;

优选地,所述结构体包括三个一维数组和一个整型变量。

优选地,所述创建临时缓冲区包括:创建一个与所述窗口部件尺寸相同的所述临时缓冲区。

优选地,所述离散数据绘制成图像包括:在所述临时缓冲区直接对所述图像内容的像素进行操作,对每个所述图像内容的像素进行赋值。

根据本发明的另一方面,提出了一种基于qt的海量离散数据的快速绘图系统,所述快速绘图系统包括:

存储器,存储有计算机可执行指令;

处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:

基于准备的离散数据,对所述离散数据进行规则化处理;

基于所述规则化处理,创建所述离散数据的自定义颜色方案的列表;

创建临时缓冲区;

计算规则化处理后的所述离散数据在所述自定义颜色方案的列表中的位置和绘图区域的位置;

在临时缓冲区内绘制图像;

将所述临时缓冲区的图像复制到窗口部件。

优选地,所述快速绘图系统包括交互绘制,所述交互绘制步骤如下:

创建所述临时缓冲区,交互绘制时将图像缓冲区的图像内容复制到所述临时缓冲区;

在所述临时缓冲区的基础上进行绘图,将所述临时缓冲区绘制好的图像内容复制到图像缓冲区;

将所述图像缓冲区的图像复制到窗口部件。

本发明的一种基于qt的海量离散数据的快速绘图方法及系统,其优点在于:由于地震处理软件系统平台对地震数据显示和交互的实时性要求,降低了海量数据处理造成的延时,为软件设计了直接操作像素数据结合屏幕后台缓冲区绘图的方法,加快了绘图速度,提高了软件运行响应时间;将离散的、杂乱的地震数据经过加工处理,利用计算机可视化技术形成形象直观的图像,通过对图像的研究促进对地质构造的理解,并从大规模的无序的地震数据中找出隐藏在其中的数据分布规律,从而大大提高了探寻及确定油气矿藏的效率,具有深远的经济和社会效益。

本发明的方法及系统具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本发明的特定原理。

附图说明

通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的附图标记通常代表相同部件。

图1示出了根据本发明的一个示例性实施例的一种基于qt的海量离散数据的快速绘图方法的步骤的流程图。

图2示出了根据本发明的一个示例性实施例的一种双缓冲绘图机制的示意图。

图3示出了根据本发明的一个示例性实施例的π-frame地震处理软件系统平台自动化速度分析质量控制属性的示意图。

具体实施方式

下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

本发明提出了一种基于qt的海量离散数据的快速绘图方法,该快速绘图方法包括交互绘制,交互绘制步骤如下:

基于准备的离散数据,对离散数据进行规则化处理;

基于规则化处理,创建离散数据的自定义颜色方案的列表;

创建临时缓冲区;

计算规则化处理后的离散数据在自定义颜色方案的列表中的位置和绘图区域的位置;

在临时缓冲区内绘制图像;

将临时缓冲区的图像复制到窗口部件。

作为优选方案,快速绘图方法包括交互绘制,交互绘制步骤如下:

创建临时缓冲区,交互绘制时将图像缓冲区的图像内容复制到临时缓冲区;

在所述临时缓冲区的基础上进行绘图,将所述临时缓冲区绘制好的图像内容复制到图像缓冲区;

将所述图像缓冲区的图像复制到窗口部件。

其中,为需要绘制图像的数据定义一个结构体,该结构体包括三个一维数组和一个整型变量,三个一维数组分别存放绘图所需的x,y坐标(xseries,yseries)以及在对应的(x,y)坐标点上的数值(zseries),这个数值的大小由不同颜色区分,整型变量存放三个一维数组的维数(samplesnum)。获取数据路径,为该结构体赋值。

离散数组(zseries)的数据有一个数值范围,如果大部分离散点的数值只分布在这个数值范围的某个区间,则会导致大量的离散点只呈现一个颜色,无法区分出其余离散点的分布,因此在绘图前需要将数组(zseries)进行规则化:求取数组(zseries)的均方根rms,将数组(zseries)中大于rms的值用rms替换,小于负rms的值用负rms替换。

作为优选方案,创建离散数据的自定义颜色方案的列表为:获取数组(zseries)的最大值maxz和最小值minz,按照等数值间隔指定相应颜色来绘图,即分布在这个数值区间的离散点值用指定的颜色来绘制。

作为优选方案,临时缓冲区包括:

创建一个与实际绘图窗体等大(msize)的qpixmap,即临时缓冲区,相当于在内存中开辟一块虚拟画布,所有需要画的图形将在这块“虚拟画布”上绘制。

因为所有图形的绘制都不是真正的调用显示系统来“画”,不会占用显示系统开销,极大的提高绘图效率。

做优选方案,在临时缓冲区内绘制图像包括:

计算离散数据的样点值在自定义颜色方案的列表中的位置;

计算样点值在临时缓冲区中的位置。

其中,假设自定义颜色列表中的颜色数量为rgbs.size(),数组(zseries)中的任意元素的数值用颜色列表中的第pos个颜色来表示,pos的值如下列代码所示:

intpos=(zseries[i]-minz)/(maxz-minz)*rgbs.size()。

获取数组(xseries)和(yseries)的最大值maxx、maxy和最小值minx、miny,将实际的(x,y)坐标换算成在绘图区域中的行列位置,如下列代码所示:

intx=(xseries[i]-minx)*msize.width()/(maxx-minx);

inty=(yseries[i]-miny)*msize.height()/(maxy-miny)。

其中,针对需要绘制的离散点数量巨大的特点,在临时缓冲区采用直接对图像像素进行操作的方法,提高绘图效率。创建一个同qpixmap等大的qimage,对每个像素进行赋值,如下列代码所示:

image.scanline(y)[4*x]=qblue(rgbs[pos]);

image.scanline(y)[4*x+1]=qgreen(rgbs[pos]);

image.scanline(y)[4*x+2]=qred(rgbs[pos]);

image.scanline(y)[4*x+3]=qalpha(rgbs[pos])。

作为优选方案,在绘图函数中执行完具体的绘制代码,此时我们绘制的是一个脱屏的画布存放在内存中,调用update将其更新到屏幕上,最后通过qpainter把qpixmap复制到窗口部件指定的位置来完成整个图形的绘制工作。

作为优选方案,快速绘图方法还包括非交互绘制:

在非交互绘制时,直接将图像缓冲区的图像内容显示在窗口部件上。

由于地震处理软件系统平台对地震数据显示和交互的实时性要求,降低了海量数据处理造成的延时,为软件设计了直接操作像素数据结合屏幕后台缓冲区绘图的方法,加快了绘图速度,提高了软件运行响应时间;将离散的、杂乱的地震数据经过加工处理,利用计算机可视化技术形成形象直观的图像,通过对图像的研究促进对地质构造的理解,并从大规模的无序的地震数据中找出隐藏在其中的数据分布规律,从而大大提高了探寻及确定油气矿藏的效率,具有深远的经济和社会效益。

本发明的还提供了一种基于qt的海量离散数据的快速绘图系统,该快速绘图系统,包括交互绘制,交互绘制步骤如下:

存储器,存储有计算机可执行指令;

处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:

基于准备的离散数据,对所述离散数据进行规则化处理;

基于所述规则化处理,创建所述离散数据的自定义颜色方案的列表;

创建临时缓冲区;

计算规则化处理后的离散数据在自定义颜色方案的列表中的位置和绘图区域的位置;

在临时缓冲区内绘制图像;

将临时缓冲区的图像复制到窗口部件。

作为优选方案,快速绘图方法包括交互绘制,交互绘制步骤如下:

创建临时缓冲区,交互绘制时将图像缓冲区的图像内容复制到所述临时缓冲区;

在所述临时缓冲区的基础上进行绘图,将所述临时缓冲区绘制好的图像内容复制到图像缓冲区;

将所述图像缓冲区的图像复制到窗口部件。

实施例

图1示出了根据本发明的一个示例性实施例的一种基于qt的海量离散数据的快速绘图方法的步骤的流程图。

如图1所示,本实施例提出了一种基于qt的海量离散数据的快速绘图方法,该快速绘图方法包括交互绘制,交互绘制步骤如下:

基于准备的离散数据,对离散数据进行规则化处理;

基于规则化处理,创建离散数据的自定义颜色方案的列表;

创建临时缓冲区;

计算规则化处理后的离散数据在自定义颜色方案的列表中的位置和绘图区域的位置;

在临时缓冲区内绘制图像;

将临时缓冲区的图像复制到窗口部件。

其中,快速绘图方法包括交互绘制,交互绘制步骤如下:

创建临时缓冲区,交互绘制时将图像缓冲区的图像内容复制到临时缓冲区;

在所述临时缓冲区的基础上进行绘图,将所述临时缓冲区绘制好的图像内容复制到图像缓冲区;

将所述图像缓冲区的图像复制到窗口部件。

图2示出了根据本发明的一个示例性实施例的一种双缓冲绘图机制的示意图。

如图2所示,本实施例介绍了一种基于qt的海量离散数据快速绘图方法,当数据量很大时,绘图可能需要几秒钟甚至更长时间,有时还会闪烁,为解决这些问题,可采用双缓冲技术来绘图。qt为我们提供了一个完美的双缓冲绘图机制,即在绘图过程中,一个缓冲区绘制临时内容,一个缓冲区保存绘制好的内容,最后进行合并。在交互绘制过程中,程序将图像缓冲区复制到临时缓冲区,并在临时缓冲区上绘制,绘制完毕再将结果复制到图像缓冲区。如果没有交互绘制,则直接将图像缓冲区显示到屏幕上。

图3示出了根据本发明的一个示例性实施例的π-frame地震处理软件系统平台自动化速度分析质量控制属性的示意图。

本实施例已经应用于绘制π-frame地震处理软件系统平台中自动化速度分析批处理模块的质量控制属性数据图件,如图3所示,其绘图速度比利用qpainter的drawpoint函数绘图速度高效10倍左右,绘制一亿数量级的离散点只需要2秒左右,极大的提高了海量离散数据绘图的效率,解决了大数据量绘图时屏幕闪烁的问题,保证了π-frame地震处理软件系统平台显示与交互的实时性,提升了平台的稳定性和高效性。

以上已经描述了本发明的实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的实施例。在不偏离所说明的实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1