CN105093283B - 一种三维观测系统面元属性多线程快速显示方法 - Google Patents
一种三维观测系统面元属性多线程快速显示方法 Download PDFInfo
- Publication number
- CN105093283B CN105093283B CN201410208290.9A CN201410208290A CN105093283B CN 105093283 B CN105093283 B CN 105093283B CN 201410208290 A CN201410208290 A CN 201410208290A CN 105093283 B CN105093283 B CN 105093283B
- Authority
- CN
- China
- Prior art keywords
- covering
- degree
- bin
- observing system
- pictures
- 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.)
- Active
Links
Landscapes
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种三维观测系统面元属性多线程快速显示方法,属于地震勘探与开发领域。本方法对三维观测系统面元属性分析结果进行分块预处理,利用多线程方式提高覆盖次数数据读取及显示绘制效率;所述方法包括:(1)建立三维观测系统的覆盖次数属性矩阵结构;(2)沿面元网格x‑line方向将覆盖次数属性矩阵结构分成N块;(3)获取当前窗口绘制区域大小,创建N张QPixmap图片,每张图片对应的是覆盖次数属性矩阵结构的1/N份;(4)创建N个线程,分别载入覆盖次数,并绘制到对应的QPixmap图片中;(5)将所述N张QPixmap图片绘制到屏幕对应位置上。本发明创新性地实现了三维观测系统面元属性预处理。
Description
技术领域
本发明属于地震勘探与开发领域,具体涉及一种三维观测系统面元属性多线程快速显示方法。
背景技术
随着三维地震勘探技术的逐步发展,近些年高精度、高密度的观测系统设计越来越多,这使得在进行三维观测系统面元属性分析结果数据量变得非常大。通常我们希望能够快速在屏幕上看到整个工区覆盖次数分布图,但当面元属性分析数据量比较大时,覆盖次数分布图绘制会占用系统大量资源,而使得显示效率变得很慢。
传统的编程思想是串行化的,它只适合在单核的处理器上运行,由于它运行的顺序化和只有一个处理器可用做执行资源,所以效率不高。而随着计算机技术的不断发展,普通的PC机基本都拥有多核处理器,如果继续采用传统的串行化编程方式的话,会浪费大量计算资源,同时计算效率也无法得到提升。为了提供覆盖次数分布图的显示效率,就需要利用多核处理器的计算优势,对原有的程序进行并行化改造,采用多线程技术提供其显示效率。
发明内容
本发明的目的在于解决上述现有技术中存在的难题,提供一种三维观测系统面元属性多线程快速显示方法,对三维观测系统面元属性分析结果进行分块预处理,利用多线程方式提高覆盖次数数据读取及显示绘制效率。
本发明是通过以下技术方案实现的:
一种三维观测系统面元属性多线程快速显示方法,对三维观测系统面元属性分析结果进行分块预处理,利用多线程方式提高覆盖次数数据读取及显示绘制效率;
所述方法包括:
(1)建立三维观测系统的覆盖次数属性矩阵结构;
(2)沿面元网格x-line方向将覆盖次数属性矩阵结构分成N块;
(3)获取当前窗口绘制区域大小,创建N张QPixmap图片,每张图片对应的是覆盖次数属性矩阵结构的1/N份;
(4)创建N个线程,分别载入覆盖次数,并绘制到对应的QPixmap图片中;
(5)将所述N张QPixmap图片绘制到屏幕对应位置上。
所述步骤(1)包括:
在观测系统中横向与纵向打上固定宽度与高度的面元网格后,通过计算观测系统中所有炮检点连线的中点所落在面元网格中的位置坐标统计结果数据,形成三维观测系统覆盖次数属性矩阵结构;
建立矩阵头文件和矩阵体文件,其中矩阵头文件中包括面元网格起始点坐标、inline方向间距及个数、x-line方向间距及个数和方向角;矩阵体是按inline及x-line方向分布记录的覆盖次数值阵列;
将每个面元网格中覆盖次数值按照先inline方向后x-line方向存储到覆盖次数矩阵结构中。
所述覆盖次数值采用无符号整数型。
所述步骤(2)包括:
计算步骤(1)得到的覆盖次数矩阵结构所占存储空间大小,总存储空间=inline方向网格个数*x-line方向网格个数*sizeof(unSigned int);
将该总存储空间分成N份,其中每一份所占存储空间大小=inline方向网格个数*x-line方向的跨度*si zeof(unSi gned int),x-line方向的跨度=x-line方向网格个数/N。
所述N值是根据计算机的性能确定的。
所述步骤(3)包括:
获取当前显示窗口的绘制区域尺寸,利用该尺寸建立N张QPixmap图片,并将图片背景填充为白色。
所述步骤(4)包括:
利用QThread创建N个进程,每个线程分别读取对应步骤(2)中的面元网格分块中的覆盖次数属性,并利用面元网格定义信息将每一分块的覆盖次数填充图绘制到对应QPixmap图片中;
所述面元网格定义信息是指面元网格起始点坐标、inline方向间距及个数、x-line方向间距及个数和方向角。
所述步骤(5)包括:
根据坐标转换,将大地坐标转换成屏幕坐标,获取当前显示窗口的QPainter绘制设备,利用drawPixmap函数依次将步骤(4)中N张图片叠加绘制到屏幕上。
与现有技术相比,本发明的有益效果是:
(1)本发明利用多线程方式提高覆盖次数数据读取及显示绘制效率;
(2)本发明创新性地实现了三维观测系统面元属性预处理;
附图说明
图1是面元网格分块图。
图2是多线程绘制缓存图。
图3是本发明方法的步骤框图。
具体实施方式
下面结合附图对本发明作进一步详细描述:
本发明提供了一种三维观测系统面元属性多线程快速显示方法,属于石油地震勘探与开发领域。方法包括:(1)建立三维观测系统覆盖次数属性矩阵结构;(2)沿面元网格x-line方向将覆盖次数属性分成N块;(3)获取当前窗口绘制区域大小,创建N张QPixmap图片;(4)创建N个线程,分别载入覆盖次数,并绘制到对应的QPixmap中;(5)将N张QPixmap图片采用透明的方式绘制到屏幕对应位置上。
如图3所示,本方法具体如下:
(1)建立三维观测系统覆盖次数属性矩阵结构,具体如下:
在野外三维观测系统设计中,覆盖次数统计图作为一个重要的手段给技术人员提供参考。覆盖次数图是指将面元网格中对应的数值转换成颜色值来对网格进行填充,设计简洁、高效的覆盖次数数据结构可以增强程序的运行效率。
在观测系统中横向与纵向打上固定宽度与高度的面元网格后,通过计算观测系统中所有炮检点连线的中点所落在面元网格中的位置坐标统计结果数据,为了有效的管理这些数据,建立两个文件即矩阵头和矩阵体文件。矩阵头中定义了面元网格起始点坐标、inline方向间距及个数、x-line方向间距及个数、方向角等信息。矩阵体是按inline及x-line方向(是指与面元网格相对应的存储方式,沿inline方向存储覆盖次数值,x-line作为行号累加,如图1所示的网格结构)分布记录的覆盖次数数字阵列;这种存储方式可以方便的通过行号及列号访问矩阵中任意面元网格中统计信息。
(2)沿面元网格x-line方向将覆盖次数属性分成N块;
在串行程序中,程序运行是顺序化,只有一个处理器可用作执行资源,所以效率不高。三维观测系统面元属性数据采用线性的存储方式,针对这种数据存储形式可以采用多线程的方式同时读取不同位置的数据进行处理,可以大大提高程序运行效率。
在建立多线程之前需要对数据进行分块预处理,用于告诉每个线程访问的数据地址空间。计算步骤(1)得到的覆盖次数矩阵结构所占存储空间大小,总存储空间=inline方向网格个数*x-line方向网格个数*sizeof(unsigned int)。将该存储空间分成N份,其中每一份所占存储空间大小=inline方向网格个数*x-line方向的跨度*sizeof(unsignedint)(sizeof(unsigned int)是指无符号整数型在计算机内存中的存储空间大小),x-line方向的跨度=x-line方向网格个数/N,如图1所示。N值是提前指定的,根据计算机的性能选择不同N值。
(3)获取当前窗口(即计算机屏幕上所显示的区域)绘制区域大小,创建N张QPixmap图片;
为了减轻覆盖次数统计图在屏幕绘制过程中的闪烁问题,使用双缓冲进行绘图。即面元网格覆盖次数颜色填充不再直接绘制到屏幕上,而是将其绘制到临时图片缓冲区中,绘制完毕后后直接将图片缓冲区显示到屏幕上。
QPixmap提供了屏幕后台缓冲区绘图功能,利用它作为临时图片缓冲区可以有效降低屏幕闪烁现象。首先,获取当前显示窗口的绘制区域尺寸,利用该尺寸建立N张同样尺寸的QPixmap图片,并将图片背景填充为白色。
如果某一张图片不在显示范围内的话,就没有必要占用计算机资源对该图片进行绘制。所以在显示N张图片时需要对其显示范围进行判断。首先要进行大地坐标到屏幕坐标的转换,显示范围是一个屏幕坐标,而覆盖次数属性矩阵结构中的坐标则是大地坐标。判断如果在显示范围的话,就进行屏幕绘制操作。
(4)创建N个线程,分别载入覆盖次数,并绘制到对应的QPixmap中;
首先,利用QThread创建N个进程,每个线程分别读取对应步骤(2)中面元网格分块中覆盖次数属性,并利用面元网格定义信息将每一分块的覆盖次数填充图绘制到对应QPixmap中,如图2所示。每一个线程访问的覆盖次数属性分块是相对独立的,不存在有两个线程同时读取同一地址空间的覆盖次数,这样就不会存在线程之间的同步问题,减少程序复杂度。
根据面元网格定义信息计算每一张QPixmap图片所需绘制的覆盖次数网格范围,在各自线程中计算每一填充矩形的起始坐标和尺寸,获取QPixmap绘制句柄对填充矩形进行绘制,等待所创建的N个进程结束,即临时图片缓冲区绘制完毕。
(5)将N张QPixmap图片采用透明的方式(即根据坐标转换,将大地坐标转换成屏幕坐标)绘制到屏幕对应位置上。
获取当前显示窗口的QPainter绘制设备,利用drawPixmap函数依次将步骤(4)中N张图片以透明方式叠加绘制到屏幕上。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (7)
1.一种三维观测系统面元属性多线程快速显示方法,其特征在于:所述方法对三维观测系统面元属性分析结果进行分块预处理,利用多线程方式提高覆盖次数数据读取及显示绘制效率;
所述方法包括:
(1)建立三维观测系统的覆盖次数属性矩阵结构;
(2)沿面元网格x-line方向将覆盖次数属性矩阵结构分成N块;
(3)获取当前窗口绘制区域大小,创建N张QPixmap图片,每张图片对应的是覆盖次数属性矩阵结构的1/N份;
(4)创建N个线程,分别载入覆盖次数,并绘制到对应的QPixmap图片中;
(5)将所述N张QPixmap图片绘制到屏幕对应位置上,
所述步骤(1)包括:
在观测系统中横向与纵向打上固定宽度与高度的面元网格后,通过计算观测系统中所有炮检点连线的中点所落在面元网格中的位置坐标统计结果数据,形成三维观测系统覆盖次数属性矩阵结构;
建立矩阵头文件和矩阵体文件,其中矩阵头文件中包括面元网格起始点坐标、inline方向间距及个数、x-line方向间距及个数和方向角;矩阵体是按inline及x-line方向分布记录的覆盖次数值阵列;
将每个面元网格中覆盖次数值按照先inline方向后x-line方向存储到覆盖次数属性矩阵结构中。
2.根据权利要求1所述的三维观测系统面元属性多线程快速显示方法,其特征在于:所述覆盖次数值采用无符号整数型。
3.根据权利要求2所述的三维观测系统面元属性多线程快速显示方法,其特征在于:所述步骤(2)包括:
计算步骤(1)得到的覆盖次数属性矩阵结构所占存储空间大小,总存储空间=inline方向网格个数*x-line方向网格个数*sizeof(unsigned int);
将该总存储空间分成N份,其中每一份所占存储空间大小=inline方向网格个数*x-line方向的跨度*sizeof(unsigned int),x-line方向的跨度=x-line方向网格个数/N,其中,sizeof(unsigned int)是指无符号整数型在计算机内存中的存储空间大小。
4.根据权利要求3所述的三维观测系统面元属性多线程快速显示方法,其特征在于:所述N值是根据计算机的性能确定的。
5.根据权利要求4所述的三维观测系统面元属性多线程快速显示方法,其特征在于:所述步骤(3)包括:
获取当前显示窗口的绘制区域尺寸,利用该尺寸建立N张QPixmap图片,并将图片背景填充为白色。
6.根据权利要求5所述的三维观测系统面元属性多线程快速显示方法,其特征在于:所述步骤(4)包括:
利用QThread创建N个进程,每个线程分别读取对应步骤(2)中的面元网格分块中的覆盖次数属性,并利用面元网格定义信息将每一分块的覆盖次数填充图绘制到对应QPixmap图片中;
所述面元网格定义信息是指面元网格起始点坐标、inline方向间距及个数、x-line方向间距及个数和方向角。
7.根据权利要求6所述的三维观测系统面元属性多线程快速显示方法,其特征在于:所述步骤(5)包括:
根据坐标转换,将大地坐标转换成屏幕坐标,获取当前显示窗口的QPainter绘制设备,利用drawPixmap函数依次将步骤(4)中N张图片叠加绘制到屏幕上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410208290.9A CN105093283B (zh) | 2014-05-16 | 2014-05-16 | 一种三维观测系统面元属性多线程快速显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410208290.9A CN105093283B (zh) | 2014-05-16 | 2014-05-16 | 一种三维观测系统面元属性多线程快速显示方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105093283A CN105093283A (zh) | 2015-11-25 |
CN105093283B true CN105093283B (zh) | 2017-12-01 |
Family
ID=54574137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410208290.9A Active CN105093283B (zh) | 2014-05-16 | 2014-05-16 | 一种三维观测系统面元属性多线程快速显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105093283B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106560792B (zh) * | 2015-12-27 | 2020-05-01 | 北京科胜永昌软件有限公司 | 海量观测系统双缓存面元计算方法 |
CN106802924A (zh) * | 2016-12-19 | 2017-06-06 | 北京科胜永昌软件有限公司 | 基于多线程并行的海量观测系统炮检点数据绘制显示方法 |
CN109343117B (zh) * | 2018-11-10 | 2020-05-01 | 北京科胜伟达石油科技股份有限公司 | 双缓存双线程地震数据显示方法 |
CN111489410B (zh) * | 2019-01-25 | 2023-11-28 | 中国石油天然气集团有限公司 | 观测系统炮检点数据绘制方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530646A (en) * | 1993-12-01 | 1996-06-25 | Schlumberger Technology Corporation | Method for inputting seismic data for seismic processing on a multiprocessor computer |
CN102063308A (zh) * | 2011-01-12 | 2011-05-18 | 中国石油集团川庆钻探工程有限公司 | 一种用于地震勘探资料处理流程控制的方法 |
CN102736898A (zh) * | 2012-05-08 | 2012-10-17 | 国家测绘局卫星测绘应用中心 | 一种适用于多核cpu的矢量数据并行绘制方法和装置 |
CN103116183A (zh) * | 2011-11-16 | 2013-05-22 | 中国石油天然气集团公司 | 一种石油地震采集面元覆盖次数属性体切片成图方法 |
CN103439743A (zh) * | 2013-08-30 | 2013-12-11 | 电子科技大学 | 一种地震数据剖面图形绘制方法 |
CN103605161A (zh) * | 2013-10-29 | 2014-02-26 | 中国石油天然气集团公司 | 地震三维观测系统的共中心点面元属性的分析方法及装置 |
CN103605159A (zh) * | 2013-11-13 | 2014-02-26 | 长江大学 | 一种并行压缩海量地震数据的方法 |
CN103713314A (zh) * | 2012-09-28 | 2014-04-09 | 中国石油化工股份有限公司 | 一种叠前时间偏移并行处理方法 |
-
2014
- 2014-05-16 CN CN201410208290.9A patent/CN105093283B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530646A (en) * | 1993-12-01 | 1996-06-25 | Schlumberger Technology Corporation | Method for inputting seismic data for seismic processing on a multiprocessor computer |
CN102063308A (zh) * | 2011-01-12 | 2011-05-18 | 中国石油集团川庆钻探工程有限公司 | 一种用于地震勘探资料处理流程控制的方法 |
CN103116183A (zh) * | 2011-11-16 | 2013-05-22 | 中国石油天然气集团公司 | 一种石油地震采集面元覆盖次数属性体切片成图方法 |
CN102736898A (zh) * | 2012-05-08 | 2012-10-17 | 国家测绘局卫星测绘应用中心 | 一种适用于多核cpu的矢量数据并行绘制方法和装置 |
CN103713314A (zh) * | 2012-09-28 | 2014-04-09 | 中国石油化工股份有限公司 | 一种叠前时间偏移并行处理方法 |
CN103439743A (zh) * | 2013-08-30 | 2013-12-11 | 电子科技大学 | 一种地震数据剖面图形绘制方法 |
CN103605161A (zh) * | 2013-10-29 | 2014-02-26 | 中国石油天然气集团公司 | 地震三维观测系统的共中心点面元属性的分析方法及装置 |
CN103605159A (zh) * | 2013-11-13 | 2014-02-26 | 长江大学 | 一种并行压缩海量地震数据的方法 |
Non-Patent Citations (3)
Title |
---|
基于GPU计算平台实现三维输出道方式的共反射面元(3D-CRS-OIS)叠加;倪瑶 等;《石油地球物理勘探》;20130228;第48卷(第1期);第49-56页 * |
基于Windows CE 下大像素图像分块显示算法的研究;朱亚奇 等;《科学技术与工程》;20080831;第8卷(第15期);第2节 * |
海量图像数据快速显示方法及实现;程伟 等;《地理与地理信息科学》;20110131;第27卷(第1期);第109-110页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105093283A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105093283B (zh) | 一种三维观测系统面元属性多线程快速显示方法 | |
CN105308588B (zh) | 流式细胞仪中有效的等高线和建门 | |
Li et al. | Visualizing 3D/4D environmental data using many-core graphics processing units (GPUs) and multi-core central processing units (CPUs) | |
CN106802924A (zh) | 基于多线程并行的海量观测系统炮检点数据绘制显示方法 | |
CN102270236A (zh) | 一种基于栅格化gis 空间关系判断方法及其系统 | |
WO2016119537A1 (zh) | 基于深度剥离的核辐射屏蔽计算网格生成方法和系统 | |
CN110672072A (zh) | 一种用于裂隙岩体结构的信息多元解译与表征方法 | |
Discher et al. | Concepts and techniques for web-based visualization and processing of massive 3D point clouds with semantics | |
CN102750727B (zh) | 针对并行体绘制实现剪切波数据三维可视化的访存方法 | |
CN117409157A (zh) | 一种三维地质模型在线剖切成图方法 | |
JP6677733B2 (ja) | 効率的時系列ヒストグラム | |
US20170140569A1 (en) | System and method for optimized sparse volume rendering | |
NO347918B1 (en) | Efficient algorithms for volume visualization on irregular grids | |
CN105301652A (zh) | 一种三维地震数据固定轴向切片动态判断体绘制方法 | |
Wu et al. | MLSEB: Edge bundling using moving least squares approximation | |
DE102022113521A1 (de) | Techniken zur Verschachtelung von Texturen | |
Saupi Teri et al. | GPU utilization in geoprocessing BIG Geodata: A review | |
CN113486416A (zh) | 一种3d建筑楼层分层的实现方法 | |
Ahrens et al. | A modular extensible visualization system architecture for culled prioritized data streaming | |
Wang | Research on three dimensional visualization technologies | |
Yao et al. | A parallel volume rendering method for massive data | |
KR101540941B1 (ko) | 병렬 쉬어 와프 분해를 이용한 볼륨 렌더링 방법 | |
KR101287513B1 (ko) | 3차원 렌더링을 위한 격자 기반의 텍스처 매핑장치 및 방법 | |
CN117272495B (zh) | 一种图像及数据组织、融合加载和展示方法及系统 | |
Wang et al. | Texture synthesis via the matching compatibility between patches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |