Pycharm运行gprmax3.0具体步骤
程序员文章站
2022-03-08 17:29:10
...
0. 介绍
- 之前的博客中简单讲到了gprmax3.0安装使用过程中的一些问题(点此进入),pycharm运行gprmax能避免cmd操作中反复复制粘贴的过程,便于模拟,对仿真数据量较大时特别有用,尤其是机器学习、深度学习所需大量数据的仿真,这篇博客主要介绍如何在pycharm中配置gprmax以及其使用方法
- 欢迎交流:aaa@qq.com
1. 配置步骤
2. 使用pycharm进行仿真
2.1 打开项目
- 解压concrete.zip(点击此处下载),解压后的文件夹通过pycharm以项目方式打开。
- 通过File->setting选择第一步中添加的gprmax解释器。
2.2 A扫描仿真
"""
python运行gprmax
读取.in文件
运行api函数模拟
"""
import os
import numpy as np
import matplotlib.pyplot as plt
from gprMax.gprMax import api
from tools.outputfiles_merge import get_output_data, merge_files
#文件路径+文件名
dmax=r".\GprmaxCode" #项目目录
filename = os.path.join(dmax,'concrete_Ascan_2D.in')
#正演 n:仿真次数(A扫描次数)->B扫描
api(filename, n=1, geometry_only=False) #geometry_only:仅几何图形
#merge_files(r".\GprmaxCode\concrete_Ascan_2D", removefiles=True)
# 获取回波数据
# A B扫描时out文件名不一样
filename = os.path.join(r".\GprmaxCode\concrete_Ascan_2D.out")
rxnumber = 1
rxcomponent = 'Ez'
outputdata, dt = get_output_data(filename, rxnumber, rxcomponent)
# 保存回波数据
np.savetxt('concrete_Ascan_2D.txt',outputdata,delimiter=' ')
## B扫描绘图
#from tools.plot_Bscan import mpl_plot
#plt = mpl_plot(filename,outputdata, dt*1e9, rxnumber, rxcomponent)
#plt.ylabel('Time [ns]')
#plt.show()
## A扫描绘图
from tools.plot_Ascan import mpl_plot
from gprMax.receivers import Rx
outputs = Rx.defaultoutputs
outputs = ['Ez']
print(outputs)
plt = mpl_plot(filename, outputs)
plt.show()
结果:
2.3 B扫描仿真
- in文件中要加天线移动步长
- B扫描时要取消屏蔽merge_files和绘制B扫描图的程序
- 通过merge_files合并各道数据文件时要删除之前A扫描留下的out文件
- 仿真完成后保存B回波数据和绘图等都是对merge_files合并后的数据进行处理,所以程序中对应文件名要改为concrete_Ascan_2D_merged.out
"""
"""
python运行gprmax
读取.in文件
运行api函数模拟
"""
import os
import numpy as np
import matplotlib.pyplot as plt
from gprMax.gprMax import api
from tools.outputfiles_merge import get_output_data, merge_files
#文件路径+文件名
dmax=r".\GprmaxCode" #项目目录
filename = os.path.join(dmax,'concrete_Ascan_2D.in')
#正演 n:仿真次数(A扫描次数)->B扫描
api(filename, n=2, geometry_only=False) #geometry_only:仅几何图形
merge_files(r".\GprmaxCode\concrete_Ascan_2D", removefiles=False)
# 获取回波数据
# A B扫描时out文件名不一样
filename = os.path.join(r".\GprmaxCode\concrete_Ascan_2D_merged.out")
rxnumber = 1
rxcomponent = 'Ez'
outputdata, dt = get_output_data(filename, rxnumber, rxcomponent)
# 保存回波数据
np.savetxt('concrete_Bscan_2D.txt',outputdata,delimiter=' ')
## B扫描绘图
from tools.plot_Bscan import mpl_plot
plt = mpl_plot(filename,outputdata, dt*1e9, rxnumber, rxcomponent)
plt.ylabel('Time [ns]')
plt.show()
## A扫描绘图
#from tools.plot_Ascan import mpl_plot
#from gprMax.receivers import Rx
#outputs = Rx.defaultoutputs
#outputs = ['Ez']
#print(outputs)
#plt = mpl_plot(filename, outputs)
#plt.show()
结果:
上一篇: 安装mysql8.0的步骤
推荐阅读