最近在学习gprmax的使用,国内网上有关gprmax的经验帖子有些陈旧,分享一些自己最新的软件安装配置以及实际三维建模的经验,希望能帮助到需要使用这款软件的朋友。

目录

一、gprmax3.0下载与安装

1. Anaconda&Miniconda下载与安装

2. gprmax下载

3.安装Microsoft Visual C++2019 Tools

4.gprmax安装

5.GPU配置

二、gprmax3.0建模

2.1 二维建模指令

2.2 查看vti模型

2.2 三维模型以及C-scan图绘制


一、gprmax3.0下载与安装

软件包的下载地址:https://github.com/gprmax/gprMax

该网址下拉也能看到gprmax的安装英文教程

1. Anaconda&Miniconda下载与安装

可前往官网下载anaconda(https://www.anaconda.com/products/individual)或者miniconda(https://docs.conda.io/en/latest/miniconda.html),注意在安装的时候点击添加环境变量如下图红字部分需要勾选。

2. gprmax下载

打开cmd命令提示符(win+R打开运行框输入cmd即可),依次输入如下

conda update conda  #更新conda到最新版本
conda install git   #安装git
git clone https://github.com/gprMax/gprMax.git  #下载gpmax包
cd gprMax  #目录导航到gprmax文件夹下
conda env create -f conda_env.yml  #在anaconda的env文件下加载gprmax模块

其中git clone https://github.com/gprMax/gprMax.git 可能因为网络问题下载过程中链接中断,如果中断下载失败了的话再多试几次就行了,也可以直接从https://github.com/gprMax/gprMax上下载Zip压缩包(git命令一般默认下载到C:\Users\Administrator路径下),如下图所示。

3.安装Microsoft Visual C++2019 Tools

可以前往官网直接下载VS2019,为精简可只下载VS2019的生成工具(下载地址:https://docs.microsoft.com/zh-cn/visualstudio/?view=vs-2022)

*注:最好不要下载超过2019版本的VS或工具,后续GPU配置会失败

官网下载的是VS的安装软件,注意勾选C++桌面开发作为工作负荷,以及勾选MSVC v142和Windows 10 SDK(默认是勾选上的),安装位置为了后续方便默认就好。

安装完成后需添加以下环境变量到系统path(注意根据实际路径修改)

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.23.28105\bin\Hostx64\x64

4.gprmax安装

打开cmd,激活gprmax环境并cd导航到gprmax目录(左边括号是conda的环境,不用输入)

(base)conda activte gprMax
(gprMax)python setup.py build
(gprMax)python setup.py install

这里目前最新2022/1/9版本的gprmax3.15在build操作时可能会出现错误 “~/c1.exe” failed with exit code 2,解决方法有两种:

①安装旧版本gprmax

②删除目录文件gprMax\cython\fields_updates_dispersive.pyx

成功安装完成后运行一个Ascan测试:

(base)conda activate gprMax
(gprMax)cd gprMax
(gprMax)python -m gprMax user_models/cylinder_Ascan_2D.in
(gprMax)python -m tools.plot_Ascan user_models/cylinder_Ascan_2D.out

成功绘制图形说明安装完成。

5.GPU配置

要进行GPU加速,首先电脑必须配置NVIDIA图形显卡。GPU加速可以提升运算速度2-5倍。

CUDA下载

首先要查看电脑能支持的CUDA版本,这里贴一下其他博主介绍的方法:CUDA版本查看

然后前往官网下载对应版本的CUDA tookit:官网链接

下载完成后,默认路径安装,添加环境变量到系统path

C:\Program Files\NVIDIA GPU Computing Tookit\CUDA\vX.X\bin

打开cmd,输入nvcc -V,正确显示如下说明安装成功。

pycuda安装

打开cmd,用pip安装

conda activate gprMax
pip install pycuda

GPU加速 

在in文件后加上-gpu即可,如

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

*注:此时运行结束可能出现错误如下:

解决方式已有博主答出https://blog.csdn.net/weixin_44385758/article/details/101721599

这里另附一条:如果只下载了VS的工具,安装的MicroSoft VisualStudio/2019/VC下没有bin文件夹的话,可以参考VS2019配置MSVC环境变量的方法去解决。

链接:Visual Studio 2019 配置 MSVC 环境变量,使用命令行编译。_westinyang blog-CSDN博客
在cmd里输入cl正确显示编译器信息的话就说明配置成功了。

二、gprmax3.0建模

gprmax的二维建模已有许多经验贴,在这里重点介绍一些其他博主可能没提到的细节以及三维建模。

2.1 二维建模指令

#domain: x y z  表示模型空间大小,表示二维时z设置为网格dz的大小。

#dx_dy_dz: 0.01 0.01 0.01 表示模型网格大小为1cm*1cm*1cm

#time_window: 2e-8 设置时间窗口为20ns

*注:时间窗口至少需要包含电磁波在介质中的最大往返时间,同时时间窗口的大小会影响模型运行的速度,时间窗口越小运行计算量越少,程序跑的更快。

#material: a b c d name 自定义材质参数分别表示相对介电常数,电导率(S/m),相对磁化率和磁损

*注:

①如果想设置参数为无穷大可以使用inf

②软件正常运行必须保证电磁波在某材质运行时,波长能由十个以上的网格表示,所以这里相对介电常数和模型网格大小其实是有关联的,会影响到模型误差。否则可能会出现如下警告:

Numerical dispersion analysis: estimated largest physical phase-velocity error is -0.70% in material 'water' whose wavelength sampled by 12 cells. Maximum significant frequency estimated as 5.99141e+08Hz

又因为模型电磁波频率会影响到波长,所以三者应综合考虑。

#waveform: ricker 1 200e6 my_ricker 自定义电磁波类型参数分别表示波的类型(例子中定义的是ricker波),波的振幅(m),中心频率(Hz),波的名称。

#python:

...

#end_python:

表示调用python,里面可以根据python的语法输入代码,最常用的方式就是print(),可以根据这种方法定义环线勘测等。

举个例子:

#python:
import numpy as np
print('#hertzian_dipole: z {} {} 1.0 my_ricker'.format(2*np.sin(np.radians(90+(current_model_run)*0.1)),2*np.cos(np.radians(90+(current_model_run)*0.1))))
print('#rx: {} {} 1.0'.format(2*np.sin(np.radians(91+(current_model_run)*0.1)),2*np.cos(np.radians(91+(current_model_run)*0.1))))
#end_python:

其中print括号中的{}由format()里的参数替代,以上代码表示的是发射点和接收点绕半径为2m,圆心在原点的圆旋转。

*注:current_model_run表示的是当前模型是Bscan运行的第几个模型

#cylinder_sector: z 0 0 0 2.00 3 30 1 free_space 表示绘制圆柱体的部分扇形区域,其中参数z表示圆柱体上下底面垂直于Z轴,0 0 0 表示下底面圆圆心位置,2.00表示上底面圆圆心位置,3表示底面圆半径,30 1表示扇形区域为[30°,31°]。

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

生成建立模型的VTK可视化文件,参数是可视化文件域左下坐标和右上坐标,各轴网格大小,model是模型文件名,n是可调参数表示正常输出,f表示细节输出,当你只想检查模型的几何模型的形状时,可以使用可选命令参数-geometry-only运行gprMax,这样不会运行正演模拟。

#snapshot:0 0 0 0.240 0.170 0.002 0.002 0.002 0.002 1e-9 snap1

生成波场快照VTK可视化文件,前9个参数同上,第10个参数是以秒为单位的时间(浮点数)或迭代次数(整数),表示将进行快照的时间点;第11个参数是存储快照文件的名称

2.2 查看vti模型

下载paraview,官网链接:https://www.paraview.org/download/

*注:paraview2022/1/9的最新版本v5.10加载的vti图像材质全部统一在一起,建议下载使用v5.9版本

添加gprmax插件,如下图。插件路径:gprmax\tools\Paraview macros

加载模型只需要打开模型vti文件,并点击gprmax-info即可。

2.2 三维模型以及C-scan图绘制

gprmax不专门提供C-scan图绘制的命令,所以需要提取出数据自己绘制,其中gprmax运行生成的out文件是h5文件。gprmax提供matlab的对应Bscan绘制函数接口,路径为:gprMax\tools\MATLAB_scripts\plot_Bscan.m,可通过修改该脚本绘制C-scan图。

用matlab打开该脚本文件,可以看到绘制Bscan图的主要函数是imagesc,其中道数参数为traces,信号强度为field,时间为time,利用这三个参数绘制三维切片图,由于我没找到imagesc函数的三维图绘制方法,最后使用的是surf函数,具体实施方式只是matlab的可视化处理,这里只提供绘制C-scan图的思路。

C-scan绘制部分matlab代码:

[x,y]=meshgrid(traces,time);
Z=ones(numel(time),numel(traces))*0.02;
C=field;
h1=surf(Z,x,y,C,'FaceAlpha',0.75);
hold on;
set(gca,'zdir','reverse');
h1.EdgeColor='none';

以下是随意绘制的未处理信号的C-scan图

gprmax3.0安装与三维建模相关推荐

  1. gprMax3.0安装教程

    gprMax3.0安装教程 一.gprMax3.0安装步骤 1.安装anaconda或者miniconda 2.安装git 3.下载gprMax包 4.安装支持OpenMP的C编译器 5.建立安装gp ...

  2. 重建大师6.0多源通吃!卫星建模、下视影像三维建模、点云融合建模...

    当前,实景三维中国建设向深水区迈进,大范围.高效率.多数据源的实景三维数据生产将成为发展趋势. 为进一步响应自然资源部国土测绘司编制的<城市三维模型快速构建工作方案(征求意见稿)>,大势智 ...

  3. gprMax3.0极速离线安装教程

    gprMax3.0极速离线安装教程 简介 一.具体安装步骤 1.安装anaconda 2.解压百度网盘中的gprMax文件到对应文件夹 二.测试是否安装成功 简介 探地雷达研究方向目前已经成为了一个研 ...

  4. 三维建模软件的插件安装教程——3D Max

    大家在使用三维建模软件3D Max的时候一定遇到过插件不知道如何安装的情况,今天我将把常用插件的类型和扩展名罗列如下方便大家安装收集也算抛砖引玉望各位高手查漏补缺不吝赐教. 3DSMAX的插件名后缀主 ...

  5. Autodesk 3dsMax 2023 三维建模动画渲染软件安装说明

    前言 3dsMax是一款功能强大的3D建模和动画解决方案,游戏开发人员,视觉效果艺术家和图形设计师使用它来创建广阔的世界,令人惊叹的场景以及引人入胜的虚拟现实(VR)体验. 3dsMax 2023 3 ...

  6. Rhinoceros mac版(犀牛三维建模软件)中文版

    犀牛Rhinoceros mac版是非常受欢迎的一款三维建模软件,rhinoceros mac 中文版可应用于三维动画制作.机械设计.建筑设计.工业制造等,具备全面的NURBS.网格.分析.制图等工具 ...

  7. 基于OpenCASCADE自制三维建模软件(六)瓶子模型例程

    文章目录 概述 预备知识 模型 规格 一.构建轮廓 定义支持点 定义几何图形 定义拓扑结构 完成轮廓 二.构建瓶身 拉伸轮廓 倒角 添加瓶颈 创造中空的实体 三.构建螺纹 创建表面 定义二维曲线 创建 ...

  8. UG/NX 8.0安装方法(图文详解)

    UG8.0,自从被西门子收购后改名为NX,也称NX8.0,作为一款非常优秀三维模具设计软件.他可以针对用户的虚拟产品设计和工艺设计的需求,提供经过实践验证的解决方案.其以全面的设计概念.良好的界面受到 ...

  9. Blender 3.0机器人硬面建模材质渲染全流程学习课程

    学习在Blender中建模硬表面机器人角色 你会学到什么 Blender 3.0建模工具 Blender 3.0硬面人物造型 机器人角色的UV展开 如何在Blender中渲染 MP4 |视频:h264 ...

最新文章

  1. Blender全流程制作真实感3D产品学习教程
  2. 数据库启动时报ORA-00845错误解决方法
  3. 提高SQLite每秒INSERT的性能?
  4. java 如何开启一个线程_Java-开启一个新的线程
  5. caffe之特征图可视化及特征提取
  6. matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)
  7. Android 进程间通信
  8. python模块 - functools模块
  9. 研究生信息管理系统(C++实现)
  10. js_单例模式制作无限弹窗(3s内销毁)
  11. 国内数据资源共享平台介绍
  12. java 编辑器_推荐 5 款牛逼的代码编辑器
  13. xp镜像文件的product key
  14. 英语四级口语测试软件,2021年大学英语四级口语测试题
  15. Django项目于之在线教育平台网站的实战开发(一)
  16. 华为荣耀5cvs华为v9play_荣耀v9play和华为畅享7哪个好? 区别对比分析,只有资深花粉才知道...
  17. BlueKing3-作业平台
  18. 空气能热水器的优惠价格在哪里找?
  19. 第1章 开篇-为什么要做CI/CD?
  20. 办公技巧:常用的100个Word快捷键

热门文章

  1. 长连接与短连接、全双工与半双工,单工
  2. camunda-external-task-java外部任务项目启动失败,Error creating bean with name ‘externalTaskClient‘: .....
  3. 【C++】设计算法求1000以内的质数数量
  4. python字符编码正确的是_如何正确处理python2.7中的字符编码?
  5. 深度学习笔记 —— 数据增广
  6. Eslint快速入门和使用技巧-教程
  7. java 修改mac地址_Win10系统修改通过注册表修改网卡mac地址
  8. 修改VMware虚拟机网卡MAC地址
  9. 【爬虫实战】python爬取中国最好大学排行榜
  10. python lncrna_一种基于序列组成,结构信息及理化特征的lncRNA鉴定方法与流程