Outputs and Postprocessing
This page explains the file outputs that elfe3D_GPR writes and the tools available for postprocessing.
Solver Outputs
The solver writes electric and magnetic field results to the configured output files. These are typically stored in:
out_<experiment_name>/electric_fields*out_<experiment_name>/magnetic_fields*
For elfe3D_GPR, the output files contain columns with frequency, receiver coordinates and the field components for the recorded receiver lines. The text output files are commonly grouped in two ways:
per frequency, using files of names with
*_receiver_lineappended to the base name,per receiver location, using files with the base names.
Ordering is always by increasing receiver number.
The file headers in the electric and magnetic field text files are as follows:
frequency coordinate_x coordinate_y coordinate_z Ex_real Ex_imaginary Ey_real Ey_imaginary Ez_real Ez_imaginary
frequency coordinate_x coordinate_y coordinate_z Hx_real Hx_imaginary Hy_real Hy_imaginary Hz_real Hz_imaginary
The elfe3D_GPR Python I/O module also writes .vtk field distributions for visualization.
These .vtk files capture the computed electromagnetic field component over the mesh volume and can be opened
in tools like ParaView or other VTK-compatible viewers.
In the current workflow, .vtk files are usually generated during refinement or output
if output_fields_vtk is enabled, and they typically store field data for the first frequency only.
Python Module Visualization
The repository includes helper modules in io/outputs for reading, processing, and visualizing results:
io.outputs.fieldreader: loaders for solver output and analytical reference data in different formats.io.outputs.visualize: plotting classes for receiver-line comparison and error analysisio.outputs.postprocess: additional processing utilities for field comparisons and statistics
These modules are intended to support notebook-based analysis of solver output.
Common output tools used in the example notebooks
The example notebooks demonstrate the most common output workflow for elfe3D_GPR:
AnalyticalLoaderloads semi-analytical reference solutions from CSV files.ElfeLoaderreads solver-generated receiver-line output, especiallyelectric_fields_receiver_line.txt.ReceiverLinePlotcompares multiple datasets on a 2x2 grid of amplitude, phase, real, and imaginary components.ReceiverLineErrorPlotplots normalized errors relative to a reference dataset in a 2x2 layout.ReceiverLineCombinedshows one numerical dataset together with an analytical reference on the top row and the corresponding errors on the bottom row.ErrorHistogramPlotshows amplitude and phase error distributions for one or more datasets.
These tools are used throughout the notebooks, including examples/01_homogeneous_free-space.ipynb, examples/02_homogeneous_earth.ipynb, examples/03_two_layered_earth.ipynb, and so on.