基于OpenGL的油田地下管线探测数据三维成像方法
2011-11-12龚大利刘得军
龚大利, 刘得军, 叶 珲, 李 辉, 张 嵩
( 1. 中国石油大学(北京) 地球物理与信息工程学院,北京 102249; 2. 中国石油昆仑合燃压缩气有限公司,安徽 合肥 230075 )
0 引言
在油田开发过程中,输油、输气、输水管线及光缆、电缆作为油田的重要基础设施,一般埋藏在地下1.0~3.0 m,属于隐蔽工程,担负原油、天然气等各种能源的输送和调配,以及工业、生活等的供排水功能.由于历史及其他原因,地下管线有的资料残缺不全,有的资料精度不高或与现场不符,管线位置不明确,给井场开挖、打桩施工等现场作业带来不便[1].由于没有有效的技术手段解决该问题,每年都有井场作业施工时打漏地下管线的现象发生,进而造成油气泄漏、停水、停电、通讯中断等.因此,为适应油田现代化建设和加强油田地下空间规划管理的需要,防止在油田建设中对现有管线系统造成破坏以引发不必要的损失,开展可视化地下管线探测方法研究具有重要意义[2-3].
传统的管线探测方法包括磁力法、电磁感应法、磁共振法、超导效应法、磁通门法、磁光效应法、磁阻效应法等[4-10].这些方法存在探测深度有限,易受探测现场其他电磁信号干扰,更重要的是无法对有效探测信号进行可视化成像并直观反映管线的位置及其分布.笔者利用磁阻传感器阵列采集井场工作区域内磁异常信号;对所采集信号进行降噪处理,进而提升地下管线所致磁异常信号的信噪比,根据数据点所提供的信息对地下情况做出判断,并利用OpenGL三维图形显示和处理功能实现地磁异常探测仪器数据可视化,利用该方法直观反映管线的位置及分布信息,从而实现对油田地下管线的精确探测.
1 OpenGL图形库
OpenGL作为当前主流的底层图形库之一[11-13],通过在软件中提供硬件所不支持的特性,克服IrisGL接口只能提供底层硬件所支持特性问题,让应用程序在性能相对较弱的系统上可以使用高级的图形功能.OpenGL的基本工作流程见图1.由图1可以看出,顶点、线、多边形等几何数据在处理时通过运算器、逐顶点操作处理单元,而像素、图像和位图等数据在此过程中通过另一条处理路径[14-15].2种类型的数据在最后阶段的处理方式是相同的,即经过光栅化和对像素段操作.
图1 OpenGL工作流程
2 数据成像方法
2.1 三维场景的设置
在三维图形应用程序中,三维模型在屏幕上的视觉效果主要受三维模型在空间中的位置、视界空间的位置及大小,以及摄像机镜头的摆放位置等参数影响,因此场景设置主要是对3个参数的设置.在OpenGL中,存在与3个参数对应的3个变换——视图变换、模型变换和投影变换,共同影响三维模型的成像结果.
视图变换类比于设定摄像机的位置和镜头的朝向,在OpenGL中由gluLookAt()函数指定.
模型变换用来设定与模型的位置及方向相关的参数,以及在空间及尺度变换的参数.在设置视图和模型变换前,需要调用glMatrixMode()函数并传入值为GL—MODELVIEW的参数.
投影变换类似于为摄像机选择1个镜头,它决定视界的形状.在文中选择正交投影,正交投影的视界是1个标准的矩形平行四面体,相同的长度不会因距离摄像头的远近变化而发生改变.设置投影变换前,需要调用glMatrixMode()函数并传入值为GL—PROJECTION的参数.
为方便起见,将曲面和视界的中心置于原点,摄像头的位置需要位于Z轴正方向.将视界的宽度和高度设置为窗口客户区的大小,由于中心位于原点,得到视界在X,Y轴方向的值.视界在Z轴方向选取固定值.经过验证,摄像头的位置取为距视界Z轴正方向坐标的50个单位长度点是比较合理的.选择无论远近视觉效果相同的正交投影,最后调用函数glOrtho(x, -x,y,-y,z,-z)确定视界,其中x,y,z为视界3个方向的切割平面坐标.
2.2 三维曲面的生成
OpenGL利用基本图元生成三维图形和曲面,最常用的基本图元是三角形,它能保证各个顶点在同一平面内.生成曲面即遍历每个数据点.假设在外层的迭代中遍历所有列,内层的迭代中遍历每一列上的所有行,对行上的数据点的遍历的顺序需要满足条件:
(1)这些数据点按照每3个1组的方式进行拆分;
(2)相邻的2组之间存在2点交集;
(3)每组的3点遵循相同的排列次序 (顺时针或逆时针);
(4)每组的3点中有1个点与其余点不处于同一行内.
虽然OpenGL提供描绘三角形图元句法,但是不需要直接使用.因为OpenGL提供更方便使用的图元组合——三角形条带句法,可以避免指定相互连接的三角形条带中重复出现的顶点.三角形条带的描述句法为
glBegin(GL—TRIANGLE—STRIP);
glVertex3f(x1,y1,z1);…;glVertex3f(xn,yn,zn);
glEnd();
其中{(xn,yn,zn)}为互不重合的数据点集,可以减小函数调用次数,提高程序的运行速度.假设数据点的规模是m×n,则前一种方式需要6(n-1)(m-1)次调用,后一种方式需要2n(m-1)次调用,在n较大时,后者调用次数约为前者的1/3.
三维曲面生成过程见图2,其中点表示数据点在XY平面上的投影:
2.3 颜色的渲染
Z轴方向的高度反映数值的大小,即信号的强弱.如果不指定颜色,整个曲面将会用同一种颜色绘制.为了能对信号的强弱有更加直观的体现,可以在曲面上加入颜色的变化,而在OpenGL中完全可以在指定顶点坐标的同时指定顶点的颜色,使用缺省设置,或者调用glShadeModel(GL—SMOOTH);OpenGL自动生成2个顶点颜色之间的过渡色.
图2 三维曲面生成过程示意
文中将颜色分为10个色阶,红色和蓝色分别表示数据文件中信号最强和最弱,利用OpenGL的RGBA颜色模式,可以通过在颜色三分量中逐渐减小红色分量、增加蓝色分量的方式搭建.最终产生10×3的色阶数组,作为常量数组.色阶中各颜色分量之间等差的情况下能够取得最佳的显示效果.
在生成三维曲面之前,先获得该数据文件中的最大值和最小值,以及两者之差d.当遍历数据点时,每取得1个数据,将该点的值减去数据的最小值,将该差值除以d,将会得到1个0~1间的数,将该数乘以10后取整,获得1个0~9间的整数,即为该数据点对应的颜色在色阶数组中的下标.
3 数据采集及数据处理
3.1 数据采集
实际测量数据采集过程见图3,为8探头传感器采样时序及扫描探测方式.采集过程:传感器1号探头、2号探头、……、8号探头依次开始采样,完成第一行共8个样点的采样后,再沿传感器探头行进方向依次进行第2行、第3行、……、第N行的扫描采样.
图3 传感器行进方向与扫描探测过程
3.2 数据处理
在地磁信号探测过程中通常有一些附加噪声迭加在地磁数据真实信号上.主要噪声源包括地磁传感器测量噪声、载体磁场干扰、周围环境磁性干扰及其他各种误差和失真因素影响等.这些噪声使地磁测量信号产生畸变,给地磁信号的测量分析带来困难.因此,需要利用信号处理技术,提高信噪比,将淹没在噪声中的地磁信号提取出来.
小波变换具有良好的时频局部化性质和多分辨率分析特性,采取合适的阈值选择规则和比例调整方式对地磁测量信号进行降噪处理,可以区分测量地磁信号中的有用信号与噪声,具有传统分析方法不可比拟的优越性(见图4).
图4 利用小波变换分析技术对磁异常信号降嗓处理
4 现场应用
4.1 已知管线探测成像
为探测已知地下管线,选取大庆油田某井场附近1根埋藏在地下3 m左右的管线.实际埋藏管线见图5(a);利用OpenGL将管线探测仪对该管线的探测数据进行成像,成像结果见图5(b).由图3(b)可以看出,曲面中突起的深色区域为图3(a)实际埋藏管线,其磁异常信号强度是明显高于周围介质的,同时可以直观显示管线的分布及走向.
图5 某井场已知管线的探测成像结果
4.2 未知管线探测成像
为探测未知地下管线,选取大庆油田某井场附近疑似存在的地下管线,对管线的位置及走向未知的区域进行探测并进行可视化显示.该区域埋藏分布较为集中的平行金属管线,选取其中一段区域进行探测并将探测数据通过OpenGL进行成像,结果见图6.由图6可以看出,存在2处磁场脉冲信号强度异常区域,显示为曲面颜色较深区域的突起和凹陷,说明在图6(a)中曲面的突起处和凹陷处分别存在1条管线.因为受到金属介质影响,探测仪发出的磁场脉冲信号明显高于周围介质;通过图6(b)可以确定曲面橙色凸起部分存在金属管线.同理,可以确定曲面蓝色凹陷部分存在非金属管线.
图6 某井场未知地下管线的探测成像结果
4 结束语
根据地下管线探测仪探测的油田地下管线磁异常数据,基于Visual C++和OpenGL软件平台,利用OpenGL丰富的三维图形绘制功能及颜色渲染功能生成带色阶的三维探测数据曲面,不同信号强度的数据用不同的颜色进行绘制,从而在探测仪显示屏上可准确、直观显示油田地下管线的位置及走向等信息.此外,通过所开发的软件平台可方便地对所生成的三维数据图像进行旋转、放大、缩小、局部颜色增强等操作,进而在显示屏上即可初步实现对油田地下管线的定性分析与位置判断,强化现场实时分析功能,为探测数据的后期处理奠定基础.