李 勤,李庆春,王亚妮
(1.西安科技大学地质与环境学院,陕西 西安 710054;2.长安大学地质工程与测绘学院,陕西 西安 710054)
多分量地震波交互式速度计算方法的实现
李 勤1,李庆春2,王亚妮2
(1.西安科技大学地质与环境学院,陕西 西安 710054;2.长安大学地质工程与测绘学院,陕西 西安 710054)
针对地震波多分量进行速度分析的技术进行讨论,引入选择性相关法理论,利用精确速度时差方程,结合计算机图形技术,充分利用C++提供的友好界面和Fortran语言在算法方面的优势,自主研发出一套针对金属矿的地震波多分量速度分析软件,实现了速度分析的算法优化和交互性,在一定程度上提高了速度分析的精度,同时,该软件可以方便地移植到其它的大型软件中。
地震波;速度谱;速度分析
多分量地震勘探已成为现在的一个热门研究课题,速度分析是地震数据处理中必不可少的步骤,速度参数也是地震数据处理和解释中最为重要的参数之一。多分量地震勘探技术在海上勘探已经非常成熟,在陆上尤其在金属矿勘探方面有待于进一步深入研究[1-10]。其中,刘春成[4]将多分量地震技术用于渤海,取得了良好的应用效果。刘建勋[7]指出金属矿中地震波反射信号较弱,对信号处理要求采用更高精度的方法,王华忠[8]对速度分析的研究现状进行了论述,指出速度分析的精度有待提高,郭树祥[9]通过优化数据量的方法提高速度分析的精度。目前对于速度分析的研究主要集中在算法方面,但在实际工作中,速度分析的精度还依赖于速度谱的质量和速度分析的交互性程度。然而,目前的大型地震数据处理软件所带的速度分析模块大多是针对单分量进行速度分析,不具备多分量速度分析的功能,而且通常是适用于油气开发中,软件的速度分析模块也受封装限制,不能加载到其它软件中。
针对上述问题,本文开发了一套适用于金属矿地震波多分量速度分析的开放式模块,其中的地震波多分量速度分析模块通过C++和Fortran混合编程实现,提供友好的界面,实现交互式速度分析,便于速度信息的准确拾取,同时通过选择性相关法和精确的地震波多分量时差计算公式,实现算法优化,减小速度分析过程的误差,提高速度分析的效率和精度。
地震波多分量速度分析模块实际包含速度谱生成和动校正两部分,需要将界面开发和算法实现相结合,本文充分利用VC++提供的强大界面开发平台[11]和Fortran语言在科学计算方面的优势[12],通过VC++和Fortran混合编程,实现交互式速度分析。
1.1 速度谱
地震资料处理中制作速度谱的方法有多种,针对金属矿反射波信号信噪比较低的特点,本文采用选择性相关法,实现将弱速度信号从复杂信号中分离,利用选择相关量测公式(式1)计算能量值UCSC(νtrial,t0)[13]:
UCSC(νtrial,t0)
(1)
式中:t0和vtrial分别为计算能量时所选取的时间和速度值;w是给定的时窗;j,k为所选道号,M是抽取道集的总道数;fk,t(k)和fj,t(j)分别是第k道在t(k)时的样值和第j道在t(j)时的样值;dm=min(j-k),jm(k)=k+dm。
1.2 交互式速度分析
地震波多分量交互式速度分析实际包含速度谱的显示和交互式动校正两部分,需要将界面开发和算法实现相结合。本文通过VC++和Fortran混合编程,实现多分量交互式速度分析。VC++和Fortran混合编程通过程序调用来实现,常见的调用方式有两种:直接调用和动态链接库(DLL)调用。直接调用时,通常会由于两种语言的约定不同(包括命名约定、调用约定、参数传递约定等)(表1),出现链接错误;而动态链接库(DLL)的调用方式,由两种语言独立执行,遵守这些基本约定后再混合,从而实现成功链接。
表1 C++和Fortran不同约定对照表
下面我们以转换波速度分析为例提供一个解决方案,本文使用的编译环境为Microsoft Visual C++ 2010 和 Compaq Visual Fortran 6.5,操作系统为Windows XP 平台。
(1)创建Fortran动态链接库
首先在Fortran内部对Fortran子程序进行编译,生成可以在VC++中调用的动态链接库DLL文件,在Fortran子程序中采用以下方法对动态链接库文件DLL进行说明:
SUBROUTINE ANIANA(infile, outfile)
!DEC$ ATTRIBUTES DLLEXPORT:: Aniana
!DEC$ ATTRIBUTES ALIAS : "Aniana" :: Aniana
……
END SUBROUTINE
这里使用关键字DLLEXPORT说明子程序Aniana在动态链接库DLL文件中可被外部调用,并使用关键字ALIAS给该程序名赋一个别名,限定函数名Aniana为大小写混写的形式,以协调C++和Fortran在命名约定方面存在的不一致,遵守各自约定,确保Fortran函数名在VC++中调用时不发生变化。
同时,为了协调两者在堆栈管理方面的参数传递约定,Fortran子程序中必须添加编辑器的通用编辑指令!DEC$来协调,并通过可选项STDCALL或C参数来实现。
(2)VC++实现调用
VC++调用Fortran动态链接库的方式有两种:显式调用和隐式调用。显式调用可以减少应用程序加载的时间,提高运算速度;而隐式调用一定程度上会加大内存的消耗。本文对Fortran动态链接库(DLL)文件采用显式调用。
显式调用需要借助API函数,首先在VC++中使用API函数LoadLibrary装载动态库DLL文件:
hDLL=LoadLibrary((LPCWSTR)TEXT("ANIANA.dll"));
ANIANA.dll是Fortran生成的DLL文件名,也是VC++需要装载的DLL文件名。成功加载动态库文件后,返回装载模块的实例句柄。然后通过API函数GetProcAddress获得装载模块中导出函数的地址:
pANiana lpANiana=(pANiana)GetProcAddress(hDLL,"ANIANA");
hDLL包含被调用的函数库模型的句柄,LoadLibrary函数返回函数值。lpANiana为指针,指向函数在程序中的次序值或以NULL结尾且包含函数名的字符,如要实现强制类型变换的功能使用无类型指针FARPROC。
函数执行成功后,要通过API函数FreeLibrary释放,卸载动态库文件,并将函数从内存中移出:
FreeLibrary(hDLL);
通过混合编程实现速度分析时,从VC++提供的界面中直观地读取数据,提高了数据输入的效率;并通过调用Fortran算法精确计算,提高数据输出的准确性,完全实现与用户的交互式速度分析过程。
地震波多分量速度分析模块是一个开放式模块,能脱离Fortran环境单独运行,可以加载到其它的地震数据处理软件中,为地震数据解释提供更丰富的信息量,在一定程度上可减少地震数据解释的多解性。
为检验本文开发的金属矿地震波多分量速度分析模块的效果,设计了一个3层理想地层模型(图1),模型参数见表2。观测系统参数为:单边放炮,150炮,每炮100道,道距3 m,炮距3 m。用本文的速度分析模块对由模型经射线追踪产生的PP波(即P波入射,P波反射)和PSV转换波(即P波入射,SV波反射)进行试算。地震记录采用地震数据正演模拟程序计算获得。图2、3分别为对抽取的PP波和PSV波的两个道集进行速度分析的结果。
图1 地层模型Fig.1 Strata model
在进行多分量交互式速度分析时,首先从图2的PP波速度谱中拾取速度、时间等信息,然后将PP波速度分析所得到的信息作为PSV波速度分析时的已知参数,进行PSV波速度分析,系统自动读入相应的PP波数据信息以节约数据输入的时间,如果拾取的信息在PSV波中进行分析时得到的分析结果不满意,可以通过一键式菜单返回PP波模块重新进行速度分析,这就实现了在一个模块中进行多分量速度分析,在一定程度上提高了速度分析的精度。
表2为速度分析结果与理论叠加速度对比表。从表2可以看出,交互式速度分析结果与理论叠加速度基本一致,达到地震波多分量速度分析的精度要求。从图2、3可以看出,通过交互式数据分析拾取速度后,动校正效果较好,达到地震数据处理的基本要求。
图2 PP波道集速度分析图Fig.2 Velocity analysis on PP dataa—交互速度谱; b—模型数据道集;c—捕获速度动校正后的道集。
图3 PSV波道集速度分析图Fig.3 Velocity analysis on PSV dataa—交互速度谱; b—模型数据道集;c—捕获速度动校正后的道集。
地层层厚(m)密度(kg/m3)PP波PSV波理论叠加速度(m/s)速度分析结果(m/s)相对误差(%)理论叠加速度(m/s)速度分析结果(m/s)相对误差(%)层1110200025002558021583157107层2200220030093115352033196434层3∞2900
本文采用选择性相关法制作速度谱,用优化的PP波和PSV波时差方程进行时差分析,并通过C++和Fortran语言混合编程,简化了速度分析的流程,实现了界面友好、算法精确的交互式速度分析,编制了一套适合地震波多分量速度分析的软件,为金属矿多分量地震勘探提供了技术支持。经模型实验验证,该软件实现了速度分析的算法优化和交互性,在一定程度上提高了速度分析的精度。地震波多分量速度分析模块是开放式模块,能脱离Fortran环境单独运行,可方便地移植到其它的大型软件中。
[1]Taner M T, Koehler F. Velocity spectra-digital computer derivation and applications of velocity function[J]. Geophysics,1969,34(6):859-881.
[2]Allen B. Cunningham, Harland H. Herffring. Interpretation of velocity spectra[J]. Geophysics, 1980,45(12):1741-1752.
[3]Abbad B., Ursin B., Rappin D. Automatic nonhyperbolic velocity analysis[J]. Geophysics, 2009, 74(2): U1-U12.
[4]刘春成,刘宝睿.渤海多波地震勘探在复杂构造研究中的初步应用[J].铀矿地质,2006,22(4):235-239.
[5]王立明,李庆春.选择相关法提高转换波速度分析精度[J].地球物理学进展,2006,21(4):1213-1220.
[6]潘宏勋,方伍宝.基于起伏地表的叠加速度分析[J].石油地球物理勘探,2008,43(1):29-33.
[7]刘建勋,王小江.金属矿转换波地震勘查技术[J].物探与化探,2012,36(4):607-611.
[8]王华忠,冯 波,李 辉,等.各种速度分析与反演方法的对比研究[J].岩性油气藏,2012,24(5):1-12.
[9]郭树祥.一种优化数据量以提高地震速度分析精度的方法[J].石油物探,2013,52(1):35-42.
[10]庄祖垠,麻志国,王志亮,等.高密度各向异性速度分析技术及应用[J].工程地球物理学报,2013,10(2):227-235.
[11]李 娟,张 钦.基于动态链接库的Visual C++混合编程[J].计算机工程与设计,2010,31(9):2140-2144.
[12]柳建新,籍 炜,刘 颖,等.基于Matlab与Fortran混合编程的一维fCSEM正演可视化[J].物探化探计算技术,2012,34(2):224-228.
[13]Ken Larner, Valmore Celis. Selective-correlation velocity analysis[J]. Geophysics,2007,72(2):U11-U19.
Implementation of Interactive Velocity Computation Method for Multi-component Seismic Wave
LI Qin1, LI Qing-chun2, WANG Ya-ni2
(1.Xi’anUniversityofScienceandTechnology,CollegeofGeologicalandEnvironmentalSciences,Xi’an,Shaanxi710054,China;2.Chang’anUniversity,CollegeofGeologyEngineeringandGeomatics,Xi’an,Shaanxi710054,China)
This paper mainly discussed the technique of multi-component seismic wave velocity analysis and programed a set of software for interactive velocity analysis of seismic wave in mining exploration. Velocity analysis and moveout equation were used together with computer graphics technque on the basis of selected-correlation method. The accuracy of velocity analysis was improved someway by combining graphic user interface (GUI) provided by VC++ and strong algorithmic function provided by Fortran. The software is an open module and can be planted in other software easily.
seismic wave; velocity spectrum; velocity analysis
10.3969/j.issn.1000-0658.2015.04.008
国家自然科学基金项目(编号:41304105);高等学校博士学科点专项科研基金项目(20120205130002);陕西省教育厅专项科研计划项目(编号:12JK0470)资助。
2013-07-29 [改回日期]2015-04-22
李 勤(1979—),女,讲师,博士,从事地震勘探技术研究工作。E-mail: eriliqin@126.com
1000-0658(2015)04-0467-05
P631.4+4
A