gprMax中任意不规则形状建模与模拟

gprMax中任意不规则形状建模与地质雷达模拟

gprMax中给出了不规则几何形状的建模方法。常规的几何建模都是基于gprMax内置的几何命令建模,所建立的模型是规则的,如圆球、正方体、圆柱体、三角体等。不规则形状三维建模需要利用matlab或者python生成三维数组,然后将三维数组保存到HDF5格式文件中,因此,需要利用matlab编程生成任意不规则三维数组。本帖子给出一个生成任意不规则形状的代码。

1、任意不规则几何形状建模

首先看一下,建模的效果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、matlab生成不规则形状的代码

下面给出的代码,需要作细微改动,即可满足生成任意不规则形状的要求。

close all
clear
clc

% 此程序是写gprmax不规则形状的几何文件
% 创建任意不规则几何体

% 给定网格单元边长
dx = 0.002;
dy = 0.002;
dz = 0.002;

% 网格单元个数,注意x,y,z的方向
nex = 1;
ney = 1000;
nez = 2000;

% 设置保存的文件名
file_name = 'stestbig01.h5';

% 创建一个HDF5文件
h5create(file_name,'/data',[nex ney nez]);

% 创建一个三维数组
data = zeros(nex,ney,nez);

% 第一层填充1
data(:,1:100,:) = 1;

% 第二层填充2
data(:,101:250,:) = 2;

% 第三层默认是0
% 中间设置不规则空洞,设空洞材质为3

% 设置不规则几何体中心位置
xw = 650;
yw = 1000;

% 设置不规则几何体半径
xlength = 550;
ylength = 700;

% 生成随机的正负1
nzf = rand(2*ylength,1);
nzf(nzf<0.5) = -1;
nzf(nzf>=0.5) = 1;

nzfx = flipud(nzf);
nws = zeros(2*ylength,1);
nwx = zeros(2*ylength,1);
ws = 25;
wx = 25;
for i = 1:2*ylength
    if ws == 1
        ws = ws + 1;
    elseif ws == 75
        ws = ws - 1;
    else
        ws = ws + nzf(i);
    end
    nws(i) = ws;
    if wx == 1
        wx = wx + 1;
    elseif wx == 75
        wx = wx - 1;
    else
        wx = wx + nzfx(i);
    end
    nwx(i) = wx;
end
        
% 开始循环
for i = 1:2*ylength
    neyw = yw - ylength + i;
    nexwz = xw + nws(i);
    nexwf = xw - nwx(i);
    data(:,nexwf:nexwz,neyw) = 3;
end

data = flip(data,2);

% 三维转二维,绘图
data1D = data(:);
data2D = reshape(data1D,ney,nez);
imagesc(data2D);
shading interp

3、paraview显示模型

运行gprmax,将模型图在paraview中显示,得到模型图
在这里插入图片描述

4、模拟结果

不规则异常体运行得到的雷达结果图,在matlab中成图
在这里插入图片描述

在这里插入图片描述

5、in命令文件

运行得到4所示结果的in文件如下

#title: Tuokong2Drand

#domain: 4.000 2.000 0.002
#dx_dy_dz: 0.002 0.002 0.002
#time_window: 40e-9

#waveform: ricker 1.0 400e6 my_ricker
#hertzian_dipole: z 0.05 1.95 0 my_ricker

#rx: 0.15 1.95 0
#src_steps: 0.050 0.000 0.000
#rx_steps: 0.050 0.000 0.000

#geometry_objects_read: 0 0 0 D:\Learnfile\test02/stestbig01.h5 D:\Learnfile\test02/materials.txt

#geometry_view: 0 0 0 4.000 2.000 0.002 0.002 0.002 0.002 Tuokong2Drand n

具体的文件我打包成文件夹,上传到csdn资源,欢迎下载。

评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

商功贤

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值