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

2023-11-04

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资源,欢迎下载。

搬砖不易,走过路过,点个赞支持一下可好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gprMax中任意不规则形状建模与模拟 的相关文章

  • Maven项目中的HDF5

    我正在尝试将 hdf hdf5lib H5 导入到 NetBeans 中的 Maven 项目中 它有这个作为导入行 import hdf hdf5lib H5 正如这里所建议的 https support hdfgroup org prod
  • 扩展 MATLAB 函数名称的最大长度

    我编写了一个 MATLAB 程序 可以动态创建自定义 MATLAB 函数 并使用以下命令在其他 MATLAB 实例中启动它们unix命令 我使用这个程序来自动化 fMRI 神经影像分析 使用 SPM8 for MATLAB 一切正常 但是
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • 不等间隔时间序列的移动平均线

    我有一个证券交易所股票价格的数据集 时间 价格 但数据点之间的间隔并不相等 从 1 到 2 分钟不等 在这种情况下计算移动平均值的最佳实践是什么 如何在Matlab中实现呢 我倾向于认为 点的权重应该取决于自上一个点以来的最后时间间隔 Ma
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • “Desort”向量(撤消排序)

    在Matlab中 sort返回排序后的向量和索引向量 显示哪个向量元素已移动到以下位置 v ix sort u Here v是一个包含所有元素的向量u 但已排序 ix是一个向量 显示每个元素的原始位置v in u 使用 Matlab 的语法
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB

