李 斌 谢 洪 林永雯 崔春兰 罗 群
(①韩山师范学院;②国家能源集团煤炭经营分公司;③中国石油大学(北京))
我国煤炭资源丰富,储量巨大[1-2]。随着国民经济的高速发展,煤炭资源开采、应用依然是我国保障性支柱产业[3-5],所以,提高煤田地质勘探效率,为煤炭资源开采提供可靠的基础信息,一直是地质工作者关心的问题。
我国大部分煤田都经历了详查阶段与勘探阶段,积累了丰富的地质勘探经验,且制定了行业标准[6-9]。特别是大型国有煤田,在勘探汇交地质资料时需要严格按照煤炭企业内部的格式提供数据报表、图件和勘探报告。在野外地质勘探结束后,需要整理大量的钻探编录地质资料、测井解释地质资料并填写多种验收表格,工作内容极其繁琐。多年来,煤田地质勘探行业内形成了一个非明文的规则:钻孔综合成果中岩层以钻探地质编录资料为准,煤层以测井解释煤层资料为准,将两种数据成果进行分析、验证、合并,形成最终的钻孔综合成果表,并绘制钻探成果柱状图、测井成果柱状图和钻孔综合成果柱状图,以供煤田设计开采时使用。在应用钻探地质编录成果与钻孔测井解释煤层成果编制钻孔综合成果表时,需要将所有钻孔中的测井解释煤层成果中全部煤层数据合并到钻探地质编录数据中,再对合并后数据中岩层、煤层的深度重新厘定,合理平差,特别是复杂结构的煤层与夹矸数据,需要将每一层煤层、夹矸的深度、厚度重新计算,提取出单项数据合并到钻孔钻探地质编录数据中,并与原表中数据的深度完好对接。这项任务重复工作量巨大,使用电子表格的方式,效率低、数据准确率低,已难以满足生产科研需求,目前国内外还未有高效可行的方法见诸报道,迫切需要进行技术方法改进创新。
数据库技术是管理和处理结构化数据的一门科学方法,已在地质行业的多个领域的数据处理及信息自动化管理方面取得了突破性进展,得到了深入应用与推广,其高效性与科学性得到了充分验证[10-12]。若能将该技术应用到煤田地质勘探的数据整理工作中,将极大地减轻地质人员的劳动负担,提高工作效率,利于地质人员掌握新技术,改变工作思路,能够全身心地从事煤田地质研究,推动煤田地质勘探科学发展。
在充分调研煤田地质勘探的一般工作流程后,熟悉煤田地质勘探报告的基础数据需求,了解数据整理、处理的思路,掌握煤田地质勘探报告的附表、附图的格式后,按照数据库管理信息系统的整体思路设计数据库,在数据库中使用结构化数据存储的数据表方式管理每一个钻孔的所有地质数据,使用数据库语言维护、查询、计算、分析地质数据,使用便捷的成图软件绘制成果图件(图1)。
图1 煤田地质勘探野外综合地质数据自动化整理流程
选用SQL Server 2000关系型数据库管理系统,创建大柳塔煤矿项目地质勘探综合数据库,建立每个钻孔的钻探编录数据表以及对应的测井解释煤层数据表(22个数据表,随勘探进展可以继续增加)。每个钻孔的两个数据表是最基础的数据表,其数据分别来自每个钻孔的野外地质编录资料的格式化整理和测井中解释煤层数据的格式化整理。
目前煤田地质勘探生产实践中,在野外工作结束后,一般地质人员均整理了单口井的地质编录数据,并按照煤田地质勘探规范填写相应的验收表格,测井解释人员也整理单口井的测井岩性解释数据和测井煤层解释数据,统一使用Excel电子表格呈送给煤矿管理方和施工监理方,以验收野外工作的规范性和工程质量的优劣。数据表建成后,将Excel电子表格数据中每列标题按照数据库字段命名规则进行修改、补充及修改数据中的不完整内容,检查数据格式的有效性,再将每口钻孔野外地质编录数据和测井解释煤层数据导入钻探编录数据表和测井煤层数据表中。按照地层分层编号合并、整理钻探编录数据表中地质数据,形成一张钻孔钻探成果表(钻探分层成果表);通过分析测井解释煤层数据表中煤层数据格式表述的意义及煤层与夹矸前后逻辑关系,将单个煤层及夹矸按照深度分离出来,形成一张钻孔测井煤层分层表;再用钻孔测井结构分层表中的煤层按照深度替换钻孔钻探成果表中的煤层后,修改煤层与顶底岩层深度关系的逻辑错误,即可形成一张钻孔综合成果表。分别用钻孔钻探成果表和钻孔综合成果表中地质数据在Carbon软件中形成钻探成果柱状图及综合成果柱状图,与钻孔钻探成果表和钻孔综合成果表作为成果报告的附件一起存档、备案。
下一步,将研究区的每个钻孔综合成果表存储于数据库中,并以煤层编号为主要字段建立各钻孔间主、外键连接关系,即可使用数据库语言查询、统计、计算煤层的厚度大小,如平均值、最大值、最小值,将每个钻孔的厚度及结构使用GIS软件在地理空间上表示并进行空间分析,即可得到煤层厚度等值线图及煤层分叉合并规律分布图等。按照相似的思路,在编写煤田地质勘探报告时,还可将煤质数据、水文、工程数据及储量分析数据等也按照数据库管理、分析思路导入煤田地质勘探综合数据库中,使用数据表之间共同的字段建立逻辑对应关系,形成数据量庞大的关系型数据库系统,以待进一步地质数据挖掘、分析,服务于煤矿开采及相关地质科研工作。
该设计思路与技术方法在神华集团的神东地区、宁东地区部分煤矿的勘探项目与储量核实项目中进行充分验证,技术成熟可行。本文以大柳塔煤矿断层探测项目的D 305钻孔地质数据整理为例,叙述钻孔数据的自动化整理过程。
使用SQL Server创建项目煤田勘探数据库,并科学命名,如“大柳塔煤矿五盘区煤炭勘探综合数据库”,按照钻孔野外地质编录数据格式和钻孔测井煤层解释的数据格式在其中创建了10个钻孔编录数据表和钻孔测井解释煤层数据表。
钻孔野外地质编录一般按照取心回次编号记录回次划分,按照回次内岩性特征分层并记录分层编号,其中回次编号是唯一的数据,而分层编号则有重复记录(表1)。在创建钻孔钻探编录数据表时须忽略回次编号,而以分层编号为唯一字段建立索引,合并编录时分层描述数据,以备快速查询、整理及科学化管理。钻孔钻探编录数据表中主要字段有分层编号、顶深、底深、厚度、取心长度、采取率、岩性描述等。
在创建钻孔测井解释煤层数据表时,参考测井单位提供的钻孔测井解释煤层成果以确定数据表结构(表2),其主要字段包括煤层编号(id)、顶深、底深、厚度、结构、岩性等。
以上两个数据表建成后,按照数据库中数据表中数
表1 D 305钻孔编录数据表
表2 D 305钻孔测井解释煤层成果
据结构格式,整理钻孔钻探地质编录数据和钻孔测井解释煤层数据,删除冗余的数据记录,当数据表中字段与Excel数据表格中所列标题一一对应时,直接将Excel数据表导入到数据库中相应的数据表中,以形成两个独立的基础数据表。
由于钻孔野外地质编录表格导入到钻孔编录数据表中的数据分层编号为非唯一字段,有多个重复的分层编号需要合并,计算其顶底深度及厚度,并按照分层记录提取编录关键信息。以D 305钻孔为例,分析钻探成果表的自动形成过程。
(1)采用SQL语句提取分层编号为唯一的数据记录,实现单层岩、煤层厚度合并,SQL语句如下:
select 分层编号, min(顶深) as 岩层顶深, max(底深) as 岩层底深, round((max(底深)-min(顶深)),2) as 厚度, sum(心长) as 心总长, round((sum(心长)/(max(底深)-min(顶深))),2) as 采心率 into D 305厚度分层表
from D 305
group by 分层编号
以上语句实现了钻孔编录数据表中分层合并,顶深、底深、厚度的重新定位,计算出分层采心率。
(2)若从钻孔地质编录数据表的岩性描述中提取颜色、岩性等关键信息,SQL语句如下:
select 分层编号 as 分层编号, 岩性描述, left(岩性描述,instr(岩性描述,′色′)) as 颜色, mid(岩性描述,instr(岩性描述,′色′)+1,iif(instr(岩性描述,′煤层′)<5 and instr(岩性描述,′煤层′)>0,2,instr(岩性描述,′,′)-instr(岩性描述,′色′)-1)) as 岩性 into D 305岩性描述表
from D 305
(3)按分层编号提取其他属性,如岩性、颜色等,在岩性描述表中增加一个类型为递增的单一字段“id”即编号字段,再从岩性描述表中提取单一分层颜色、岩性描述。SQL语句如下:
select * into D 305分层岩性描述表
from D 305岩性描述表
where id in(select min id from D 305岩性描述表 group by 分层编号)
(4)形成钻探成果表:将D 305钻孔厚度分层表的表名修改为D 305钻探成果表,且增加颜色、岩性、岩性描述字段;然后用以下SQL语句实现用D 305分层岩性描述表中颜色、岩性、岩性描述的字段内容填充D 305钻探成果表中的相应字段内容,最终形成钻探成果表,也称钻探分层表(表3)。SQL语句如下:
update D 305钻探成果表 as a, D 305分层岩性描述表 as b set a.岩性描述 = b.岩性描述, a.颜色 = b.颜色, a.岩性 = b.岩性
where a.分层编号=b.分层编号
按照煤田勘探的惯例,经过钻探成果表与测井解释煤层成果表综合对比评级后才能形成综合成果表。在工作实践中,若钻探、测井工程均验收合格,岩层应用野外地质编录数据,煤层应用测井解释煤层数据。一般情况下,只要将钻孔测井解释煤层数据表中的各煤层按照深度替换钻孔钻探成果表中相应的煤层及岩层就可以形成综合成果表。
测井单位提供的钻孔解释煤层成果数据中,最为重要的地质信息为煤层结构,它包括纯煤层厚度、内部矸石的厚度以及煤层与矸石的组合结构模式。若将钻孔测井解释煤层数据表中的“煤层”数据替换钻孔钻探成果表中的“煤层”数据,就必须先将煤层结构中的煤层及矸石数据按照深度分离出来。如D 305钻孔顶部煤层中1-2煤层的结构为“0.57(0.18)0.42(0.25)0.70”,需要将每个煤层与夹矸按照深度进行分离,形成单一的测井煤层结构分层表即测井煤层成果表。以下语言实现这一目标,但该语言需要在SQL Server查询分析器中运行,具体思路为:将钻孔测井解释煤层表中每一条数据记录按照编号(id)取出,对比煤层结构中是否有夹矸,如果没有,将这条数据直接插入到测井煤层分层表中,并用三位数字排列其煤层编号,其记录数据来源于简单煤层结构(无夹矸),若煤层结构中含有夹矸,则将煤层与夹矸分别按照顶深、底深、岩性取出各项记录数据,并插入到测井煤层分层表中,使记录按照煤层编号顺序排序。运行以下程序,则得到D 305钻孔测井煤层分层表的结果(表4)。
表3 D 305钻孔钻探成果表
set @i=1
set @j=1
while @j<13 begin (注释:遍历13条煤层数据)
set @x=(select 结构 from D 305钻孔测井煤层解释表 where id=@j)
set @m=(select 顶深 from where id=@j)
set @n=(select 底深 from D 305钻孔测井煤层解释表 where id=@j)
set @z=(select 岩性 from D 305钻孔测井煤层解释表 where id=@j)
declare @a int
declare @b int
declare @c int
set @a=len(@x)
set @b=charindex(′(′,@x)
set @c=charindex(′)′,@x)
if @b<2
begin
据统计,非正式学习可获得80%的知识建构[5]。在非正式环境中,以“馆校合作”的形式开展科学活动的学生不再单纯依靠视觉观察和阅读学习,还可通过互动、参与、体验、交流和触摸展品或标本等多种形式来开展学习。
insert into 测井煤层分层表(编号,顶深,底深,岩性,厚度) values(@j+100,@m,@n,@z,@f)
end
else
begin
while @b>1 begin
表4 D 305钻孔测井煤层分层表
set @y=left(@x,@b-1)
set @e=substring(@x,@b+1,@c-@b-1)
set @z=′煤层′
set @p=′泥岩′
set @n=@m+cast(@y as real)
set @k=@n
set @l=@k+cast(@e as real)
set @x=substring(@x,@c+1,@a)
set @b=charindex(′(′,@x)
set @c=charindex(′)′,@x)
insert into 测井煤层分层表(编号,顶深,底深,岩性,厚度) values(@i,@m,@n,@z,@y)
insert into 测井煤层分层表(编号,顶深,底深,岩性,厚度) values(@i+1,@k,@l,@p,@e)
set @i=@i+2
set @m=@l
end
set @m=@l
set @n=@m+cast(@x as real)
set @y=cast(@x as real)
insert into 测井煤层分层表(编号,顶深,底深,岩性,厚度) values(@i,@m,@n,@z,@y)
set @i=@i+1
end
set @j=@j+1
end
以上程序中,实现煤层结构的数值分离是个难点。其编程思路为:按照数据记录编号(id),按由小到大顺序从D 305钻孔测井解释煤层表中取出每条记录,判断该条记录中结构字段中的内容是否包含“(”,若不包含“(”,将该条记录完整插入到测井煤层分层表中;若结构字段内容中包含“(”。证明存在夹矸,需要将夹矸取出,则将结构字段内容中“(”前的数值取出,当作煤层厚度,将编号字段值设定为煤层编号代码,然后计算出煤层的顶深、底深,其岩性字段内容赋值为煤层,组成一条煤层记录,将该条记录插入到测井煤层分层表中;然后取出括号内的数值,将编号内容设定为夹矸编号,计算出顶深、底深,其岩性字段内容计算机自动赋值为泥岩,组成一条泥岩记录,将该记录插入到测井结构分层表中;再将“)”后的所有字符串取出,再次判断该字符串中是否包含“(”。重复以上操作,直至结束,再取下一条记录进行判断。
首先将D 305钻孔钻探成果表复制为另一个表,保留编号、顶深、底深、厚度、岩性字段,且保留所有数据记录,命名为D 305钻孔综合成果原始表,将该表中所有煤层记录删除;再将D 305钻孔测井煤层分层表中所有煤层数据插入到D 305钻孔综合成果原始表中,此时记录中会出现一部分错误数据,原因为插入数据和原表中数据出现顶深、底深矛盾。如原D 305钻孔钻探成果表中顶深16 m至底深17 m为1 m煤层,插入数据后这1 m内可能包含2层煤夹1层粉砂岩,且上部煤层顶深、下部煤层底深不可能正好分别与16 m和17 m重合,必须按照深度逻辑关系修改原D 305钻孔钻探成果表中一些岩性及顶深、底深、厚度等数据。钻孔综合成果表形成的思路为:将插入数据后的D 305钻孔综合成果原始表按照顶深进行正序排列存储,再提取出一张新表,命名为D 305钻孔综合成果表;进一步修改顶底深度有矛盾的数据:凡是与D 305钻孔测井煤层分层表中煤层有深度重复或矛盾的数据,均以D 305钻孔测井煤层分层表中煤层为基础,修改D 305钻孔综合成果表中其他岩性数据的顶深与底深。编写相应SQL语句,运行后得到最终的D 305钻孔综合成果表(表5)。
D 305钻孔综合成果表的编写程序实现思路及过程具体为:
(1)先修改插入煤层后D 305钻孔综合成果表中煤层与相邻非煤层地层顶深、底深。
将钻孔综合成果表中所有数据按照顶深从小到大排序,循环取出一条岩性为“煤层”记录的底深字段值和下一条岩性不为煤层记录的顶深字段值。若两个数据相等,说明两条记录无矛盾,进行下一条记录数据对比;若两个数据不等,则将下一条记录的顶深值修改为该条记录的底深值。当所有记录数据对比修改完后,再循环取出一条煤层记录的顶深字段值和上一条岩性为非煤层记录的底深字段值对比:若其数据相等,说明两条记录无矛盾,取下一条数据进行对比;若两个数据不等,则将该记录上一条记录的底深值修改为该记录的顶深值。
(2)修改相邻两煤层间缺失的岩层,一般为夹矸,岩性为碳质泥岩。
按照深度排序后,取出相邻顶深的两个煤层,比较某一煤层的顶深与上一煤层的底深,若两个数据不等,说明煤层间缺失岩层,将煤层间补上夹矸数据记录的顶底深度、岩性、厚度等。该记录顶深值为上一层记录的底深值,其底深值为该煤层记录的顶深值,其厚度值为该煤层的顶深值减去上层的底深值,其岩性一般为碳质泥岩,若有特殊岩性再进行个别调整。运行计算机程序后,再按照记录数据的顶深字段排序,即得到最后的D 305钻孔综合成果表(表5)。
Carbon软件可与Microsoft Access、SQL Server数据库系统无缝对接[13-16],凭借自身的便捷性已在石油行业得到了推广,实践证明其为一种高效的辅助绘图软件。在钻孔综合柱状图制作中采用SQL Server数据库技术将自动整理形成的综合成果表中数据直接导入Carbon专业绘制柱状图软件,再将测井数据表导入后,就可立即形成钻孔综合柱状图(图2)。使用类似的方法还可自动生成钻孔钻探成果柱状图与钻孔测井成果柱状图。该软件的使用既高效又灵活,而且图件缩放后清晰、美观,比煤炭企业传统的CAD图件优势更明显,值得推广应用。
表5 D 305钻孔综合成果表
图2 大柳塔地区D 305钻孔综合柱状图
使用数据库技术以及Carbon绘图软件在神东地区的煤田勘探中应用于大柳塔煤矿的5个钻孔、HJT煤矿的14个钻孔、BLT的24个钻孔、SGT煤矿的3个钻孔,进行了地质数据自动整理与成图,成功替代了人工繁琐劳动,取得了理想效果,显著提高了工作效率以及数据的准确性。该技术在宁东地区储量核查项目中HBC煤矿110个钻孔、KG煤矿105个钻孔、WHS煤矿125个钻孔的地质数据核实中,检验了钻孔地质数据人工整理的结果,检查出很多不易发现的错误,并可批量统计煤厚度、煤层间距,自动批量成图,提高了工作效率,加速了项目进度,得到同行们的高度评价。
(1)使用数据库技术管理钻孔钻探编录地质数据和钻孔测井解释煤层数据,并用数据库程序语言实现煤田地质勘探中复杂地质数据的自动化整理,自动形成钻孔钻探成果表和钻孔综合成果表,从根本上解决了地质人员长期困扰的数据处理问题,是一种技术方法的革新,减少了地质人员的重复性劳动,解放了生产力,提高了工作效率,值得在行业内推广应用。
(2)引入Carbon绘图软件,将钻孔钻探成果表、钻孔测井解释成果表和钻孔综合成果表直接导入到软件内,即可形成相应的柱状图,工作效率提高,且图件缩放自如,清晰美观,操作简单,较过去煤田勘探使用的CAD制图而言是一种技术手段的提升,建议行业内推广使用。
(3)本文以一个煤田地质勘探钻孔为例说明煤田地质勘探中地质资料的自动化整理思路及实现过程,最终高效形成了钻孔钻探成果表和钻孔综合成果表。若研究区有多个钻孔,还可以实现自动化空间分析,如形成煤层厚度空间信息表,煤层夹矸的空间信息表,煤层间距空间分布信息表,进而绘制各类等值线图件,为煤田地质勘探研究提供可靠的基础数据。
(4)信息技术的深入使用,逐渐替代了人工劳动,是大势所趋。煤田地质勘探中积累了海量地质数据,由于有关数据的存储管理、数据共享、数据挖掘等功能还处于起步阶段,行业内需要重新认识信息技术的潜力,制定相应的措施并落实推广,为今后探索煤田地质勘探人工智能地质报告的实现奠定基础。