APP下载

基于B/S结构的测井曲线SVG矢量绘制∗

2017-06-05

计算机与数字工程 2017年5期
关键词:数据格式测井矢量

基于B/S结构的测井曲线SVG矢量绘制∗

杨尧1卿粼波1何小海1张余强2

(1.四川大学电子信息学院成都610065)(2.成都西图科技有限公司成都610065)

测井曲线是石油地质行业重要的资料,针对传统C/S模式和现有的基于ActiveX和XML技术的测井曲线绘制系统存在的跨平台性、测井数据格式的局限性以及位图缩放失真问题,构建了一种基于B/S结构的测井曲线矢量绘制系统。该系统具有良好的跨平台性,提供了多种常见数据格式的测井曲线的SVG矢量图绘制,缩放、自由选择绘制的曲线道和绘制深度和功能。

测井曲线;B/S;SVG矢量图;716格式

Class NumberTP31

1 引言

测井数据主要用于油气勘探和开发中的地层评价,为划分储层、判断地层流体性质、研究地层构造、油水变化规律、钻井工程和采油工程提供参数(如随钻测井和工程测井、地层测试)等提供强有力的依据。由此可见,测井曲线的浏览对于石油地质行业是至关重要的。

用户可以通过各种方式获取测井公司中的测井资料,却无法直接浏览测井曲线中单一的数据。此外,在测井领域一直没有一种统一的测井数据文件记录格式,以致于研究测井数据变得特别困难。传统的测井曲线绘制系统大多是基于C/S(Client/ Server)模式[1~2],需要安装客户端软件才能实现远程浏览测井曲线资料,并且绘制的是一般的位图,无法满足地质人员无失真缩放浏览的需求。有人提出过基于B/S(Brower/Server)模式的远程测井曲线绘制系统,但是该系统需要将ActiveX控件嵌入浏览器中采用GDI+方式来实现绘制[3]。而微软2014年9月发布的安全更新,正式开始实施“阻止过时ActiveX控件”安全策略,以提升IE浏览器的整体安全性,因此该系统不能满足石油地质部门的需求。

针对以上问题,本文基于B/S模式设计了一个测井数据管理系统,该系统采用MVC设计模式以及三层架构,实现了支持716等常见数据格式的测井曲线SVG(Scalable Vector Graphics)矢量图绘制。该系统支持自由选择绘制的曲线道、绘制深度,无级缩放曲线的功能,让用户无需安装任何客户端,就能够随时通过浏览器浏览测井曲线,并且易于扩展和维护。

2 系统架构

考虑到B/S结构优良的跨平台性,免客户端安装的特点,以及MVC设计模式的低耦合度低、易维护等特点,本文实现了基于B/S的测井曲线矢量绘制系统。该系统采用ASP.NET技术,MVC设计模式,在业务逻辑上采用三层架构系统架构,分为数据访问层,业务逻辑层以及表现层[5],系统架构如图1所示。

图1 系统架构图

2.1表现层

表现层为客户提供了在浏览器中显示的用户界面。当用户在网页上选择地区、井号和对应的测井曲线后,点击绘制按钮进行测井曲线矢量绘制,就会通过AJAX异步传输技术向业务逻辑层提出请求。业务逻辑层处理好请求后,表现层把来自业务逻辑层的数据用于页面渲染,将绘制好后的测井曲线展现给用户。从业务需求考虑,地质人员进行分析时需要对测井曲线进行大尺度无失真缩放,因此表现层采用矢量图进行测井曲线的绘制。

2.2业务逻辑层

业务逻辑层负责整个系统的业务逻辑功能,它既要处理表现层传来的请求,又要负责和数据逻辑层进行交互。当表现层传来请求后,业务逻辑层对命令进行解析并执行,生成向数据访问层获取测井数据的数据请求,等待数据访问层应答后,将请求到的数据转换层数据处理后反馈给表现层。本文的Web服务器采用微软IIS7.5,选择ASP.NET技术进行开发。