随机推荐

  • 微信小程序中断请求的处理,中断 wx.request() 请求

    在微信小程序中 向后台发出一个请求A 如果长时间后台不返回相应的数据 前端还处于接受状态 这样会引起一些问题 那么就可以在前端代码中直接中断当前的请求 下面发出一个请求 const task wx request url xxxxxxx m
  • 网页显示服务器拒绝了链接,网页出现服务器拒绝链接

    网页出现服务器拒绝链接 内容精选 换一换 主机管理的云服务器列表中仅显示以下主机的防护状态 在所选区域购买的华为云主机已接入所选区域的非华为云主机在所选区域购买的华为云主机已接入所选区域的非华为云主机若未找到您的主机 请切换到正确的区域后再
  • 西门子S7-200SMART控制步进电机(五)

    目录 一 软硬件组成 二 手动控制步进电机旋转方向和速度 三 命令运动轴转以指定的速度运动到所需的位置 四 CPU掉电重启后保持运动控制的当前位置 前面详细讲述了运动控制向导的配置和运动控制指令的使用方法 接下来要讲的是简单程序的编写和调试
  • 【读一读论文吧】BERT

    沐神论文精读B站地址 https www bilibili com video BV1PL411M7eQ spm id from 333 788 paper https arxiv org pdf 1810 04805 pdf usg AL
  • eclipse中报的错:An internal error occurred during: "reload maven project". java.lang.NullPointerExceptio

    在eclipse中新建一个maven项目 进行相应的设置 忽然就卡死了 再次打开就会报出这样的错误 查了下往上很多的解决的方法都是 找到workspace文件夹下的 metadata文件夹 将其删除掉 然后在讲项目重新导入进去eclipse
  • vue+springboot前后端分离项目部署到windows服务器全部流程

    vue springboot前后端分离项目部署到windows服务器 最近看了若依的前后端分离的vue项目 代码撸了一遍之后想要将服务器和前端打包部署到本地windows中 记录自己的部署 一 后端部署 目录结构 项目工程下的pom文件是整
  • CSS面试题26-30

    26 margin 重叠问题的理解 相关知识点 块级元素的上外边距 margin top 与下外边距 margin bottom 有时会合并为单个外边距 这样的现象称为 margin合 并 产生折叠的必备条件 margin必须是邻接的 而根
  • 程序中如何新增微信商户

    1 需要的信息 1 用于微信支付的公众号appid 2 用于微信支付的公众号appkey 3 商户号 4 APIv3密钥 商户支付密钥 V3版本 5 商户证书公钥 apiclient key pem路径 API证书 商户证书 6 微信支付平
  • java int long越界问题_输出越界问题 和 long long 的两数加法问题

    注意方面一 测试 边界的数值 考虑会不会越界 注意方面二 在使用时注意这一点 如下文 直接相加 和赋值后相加不一样 pay more attention 代码 include long long a 44 long long b 44 lo
  • 如何用ChatGPT写出爆款小红书文案,仅3个步骤,快get起来!

    小红书越来越流行了 很多商家和个人都在上面搞运营推广 想要在这个平台众多的内容和用户中脱颖而出 就需要付出很多的时间和精力 你想知道如何快速写出爆款文案 吸引更多的用户浏览 点赞以及关注吗 我发现一个非常好用而且很简单的方法 轻松写出6w
  • 使用Python快速进行Excel合并

    本文记录工作中常遇到的几种Excel文件合并的情景 实际运到问题可以直接运行程序 输入要合并的文件所在的路径就可以实现自动合并 提升工作效率 情形一 Excel属于同一文件夹下 同一文件夹下多个Excel合并 import pandas a
  • Win7复制文件时出现:“您需要权限来执行操作!”(终极解决方法!)

    最近 装了win7需要倒数据 但总是出现 您需要权限来执行操作 提示 而使复制终断 很挠头 后来 发现 原来是 杀毒软件 惹的祸 做程序的朋友请注意 程序复制程序时关闭杀毒软件的2个理由 1 真不知道现在的 杀毒软件 怎么做的 一点水平也没
  • sudo权限

    1 概念 sudo权限就是root把本来只能超级用户执行的命令赋予普通用户执行 sudo的操作对象是系统命令 2 visudo 我们使用visudo来设置sudo 实际上修改的就是 etc sudoers这个文件 3 如何设置sudo权限
  • sh脚本-常用命令

    文章目录 最近碰到的命令 1 curl密令 一 基础命令 Unix命令 1 运行sh脚本命令 2 echo命令 3 exit命令 4 sed命令 5 cut命令 6 awk命令 7 ls命令 8 cat命令 其它命令 二 变量 正则表达式
  • 原子指标,派生指标,衍生指标概念

    指标体系相关概念 1 原子指标 原子指标指的是基于业务过程的度量值 顾名思义是不可以在进行拆分的指标 核心功能 对指标的聚合逻辑进行了定义 三要素 业务过程 度量值 聚合逻辑 2 派生指标 派生指标是基于原子指标的 关系为 派生指标 原子指
  • Docker 常见镜像问题

    Docker 常见镜像问题 Docker 轻松学习 文章目录 Docker 常见镜像问题 一 Docker 是什么 二 如何批量清理临时镜像文件 三 如何查看镜像支持的环境变量 四 docker pull失败 报错提示Error image
  • Elasticsearch—生产环境集群核心配置

    https segmentfault com a 1190000019900040 utm source tag newest
  • C++模板类内友元(友元类,友元函数)声明的三种情况

    根据 C Primer 第三版16 4节的叙述 C 类模板友元分为以下几种情况 1 非模板友元类或友元函数 书上给了一个例子 class Foo void bar template
  • 分页(Paging) / SQL Server / Oracle

    分页 Paging SQL Server Oracle 虽然 DataGrid 控件自己带了一个分页处理机制 但它是将符合查询条件的所有记录读入内存 然后进行分页显示的 随着符合条件的记录数目增多 就会出现运行效率问题 或者至少是资源的利用
  • gprMax中任意不规则形状建模与模拟

    gprMax中任意不规则形状三维建模与模拟 gprMax中给出了不规则几何形状的建模方法 常规的几何建模都是基于gprMax内置的几何命令建模 所建立的模型是规则的 如圆球 正方体 圆柱体 三角体等 不规则形状三维建模需要利用matlab或