GprMax中文说明书

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GprMax中GprMax2D的使用方法

V1.3

实验环境:

操作系统:Windows7

软件版本:MATLAB7.1&GprMaxV2.0

参考资料:

[1]UserGuideV2.pdf

一、GprMax2D软件使用

1.1 直接运行

..\GprMaxV2.0\Windows文件夹下的GprMax2D.exe文件,会出现以下窗口(也可以在命令提示符窗口输入命令运行) :

1.2 输入文件名

注意:要输入文件的全路径;*.in文件只要出现任何语法错误或者路径错误,软件都会自动关闭,不会有任何错误提示。

出现以下画面(以自带例子文件bre1.in为例,*.in的命令参考前面的文章或[1]):

运行完毕会发现..\GprMaxV2.0\Windows文件夹下多了两个文件bre1.out、bre1.geo文件,复制到tools文件夹。

二、数据成像

tools文件夹下有五个m文件:gprmax.m,gprmax2g.m, gprmax3g.m, gprmaxde.m , gprmaxso.m。

这里只讲gprmax2g.m,gprmax.m这两个文件的用法,其他三个以后有空再写。gprmax3g.m是处理GprMax3D的几何数据的;gprmaxde.m用来计算Debye公式(参考[1])介电常数的;gprmaxso.m用于计算激励函数的。

2.1 gprmax2g.m的使用方法

gprmax2g函数用于读取GprMax2D软件仿真探地雷达模型生成的二进制几何数据。

gprmax2g函数的原型:

[mesh,header,media] = gprmax2g( 'filename' )

filename是.geo文件名;

media: 存储介质类型,media.type;

header: 存储模型的几何参数;

header.title: 模型的名称;

header.dx: 模型在X轴每次偏移大小(单位:m);

header.dy: 模型在Y轴每次偏移大小(单位:m);

header.dt: 最大允许时间步长(单位:秒);

header.nx: 模型在X轴的偏移次数;

header.ny: 模型在Y轴的偏移次数;

例子:如输入文件*.in中定义:

#domain: 2.5 0.65

#dx_dy: 0.0025 0.0025

那么:header.dx=0.0025; header.dy=0.0025;

header.dt = 1/(c*sqrt(1/header.dx^2+1/header.dy^2)); (其中c=299792458,为光速,公式参考[1]);

header.nx=2.5/0.0025=1000; header.ny=0.65/0.0025=260;

mesh: 存储模型数据,M x N的数组,其中M为Y轴方向的Yee单元数目,N为X轴方向的Yee单元数目;M=header.nx,N=header.ny;

gprmax2g.m的使用例子:

filegeo = 'bre1.geo';

[meshdata,header,media]=gprmax2g(filegeo);

figure(1);

[MM,NN]=size(meshdata);

imagesc((1:NN)*header.dx,(1:MM)*header.dy,meshdata)

axis('equal');

xlabel('x(m)');

ylabel('y(m)');

2.2 gprmax.m的使用方法

gprmax函数用于读取GprMax2D与GprMax3D软件仿真探地雷达模型生成的二进制波形数据。

gprmax函数的原型:

[Header, Fields] = gprmax( 'filename' )

filename是.out文件名;

1) Header:该变量包括以下成员:

Header.title: 模型的名称;

Header.iterations: 迭代次数;

Header.dx: 在X轴每次偏移大小;

Header.dy: 在Y轴每次偏移大小;

Header.dt: 最大允许时间步长;

Header.NSteps: 仿真次数;等于*.in文件中#analysis:命令的第一个参数;

例子:如输入文件*.in中定义:

#domain: 2.5 0.65

#dx_dy: 0.0025 0.0025

#time_window: 12e-9

……

#analysis: 115 bre1.out b

#tx: 0.0875 0.4525 MyLineSource 0.0 12e-9

#rx: 0.1125 0.4525

#tx_steps: 0.02 0.0

#rx_steps: 0.02 0.0

#end_analysis:

……

那么,Header.iterations=ceil(Header.removed/Header.dt);

Header.dx=0.0025;Header.dy=0.0025;

Header.dt= 1/(c*sqrt(1/Header.dx^2+1/Header.dy^2));

Header.NSteps=115;

Header.TxStepX=0.02/Header.dx=8; Header.TxStepY=0.0/Header.dy=0; Header.RxStepX=0.02/Header.dx=8; Header.RxStepY=0.0/Header.dy=0; Header.ntx:

Header.nrx:

Header.nrx_box:

Header.tx=0.0875/Header.dx=35;

Header.ty=0.4525/Header.dy=181;

Hea der.source=’MyLineSource’;

Header.delay=0;(等于#tx:命令的第四个参数)

Header.removed=12e-9;(等于#tx:命令的第五个参数)

Header.rx=0.1125/Header.dx=45;

Header.ry=0.4525/Header.dy=181;

2)Fields: 该变量包括以下成员:

Fields.t: 每个波形的时间轴。数组大小Header.iterations*1;

Fields.ez: Z轴方向磁矢量数据。数组大小Header.iterations*1* Header.NSteps;Fields.hx: X轴方向电矢量数据。数组大小Header.iterations*1* Header.NSteps;

相关文档
最新文档