基于多线程并行的海量观测系统炮检点数据绘制显示方法与流程

文档序号:12550786阅读:298来源:国知局
基于多线程并行的海量观测系统炮检点数据绘制显示方法与流程

本发明属于野外地震采集技术领域,具体地涉及一种用于野外地震采集设计及实际生产过程中的基于多线程并行的海量观测系统炮检点数据绘制显示方法。



背景技术:

随着地震采集技术和装备的不断发展,地震勘探采集向着高精度、高密度、高分辨率的方向发展。随着高密度采集的应用,采集产生的观测系统的数据量成倍增长,达到几十个GB。由于数据量的增长,采用通用的应用单线程的绘图方式已经不能满足海量观测系统数据实时显示的需求。单线程的绘图方式数据处理慢,数据的显示存在延迟。

目前,普通计算机的CPU的核数不断增加,4核、8核、16核的CPU已成为计算机标准配置,因此,多核多线程并行进行图形绘制的方法成为可能。本发明因此而来。



技术实现要素:

针对上述存在的技术问题,本发明旨在提供一种基于多线程并行的海量观测系统炮检点数据绘制显示方法,采用多核多线程的绘图方式,能够大幅提升绘图速度,实现海量观测系统炮检点数据快速绘图显示的目的,达到野外采集设计中观测系统数据实时显示的需求。

为达到上述目的,本发明的技术方案是:

一种基于多线程并行的海量观测系统炮检点数据绘制显示方法,包含以下步骤:

S01:计算海量观测系统中炮点个数和检波点个数,根据炮点和检波点总数计算需要内存,并进行分配;

S02:获取当前计算机CPU信息;

S03:计算海量观测系统炮线和检波线数量,将炮线、检波线进行编号;

S04:根据显示窗口大小创建绘图画布;

S05:根据绘图画布大小和实际海量观测系统数据范围,建立大地坐标和像素坐标间的坐标转换;

S06:根据炮线、检波线编号,生成要绘制数据线编号列表;

S07:根据CPU核数创建绘图线程,并对绘图线程进行编号;

S08:绘图线程获取要绘制的观测系统数据线编号,并通过编号获得海量观测系统数据线进行绘图;

S09:完成所有炮线、检波线绘图后,将画布显示在绘图窗口中,完成图形绘制。

优选的,所述步骤S02中CPU信息包括CPU核数。

优选的,所述步骤S03中将所有的炮线和检波线依次排列,并从0开始统一编号。

优选的,所述步骤S05包括:

计算海量观测系统数据坐标范围,得到X方向最小值为Minx、最大值为Maxx,Y方向最小值Miny、最大值Maxy,获得绘图画布大小W、H (单位:像素);

根据观测系统数据范围和画布大小,计算X向和Y向坐标转换因子,HI = (Maxx –Minx) / W (单位:米/像素), VI=(Maxy – Miny)/ H (单位:米/像素);

在绘图过程中,通过炮点、检波点的坐标(x,y)和坐标转换因子,计算出点的像素坐标(PX,PY),其中,PX= (x – Minx) /VI(单位:像素),PY=(y – Miny) / HI(单位:像素)。

优选的,所述步骤S06包括,按炮线、检波线的顺序,提取炮线、检波线的编号,形成要绘制观测系统数据线编号列表,并将编号初始状态标志设为“等待”。

优选的,所述步骤S07中绘图线程从0开始编号。

优选的,所述步骤S08包括:

绘图线程从数据线编号表中,选取标志位“等待”的线编号,然后将该线编号标记为已“选取”;

根据编号从海量观测系统数据中获得实际要绘制线数据进行绘图,一条线绘制完成后,将数据线号标记为“完成”,线程完成一条线绘制后,重新选取标志位“等待”的线编号进行绘图,直到所有观测系统数据线绘制完成。

与现有技术相比,本发明的有益效果是:

本发明可以实现多线程并行方式绘制海量观测系统炮检点数据,该方法利用CPU多核特性,实现多线程并行的方式绘制观测系统炮检点数据,提高图形绘制速度。该方法绘图线程数量与CPU核数相等,充分利用CPU资源,最大限度提高CPU使用率。绘图过程中,每个绘图线程采用主动的方式获得要绘制的数据,所有数据绘制完成后,图形在显示窗口中显示。该方法适应性强,适用于地震采集前理论设计的观测系统数据和地震采集施工过程中实际观测系统数据实时显示。

附图说明

