pygimli.physics.sNMR#
Surface nuclear magnetic resonance (NMR) data inversion
Overview#
Classes
  | 
Magnetic resonance sounding (MRS) manager class.  | 
  | 
MRS1dBlockQTModelling - pygimli modelling class for block-mono QT inversion  | 
  | 
manager class for several MRS data along a profile for joint inversion  | 
Classes#
- class pygimli.physics.sNMR.MRS(name=None, verbose=True, **kwargs)[source]#
 Bases:
objectMagnetic resonance sounding (MRS) manager class.
- Variables:
 q (t,)
error (data,)
z (K,)
modelU (model, modelL,)
- loadMRSI - load MRSI (MRSmatlab format) data
 
- showCube - show any data/error/misfit as data cube (over q and t)
 
- showDataAndError - show data and error cubes
 
- showKernel - show Kernel matrix
 
- createFOP - create forward operator
 
- createInv - create pygimli Inversion instance
 
- run - run block-mono (alternatively smooth-mono) inversion (with bootstrap)
 
- calcMCM - compute model covariance matrix and thus uncertainties
 
- splitModel - return thickness, water content and T2* time from vector
 
- showResult/showResultAndFit - show inversion result (with fit)
 
- runEA - run evolutionary algorithm (GA, PSO etc.) using inspyred
 
- plotPopulation - plot final population of an EA run
 
- __init__(name=None, verbose=True, **kwargs)[source]#
 MRS init with optional data load from mrsi file
- Parameters:
 name (string) – Filename with load data and kernel (.mrsi) or just data (.mrsd)
verbose (bool) – be verbose
:param kwargs - see
MRS.loadMRSI().:
- createInv(nlay=3, lam=100.0, verbose=True, **kwargs)[source]#
 Create inversion instance (and fop if necessary with nlay).
- invert(nlay=3, lam=100.0, startvec=None, verbose=True, uncertainty=False, **kwargs)[source]#
 Easiest variant doing all (create fop and inv) in one call.
- loadDataNPZ(filename, **kwargs)[source]#
 Load data and kernel from numpy gzip packed file.
The npz file contains the fields: q, t, D, (E), z, K
- loadErrorCube(filename='errorcube.dat')[source]#
 Load error cube from a single ascii file (old stuff).
- loadKernelNPZ(filename, **kwargs)[source]#
 Load data and kernel from numpy gzip packed file.
The npz file contains the fields: q, t, D, (E), z, K
- loadMRSD(filename, usereal=False, mint=0.0, maxt=2.0)[source]#
 Load mrsd (MRS data) file: not really used as in MRSD.
- plotPopulation(maxfitness=None, fitratio=1.05, savefile=True)[source]#
 Plot fittest individuals (fitness<maxfitness) as 1d models
- run(verbose=True, uncertainty=False, **kwargs)[source]#
 Easiest variant doing all (create fop and inv) in one call.
- runEA(nlay=None, eatype='GA', pop_size=100, num_gen=100, runs=1, mp_num_cpus=8, **kwargs)[source]#
 Run evolutionary algorithm using the inspyred library
- Parameters:
 nlay (int [taken from classic fop if not given]) – number of layers
pop_size (int [100]) – population size
num_gen (int [100]) – number of generations
runs (int [pop_size*num_gen]) – number of independent runs (with random population)
eatype (string ['GA']) –
- algorithm, choose among:
 ’GA’ - Genetic Algorithm [default] ‘SA’ - Simulated Annealing ‘DEA’ - Discrete Evolutionary Algorithm ‘PSO’ - Particle Swarm Optimization ‘ACS’ - Ant Colony Strategy ‘ES’ - Evolutionary Strategy
- showCube(ax=None, vec=None, islog=None, clim=None, clab=None)[source]#
 Plot any data (or response, error, misfit) cube nicely.
- showResult(figsize=(10, 8), save='', fig=None, ax=None)[source]#
 Show theta(z) and T2*(z) (+uncertainties if there).
- class pygimli.physics.sNMR.MRS1dBlockQTModelling(nlay, K, zvec, t, verbose=False)[source]#
 Bases:
ModellingBaseMT__MRS1dBlockQTModelling - pygimli modelling class for block-mono QT inversion
f=MRS1dBlockQTModelling(lay, KR, KI, zvec, t, verbose = False )
- class pygimli.physics.sNMR.MRSprofile(filename=None, x=None, dx=1, x0=0, **kwargs)[source]#
 Bases:
objectmanager class for several MRS data along a profile for joint inversion
- load - load mrs files from a directory
 
- set X - set x vector
 
- showData - show MRS data
 
- independentBlock1dInversion - perform independent 1D block inversion
 
- block1dInversion - 1D block inversion of all data sets together
 
- blockLCInversion - 1D block laterally constrained inversion of all data
 
- printFits - print total misfit (chi^2, rms) and individual values
 
- showModel - show LCI model
 
- __init__(filename=None, x=None, dx=1, x0=0, **kwargs)[source]#
 Initialize profile object by mrs objects and optional positions.
- block1dInversion(nlay=2, lam=100.0, show=False, verbose=True, uncertainty=False)[source]#
 Invert all data together by a 1D model (more general solution).
- block1dInversionOld(nlay=2, startModel=None, verbose=True, uncertainty=False, **kwargs)[source]#
 Invert all data together by one 1D model (variant 1 - all equal).
- blockLCInversion(nlay=2, startModel=None, **kwargs)[source]#
 Laterally constrained (piece-wise 1D) block inversion.
- independentBlock1dInversion(nlay=2, lam=100, startModel=None)[source]#
 Independent inversion of all soundings.
- load(filenames, **kwargs)[source]#
 load mrs files in a list of (single) MRS handlers filename can be a list of mrsi files or a directory to search Additional parameters: usereal, mint, maxt (see MRS.load)
- showModel(showFit=0, cmap='Spectral', figsize=(13, 12), wlim=(0, 0.5), tlim=(0.05, 0.5))[source]#
 Show 2d model as stitched 1d models along with fit.