2.3数据访问层

数据访问层根据业务逻辑层发来的请求从数据库中读取或者写入数据,从而为业务逻辑层提供统一的数据访问服务。本文采用SQL Server2008数据库系统作为数据访问层,主要用于存储测井曲线的地区、井号、起始井深和终止井深、测井文件存放路径等信息。

3 基于B/S结构的测井曲线矢量绘制

3.1测井数据的解析

常见的测井数据格式有[6]:ASCII、DAT、BIT、716、LIS、DLIS、LAS、XTF。DAT、LAS等格式的都可以直接编程读取数据用于绘制,但是部分典型的格式需要通过进行解析后才可用于绘制。本文采用一种在新疆油田数据公司应用广泛的716格式进行解析。

716格式是德莱赛·阿特拉斯测井公司的测井仪器数字资料记录格式,这种数据格式的文件是由一个标题块和若干个数据块组成[7]。标题块存储的是记录井和测井曲线的说明信息的测井参数,如:成果号、公司名、井名、曲线条数、曲线名称、测井起始井深、终止井深以及采样点间隔等。数据部分通常存储的是测井深度、各个测井曲线的名称以及深度相对应的数据。有些常见的数据格式如LAS可以用基于流的I/O操作方式读入到程序中,而716数据格式需要我们研究其数据的存储结构,将对应块部分分别进行解析,以获取到数据用于测井曲线绘制。

如上所述,716格式的测井曲线由标题部分和数据部分组成的,且是一个标题块和多个数据块构成。标题部分结构见表1。

表1 716格式标题部分结构

数据部分由若干个逻辑记录组成,而逻辑记录由一条测井曲线的125个连续采样点组成,所取的数据则需要根据标题块中的采样点数来确定,如果每个采样点数据占4个字节,那么一个逻辑记录通常需要占500个字节。数据部分的结构见图2所示。由此,可编程实现716格式的解析。

图2 716格式数据部分结构

3.2测井数据的矢量绘制

测井曲线绘制流程如图3所示。前台页面将通过AJAX从业务逻辑层请求得到的JSON字符串进行格式化,以键值对的形式存放在JSON对象中,如图4所示。其中ypsd对应的键值为曲线深度信息,AC、GR、DEN等对应的键值为测井曲线各个道的信息。绘制时根据用户选择的曲线段进行绘制,各个曲线道对数据进行筛选,并且找出属于自己的曲线的极值,以便于绘制时有效利用曲线道的空间。

绘制过程中需要解决的两个问题:坐标转换和测井曲线矢量绘制。

图3 测井曲线绘制流程

图4 JSON对象截图

3.2.1 屏幕坐标转换

在绘制曲线时,水平方向为曲线实现数据测量值,垂直方向为测井深度,需要将测井深度转化为屏幕坐标。由于显示设备不尽相同,而屏幕坐标的转换主要取决于显示器的分辨率,这就给转换带来困难。本文用式(1)将测井深度转化为屏幕坐标。

其中Y表示为屏幕纵坐标,ypsd为测井深度,QSJS为测井曲线的起始井深,yLogPixPerInch为每英寸的像素点数,Top为标题上方到图片最上端的距离,TitleHeight为标题高度。

3.2.2 矢量绘制

矢量图是根据几何特性来进行图像绘制,它克服了位图所固有的缺陷,具有无级缩放,不失真的特点。常见的矢量图形文件格式主要有[8]SVG、SWF、DXF、DWF、PS、EPS、WMF、PDF等,其中SVG和SWF是网络常用格式。SVG与SWF相比,最大的优势就是不需要安装插件,因此选择SVG进行图件的矢量绘制。

SVG是基于XML,用于描述二维矢量图形的一种图形格式,是W3C推出的一种开放标准的文本式矢量图形描述语言。相比任何基于光栅的格式,SVG具有多项优势[9]:

