/gerjoii

Radar and DC resistivity 2.5D multi-physics inversion suite. Forward modeling, separate inversions, joint inversions.

Primary LanguageMATLAB

gerjoii

ground penetrating radar and electrical resistivity joint inversion (gerjoii)

by diego domenzain

https://diegozain.github.io/gerjoii


eager to start?


Publications


gerjoii does, for both radar and electrical resistivity:

  • forward models
  • inversion routines (fwi for radar, adjoint method for both)
  • inversions in parallel (inversion code parallelized)
  • parallel inversions (many inversions at once, only with Slurm)

Forward modeling

  • 2D and 2.5D
  • linear & isotropic
  • radar (or acoustic)
    • finite difference time domain
    • PML boundaries
    • topography
    • arbitrary position of sources and receivers
  • electrical resistivity
    • finite volume
    • Robin & Neumann boundaries
    • flat topography
    • surface sources & receivers

Inversion routines

  • 2D and 2.5D
  • gradient descent
  • full-waveform inversion for radar
    • instantaneous phase
    • envelope
  • adjoint method for electrical resistivity
  • complete access to all sensitivities and adjoint fields
  • joint inversions
    • variable weights on sensitivities
    • cross-gradients
  • support for field and synthetic data
  • custom Slurm scripts ready to dominate the cluster

Signal processing

  • waveform filtering
  • image filtering
  • velocity semblance
  • beamforming
  • radar source estimation
  • common-offset gather processing for radar

Useful stuff

  • 2D velocity generator (.png to .mat file, any .png will do)

  • electrical resistivity sequence generator ready for Syscal

    • dipole-dipole
    • Wenner
    • Schlumberger
  • Matlab & Python data visualization

Seismic interferometry

  • cross-correlation
  • multi-dimensional deconvolution

docs

Detailed documentation of the code lives in the directory docs/manuals/.


Examples

Synthetic data

For a quick example go to field/example-sy/.

For a longer recipe read these steps:

  1. In local, go to field/shells_ and run cloner.sh to create a new synthetic toy example.
  2. In the new folder field/toy-sy/ go to image2mat/mat-file/ to see the true parameters.
  3. In image2mat/initial-guess/ see the initial parameters.
  4. You can change both true and initial parameters as you wish. Read build_model.pdf.
  5. Go to toy-sy/base/scripts/ and make sure [wdc,w,dc]_begin_.m loads the initial parameters you want.
  6. Go to toy-sy/inv-param/ and edit whichever P_inv_[dc,w, ].txt you are going to use. This file controls the inversion parameters.
  7. Upload gerjoii to remote. You can use rsync_gerjoii.sh.
  8. Go to toy-sy/slurm/ and read slurm_howto.pdf and gerjoii2slurm.pdf.
  9. Run your code.
  10. See results of files in remote while in local with utils in field/server-see/.
  11. Download with with download_[ ,obse,pinv,reco,u].sh.
  12. See in local with utils in toy-sy/see/.

Field data

  1. In data/raw/ make directory project and inside that make these:

    dc-data/syscal.txt
    dc-data/data-mat/
    dc-data/data-mat-raw/
    
    w-data/*[.HD, DT1]
    w-data/data-mat/
    w-data/data-mat-raw/
    w-data/data-mat-fwi/
    
  2. Under construction, sorry.


Author

Diego Domenzain domenzain.diego@gmail.com