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中任意不规则形状建模与模拟 的相关文章

  • 在矩阵中找到叉的最快方法

    定义 A i j 1 是十字的中点 如果元素A i 1 j 1A i 1 j 1A i j 1 1A i j 1 1 这些元素和中点一起形成矩阵 A 中的十字 其中 A 至少是一个 3 3 矩阵 并且i j 0 假设上图是 8 8 矩阵 A
  • Matlab strcat 不返回字符串?

    imgstr 无法识别 strcat 的输出字符串 homedir C Users images for img 01 bmp 02 bmp 03 bmp imgstr strcat homedir img I imread imgstr
  • 在 Python 上显示 Matlab mat 文件中的图像

    我目前正在尝试显示从此下载的 Mat 文件中的图像site http www rctn org bruno sparsenet 这是一个 mat 文件 所以我尝试使用 scipy io loadmat 函数加载它 但我似乎无法绘制图像 我究
  • 在 MATLAB 图中用值标记点

    以下命令确实用正方形标记了点 但没有在其中放入值 例如 21 0 X 21 8 2 1 0 Y 0 1 2 3 4 plot X Y k s 我应该添加哪个参数以便全部5点值出现在图上吗 这些值不能一一键入 因为它们是随机数 因此它们可能会
  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • 如何在matlab中使矩阵图平滑

    就像上图一样 怎样才能让画面更流畅呢 或者缩小y轴的范围 数据来自二维矩阵 然后我用plot data 请随意提出任何想法 平滑线条的一种方法涉及样本点之间数据的非线性插值 当你这样做时plot x y o http www mathwor
  • MATLAB 子图标题和轴标签

    我有以下脚本来最终绘制 4 x 2 子图 files getAllFiles preliminaries n size files cases cell 1 n m cell 1 n for i 1 1 n S load files i c
  • matlab中简单正弦波的傅里叶变换

    我尝试显示简单正弦波的频谱 因为我们知道具有固定频率的单个正弦波必须在其频谱中出现峰值我编写了这段代码 但我无法得到这个峰值我的代码中有什么问题 clc nsteps 200 number of signal elements in tim
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • 如何使用最小生成树方法将边缘连接到图像中的节点

    我正在做我的手写图像图形匹配项目 我想在图形中表示给定的单词图像 我使用下面的算法 Algorithm input Binary image B Grid width w Grid height h Output Graph g V E w
  • UDP接收和发送Matlab

    我目前正在努力从外部设备接收数据包 然后将数据发送到另一个设备 我有一个工作 Simulink 模型 但我不知道如何在 Matlab 中对其进行编码 Matlab 中 UDP 接收块的参数如下图所示UDP 接收参数 https i stac
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • 在 Matlab 中将绘图从高斯混合变换为均匀分布

    考虑以下抽签2x1Matlab 中的向量 其概率分布是两个高斯分量的混合 P 10 3 number draws v 1 First component mu a 0 0 5 sigma a v 0 0 v Second component
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA
  • 如何将条形图的 XtickLabels 向左移动?

    我目前正在尝试创建频率直方图 为此 我必须创建一个条形图 条形图之间没有空格 然而 这集中于XTickLabels在酒吧的中间 由于它是一个直方图 我希望数值位于每个条形之间的线上 以便它可以直观地指示间隔 本质上 我需要将所有刻度标签移至
  • 在 Matlab 中保存当前运行的脚本

    有没有办法保存Matlab中当前运行的脚本 我有一个脚本 它会自动备份一组脚本 但如果我更改了当前脚本 则保存的版本将过期 也许可以调用一些java Thanks 在 Yair Altman 网站上的某个地方 请参阅我的其他答案中的链接 他
  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调

随机推荐

  • 微信小程序中断请求的处理,中断 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或