1)存储的数据少:相比jpg、png等位图而言,同样的SVG图像具有更小的内存,因而在下载方面速度有所提升。

2)无失真缩放:可以满足地质人员进行曲线细节方面的研究与观察。

3)SVG图像由浏览器渲染,可动态编辑,这尤其适合测井曲线这样以数据驱动的图表。

因此从系统效率、存储空间、实现效果等方面综合考虑,表现层的测井曲线绘制采用SVG矢量绘制的解决方案。SVG使用XML格式定义图像,由各种标签构成其页面元素。所有子元素都包含用于创建图像的信息,大多数这些信息都包含在一系列基础图形的元素中,如矩形、圆形、直线、折线和多边形等[10]。每个基础图形元素在矢量文件中都被称之为对象,每个对象都是一个独立的实体,它具有形状、颜色、大小、轮廓和定位等属性。测井曲线主要需要用到的基本图形元素主要有<rect>(矩形)、<line>(直线)、<path>(路径)。除此之外还有框架元素,如<svg>、<g>、<defs>等。<svg>是SVG文档的根元素,它定义了一个可用于渲染的矩形区域。<g>是组合元素,可以自由将元素定义为集合,集合内的子元素遵循SVG继承规则。<defs>预定义一个能够在SVG矢量图中重复使用的元素,类似定义一个函数一样,可以重复在程序中进行调用。

如图4所示,前台将JSON对象用于SVG绘制,为了提高用户的体验感,本系统将各曲线道的SVG标签都用一个SVG组合元素g包裹,以便于以后扩展对各个道的单独交互操作。SVG文档结构实现利用JavaScript设计绘制函数对象实现,设计的思路是利用模板方法模式,构建一个创建曲线道的模板方法DrawCurve,该方法接受各曲线道对象作为参数,生成各曲线道的SVG标签文本,最后将一系列的SVG标签文本经过浏览器渲染之后展示给用户。以RT曲线道为例,JavaScript中转化成的对象结构如图5所示,SVG文档结构如图6所示。

图5 对象结构

图6 文档结构

4 功能展示

测井曲线绘制系统的绘制界面及功能如图7所示。菜单栏具有选择测井区域、井号,缩放,自由选择感兴趣区域进行绘制的功能。绘图区域采用锁定表头的方式进行展现,当用户滚动浏览深度时都能够明确各个道代表的曲线,其中AC代表声波时差,GR代表自然伽马,DEN代表补偿密度,RXO代表冲洗带电阻率,RT代表地层电阻率[11]。绘图的参数设置严格依据《石油测井曲线图格式》(标准号SY/T5633-2009)。

图7 测井曲线成果图

5 结语

本文设计一个基于B/S结构的测井曲线绘制系统,该系统解决了传统系统的跨平台性、不易读取的测井曲线格式解析、数据可视化浏览以及位图缩放失真的问题,实现了用户无需安装任何插件,就能通过浏览器方便快捷地直接浏览测井曲线,使测井曲线能够得到更好的利用,采用了SVG矢量绘制使测井曲线图像具有无级缩放、存储数据量小等优点。该系统用耦合度低、易维护的MVC模式进行设计,后续可扩展性较好,可通过后续编程实现增加测井曲线进行微调、移动等操作。该系统在各种内核的浏览器上测试运行都正常,已投入实际使用。

[1]毕徐成.基于C/S模式的测井曲线反演系统的设计与实现[J].电子商务,2011(10):60-61.

BI Xucheng.Well Logging Curve Inversion System Based on C/S Model[J].E-Business Journal,2011(10):60-61.

[2]孙宏利.测井曲线绘制系统[J].油气田地面工程,2007,26(3):14-15.

SUNHongli.Well-LogCurveDrawingSystem[J]. Oil-Gas Field Surface Engineering,2007,26(3):14-15.

[3]蒲琴,符耀庆,吴晓红,等.基于ActiveX和XML技术的测井曲线远程绘制[J].计算机与数字工程,2013,41(6):996-998.

