gprmax 3.0 安装、GPU配置与cmd、pycharm(或jupyter)运行gprmax详细教程

0、引言

本人最近也正学习gprmax仿真,在安装和使用过程中也遇到了许多问题,例如系统问题,cmd操作不便等等,希望我的一些经验能对你有一定的帮助,相关问题请随时关注gpramx官网

在安装或使用过程中有什么问题可通过邮箱1593458764@qq.com联系我,希望能多相互交流学习,共同进步。
特别说明:由于本人最近闲暇时间太少,不再提供免费安装等服务,望理解!
新版本win10安装大同小异,可看新发教程

2021-11-7 更新了结果画图闪退问题的解决方法

1. 下载gprmax包

点击此处进入下载

2. 安装

2.1 安装anaconda(添加至环境变量)

2.2.1 anaconda安装最后一步可选添加至环境变量和默认python解释器

2.2.2 若安装anaconda时没选择添加至环境变量,可选择右键“我的电脑”>选择“属性”>高级系统设置>环境变量

在系统变量中找到path,点击编辑,将光标移到最后面,输入一个分号 ( ; ),将anaconda安装目录下scips文件夹的路径复制到分号后(注意使用英文输入法),确定,保存关闭,重启anaconda

  • 注:考虑内存等问题可安装miniconda,但后续过程可能出现较多问题。
  • 软件下载地址:官网清华镜像源
  • *嫌占空间可以安装Miniconda,下载地址

2.2 更新conda

conda update conda

2.3 安装git

git 用来clone gprmax的安装包,直接从github下载安装包的跳过此步

conda install git
git clone https://github.com/gprmax/gprMax

2.3 安装gprmax所需包

#导航至gprmax顶级目录,这里我是直接将gprmax文件夹放在桌面了,其他盘使用cmd命令导航至其所在目录即可
cd desktop
cd gprmax
conda env create -f conda_env.yml

2.5 安装microsoft visual c++2015

利用microsoft visual c++2015 tool进行安装,自定义安装,只选择安装与你Windows版本一致的SDK(Windows版本一般有两个SDK可选择,选与windows版本相符的即可,当然怕选错也可以直接安装完全版)

2.6 安装gprmax

#激活目录
conda activate gprMax
#安装
python setup.py build
python setup.py install

2.7 安装完成验证

python -m gprMax user_models/cylinder_Ascan_2D.in
python -m tools.plot_Ascan user_models/cylinder_Ascan_2D.out

3. 注意

3.1 注意

以上安装步骤均在cmd命令窗口进行
安装完成后后续仿真过程中需激活gprmax目录

3.2 说明

  • conda 有base环境,我们的gprMax安装在新创建的虚拟环境gprMax环境中,针对gprmax的安装卸载包都得在gprMax环境下进行
  • 最近的版本创建gprMax环境时conda安装的matplotlib包版本有问题,可能出现得到能仿真但是结果图出现闪退的现象,解决方法是先用conda卸载,再用pip重装就行
conda activate gprMax
conda uninstall matplotlib
pip install matplotlib

关于快照功能参考:https://tieba.baidu.com/p/6129017590

4. GPU配置

gprMax的计算量主要集中在FDTD循环求解,可使用GPU加速,gprmax只支持NVIDIA CUDA的GPU。

4.1 安装NVIDIA CUDA。

通过NVIDIA CUDA Toolkit进行安装,安装教程参考NVIDIA CUDA Toolkit文档。必须确保所安装的CUDA版本与所使用的编译器版本兼容。可以在CUDA安装指南中“系统要求”下找到不同系统对应的cuda版本。

4.2 添加用户环境变量

  1. 将 CUDA编译器(nvcc)的位置添加到用户路径环境变量中,对于Windows 系统nvcc位置为:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin

4.3 安装pycuda包。

打开命令提示符(Windows),导航到顶级gprMax目录,运行

conda activate gprMax
pip install pycuda

4.4 可能出现的错误

PyCUDA ERROR: the context stack was not empty upon module cleanup

解决方法:将VC下bin文件夹添加到环境变量(非常感谢罗大哥的帮助),对于Windows 系统

  • 若还是不行可能是CUDA版本、VS版本、pycuda版本的问题、gprmax没安装完整。
  • 用户环境变量添加完成后需要确保点了确定(有两次)
  • 设置好后需要关掉之前的cmd或pycharm重新打开。
  • 有可能出现gprmax在cmd能运行gpu版本,但通过python代码方式却报错,感谢网友炎黄给出的解决方法是:安装特定版本号的spyder-kernels,版本不能太新。
C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\bin

4.5 GPU运行

#cmd
python -m gprMax user_models/cylinder_Ascan_2D.in -gpu
# pycharm (具体见第6节)
api(filename, n=1, geometry_only=False,gpu={0}) #geometry_only:仅几何图形,花括号为GPU ID

5. cmd命令运行gprmax

#cmd命令窗口运行gprmax

cd desktop\gprmax  #导航至gprmax顶级目录
conda activate  gprmax  #激活gprmax目录
python -m gprMax user_models/inputfilename.in #A扫描模拟生成.out文件
python -m gprMax user_models/inputfilename.in -n 50 #B扫描模拟生成n个.out文件
python -m tools.plot_Ascan/outputfilename.out #A扫描绘图
python -m tools.plot_Ascan/my_outputfilename.out --outputs Ez -fft #绘制Ez分量及其fft图
python -m tools.plot_Bscan/outputfile_merged.out rx-component  #B扫描绘图
#多个A扫描.out文件合并成一个.out文件
python -m tools.outputfiles_merge user_models/outputfilebase
#多个A扫描.out文件合并成一个.out文件并删除单独A扫描的文件
python -m tools.outputfiles_merge user_models/outputfilebase --remove-files

6、pycharm运行gprmax

6.1 模型仿真

新建项目,解释器选择为gprmax对应的python解释器即可通过pycharm运行gprmax,项目下新建名为“iofiles”的文件夹

# python运行gprmax
# 读取.in文件
# 运行api函数模拟

import os
from gprMax.gprMax import api
#文件路径+文件名
dmax=r".\" # pycharm项目当前目录
filename = os.path.join(dmax, 'concrete.in')
#正演  n:仿真次数(A扫描次数)->B扫描
api(filename, n=1, geometry_only=False) #geometry_only:仅几何图形
merge_files(r".\iofiles\concrete", removefiles=True)

6.2、 A扫描绘图

"""A扫描"""
import os
from gprMax.receivers import Rx
from tools.plot_Ascan import mpl_plot
dmax=r".\" # pycharm项目当前目录
filename = os.path.join(dmax,'iofiles', 'concrete.out')
outputs = Rx.defaultoutputs
outputs = ['Ez'] # Ez分量
plt = mpl_plot(filename,outputs, fft=True) #波形图,fft:频谱图

6.3、 B扫描及保存回波数据

"""B扫描绘图"""
import os
import numpy
from tools.plot_Bscan import get_output_data, mpl_plot

dmax=r".\" # pycharm项目当前目录
filename = os.path.join(dmax, 'iofiles', 'concrete_merged.out')
rxnumber = 1
rxcomponent = 'Ez'
#获取回波数据
outputdata, dt = get_output_data(filename, rxnumber, rxcomponent)
#保存回波数据
numpy.savetxt('wavedata.txt',outputdata,delimiter=' ')
#绘图
plt = mpl_plot(filename,outputdata, dt, rxnumber, rxcomponent)

7、jupyter运行gprmax

jupyter运行gprmax代码与pycharm一样,安装gprmax时会自带安装jupyter

  • 18
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 82
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值