基于SVG的矢量图在测井行业的应用

时间:2022-08-20 07:13:18

基于SVG的矢量图在测井行业的应用

摘 要:SVG是基于XML语言、面向网络应用、采用文本描述的二维矢量图形图像标准格式。本文介绍了SVG的特点并在此基础上提出一种基于SVG技术的测井成果图像实现方案。测试证实,该技术优于传统技术,扩展了SVG的应用领域,同时也为测井数据提供了一个先进的图形化解决方案。

关键词:SVG XML 矢量图 测井图像 测井

中图分类号:TE1 文献标识码:A 文章编号:1672-3791(2012)12(c)-0097-02

1 SVG介绍

Scalable Vector Graphics(简称SVG),意思是“可升级矢量图形”,它是由W3C制定的基于可扩展标记语言(XML)来描述二维矢量图型的一个开放标准。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。对图像来说,可升级意味着图像尺寸并不限定固定的大小,这个特点非常符合测井图形的特点,大小不定,长度也不定。

SVG可以构造3种类型的图形对象:矢量图形、位图图象和文字。图形对象可被变形和重组,包括图象嵌套、变形处理、剪辑路径、滤镜特效和模板对象。

矢量图像包含有诸如直线和曲线等几何对象。这相对于以像素保存信息的位图格式的图像(如PNG、JPEG)来说有更大的灵活性。矢量格式图像的最大好处就是,它可以和位图图像集成在一起,也可以把它们和矢量信息结合在一起以产生更加完美的图像。

由于所有的显示器都是基于点阵的,位图图像和矢量图像的差别就归结为他们是在客户端还是在服务器端进行图像展现处理;SVG能够控制图像展现的过程,不至于出现粗糙或带锯齿的图像。SVG还能够提供客户端的滤镜效果。

大多数XML语法描绘的都是文字信息或原始数据,他们不能提供图像的能力,SVG能够提供丰富的、结构化的矢量和矢量与图像混合的图像信息。

XML是W3C的推荐标准,用于结构化的信息交换,已经得到广泛的普及和应用。SVG是建立在此基础上的,有很明显的优势,比如:广泛的国际化基础,强大的结构化能力,以及对象模型等。

2 SVG满足测井图形的特性

SVG与JPEG、EMF等广泛使用的图形格式相比具有许多优点,适于测井表示的特性有以下几点。

普通的文本格式:SVG文档可被许多工具读取和修改,比JPEG、EMF、GIF图像更适合压缩,文件更小。由于它是基于XML的,是完全基于文本的图形格式。对比测井发现,相同的一段微电阻率扫描成像数据,输出EMF图像的大小400M字节左右,而保持Svg的压缩文件只有20M字节,大小差距巨大。

可缩放性:与GIF和JPEG等位图格式不同,SVG是一种矢量格式,这意味着SVG图像能以任意分辨率进行高质量的打印,而不会出现打印位图时常见的“锯齿”效果。这也是测井图像必须具有的特性。

快速平移/缩放:你可对SVG图像进行快速的平移/缩放操作,而图像的显示效果却不会下降。根据测井井段的不同,一般测井图像都较长,对图像的浏览速度也有一定的要求。

可交互性:和位图图像不同,采用SVG编写的文本具有可搜索性和可选择性。由于这个特性,对于测井图像的浏览器,可以设计根据需要搜索某一条曲线,进行查看和编辑,这在一般图像文件中是做不到的,实现对图层的控制。

开放的标准:SVG是一个网络矢量图形标准,与其他图形格式和地图文件格式不同,它具有开放性,与HTML/XHTML完全兼容。

3 测井图形库设计与开发

在测井行业,图形被广泛用来表现各种测井数据,例如常规测井曲线、波形、测井图像、玫瑰图、蝌蚪图、图头、仪器串、井身结构等等。目前有几种专业图像在本行业中得到应用,例如Schlumberger的PDF, Atlas的meta文件等。然而,这些格式大多是各大公司的自主知识产权产品,受到严格的产权保护,很少有相关的技术资料可供参考。

为了解决这个问题,在W3C的SVG基础上开发了专门针对石油测井领域的矢量图形文件格式规范。同时配套开发了相关软件产品。此规范派生于W3C的SVG。为了适应石油测井行业,我们对其做了如下修改。

W3C的SVG功能强大,同时完全实现出来也比较困难。而且SVG的很多特色对测井应用来说也没有必要,因此对其进行适当修改是必要的,修改后的规范应该是 SVG的一个子集。

有些测井表象对象没有得到SVG的很好支持,因此做了适当的扩充。可以支持目前所有的测井表象对象,包括图头、刻度图、曲线、波形、测井图像、玫瑰图、仪器串图、井身结构图等等。

测井绘图数据量非常大,绘图页很长,100 MB的图形文件是司空见惯。因此有必要对现有SVG进行优化,通过优化来减小图形文件的体积,提高文件加载和显示速度。

3.1 软件架构

Elis.GP(Graphics Paradise)实现了一个交互式二维图形应用程序框架类库,其中包括常用图形操作、用户界面、图形应用程序框架三部分。Elis.GP的结构如图1所示。

Elis.GP的架构体现了层次设计的思想,如图1所示,从下到上基本有五个层次。每一层次会引用下一层次的类,也为上一层次提供支持,是上一层次的基础。

3.2 主要类介绍

GPResourceManager负责管理应用级别的公共资源,例如填充图案,线型等。Graphics GdiPlus是利用.NET的Graphics来实现IGraphics接口,这是基本的绘图类。GraphicsGdiPlus类的多数方法主要是通过对_graphics对象的相应方法调用来实现的。

GraphicsSvgWriter给出了GP的绘图操作的底层规范,是对.NET的Graphics的扩充,添加了一些专业的绘图方法,并弥补了GDI+对传统GDI操作支持的不足。

SvgPreDefs负责管理Svg文件中的预定义(defs)内容。

SvgSymbol封装了测井系统矢量图形符号元数据的信息和基本操作。如符号名、符号大小、层数目等。

VgsLibrary类用于支持测井矢量图形符号库的加载、访问、显示等操作。

4 应用软件开发

利用 SVG SDK,应用开发工程师可以轻松创建SVG测井矢量图形文件。SVG SDK提供的SVG图库实现了GDI+的全部接口,在窗口中绘制任何图形对象的代码同样可以用来生成SVG测井矢量图形文件。图2显示的成像测井曲线SVG图像。

5 结语

SVG的出现为测井成果图形软件的开发带来新的思路。本文介绍了SVG的特点、组成,及与测井图形应用之间的关系,最终基于SVG实现了一个测井图形解决方案。通过实际测井数据的测试,该图像格式符合测井行业要求,在测井行业将有广泛的应用前景。

参考文献

[1] 万维网联盟的W3C推荐标准,基于XML的二维矢量图形语言“Scalable Vector Graphics(SVG)1.1.

[2] 李为,潘秋霞,张飞.基于SVG标准的电力系统图形编辑器的设计与实现[J].中国电力教育,2008.

[3] 侯宇,李素有.基于XML的SVG技术及其应用[J].计算机应用研究,2002,19(5):136-138.

[4] 史冬梅,赵忠华.基于XML矢量图像的SVG研究与应用[J].油气田地面工程,2009,28(7):58-59.

上一篇:航空活塞发动机点火电嘴的使用维护 下一篇:浅谈RPW法在重型卡车装配平衡中的应用