一种地质勘探中大数据量的曲线快速绘图方法及其系统技术方案

技术编号:15192075 阅读:115 留言:0更新日期:2017-04-20 11:12
本发明专利技术公开了一种地质勘探中大数据量的曲线快速绘图方法及其系统,首先客户端对绘图界面的操作转换为读数据请求,利用定时器功能过滤掉过间隔时间较短的读数据请求,对过滤后的读数据请求进行解析处理,提取需要从数据文件中读取数据的信息,再从自定义的预读数据缓存和数据文件中读取数据,并对大数量数据点进行特征点提取,最后根据接收到的数据信息进行绘图。本发明专利技术有效地解决了常规的对大数据量绘图效率低问题,大大改善用户界面的友好性,同时也提高了工作效率。

【技术实现步骤摘要】

本专利技术涉及地质勘探数据绘图
,具体是一种地质勘探中大数据量的曲线快速绘图方法及其系统
技术介绍
随着地质勘探开发精度的不断提高,高密度地震数据采集已成为当前主流地地震采集技术,使得地质勘探的数据量巨大。对大数据进行快速有效的处理分析是首要任务,只有通过分析才能获取很多深入的、有价值的信息,大数据处理分析离不开有效的快速绘图技术,将数据转化为直观的数据曲线或图像是分析结果真实性和有价值的保证。在Windows操作系统下,常规绘图方式是首先将待显示的对象暂放在一个显示缓存,即单缓冲区,在该缓冲中任何绘图过程都会立即被显示在屏幕中。如果以这种绘图方式直接在应用程序的窗口上绘制大数据量曲线全图,开始绘制曲线像素所需的大量图元计算时间和结束像素绘制之间有一个延迟,这会导致出现图像的刷新速度慢,而且有时还会出现闪烁等现象。为了解决这些问题,在实际软件开发中常采用双缓冲技术,即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这能大大加快绘图的速度。图1是利用双缓冲技术在台式PC机上进行的绘图效率测试关系图,其中,台式机硬件基本配置主要有inteli3-4590CPU,4G内存,独立显卡。在图1中可以看出,当绘制的数据点150万时,其绘图时间超过1s。以实际数据显示为例,若某类电磁仪有ChannleNum=5个采集通道,仪器的采样率为SampleRate=1kHz,那么绘制150万数据点的时间序列长度是150s,这么短的绘图区间及长时间的绘图时间是难以满足用户需求的。同时,显示的数据量越大,CPU占用率会越高,绘图的效率低,甚至会导致程序的崩溃等问题。另一方面,勘探仪器通常将数据保存为原始数据帧格式并以二进制形式写入到文件中,其数据帧格式常定义为如图2所示,它是由5个部分组成,其中帧头和帧尾表示一帧的开始与结束,帧信息记录了数据的GPS时间和位置等信息,帧计数是数据帧的编号,数据块是有效数据部分,该帧结构中包括n个通道数据,每个通道的数据量可设置,一个数据帧的大小主要由数据块决定,一般在KB数量级。按照接收的先后顺序依次写入文件中,从数据格式中可以看出,数据块是不连续的,当该数据文件存储在硬盘上,由于数据文件中数据块是不连续存储的,数据文件的读取速度取决于硬盘的读数据上限,硬盘在读取数据块过程中,由于各个数据块在文件中的位置不连续,当硬盘读取完当前数据块后,磁头需要机械移动到下一个数据块的位置,再读取该数据块,可见从硬盘中获取数据的过程是随机访问过程。在随机读取过程时,硬盘的响应时间由磁头的寻道时间、旋转延时时间和传送时间三部分组成。常用的硬盘寻道时间的典型值是4.6ms,旋转延迟则取决于磁盘的转速:普通7200RPM硬盘的转动延迟是4.2ms,而高端10000RPM的旋转延时是3ms。而硬盘的对于小数据的传送时间在纳秒量级,因此,从硬盘中读取数据中过程中,寻道时间和旋转延时远大于传送时间。假设硬盘的寻道时间和旋转延时为tseek和tdelay,不考虑磁盘预读,读取N个数据块的时间为ReadDataTime=N(tseek+tdelay)(1)从式(3)中可以看出,当读取的数据块越多,读取时间也会越长,甚至读取数据的时间达到秒量级。在某些情况下,会将原始数据帧转换为如图3和图4所示的特殊数据文件格式,虽然对于读取某些特定通道数据是顺序读取,减少了硬盘的寻道时间和旋转延时,但在进行数据处理时,需要抽取不同通道的数据,每次读取通道数据时,都需要进行定位,这样仍不可避免地存在随机读取数据情形。综上分析,常规的绘图流程可归纳为如图5所示,当用户对图形进行平移、缩放或滚动时,客户端会发出读数据请求,根据读取文件的信息从硬盘中读取二进制数据,再对数据进行解析转换为需要的数据类型,最后根据数据利用双缓冲技术进行曲线绘图。从常规的绘图流程可以看出,绘图流程均是在一个线程中运行的,当界面在发送一条读数据绘图请求后,就会挂起主界面,只有当完成绘图工作后,主界面才能执行下一步的操作,而大数据量绘图是非常耗时的过程,从而导致主界面出现僵死现象。另一方面,由于数据量巨大,一般情况下不会一次性将数据全部绘制出来,通常会显示局部数据段图形,再采用如滚动、缩放功能进一步查看感兴趣的数据区间。但常规的绘图方法在每次进行图形缩放、滚动等操作时,都会重新读数据,并重新绘制整幅图形。这对于大数据量绘图来说,每次重绘整幅图形会大大降低绘图效率。可见,由于常规的大数据量绘图效率低,图形操作动作极不流畅等问题,会给用户在实际应用中产生“顿卡”现象,导致非常不友好的界面感受,严重影响工作效率。
技术实现思路
本专利技术要解决的技术问题是提供一种地质勘探中大数据量的曲线快速绘图方法及其系统,解决现有的大数据绘图方法效率低和界面不友好等问题。为了解决上述问题,本专利技术所采取的技术方案是:一种地质勘探中大数据量的曲线快速绘图方法,具体包括有以下步骤:(1)、当客户端进行图形的操作动作时,每移动一小段,屏幕上需要显示的绘图区域范围即会发生变化,即产生一次范围变化事件,一次范围变化事件中封装了事件发生时的屏幕显示范围,所有范围变化事件被发送给事件过滤模块;所述的范围变化事件即读数据请求,包含有读取数据的通道ID、读取点的起始ID和数据点数目信息;(2)、事件过滤模块根据接收到的读数据请求,利用定时器功能过滤掉间隔时间较短的读数据请求,记录停顿时间较长的读数据请求;(3)、事件过滤模块对过滤后记录的读数据请求进行处理,将读数据请求中显示的数据范围与绘图缓存中的数据范围进行对比,提取读数据请求中需要显示但绘图缓存中不包含的数据信息部分,再封装成新的读数据请求后发送给数据读取模块,同时移除绘图缓存中不再需要显示的数据,释放缓存空间;(4)、数据读取模块对接收到的读数据请求,判断该读数据请求中是否有数据点在自定义的预读数据缓存中,若有,将满足要求的数据点从预读缓冲中提取出来并发送给数据处理模块,然后从硬盘的数据文件中读取剩余的数据点并发送给数据处理模块;(5)、数据处理模块将接收到数据点转换为满足绘图要求的数据类型,并利用Douglas-Peucker算法对大数据量点进行特征点提取,最后将提取的数据点发送给数据绘图模块;(6)、数据绘图模块在主界面根据接收到的数据点进行曲线绘图。所述的步骤(2)中,利用定时器功能过滤掉间隔时间较短的读数据请求的具体方法是:首先,进行如下初始化工作:根据绘图时间与绘图点数关系图存在显著的线性关系,利用最小二乘法线性拟合可得到关系式(2)中的a,b;初始化一个定时器时,当达到定时时间后,会发送一个信号,来触发处理函数并且只触发一次;DrawingTime=a·SampleNum+b(2),其中,DrawingTime为绘图时间,SampleNum为绘图点数;即根据读数据请求获取读取的数据点数,当读取的数据点数大于设置的阈值ε0,利用式(2)可估算出绘图时间DrawingTime,重置定时器时间间隔,并设置定时器的时间间隔为DrawingTime,当绘图时间DrawingTime满足定时器时间间隔时,会触发处理函数且处理函数仅执行一次,若在绘图时间DrawingTime内有本文档来自技高网
...
一种地质勘探中大数据量的曲线快速绘图方法及其系统

