gprMax电磁波正演模拟方法

文章首发于:https://blog.zhaoxuan.site/archives/37.html;
第一时间获取最新文章请关注博客个人站:https://blog.zhaoxuan.site

1. 电磁波信号的正演和反演

正演是使用模拟软件构建地下目标的属性,并通过数值计算的方式模拟其空间的电场属性;反演是指根据电磁探测方法获得的数据来估计地下目标的属性,所估计属性通常包括几何参数(位置、形状和尺寸)和物理特性(材料、水含量和空隙等)。

2. 使用gprMax进行正演模拟的方法

2.1 编写模型A-Scan构建文件

gprMax通过编写后缀为.in的输入文件来构建地下目标物。
首先以官方文档的圆柱体模型为例进行讲解,在“./gprMax/user_models“中可以找到官方提供的示例文件”cylinder_Ascan_2D.in“。为了方便讲解,本文中例子调整了配置项的排列顺序。

#title: A-scan from a metal cylinder buried in a dielectric half-space

#box: 0 0 0 0.240 0.170 0.002 half_space
#cylinder: 0.120 0.080 0 0.120 0.080 0.002 0.010 pec

#dx_dy_dz: 0.002 0.002 0.002

#domain: 0.240 0.210 0.002
#time_window: 3e-9

#material: 6 0 1 0 half_space

#waveform: ricker 1 1.5e9 my_ricker
#hertzian_dipole: z 0.100 0.170 0 my_ricker

#rx: 0.140 0.170 0



#geometry_view: 0 0 0 0.240 0.210 0.002 0.002 0.002 0.002 cylinder_half_space n

(1)给模型起个名咂!
“title”配置项为模型名字,不多赘述。

#title: A-scan from a metal cylinder buried in a dielectric half-space

(2)设定地下目标物参数
"box"配置项对应范围见示意图中“Half Space”部分。
"cylinder"配置项对应范围见示意图中“Metal cylinder”部分。

#box: 0 0 0 0.240 0.170 0.002 half_space
#cylinder: 0.120 0.080 0 0.120 0.080 0.002 0.010 pec

(2)确定网格大小
根据官方文档参数,将网格大小设置为0.002米。

#dx_dy_dz: 0.002 0.002 0.002

(3)设置扫描移动范围和时窗大小
"domain"配置项表示雷达扫描时的移动范围,范围的大小包括额外的加上10个单元的PML吸收边界条件(默认值情况下),可在示意图中看到“Domain boundary”和“PML region”部分的更直观的表示。“time_window”配置项设置为3ns。

#domain: 0.240 0.210 0.002
#time_window: 3e-9

(4)设定材料的构成参数
本例中涉及三种材料:空气、介电半空间、金属圆柱体,其中空气和金属圆柱体的参数已经在gprMax中内置了,因此,只需要指定介电半空间(Half_space)部分的参数设置,"material"参数的6 0 1 0分别对应相对介电常数、电导率为、相对磁化率和零电导率。

#material: 6 0 1 0 half_space

(5)设定源类型和激励频率

#waveform: ricker 1 1.5e9 my_ricker

埋在电介质半空间中的金属圆柱体的二维模型的几何形状示意图

2.2 根据模型构建进行运算,生成输出文件"cylinder_Ascan_2D.out"

进入gprMax的Python环境中,使用以下命令根据2.1节中的模型A-Scan构建文件生成相应输出文件"cylinder_Ascan_2D.out"。

(gprMax)$ python -m gprMax user_models/cylinder_Ascan_2D.in

2.3 将输出结果可视化为A-Scan图像

使用以下命令将2.2节中的输出数据可视化为A-Scan图像。

(gprMax)$ python -m tools.plot_Ascan user_models/cylinder_Ascan_2D.out

2.4 编写模型B-Scan构建文件

相对于本文2.1节中模型A-Scan构建文件,模型B-Scan构建文件增加了“src_steps”和“rx_steps”两个配置项。“src_steps”配置项指定模型构建运算时信号源的移动步长,“rx_steps”配置项配置项指定模型构建运算时接收器的移动步长。

#title: B-scan from a metal cylinder buried in a dielectric half-space
#domain: 0.240 0.210 0.002
#dx_dy_dz: 0.002 0.002 0.002
#time_window: 3e-9

#material: 6 0 1 0 half_space

#waveform: ricker 1 1.5e9 my_ricker
#hertzian_dipole: z 0.040 0.170 0 my_ricker
#rx: 0.080 0.170 0
#src_steps: 0.002 0 0
#rx_steps: 0.002 0 0

#box: 0 0 0 0.240 0.170 0.002 half_space
#cylinder: 0.120 0.080 0 0.120 0.080 0.002 0.010 pec

2.5 根据模型构建进行运算,生成输出文件"cylinder_Bscan_2D.out"

进入gprMax的Python环境中,使用以下命令根据2.4节中的模型B-Scan构建文件生成相应输出文件"cylinder_Bscan_2D.out"。

(gprMax)$ python -m tools.outputfiles_merge user_models/cylinder_Bscan_2D

2.6 将输出结果可视化为B-Scan图像

使用以下命令将2.5节中的输出数据可视化为B-Scan图像。

(gprMax)$ python -m tools.plot_Bscan user_models/cylinder_Bscan_2D_merged.out Ez

3. 总结

本文讲解了使用gprMax进行探地雷达电磁波信号的正演模拟方法,并用官方文档所提供的示例进行了A-Scan图像和B-Scan图像生成过程演示,所模拟电磁场传播如下动图所示。
模拟电磁场传播示意图

Reference

gprMax User Guide — gprMax User Guide

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@realXuan

请博主喝一杯茶吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值