3D高密度反演程序说明.docx
《3D高密度反演程序说明.docx》由会员分享,可在线阅读,更多相关《3D高密度反演程序说明.docx(45页珍藏版)》请在冰豆网上搜索。
![3D高密度反演程序说明.docx](https://file1.bdocx.com/fileroot1/2023-2/23/ea18cf67-72aa-457b-9f6d-239b89f5015d/ea18cf67-72aa-457b-9f6d-239b89f5015d1.gif)
3D高密度反演程序说明
3D高密度电法反演程序
3DRESver.2.2forWIN98/Me/2000/XP/2003
使
用
说
明
3DRES
快速3-D电阻率&IP反演,使用最小二乘法;
全中文操作界面,所有功能、操作说明都集成在对话框各提示框中,使你不需看说明书即可理解各项参数的意义及使用方法;
支持的排列有温纳系列,三极、单-单极,双偶极,赤道双偶极等多种;
支持视电阻率、电阻率、激电(时间域视极化率、频率域相位角、金属因子、频比率等);
内置地形改正功能,数据中包含地形数据时,程序将自动作地形改正,结果可以带高程显示;
特有的水下、水面、水陆解释功能;
支持大网度三维勘探;
多种格式兼容、转换,几何可以读取国内、外所有主要仪器输出数据;
多种反演参数、反演方法,可让程序按你的要求得出最真实的结果;
完善的数据监控、检测功能,能保证不让非法、错误或可疑的数据参与反演;
多种结果显示方式,能让你从不同角度了解、分析反演结果;
一切为结果的真实性考虑,是现有此类软件中最优秀的反演解释系统;
配有相应的正演模型软件,可以为你工作装置及方法的选择提供帮助,和进行三维电成像研究。
简介
3DRES用于处理三维电阻率成像测量(LiandOldenburg1992,Whiteatal.2001)数据,它能根据所测数据自动形成三维电阻率模型。
在这类测量中,电极按矩形网格排列(图1)。
需要强调一点,三维电成像测量并不仅仅是由一系列二维数据迭加而成,而是成熟的三维反演方法,有它自身的应用特点。
实际工作中使用的主要三维电极排列,如pole-pole,pole-dipole和dipole-dipole等的情况在附录A,B和C中有较详细的说明。
在有关的电成像测量教程(Loke2002)中也可找到相关资料。
上面列出的几种排列是三维电成像测量中经常使用的排列,其他排列因为有效数据覆盖范围较少而很少使用。
当计算机拥有1.5GBRAM时,本程序支持的网度可达到77×77(或5929)个电极点位!
图1.一个三维电成像测量的排列示意图。
安装软件
当您拿本软件光盘后,运行Setup.exe,将软件安装至C:
\3DRES目录中,插入USB加密锁后,双击3DRES.EXE即可运行该二维高密度电法反演程序。
3DRES是一个32-bitWindows程序,运行在Windows95/98/XP/NT系统下。
要求最小内存大小为32MB,如果具备64MB或128MB内存,其性能可以达到更好的发挥。
要求至少200MB硬盘空间,以用于程序临时文件的存储。
推荐使用的屏幕分辩率为800×600,或1024×768,或1280×1024,显示卡为256色SVGA图形卡。
如果你使用16-bit或24-bit位的SuperVGA图形卡,你应该将其设置为256(8-bit)色模式,在这一模式下程序运行速度更快。
如果计算机性能较差,在运行3DRES时请关闭其它对内存占用较大的程序,如Word、CAD等。
文件清单
安装包中应该包含了以下文件:
3DRES.EXE
主反演程序
ROOTS7.DAT
网度为7×7野外实测数据.
SEPTIC.DAT
在化粪池(septictan)场地上以8×7网度测得的野外数据
PIPE3D.DAT
在地下管道(pipe)场地上以8×9网度测得的野外数据
GRID7X7.DAT
网度为7×7模型数据,单极-单极排列(Pole-pole)
BLK15PPL.DAT
网度为15×15模型数据,单极-单极排列(Pole-pole)
BLK15PDP.DAT
网度为15×15模型数据,单极-偶极排列(Pole-dipole)。
BLK15DDP.DAT
网度为15×15模型数据,偶极-偶极排列(Dipole-dipole)。
MODEL3IP.DAT
包含电阻率和激电(IP)数据的实例。
GRID8X8.DAT
网度为8×8模型数据,单极-单极排列(Pole-pole)。
MOD3DFIX.DAT
某一模型电阻率断面由用户固定的实例数据。
BLOCK26W.DAT
一个温纳(Wenner)排列的例子。
BLOCK26S.DAT
一个温纳施仑贝尔排列的例子。
BLOCK11T.DAT
一个包含地形数据的例子
3DRES.HLP
帮助文件
原理简述
本软件所使用的反演程序是基于圆滑约束最小二乘法,使用了基于准牛顿最优化非线性最小二乘法的新算法。
使得大数据量下的计算速度较常规最小二乘法快10倍以上且占用内存较少。
圆滑约束最小二乘法基于以下方程:
(J’J+uF)d=J’g
其中F=fxfx’+fzfz’
fx=水平平滑滤波系数矩阵
fz=垂直平滑滤波系数矩阵
J=偏导数矩阵
J’=J的转置矩阵
u=阻尼系数
d=模型参数修改矢量
g=残差矢量
这种算法的一个优点是可以调节阻尼系数和平滑滤波器以适应不同类型的资料。
反演也可以使用常规高斯-牛顿法,每次迭代后重新计算偏导数的雅克比(Jacobian)矩阵。
它的反演速度比准牛顿慢得多,但在电阻率差异大于10:
1的高电阻率差异地区,效果要稍好一些,反演逼近也可以在第二或第三次迭代以前,使用高斯-牛顿法,然后使用准牛顿法,在许多情况下,这提供了一个最佳折衷选择。
除平滑约束法外,其它的反演方法也效。
用户可以选择直接对模型电阻率使用平滑约束法,这样能够提供一个最优的平滑模型(看第8部分)。
.另外,在某些情况下,例如模型边界值突变剧烈时,还可以使用强制模型反演法。
无论如何,反演方法的选择不能千遍一律,应根据所测数据的实际情况来选择。
程序将地下电性体分成许多小的矩形棱柱体,即模型单元块,并尽量计算确定各棱柱体的视电阻率值,使其与观测的视电阻率值保持最小的差值。
图2a显示了一种可能的划分方式。
这里,顶部层每一棱柱上面的每一个角都有一根电极。
除此之外,本程序还支持另外两种划分方式。
其中一种方式是对上部几个层沿水平方向按电极的半宽度划分棱柱体,如图2c所示,第三种方式是对上部几个层沿水平和垂直方向按电极的半宽度划分棱柱体,如图2b所示。
因为电阻率法的分辩率随深度的增加迅速减少,经验表明,对模型块的再次划分仅对顶部两层有益,在大多数情况下,仅对顶部层进行再次划分即可。
在细分模型块后,模型的参数和计算所需时间都将显著增加。
图2反演中使用的模型。
(a)标准模型,单位矩形块的大小与X和Y方向的单位电极大小相同。
(b)再分模型,顶部几层的单位矩形块按水平和垂直方向平分。
(c)再分模型,顶部几层的单位矩形块按水平平分。
最优化方法通过调整模型块电阻率来尽量减少计算与观测视电阻率之间的差异。
这种差异以均方根(RMS)误差来表示。
实际上,具有最小RMS值的模型有时显示较大的、不实际的电阻率值,因而具有最小RMS误差的模型并不一定是与实际情况最按近的模型。
通常地,最保守的模型应该是选择每次迭后RMS的改变不明显时的模型,这一般在第4至5次后迭代后即可达到。
一、反演的一般步骤
1、数据格式转换
使用电法仪自带的数据格式转换程序,将采集的数据保存位RES3DINV格式,
2、运行本软件
点击C:
\3DRES目录里的3DRES.EXE即可运行。
3、输入数据
点击“文件”->“读数据文件”,选中转换好的数据(.dat)。
4、反演
点击“反演”->“执行反演”,提示保存将要得到的反演结果(.inv)后,本软件便开始用默认反演参数进行反演,在屏幕最下面会显示反演进程。
依据数据量大小、反演参数不同以及计算机硬件配置好坏,反演需要花几分钟~十几分钟,请耐心等待。
反演完毕后,会提示是否增加迭代次数,程序默认迭代5次,如无需继续迭代,请输入0。
5、保存反演图件
点击“输出”->“保存为BMP或PCX文件”,这些格式文件可由如photoshop等图像编辑软件打开并编辑(如加入标注),然后输入到打印机。
6、打开反演结果
点击“显示”->“显示反演结果”即可进入结果显示窗口,点击“文件”->“打开反演结果”即可打开先前保存的反演结果(.inv),点击“显示”->“显示反演结果”即可显示该反演结果。
7、三维图像格式输出
本软件可根据反演结果生成各类三维图像,
以Slicer/Dicer为例,在结果显示窗口中,打开反演结果ROOTS7.inv->点击“文件”->“输出为Slicer/Dicer格式”->输出文件类型选“*.gm”即ROOTS7.gm。
运行C:
\3DRES\SlicerDicer\Dicer.EXE,点击“file”->“open”->刚才保存的ROOTS7.gm->“ok”->将ROOTS7窗口最大化->点击工具栏上的
->调整窗口比例系数:
->点击左边的方向切片
->将鼠标移到方块模型内即可画出该位置的电阻率面。
反演结果图示
该软件三维成像功能强大,请用户耐心研究。
二、各菜单功能介绍
1)“文件”菜单
当你选择了“文件”选项后,将会出现以下子菜单项:
读数据文件:
当选择该项后,当前目录下扩展名为DAT的文件将会被列出。
假定被列出文件的数据格式符合本程序要求,如果不是这样,你应该用相关软件将数据转换成满足本程序要求的格式。
你可以选择需要反演的数据文件,或者改变路径重新选择。
视电阻率数据文件是以ASCII文本文件保存,可以利用通用文本编辑器修改、输入数据。
数据间可以用逗号、空格分隔,本程序要求数据按一定格式组织。
如果读取数据时出现问题,其原因一般是数据格式有错。
基本的格式以文件ROOTS7.DAT为例说明如下:
ROOTS7.DAT数据文件说明
garden-square-0.5m|标题
7|x向格网值
7|y向格网值
0.5|x向单位电极距
0.5|y向单位电极距
2|排列种类,输入2表示是单极-单极(pole-pole)排列
467|数据总个数
0.000.000.500.00350.46|每一个数据点的信息。
依次为:
0.000.001.000.00398.05|供电极x-和y-位置,
0.000.001.500.00424.08|测量电极x-和y-位置
0.000.002.000.00413.83|视电阻率值
0.000.002.500.00373.76|
.|其它数据点
.|
0|随后用几个0作结束标志
0
0
0
0
在当前坐标设置中,左上角坐标为(0.0,0.0).对单极-偶极(pole-dipole)排列,首先是A电极的x,y位置,随后是M极的x,y位置,然后是N极度x,y位置,文件BLK15PDP.DAT是一个单极-偶极(pole-dipole)排列数据格式的例子,注意电极排列种类序号是6。
偶极-偶极(dipole-dipole)排列,数据点表示顺序为:
A极x,y位置,B极x,y位置,M极x,y位置,N极x,y位置。
文件BLK15DDP.DAT是一个偶极-偶极(dipole-dipole)排列数据格式的例子,注意电极排列种类序号是3。
如果测量数据中要包含地形信息,每根电极对应的高程应紧跟数据点后输入。
BLOCK11T.DAT是这方面的一个例子,其网度为11×11,其格式见下面的说明。
BLOCK11T.PPL文件说明
8.00010.00010.00010.000113.3131|最后两个点电阻率值
9.00010.00010.00010.000102.7262|
Topography|“topography”表明包含了地形信息t
2|x-和y-坐标类型
0.000.000.00-0.50-1.00-1.50-1.00-0.500.000.000.00|按网格排列的电极高程。
0.000.000.00-0.50-1.00-1.50-1.00-0.500.000.000.00|行为x方向
0.000.000.00-0.50-1.00-1.50-1.00-0.500.000.000.00|
0.000.000.00-0.50-1.00-1.50-1.00-0.500.000.000.00|
0.000.000.00-0.50-1.00-1.50-1.00-0.500.000.000.00|
单词"Topography"必须输入,并且要紧跟最后一个视电阻率数据点,下一个值“2”表示给出的x,y坐标是沿地表的距离,而不是真正的水平距离。
这通常反映采用的电缆电极点间有固定的间隔距。
如果此处值为“1”,表示给定的x,y坐标是真正的水平距离。
以后的数据即为各电极点的高程数据,按网格排列,行方向为x方向。
例如,第一行数据为x=0时的电极点高程,本例中,沿x方向有11根电极,因而每一行就有11个高程数据。
如果数据文件中中包含地形数据,程序反演时将会自动将地形数据以有限元方法并入反演模型进程中(SilvesterandFerrari1990)。
编辑数据:
本操作将启动文本编辑器来编辑、修改数据。
导入.....格式数据:
本程序允许你运行其它程序将其它格式的数据转换成本程序格式的数据,或者直接读取其它电阻率仪数据。
2)“设置”菜单
程序为阻尼因子及其它变量预置了一套参数,对大多数数据而言,使用这套参数一般可以达到较满意的结果。
然后,在某些情况下,你可以通过编辑参数,控制程序的运行来获得更好的结果。
当选择该选项后,将出现下图所示的菜单界面。
当选择了"反演参数"子项后,将会出现下面的对话框,在这里你可以设定、输入你要求的参数。
初始阻尼因子和最小阻尼因子-这里你可为等式
(1)设定初始阻尼因子值,也可以设定最小阻尼因子。
如果数据噪声较大,你应该使用一个相对较大的阻尼因子(例如0.3)。
如果数据噪声较小,则使用一个较小的阻尼因子(如0.1)。
反演子程序一般会在每次迭代后减少
(1)式中的阻尼因子。
无论如何,设定的阻因子必须能确保反演进程的稳定。
最小值一般设为初始阻尼因子的1/5到1/15。
直接发对电阻率模型进行曲圆滑:
按等式
(1)给出的最小二乘公式使用的撮动矢量d仅针对模型而言,而不是直接针对模型电阻率。
在大多数情况下,它提供的模型其电阻率较为圆滑。
但在某些情况下,特别是数据噪声水平较大时,要取得较好的效果对电阻率也需要直接进行圆滑约束处理。
其最小二乘等式表示为:
(2)
这里r是一个包含了模型对数电阻率值的矢量。
采用同一阻尼因素状态下,这一方法得出的模型有较大的RMS误差,但它确保模型有较圆滑的电阻率值。
每次迭代作线性搜索:
反演进程由求解等式
(1)来确定模型参数的改变。
通常地,矢量d参数的改变将会带来较低的RMS误差。
对于RMS增大的情况,你有两种方法来处理。
此处提供了一种线性搜索的方法,即使用四次线性插值法(Fletcher1987)寻找模型电阻率改变的最优步长。
这样通常可以确定最优步长,但是要求每次迭代中至少作一次正演计算。
在某些情况下,如果能减少使RMS误差达到某一可接受的水平而需要的迭代次数,那么这种正演计算是值得的。
这一设定通常只会影响第三次及以后的迭代进程。
在前两次迭代,RMS误差的改变一般是最大的,程序会总是使用线性搜索,以找到使RMS误差大减少的步长。
允许线搜索能改变的最小%RMS误差:
线性搜索的使用可以预估视电阻率RMS误差的改变,如果期待改变的视电阻率RMS误差太小,就可能不必用线搜索来确定最优步长。
通常使用的值是0.1到1%。
首层厚度:
这里给定首模型层厚度与最小单位电极距的比值。
对单-单极(pole-pole)排列,这里设定为单位电极距的0.7倍。
对其它排列,首层厚度根据排列的观测深度进行调整。
层厚增长因子:
因为电阻率法分辩率随深度的增加而减少,因此模型层的厚度应随深度的增加而增大。
缺省时,模型层厚度增加系数为1.15,这时,往深部,每一个子层的厚度增加15%。
然而,你可以在一定范围内修改这一系数。
一般设定在1.05到1.25间。
半尺寸层操作:
这里允许使用半尺寸模型,即顶部几层的模型块的宽度和厚度对半一分为二(参见图2)。
你可以选择要再分的层的数目,并且是否在沿垂直方向也进行拆分(图2b)。
还能调整这些层的平直度滤波阻尼因子。
现已发现,对小的模型块,在反演后模型的电位值振动较大,特别地,有噪声的数据集更是如此。
为了减少这种振动,可以为这些层设定稍微大一点的阻尼因子,例如设定为1.10.
迭代次数:
允许你为反演进程设定最大迭代次数。
缺省时最大迭代次数为6次。
对大多数数据集而言,这一迭代数已经足够。
当反演迭代次数达到这一最大数时,程序将会提示是否增加迭代次数以继续反演进程。
一般地迭代次数不宜超过10次。
重新Jacobian矩阵的迭代次数:
在高斯-牛顿法中,雅可比(Jacobian)矩阵在每次迭代后都要重算。
然而,快速牛顿法除在每次估算迭代外,从不重算雅可比(Jacobian)矩阵。
最快的方法是使用快速牛顿法估算雅可比矩阵(LokeandBarker1996)。
这时,可以在对话框中输入值0。
在野外,使用掌上电脑,其内存有限时,这一方法经常被采用。
最精确,也最慢的方法是在每次迭代后都重算雅可比矩阵。
这要求计算机性能较好,至少32M有效内存,200M自由硬盘空间。
要使用这一方法时,只需在对话框中输入一个较大的值(例如20)即可。
另一种方法是,重算雅可比矩阵仅在头几次迭代中进行,随后的迭代使用快速牛顿法进行。
雅可比矩阵的最大改变通常发生的头几次迭代中,因此在大多数情况下,速度和精度同时兼顾的折中办法是限定雅可比矩阵的重算次数。
缺省时,程序仅在头三次重算雅可比矩阵。
当然,你可以在当前对话框中改变这一值。
快速牛顿法一般用于野外测量过程中快速获取粗略的结果。
另外当你要通过RMS误差统计法排除坏点(参考斚允緮部分)时也要使用这一方法。
为获取最终结果,最好是使用重算功能,这也要求使用性能较好的台式电脑,其内存和硬盘空间都充足。
在电阻率差异较大的区域,最大电阻率值大于10倍最小电阻率时,重算雅可比矩阵获取的模型,其边界尖锐度较使用快速牛顿法强。
收敛限差:
这是为两迭代间RMS误差的相对改变值设定一个较少的限定值。
缺省时为5%。
选择robust强制约束反演:
传统的最小二乘法尽量使测量值和计算值之间的均方根差值达到最小。
强制约束法则尽量使使测量值和计算值之间的绝对差值达到最小(ClaerboutandMuir1973)。
这一方法对高噪声数据有较低的灵敏度。
本功能的对话框如下。
限定模型电阻率范围:
当选择该功能后,显示如下对话框:
本选项允许你对反演输出模型的电阻率值进行限定。
上图中,电阻率上限值为20倍,即允许电阻率最大值是每次迭代后模型电阻率平均值的20倍,电阻率下限值是0.05倍(1/20倍),即允许电阻率最小值是每次迭代后模型电阻率平均值的0.05倍。
实际上,程序使用的是斎硐薅〝,即在实际反演中,允许电阻率值适当超出设置的限定范围。
然而,即使如此,这一限定可以保证反演得出的模型其电阻率值不会出现过大或过小等与实际情况严重不符的现象。
用户还可以选择使用第一次迭代反演得出的模型作为参考模型。
改变模型深度范围:
本操作允许用户由程序增加或减少反演中各层的深度。
用户给出的比例系数作出计算深度的一个乘数。
使用对数视电阻率:
缺省时,在反演中,程序会使用对数视电阻率作为数据。
大多数情况下,这样可以得出最好的结果。
在某些情况,如出负或0电阻率值时,无法计算对数值,这项操作可以使得在这样的条件下视电阻率仍适用。
改变结点数:
缺省时,使用有限元或有限差分网格时,相邻电极间结点数为2个。
这里可以设定为3或4个,以获取更大的反演精度,使用较多的结点将会增大正演计算的精度,但计算时间及要求的内存也相应地会增加。
3)“反演”菜单
这一操作将会对读取的数据进行反演.程序中有一套缺省的控制进程的反演参数可以使用,你也能使用"参数设置"对反演参数进行修改.选择"反演",将会出现以下界面.
执行反演-开始最小二乘法反演进程.会要求你输入存贮反演结果的文件名,反演开始后,如果要中止反演,你可以按"Q"键,过一会儿反演就被中止。
最优化方法选择-这一选项可以允许你从两种不同的方法中选择一种来解最小二乘方程,即式
(1)。
选定后,以下对话框会出现:
缺省时。
程序使用"标准高斯-牛顿(standardGauss-Newton)"最小二乘法,特别地,如果数据点数不多,或者单位模型块数小(少于2000至3000),将可以求出精确的最小二乘方程结果。
如果数据点太多,或者模型单元块数太多(大于3000),那么解最小二乘方程会占用整个反演进程的大部分时间,为了减少时间,提高计算速度,一种替代方法,即不完全高斯-牛顿(IncompletGauss-Newton)"可以使用。
用户能够设定解的精度,这个值设定在1%到2%(相当于收敛限差0.01到0.02)之间时,几乎可以得到与采用标准高斯-牛顿同样的精度。
如果设定得更小一些,例如0.5%,在理论上具有与标准高斯-牛顿法同样的精度,但这样大大增加反演时间。
对特别大的数据集或模型(数据或模型块数大于15000),在选定不完全高斯-牛顿后,还可以选择"数据压缩"技术,这样可以明显地减少反演时间,例如,在当计算机CPU为P42GHz,内存量为1GBRAM时,一个具有30000个模型块和60000个数据点的工程,所需的反演时间可以从一个星期缩短至两天以内。
使用有限元方法:
程序允许从有限元法和有限差分法中选择一种来计算视电阻率值。
缺省时,程序使用有限差分法,如果数据中不包含地形,这一方法更快一些。
如果数据中包含了地形,缺省选择为有限元法。
有限元法相对有限差分法而言特别慢,因此如果不包含地形信息,建议你使用有限差分法。
最优化阻尼因子:
当选定该当项后,程序将会尽量发现等式
(1)中最优的阻尼因子u,以使每次迭代后RMS误差达到最小。
通过采用最优化阻尼因子,要求的迭代次数将明显减少,但花在每次迭代上的时间将会增加。
对小到中等大小的数据集,使用这一方法能明显减少反演整个数据所需的时间,而对数据量大于2000的数据,花在每次迭代上的时间将会明显增加,因为需要用大量的时间解最小二乘方程,这个时间比实际反演计算所需时间还要长。
采用这一方法时,有时虽然RMS误差达到了较低的水平,但并不一定反映所得到模型是最好的,特别是数据噪声较大时(原理简述)。
激电反演方案:
反演包含激电和电阻率值的数据集时,你可以选择两者同时交替进行,也可以选择在完成电阻率反演后再进行激电反演。
IP阻尼因子:
在IP反演中中使用的阻尼因子相应地比电阻率反演使用的阻尼因子要小一些。
如果设定为1.0,则两者将会使用同一阻尼因子。
一般使用较小(例如0.050.25)阻尼因子。
也可以选择让程序自动计算阻尼因子。
.
4)“显示”菜单
在这一部分,你可以将反演结果在屏幕上进行