empymod icon indicating copy to clipboard operation
empymod copied to clipboard

Add GPR comparison

Open prisae opened this issue 7 years ago • 1 comments

Create a comparison example with gprMax, to

  • verify correctness of empymod.model.gpr,
  • get an idea how they compare in terms of speed.

As comparison could serve these examples:

  • https://github.com/empymod/article-geo2017/blob/master/notebooks/gpr-figure.ipynb
  • https://github.com/empymod/article-fdesign/blob/master/notebooks/09-Figure_GPR.ipynb

prisae avatar Feb 14 '18 14:02 prisae

Thanks to Anja Klotzsche who provided some useful information which can serve as a starting point to get going with gprMax:


I quickly run the model for cells of 3 cm in y and x and also created the input for cells of 1 cm in all directions. Check what you need. The 1 cm model will take long...

In the array command you can also add more traces. I just made it exactly as in the image (see https://github.com/empymod/article-fdesign/blob/master/figures/Figure-9.pdf). If you need a comparable GPR image as in the right plot you have simply have to add many more receivers.

Below a few comments how to let it run in Python.

You might have to play around with the height of Tx and the cell size. One could probably make the model smaller in 3D, but I always check that I have roughly 10 cells for the PML in each direction.


If you want to use the gprmax built-in plotting commands to get a figure of the shot gather, you will need to run the input file version that contains the receiver step sizes (#rx_steps) and use the run command:

python -m gprMax path_to_your_input_file/input_model.in -n 12

in which -n 12 denotes the number of steps that your antennas will do. After the run you will need to merge the output files by using the command:

python -m tools.outputfiles_merge path_to_your_output_file/name_of_output_file

and you will be able to plot the shot gather with:

python -m tools.plot_Bscan path_to_your_output_file/output_file_merged.out Ez

If you only want to look at the single traces that each receiver gathered or if you are willing to write your own (/rewrite the gprmax built-in) plotting code to combine the single traces, you can run a single AScan using an receiver array option by using the command:

python -m gprMax path_to_your_input_file/input_model.in 

This is going to run a lot (in this case by 12 times) faster than the Bscan but the gprmax functions tools.outputfiles_merge and tools.plot_Bscan are not going to work anymore. To look at each single trace use:

python -m tools.plot_Ascan path_to_your_output_file/output_file.out

This will open multiple figures. The command has the additional option to select specific field components (--output EZ) and/or FFT (-fft)

synmodel_3D_Dieter_merged


Input synmodel_3D_Dieter.in

#title: synmodel
#domain: 4.41 3.0 2.01
#dx_dy_dz: 0.03 0.01 0.03
#time_window: 100e-9

#material: 9  0.005 1 0 sed1
#material: 15 0.005 1 0 sed2

#waveform: ricker 1 250e6 my_ricker
#hertzian_dipole: z 1.2 2.01 1.02 my_ricker

#rx_array: 1.02 1.5 1.02 3.33 1.5 1.02 0.21 0 0

#box: 0 0 0 4.41 2 2.01 sed1
#box: 0 0 0 4.41 1 2.01 sed2

#geometry_view: 0 0 0 4.41 3.0 2.01 0.03 0.01 0.03 synmodel n

Input synmodel_3D_Dieter_01.in

#title: synmodel
#domain: 4.4 3.0 2.0
#dx_dy_dz: 0.01 0.01 0.01
#time_window: 100e-9

#material: 9  0.005 1 0 sed1
#material: 15 0.005 1 0 sed2

#waveform: ricker 1 250e6 my_ricker
#hertzian_dipole: z 1.2 2.0 1.0 my_ricker

#rx_array: 1.0 1.5 1.0 3.2 1.5 1.0 0.2 0 0

#box: 0 0 0 4.4 2.0 2.0 sed1
#box: 0 0 0 4.4 1.0 2.0 sed2

#geometry_view: 0 0 0 4.4 3.0 2.0 0.01 0.01 0.01 synmodel n

prisae avatar Sep 01 '20 12:09 prisae