【技术保护点】
一种地质勘探中大数据量的曲线快速绘图方法,其特征在于:具体包括有以下步骤:(1)、当客户端进行图形的操作动作时,每移动一小段,屏幕上需要显示的绘图区域范围即会发生变化,即产生一次范围变化事件,一次范围变化事件中封装了事件发生时的屏幕显示范围,所有范围变化事件被发送给事件过滤模块;所述的范围变化事件即读数据请求,包含有读取数据的通道ID、读取点的起始ID和数据点数目信息;(2)、事件过滤模块根据接收到的读数据请求,利用定时器功能过滤掉间隔时间较短的读数据请求,记录停顿时间较长的读数据请求;(3)、事件过滤模块对过滤后记录的读数据请求进行处理,将读数据请求中显示的数据范围与绘图缓存中的数据范围进行对比,提取读数据请求中需要显示但绘图缓存中不包含的数据信息部分,再封装成新的读数据请求后发送给数据读取模块,同时移除绘图缓存中不再需要显示的数据,释放缓存空间;(4)、数据读取模块对接收到的读数据请求,判断该读数据请求中是否有数据点在自定义的预读数据缓存中,若有,将满足要求的数据点从预读缓冲中提取出来并发送给数据处理模块,然后从硬盘的数据文件中读取剩余的数据点并发送给数据处理模块;(5)、数据处理模块将接收到数据点转换为满足绘图要求的数据类型,并利用Douglas‑Peucker算法对大数据量点进行特征点提取,最后将提取的数据点发送给数据绘图模块;(6)、数据绘图模块在主界面根据接收到的数据点进行曲线绘图。...

