首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

常见测井曲线文件的解编与应用

作者:张玉海 来源:电子技术与软件工程

测井数据和测井成像处理工作中,经常遇到各种不同的数据采集系统各有不同的数据格式。详细介绍了常用的几种数据格式(二进制格式、716格式、L1S格式、DLIS格式、XTF码等)及转换方法。

【关键词】测井 数据格式 格式转换 浮点数 处理方式

1 常见测井数据格式

1.1 BIT格式

BIT格式是Atlas公司提供的一种现场测井记录用的磁带数据格式,其格式相对较简单。BIT格式的数据有1个头记录块(General Heading)和若干个数据记录块(Data Record)组成。每盘磁带有若干个数据文件组成,每个数据文件由若干个记录卡组成,每个记录块由若干个字节组成。每个记录块之间用记录间隔分开,文件与文件之间用文件结束标志分开,磁带上最后一个文件由双EOF结束。

1.2 716格式

716格式是Atlas公司提供的测井解释中心用于保存中间数据和成果数据的磁带文件格式,716格式与BIT格式的结构相同。716格式的文件也是由1个头记录块和若干个数据记录块所组成,但LA716的头记录块要比BIT的头记录块大,为512B。LA716格式的文件最多可容纳40条曲线的数据,而BIT格式的文件最多只能容纳20条曲线的数据,因此716格式的头记录块在BIT格式的头记录块的后部增加了20条曲线名称的空间,其前面部分与BIT格式相同,最后多出的空间用空格(nul1)来填充。

1.3 LIS、DLIS格式

LIS、DLIS测井数据格式是法国斯伦贝谢公司制定并被美国石油协会(API)所推荐的一种测井数据存储格式。其中LIS用于CSU系统中,DLIS用于MAXIS系统中,DLIS由LIS发展而来,其基本框架相同,二者都遵循API的“Digital Log Interchange Standard”。

1.4 XTF格式

XTF文件是ECLIPS5700数控测井系统实时测井生成的数据文件。它由标题块和数据块2大部分组成, 最小的组成单元是记录, 每个记录的长度均为4096 字节, 数据块包含的记录个数由曲线的深度范围来定,XTF文件允许不同特性的曲线并存(起始深度、结束深度、采样率等可不同)。

2 测井数据解编及应用

2.1 参数定位

下面以XTF格式文件的解编为例,演示测井数据文件中参数的定位,编程开发工具为Delphi2007,实现代码如下:

function ReadFileHead(strfilename: string): boolean;

begin

XTFFileStream := TFileStream.Create(strfilename, fmOpenRead or fmShareDenyWrite);

StrFileHead.clear;

XTFFileStream.Position := 0;

XTFFileStream.Seek(28672, soBeginning);

XTFFileStream.Read(byteN, SizeOf(TUnitByte));

//井名

CopyMemory(@WellNames[0], @ByteN[8], 80);

ALogwellname := WellNames;

StrFileHead.add('井名:');

StrFileHead.add(ALogwellname);

//油田名

CopyMemory(@WellNames[0], @ByteN[88], 80);

Aoilname := WellNames;

StrFileHead.add('油田名:');

StrFileHead.add(Aoilname);

end;

该段代码实现了井名和油田名信息的定位和读取。

2.2 数据转换

为了实现不同CPU间数据格式的转换,浮点数需做相应的转换,delphi处理过程如下:

//高低字节转换

function GetSingleValue(byteN: TIntByte):single;

var

Intvalue: Integer;

Sign, Exponent, Mantissa: Integer;

SMantissa: single;

begin

Intvalue := (Integer(byteN[0]) shl 24) + (Integer(byteN[1]) shl 16) + (Integer(byteN[2]) shl 8) + Integer(byteN[3]);

Sign := Intvalue shr 31;

Exponent := (Intvalue shl 1) shr 24;

Mantissa := (Intvalue shl 9) shr 9;

SMantissa := Mantissa * Power(2, -23);

if Exponent = 0 then Result := 0

else Result := power(-1, Sign) * Power(2, Exponent - 127) * (1.0 + SMantissa);

end;

可以直接调用上述函数GetSingleValue实现Intel和工作站间浮点数据的转换。

2.3 测井数据解编的应用

测井数据解编之后,可以转换为指定格式的测井数据或者保存到数据库,但其最重要的应用是在地质程序系统中的应用,内容包括常规处理、特殊处理(成像)、数据管理和地质建模等。测井数据解编技术在我们公司得到了很好的发展,并成功的应用在地质数字成图平台产品中。

测井曲线的采样点数在不满足实际需要时可进行抽稀或者插值,还可进行测井曲线编辑,比如曲线的复制、剪切、拼接等操作。

作者单位

山东胜软科技股份有限公司 山东省东营市 257000