图1为本发明基于多线程并行的海量观测系统炮检点数据绘制显示方法的功能示意图;

图2为本发明基基于多线程并行的海量观测系统炮检点数据绘制显示方法的流程图;

图3为本发明的炮线、检波线统一线编号示意图;

图4为本发明需要绘制观测系统数据线编号列表示意图;

图5为本发明绘图线程主动选取线编号和观测系统数据线编号列表“等待”、“选取”状态示意图;

图6为本发明绘图线程主动选取线编号和观测系统数据线编号列表“等待”、“选取”、“完成”状态示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式以及附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

实施例:

如图1所示,基于多线程并行的海量观测系统炮检点数据绘制显示方法,主要是实现多线程并行绘制观测系统数据以提高绘图效率,达到实时地显示海量观测系统数据的目的,该方法充分利用CPU多核特性实现多线程并行绘图。在绘图过程中,创建与CPU核数相等的绘图线程,每个绘图线程一次绘制一条观测系统数据线,所有观测系统数据绘制完成后,观测系统图显示在窗口中。

该方法具体的流程如图2所示,包括:计算炮检点需要的内存S01,获取计算机当前资源状态S02,炮线、检波线统一线编号S03,创建绘图画布S04,建立图形绘制坐标转换S05,计算要进行绘制的炮线、检波线的线编号列表S06,创建绘图线程S07,绘图线程绘图S08,图形显示S09。

计算炮检点需要的内存S01

计算观测系统中炮点个数和检波点个数,根据炮点和检波点总数和每个点需要内存大小,计算出观测系统数据需要的内存大小,内存大小=(炮点数 + 检波点数) *点(炮点、检波点)占用内存大小 (单位:字节),根据计算的内存大小分配相应的物理内存,保存炮检点数据。

获取计算机当前资源状态S02

获取当前计算机CPU信息,主要包括CPU核数N。

炮线、检波线统一编号S03

根据炮线数和检波线数,对炮线和检波线进行统一编号,如果炮线和检波线总数为N,编号从第一个炮线开始,其编号为0,第二个炮线为1,最后一个检波线为N-1,如图3所示。

创建绘图画布S04

根据显示窗口的大小W *H(单位:像素)(W为显示窗口宽,H为显示窗口高),创建等大小的绘图画布用于图形绘制。

建立图形绘制坐标转换S05

计算观测系统数据坐标范围,既X(横向)、Y(纵向)方向的数据范围(单位:米),得到X方向最小值为Minx、最大值为Maxx,Y方向最小值Miny、最大值Maxy,获得绘图画布大小W、H (单位:像素),根据观测系统数据范围和画布大小,计算横向和纵向坐标转换因子,HI = (Maxx –Minx) / W (单位:米/像素), VI=(Maxy – Miny)/ H (单位:米/像素)。在绘图过程中,通过炮点、检波点的坐标(x,y)和坐标转换因子,计算出点的像素坐标(PX,PY),其中,PX= (x – Minx) /VI(单位:像素),PY=(y – Miny) / HI(单位:像素)。

生成要进行绘制的炮线、检波线列表S06

按炮线、检波线的顺序,提取炮线、检波线的编号,形成要绘制观测系统数据线编号列表(以下简称数据线编号表),并将编号初始状态标志设为“等待”,如图4。

创建绘图线程S07

根据CPU核数N,创建N个绘图线程,并对绘图线程从0开始编号,N个绘图线程,编号依次0、1、2 、...、N-1。

绘图线程绘图S08

绘图线程创建完成后,线程自动启动,开始进行图形绘制。在绘图过程中,采用主动获取绘图数据的策略进行图形绘制。首先,绘图线程从数据线编号表中,选取标志位“等待”的线编号,然后将该线编号标记为已“选取”,如图5,根据编号从观测系统数据中获得实际要绘制线数据进行绘图,一条线绘制完成后,将数据线号标记为“完成”,线程完成一条线绘制后,重新选取标志位“等待”的线编号进行绘图,直到所有观测系统数据线绘制完成,如图6。

图形显示S09

所有数据绘制完成后,将画布显示在显示窗口中,完成观测系统数据图形绘制。

该方法采用多线程并行的绘图方式,充分利用计算机CPU多核特性,创建与CPU核数相等的绘图线程,最大限度的使用计算机CPU资源,具有绘图效率高、显示速度快的特点,适用于野外地震采集设计软件中海量观测系统炮检点数据实时显示。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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