【技术特征摘要】
1.一种地质勘探中大数据量的曲线快速绘图方法,其特征在于:具体包括有以下步骤:(1)、当客户端进行图形的操作动作时,每移动一小段,屏幕上需要显示的绘图区域范围即会发生变化,即产生一次范围变化事件,一次范围变化事件中封装了事件发生时的屏幕显示范围,所有范围变化事件被发送给事件过滤模块;所述的范围变化事件即读数据请求,包含有读取数据的通道ID、读取点的起始ID和数据点数目信息;(2)、事件过滤模块根据接收到的读数据请求,利用定时器功能过滤掉间隔时间较短的读数据请求,记录停顿时间较长的读数据请求;(3)、事件过滤模块对过滤后记录的读数据请求进行处理,将读数据请求中显示的数据范围与绘图缓存中的数据范围进行对比,提取读数据请求中需要显示但绘图缓存中不包含的数据信息部分,再封装成新的读数据请求后发送给数据读取模块,同时移除绘图缓存中不再需要显示的数据,释放缓存空间;(4)、数据读取模块对接收到的读数据请求,判断该读数据请求中是否有数据点在自定义的预读数据缓存中,若有,将满足要求的数据点从预读缓冲中提取出来并发送给数据处理模块,然后从硬盘的数据文件中读取剩余的数据点并发送给数据处理模块;(5)、数据处理模块将接收到数据点转换为满足绘图要求的数据类型,并利用Douglas-Peucker算法对大数据量点进行特征点提取,最后将提取的数据点发送给数据绘图模块;(6)、数据绘图模块在主界面根据接收到的数据点进行曲线绘图。2.根据权利要求1所述的一种地质勘探中大数据量的曲线快速绘图方法,其特征在于:所述的步骤(2)中,利用定时器功能过滤掉间隔时间较短的读数据请求的具体方法是:首先,进行如下初始化工作:根据绘图时间与绘图点数关系图存在显著的线性关系,利用最小二乘法线性拟合可得到关系式(1)中的a,b;初始化一个定时器时,当达到定时时间后,会发送一个信号,来触发处理函数并且只触发一次;DrawingTime=a·SampleNum+b(1),其中,DrawingTime为绘图时间,SampleNum为绘图点数;即根据读数据请求获取读取的数据点数,当读取的数据点数大于设置的阈值ε0,利用式(2)可估算出绘图时间DrawingTime,重置定时器时间间隔,并设置定时器的时间间隔为DrawingTime,当绘图时间DrawingTime满足定时器时间间隔时,会触发处理函数且处理函数仅执行一次,若在绘图时间DrawingTime内有读数据请求,定时器将会被重置,从而过滤前一个过快的读数据请求;当读数据请求中读取的样本点数小于阈值ε0时,考虑到绘图时间非常快,故将定时器的时间间隔设置为0,相当于直接执行处理函数。3.根据权利要求2所述的一种地质勘探中大数据量的曲线快速绘图方法,其特征在于:所述的步骤(3)中对过滤后记录的读数据请求进行处理的具体方法是:处理函数得到过滤后的当前数据信息后,与前一个绘图动作的绘图数据信息进行对比,将绘图区域划分为重合绘图区域和读数据绘图区域两个部分,重合绘图区域是当前绘图数据信息与前一绘图数据信息重合的图线绘制区域,读数据区域是...

【专利技术属性】
技术研发人员:唐学峰胡鑫陈静杨阳俞小露
申请(专利权)人:合肥国为电子有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1