gprmaxui

GprMax-UI provides a high-level API to run gprMax models along with a set of functions for visualization, analysis and interpreting the results.

https://github.com/opensciml/gprmaxui

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

GprMax-UI provides a high-level API to run gprMax models along with a set of functions for visualization, analysis and interpreting the results.

Basic Info
Statistics
  • Stars: 8
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created over 2 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

GPR-MAX UI

Library Logo

GprMax is open-source software that simulates electromagnetic wave propagation. It solves Maxwell’s equations in 3D using the Finite-Difference Time-Domain (FDTD) method. Although it was designed initially for modeling Ground Penetrating Radar (GPR), it can also be used to model electromagnetic wave propagation for many other applications. GprMax-UI enhances this functionality by providing a high-level API for executing GprMax models, along with tools for visualization, analysis, and result interpretation.

The following video have been created using gprmaxui:

Watch the videoWatch the video

Prerequisites

Install Pycuda

bash sudo apt install build-essential clang sudo apt install libstdc++-12-dev export CUDA_HOME=/usr/local/cuda export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH uv add pycuda --optional gpu

Install gprMax

bash git clone https://github.com/gprMax/gprMax.git sudo apt install libgomp1 sudo apt install libomp-dev python setup.py build python setup.py develop --no-deps

Installation gprMaxUI

bash pip install gprmaxui

Build the documentation

bash mkdocs build mkdocs serve -a localhost:8000

Usage

```Python from gprmaxui.commands import * from gprmaxui import GprMaxModel

Create a GPRMax model

model = GprMaxModel( title="B scan from a single target buried in a dielectric sand-space", outputfolder=Path("output"), domainsize=DomainSize(x=0.2, y=0.2, z=0.002), domainresolution=DomainResolution(dx=0.002, dy=0.002, dz=0.002), timewindow=TimeWindow(twt=3e-9), )

Register model materials

model.registermaterials( Material( id="halfspace", permittivity=6, conductivity=0, permeability=1, color="red" ) )

Register model sources

txrxsep = 2e-2 model.setsource( TxRxPair( tx=Tx( waveform=Waveform(wavefamily="ricker", amplitude=1.0, frequency=1.5e9), source=HertzianDipole(polarization="z", x=0.03, y=0.15, z=0.0), ), rx=Rx(x=0.03 + txrxsep, y=0.15, z=0.0), srcsteps=SrcSteps(dx=0.002, dy=0.0, dz=0.0), rxsteps=RxSteps(dx=0.002, dy=0.0, dz=0.0), ) )

add model geometries

box = DomainBox( xmin=0.0, ymin=0.0, zmin=0.0, xmax=0.2, ymax=0.145, zmax=0.002, material="halfspace", ) model.addgeometry(box)

cx = model.domainsize.x / 2 sphere = DomainSphere(cx=cx, cy=0.1, cz=0.0, radius=0.005, material="pec") model.addgeometry(sphere)

print(model) model.run(n="auto", geometry=True, snapshots=True)

```

Owner

  • Name: Open Science ML
  • Login: OpenSciML
  • Kind: organization
  • Location: United States of America

Open-Source for accelerating research discovering

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Ruiz-Guzman"
  given-names: "Henry A."
  orcid: "https://orcid.org/0000-0001-9114-4293"
title: "gprmaxui"
version: 1.0.0
date-released: 2024-10-18
url: "https://github.com/OpenSciML/gprmaxui"

GitHub Events

Total
  • Release event: 1
  • Watch event: 8
  • Public event: 2
  • Push event: 10
  • Create event: 2
Last Year
  • Release event: 1
  • Watch event: 8
  • Public event: 2
  • Push event: 10
  • Create event: 2

Dependencies

pyproject.toml pypi
  • cython >=3.0.11
  • h5py >=3.12.1
  • httpcore >=1.0.6
  • more-itertools >=10.5.0
  • opencv-python >=4.10.0.84
  • pillow >=10.4.0
  • psutil >=6.0.0
  • pydantic >=2.9.2
  • pyside6 >=6.8.0.1
  • pyvista >=0.44.1
  • pyvistaqt >=0.11.1
  • rich >=13.9.2
  • scipy >=1.14.1
  • terminaltables >=3.1.10
  • tqdm >=4.66.5
  • xmltodict >=0.14.1
docker/Dockerfile docker
  • us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container latest build
uv.lock pypi
  • annotated-types 0.7.0
  • babel 2.16.0
  • black 24.10.0
  • certifi 2024.8.30
  • charset-normalizer 3.4.0
  • click 8.1.7
  • colorama 0.4.6
  • contourpy 1.3.0
  • cycler 0.12.1
  • cython 3.0.11
  • fonttools 4.54.1
  • ghp-import 2.1.0
  • gprmaxui 0.1.9
  • h11 0.14.0
  • h5py 3.12.1
  • httpcore 1.0.6
  • idna 3.10
  • jinja2 3.1.4
  • kiwisolver 1.4.7
  • lxml 5.3.0
  • mako 1.3.10
  • markdown 3.7
  • markdown-it-py 3.0.0
  • markupsafe 3.0.1
  • matplotlib 3.9.2
  • mdurl 0.1.2
  • mergedeep 1.3.4
  • mkdocs 1.6.1
  • mkdocs-get-deps 0.2.0
  • mkdocs-glightbox 0.4.0
  • mkdocs-material 9.5.40
  • mkdocs-material-extensions 1.3.1
  • mkdocs-video 1.5.0
  • more-itertools 10.5.0
  • mypy-extensions 1.0.0
  • numpy 2.1.2
  • opencv-python 4.10.0.84
  • packaging 24.1
  • paginate 0.5.7
  • pathspec 0.12.1
  • pillow 10.4.0
  • platformdirs 4.3.6
  • pooch 1.8.2
  • psutil 6.0.0
  • pycuda 2025.1
  • pydantic 2.9.2
  • pydantic-core 2.23.4
  • pygments 2.18.0
  • pymdown-extensions 10.11.2
  • pyparsing 3.2.0
  • pyside6 6.8.0.1
  • pyside6-addons 6.8.0.1
  • pyside6-essentials 6.8.0.1
  • python-dateutil 2.9.0.post0
  • pytools 2025.1.3
  • pyvista 0.44.1
  • pyvistaqt 0.11.1
  • pyyaml 6.0.2
  • pyyaml-env-tag 0.1
  • qtpy 2.4.1
  • regex 2024.9.11
  • requests 2.32.3
  • rich 13.9.2
  • scipy 1.14.1
  • scooby 0.10.0
  • shiboken6 6.8.0.1
  • siphash24 1.7
  • six 1.16.0
  • terminaltables 3.1.10
  • tomli 2.2.1
  • tqdm 4.66.5
  • typing-extensions 4.12.2
  • urllib3 2.2.3
  • vtk 9.3.1
  • watchdog 5.0.3
  • xmltodict 0.14.1