你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 15:10:13 +08:00
Corrected some more grammatical, and spelling mistaktes found in docs
这个提交包含在:
@@ -2,7 +2,7 @@
|
|||||||
Introductory (2D) models
|
Introductory (2D) models
|
||||||
************************
|
************************
|
||||||
|
|
||||||
This section provides some introductory example models in 2D that demonstrate basic features of gprMax. Each example comes with an input file which you can download and run.
|
This section provides some introductory example models in 2D that demonstrate the basic features of gprMax. Each example comes with an input file which you can download and run.
|
||||||
|
|
||||||
.. _example-2D-Ascan:
|
.. _example-2D-Ascan:
|
||||||
|
|
||||||
@@ -24,9 +24,9 @@ The geometry of the scenario is straightforward and an image created from the ge
|
|||||||
.. figure:: ../../images_shared/cylinder_half_space_geo.png
|
.. figure:: ../../images_shared/cylinder_half_space_geo.png
|
||||||
:width: 600 px
|
:width: 600 px
|
||||||
|
|
||||||
Geometry of a 2D model of a metal cylinder buried in a dielectric half-space.
|
The Geometry of a 2D model of a metal cylinder buried in a dielectric half-space.
|
||||||
|
|
||||||
For this initial example a detailed description of what each command in the input file does and why each command was used is given. The following steps explain the process of building the input file:
|
For this initial example, a detailed description of what each command in the input file does and why each command was used is given. The following steps explain the process of building the input file:
|
||||||
|
|
||||||
Determine the constitutive parameters for the materials
|
Determine the constitutive parameters for the materials
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
@@ -47,7 +47,7 @@ These should generally be known, often based on the GPR system or scenario being
|
|||||||
#waveform: ricker 1 1.5e9 my_ricker
|
#waveform: ricker 1 1.5e9 my_ricker
|
||||||
#hertzian_dipole: z 0.100 0.170 0 my_ricker
|
#hertzian_dipole: z 0.100 0.170 0 my_ricker
|
||||||
|
|
||||||
The Ricker waveform is created with the ``#waveform`` command, specifying an amplitude of one, centre frequency of 1.5 GHz and picking an arbitrary identifier of ``my_ricker``. The Hertzian dipole source is created using the ``#hertzian_dipole`` command, specifying a z direction polarisation (perpendicular to the survey direction if a B-scan were being created), location on the surface of the slab, and using the Ricker waveform already created.
|
The Ricker waveform is created with the ``#waveform`` command, specifying an amplitude of one, centre frequency of 1.5 GHz, and picking an arbitrary identifier of ``my_ricker``. The Hertzian dipole source is created using the ``#hertzian_dipole`` command, specifying a z direction polarisation (perpendicular to the survey direction if a B-scan were being created), location on the surface of the slab, and using the Ricker waveform already created.
|
||||||
|
|
||||||
Calculate a spatial resolution and domain size
|
Calculate a spatial resolution and domain size
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
@@ -86,7 +86,7 @@ The time step required for the model is automatically calculated using the :ref:
|
|||||||
Create the objects
|
Create the objects
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
Now physical objects can be created for the half-space and the cylinder. First the ``#box`` command will be used to create the half-space and then the ``#cylinder`` command will be given which will overwrite the properties of the half-space with those of the cylinder at the location of the cylinder.
|
Now physical objects can be created for the half-space and the cylinder. First, the ``#box`` command will be used to create the half-space and then the ``#cylinder`` command will be given which will overwrite the properties of the half-space with those of the cylinder at the location of the cylinder.
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ You should have produced an output file ``cylinder_Ascan_2D.h5``. You can view t
|
|||||||
|
|
||||||
python -m tools.plot_Ascan examples/cylinder_Ascan_2D.h5
|
python -m tools.plot_Ascan examples/cylinder_Ascan_2D.h5
|
||||||
|
|
||||||
:numref:`cylinder_Ascan_results` shows the time history of the electric and magnetic field components and currents at the receiver location. The :math:`E_z` field component can be converted to voltage which represents the A-scan (trace). The initial part of the signal (~0.5-1.5 ns) represents the direct wave from transmitter to receiver. Then comes the reflected wavelet (~1.8-2.6 ns), which has opposite polarity, from the metal cylinder.
|
:numref:`cylinder_Ascan_results` shows the time history of the electric and magnetic field components and currents at the receiver location. The :math:`E_z` field component can be converted to a voltage that represents the A-scan (trace). The initial part of the signal (~0.5-1.5 ns) represents the direct wave from transmitter to receiver. Then comes the reflected wavelet (~1.8-2.6 ns), which has opposite polarity, from the metal cylinder.
|
||||||
|
|
||||||
.. _cylinder_Ascan_results:
|
.. _cylinder_Ascan_results:
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ This example uses the same geometry as the previous example but this time a B-sc
|
|||||||
|
|
||||||
The differences between this input file and the one from the A-scan are the x coordinates of the source and receiver (lines 11 and 12), and the commands needed to move the source and receiver (lines 13 and 14). As before, the source and receiver are offset by 40mm from each other as before but they are now shifted to a starting position for the scan. The ``#src_steps`` command is used to move every source in the model by specified steps each time the model is run. Similarly, the ``#rx_steps`` command is used to move every receiver in the model by specified steps each time the model is run. Note, the same functionality can be achieved by using our Python API to move the source and receiver individually (see the :ref:`Python API <input-api>` section).
|
The differences between this input file and the one from the A-scan are the x coordinates of the source and receiver (lines 11 and 12), and the commands needed to move the source and receiver (lines 13 and 14). As before, the source and receiver are offset by 40mm from each other as before but they are now shifted to a starting position for the scan. The ``#src_steps`` command is used to move every source in the model by specified steps each time the model is run. Similarly, the ``#rx_steps`` command is used to move every receiver in the model by specified steps each time the model is run. Note, the same functionality can be achieved by using our Python API to move the source and receiver individually (see the :ref:`Python API <input-api>` section).
|
||||||
|
|
||||||
To run the model to create a B-scan you must pass an optional argument to specify the number of times the model should be run. In this case this is the number of A-scans (traces) that will comprise the B-scan. For a B-scan over a distance of 120mm with a step of 2mm that is 60 A-scans.
|
To run the model to create a B-scan you must pass an optional argument to specify the number of times the model should be run. In this case, this is the number of A-scans (traces) that will comprise the B-scan. For a B-scan over a distance of 120mm with a step of 2mm that is 60 A-scans.
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
@@ -163,11 +163,11 @@ You can now view an image of the B-scan using the command:
|
|||||||
|
|
||||||
python -m tools.plot_Bscan examples/cylinder_Bscan_2D_merged.h5 Ez
|
python -m tools.plot_Bscan examples/cylinder_Bscan_2D_merged.h5 Ez
|
||||||
|
|
||||||
:numref:`cylinder_Bscan_results` shows the B-scan (of the :math:`E_z` field component). Again, the initial part of the signal (~0.5-1.5 ns) represents the direct wave from transmitter to receiver. Then comes the refelected wave (~2-3 ns) from the metal cylinder which creates the hyperbolic shape.
|
:numref:`cylinder_Bscan_results` shows the B-scan (of the :math:`E_z` field component). Again, the initial part of the signal (~0.5-1.5 ns) represents the direct wave from transmitter to receiver. Then comes the reflected wave (~2-3 ns) from the metal cylinder which creates the hyperbolic shape.
|
||||||
|
|
||||||
.. _cylinder_Bscan_results:
|
.. _cylinder_Bscan_results:
|
||||||
|
|
||||||
.. figure:: ../../images_shared/cylinder_Bscan_results.png
|
.. figure:: ../../images_shared/cylinder_Bscan_results.png
|
||||||
:width: 600px
|
:width: 600px
|
||||||
|
|
||||||
B-scan of model of a metal cylinder buried in a dielectric half-space.
|
B-scan of the model of a metal cylinder buried in a dielectric half-space.
|
||||||
|
@@ -5,7 +5,7 @@ FAQs
|
|||||||
This section provides answers to frequently asked questions about gprMax and its uses. You should also check out our `YouTube channel <https://www.youtube.com/@Gprmax>`_ which contains screencasts and videos that explain how to install gprMax, demonstrate some of its key features, and give example models showing applications.
|
This section provides answers to frequently asked questions about gprMax and its uses. You should also check out our `YouTube channel <https://www.youtube.com/@Gprmax>`_ which contains screencasts and videos that explain how to install gprMax, demonstrate some of its key features, and give example models showing applications.
|
||||||
|
|
||||||
**What applications can gprMax simulate?**
|
**What applications can gprMax simulate?**
|
||||||
gprMax is electromagnetic wave simulation software that is based on the Finite-Difference Time-Domain (FDTD) method. Many of its features have been designed to benefit simulating Ground Penetrating Radar (GPR), however it can be used to simulate many other applications in areas such as engineering, geophysics, archaeology, and medicine.
|
gprMax is electromagnetic wave simulation software that is based on the Finite-Difference Time-Domain (FDTD) method. Many of its features have been designed to benefit simulating Ground Penetrating Radar (GPR), however, it can be used to simulate many other applications in areas such as engineering, geophysics, archaeology, and medicine.
|
||||||
|
|
||||||
**Why does gprMax not have a GUI?**
|
**Why does gprMax not have a GUI?**
|
||||||
We considered developing a CAD-based graphical user interface (GUI) but, for now, decided against it. There were two guiding principals behind this design decision: firstly, users most often perform a series of related simulations with varying parameters to solve or optimize a particular problem; and secondly, we decided the limited resources we had were best concentrated on developing advanced modelling features for GPR within software that could easily be interfaced with other tools. Although a CAD-based GUI is useful for creating single simulations it becomes increasingly cumbersome for a series of simulations or where simulations contain heterogeneities, e.g. a model of a soil with stochastically varying electrical properties.
|
We considered developing a CAD-based graphical user interface (GUI) but, for now, decided against it. There were two guiding principals behind this design decision: firstly, users most often perform a series of related simulations with varying parameters to solve or optimize a particular problem; and secondly, we decided the limited resources we had were best concentrated on developing advanced modelling features for GPR within software that could easily be interfaced with other tools. Although a CAD-based GUI is useful for creating single simulations it becomes increasingly cumbersome for a series of simulations or where simulations contain heterogeneities, e.g. a model of a soil with stochastically varying electrical properties.
|
||||||
@@ -14,7 +14,7 @@ We considered developing a CAD-based graphical user interface (GUI) but, for now
|
|||||||
gprMax is released under the `GNU General Public License v3 or higher <http://www.gnu.org/copyleft/gpl.html>`_. This means when distributing derived works, the source code of the work must be made available under the same license.
|
gprMax is released under the `GNU General Public License v3 or higher <http://www.gnu.org/copyleft/gpl.html>`_. This means when distributing derived works, the source code of the work must be made available under the same license.
|
||||||
|
|
||||||
**Where does the name gprMax come from?**
|
**Where does the name gprMax come from?**
|
||||||
The name gprMax comes from the joining of the acroymn for Ground Penetrating Radar - **gpr** - and the name of the Scottish scientist who formulated the classical theory of electromagnetic radiation, `James Clerk Maxwell <https://en.wikipedia.org/wiki/James_Clerk_Maxwell>`_ - **Max**.
|
The name gprMax comes from the joining of the acronym for Ground Penetrating Radar - **gpr** - and the name of the Scottish scientist who formulated the classical theory of electromagnetic radiation, `James Clerk Maxwell <https://en.wikipedia.org/wiki/James_Clerk_Maxwell>`_ - **Max**.
|
||||||
|
|
||||||
**Do I need to learn Python to use gprMax?**
|
**Do I need to learn Python to use gprMax?**
|
||||||
No, you can use gprMax purely through commands in your input. However, gprMax also has a Python API which can be used to create more complex simulations and scripting.
|
No, you can use gprMax purely through commands in your input. However, gprMax also has a Python API which can be used to create more complex simulations and scripting.
|
||||||
@@ -22,8 +22,8 @@ No, you can use gprMax purely through commands in your input. However, gprMax al
|
|||||||
**Can I still do all my pre/post-processing for gprMax in MATLAB?**
|
**Can I still do all my pre/post-processing for gprMax in MATLAB?**
|
||||||
Yes, `MATLAB has built-in functions to read HDF5 files <http://uk.mathworks.com/help/matlab/high-level-functions.html>`_.
|
Yes, `MATLAB has built-in functions to read HDF5 files <http://uk.mathworks.com/help/matlab/high-level-functions.html>`_.
|
||||||
|
|
||||||
**Can I convert my output file to a text file, e.g. to import into Microsoft Excel**
|
**Can I convert my output file to a text file, e.g. to import it into Microsoft Excel**
|
||||||
Yes, we recommend you download `HDFView <https://support.hdfgroup.org/products/java/hdfview/>`_ which is free viewer for HDF files. You can then export any of datasets in the output file to a text (ASCII) file that can be imported into Microsoft Excel. To do so right-click on the dataset in HDFView and choose Export Dataset -> Export Data to Text File.
|
Yes, we recommend you download `HDFView <https://support.hdfgroup.org/products/java/hdfview/>`_ which is a free viewer for HDF files. You can then export any of the datasets in the output file to a text (ASCII) file that can be imported into Microsoft Excel. To do so right-click on the dataset in HDFView and choose Export Dataset -> Export Data to Text File.
|
||||||
|
|
||||||
**How do I choose a spatial resolution for my simulation?**
|
**How do I choose a spatial resolution for my simulation?**
|
||||||
Spatial resolution should be chosen to mitigate numerical dispersion and to adequately resolve geometry in your simulation. :ref:`A 2D example of modelling a metal cylinder in a dielectric <example-2D-Ascan>` provides guidance on how to determine spatial resolution.
|
Spatial resolution should be chosen to mitigate numerical dispersion and to adequately resolve geometry in your simulation. :ref:`A 2D example of modelling a metal cylinder in a dielectric <example-2D-Ascan>` provides guidance on how to determine spatial resolution.
|
||||||
|
@@ -9,10 +9,10 @@ This section highlights some of the key features of gprMax that are useful for G
|
|||||||
Python API
|
Python API
|
||||||
==========
|
==========
|
||||||
|
|
||||||
There is now a **Python API**, which includes all the functionality of the input file (hash) commands as well as several more advanced features. It allows users to access to gprMax functions directly from Python through importing the gprMax module. This method is recommended for those who prefer to use Python or need access to specific API-only advanced features, and is described in the :ref:`Python API <input-api>` section. There are several advantages to using the Python API:
|
There is now a **Python API**, which includes all the functionality of the input file (hash) commands as well as several more advanced features. It allows users to access to gprMax functions directly from Python by importing the gprMax module. This method is recommended for those who prefer to use Python or need access to specific API-only advanced features, and is described in the :ref:`Python API <input-api>` section. There are several advantages to using the Python API:
|
||||||
|
|
||||||
1. Users can take advantage of the Python language - for instance, the structural elements of Python can be utilised more easily.
|
1. Users can take advantage of the Python language - for instance, the structural elements of Python can be utilised more easily.
|
||||||
2. gprMax objects can be used directly within functions, classes, modules and packages. In this way collections of components can be defined, reused and modified. For example, complex targets can be imported from a separate module and combined with an antenna from another module.
|
2. gprMax objects can be used directly within functions, classes, modules and packages. In this way, collections of components can be defined, reused, and modified. For example, complex targets can be imported from a separate module and combined with an antenna from another module.
|
||||||
3. The API can interface with other Python libraries. For example, the API could be used to create a parametric antenna and the external library Scipy could then be used to optimise its parameters.
|
3. The API can interface with other Python libraries. For example, the API could be used to create a parametric antenna and the external library Scipy could then be used to optimise its parameters.
|
||||||
|
|
||||||
Subgridding
|
Subgridding
|
||||||
|
在新工单中引用
屏蔽一个用户