PU Qin,FU Yaoqing,WU Xiaohong,et al.Remote Log⁃ging Curve Drawing Based on ActiveX and XML Technolo⁃gy[J].Computer&Digital Engineering,2013,41(6):996-998.

[4]王文波.B/S模式下的矢量图形编辑与应用[C]//2011信息技术与应用学术会议,2011:115-121.

WANG Wenbo.Web Vector Graphics Editing Based on Handle Point and Application[C]//Conference on informa⁃tion technology and Applications,2011:115-121.

[5]高扬.基于.NET平台的三层架构软件框架的设计与实现[J].计算机技术与发展,2011,21(2):77-80.

GAO Yang.Design and Realization of Three Layers Struc⁃ture Software Framework Based on.NET[J].Computer Technology and Development,2011,21(2):77-80.

[6]胡佳庆.测井数据常用格式及格式转换[J].海洋石油,2003,23(1):75-80.

HU Jiaqing.Logging Data Format and Transformation[J]. Offshore Oil,2003,23(1):75-80.

[7]戴建军.测井数字资料常见数据格式剖析[J].石油物探,1996(S1):1-4.

DAI Jianjun.Logging Digital Data Format Analysis[J]. Geophysical Prospecting for Petroleum,1996(S1):1-4.

[8]李春卉.矢量图形标准与规范研究现状[J].情报科学,2007,25(4):636-640.2003,23(1):75-80.

LI Chunhui.Research on the Standards of Vector Graohics[J].Information Science,2007,25(4):636-640.2003,23(1):75-80.

[9]袁家政.可伸缩矢量图形(SVG)的数据表示研究[D].北京:北京交通大学,2007.

YUAN Jiazheng.Research onData Representation of Sca⁃ble Vector Graphics[D].Beijing:Beijing Jiaotong Univer⁃ sity,2007.

[10]万本庭,陈明.基于SVG的矢量图形库管理模型[J].计算机工程,2006,32(3):65-67.

WAN Benting,CHEN Ming.SVG-based Vector Graph⁃ics Management Model[J].Computer Engineering,2006,32(3):65-67.

[11]SY/T5254-2009测井数据处理符号[S].北京:石油工业出版社,2009:1-24.

SY/T5254-2009 Logging date processing symbol[S]. Beijing:Petroleum Industry Press,2009:1-24.

Well Log Vector Drawing Based on B/S and SVG

YANG Yao1QING Linbo1HE Xiaohai1ZHANG Yuqiang2
(1.College of Electronics and Information Engineering,Sichuan University,Chengdu610065)(2.Chengdu Xitu Technology Co.,Ltd,Chengdu610065)

Well log can provide an important reference for the petroleum and geologic development field.Nevertheless,tradi⁃tional well-log curve drawing system based on C/S or ActiveX widget and XML template existing defects,such as poor crossing plat⁃form capability,the limitation of curve files format and scaling distortion.Aimed at these problems,a well-log curve vector drawing system based on B/S schema is constructed.The system can be platform crossing,provide well-log curve vector drawing by using SVG and support kinds of common files formats,drawing scaling and dynamic choosing the curve channel and drawing depths。

well-log curve,B/S,SVG,716 format

TP31

10.3969/j.issn.1672-9722.2017.05.040

2016年11月10日,

2016年12月30日

杨尧,女,硕士研究生,研究方向:宽带通信与网络。卿粼波,男,博士,副教授,研究方向:信号与信号系统、图像处理、图像通信。何小海,男,博士,教授,研究方向:图像处理与信息系统、机器视觉与智能系统。张余强,男,工程师,研究方向:软件工程。

猜你喜欢

数据格式测井矢量
本期广告索引
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
测井工作中存在的误区与应对措施
我国测井评价技术应用中常见地质问题分析
推力矢量对舰载机安全起降的意义
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
一种融合多业务的信息化系统框架研究
三角形法则在动态平衡问题中的应用