Skip to content

Commit c8de564

Browse files
2 parents 7625280 + 230a1c8 commit c8de564

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

pygimli/physics/ert/ert.py

+16-9
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ def simulate(mesh, scheme, res, **kwargs):
7575
absolute phase error, if not given, data['iperr'] or noiseLevel is used
7676
contactImpedances float|iterables
7777
contact impedances for being used with CEM model
78+
current : float
79+
current to be assumed
7880
7981
Returns
8082
-------
@@ -170,9 +172,9 @@ def simulate(mesh, scheme, res, **kwargs):
170172

171173
ret = pg.DataContainerERT(scheme)
172174
# just to be sure that we don't work with artifacts
173-
ret['u'] *= 0.0
174-
ret['i'] *= 0.0
175-
ret['r'] *= 0.0
175+
ret['u'] = 0.0
176+
ret['i'] = 0.0
177+
ret['r'] = 0.0
176178

177179
if isArrayData:
178180
rhoa = np.zeros((len(res), scheme.size()))
@@ -193,11 +195,13 @@ def simulate(mesh, scheme, res, **kwargs):
193195
if fop.complex():
194196
pg.critical('Implement me')
195197
else:
196-
ret["u"] = dMap.data(scheme)
197-
ret["i"] = np.ones(ret.size())
198+
ret['r'] = dMap.data(scheme)
199+
ret['i'] = kwargs.pop("current", 1.0)
200+
ret['u'] = ret['r'] * ret['i']
198201

199202
if returnFields:
200203
return pg.Matrix(fop.solution())
204+
201205
return ret
202206
else:
203207
if fop.complex():
@@ -237,15 +241,17 @@ def simulate(mesh, scheme, res, **kwargs):
237241
absoluteCurrent=1))
238242
if verbose:
239243
pg.info("Data error estimate (min:max) ",
240-
min(ret('err')), ":", max(ret('err')))
244+
min(ret['err']), ":", max(ret['err']))
241245

242246
rhoa *= 1. + pg.randn(ret.size(), seed=seed) * ret('err')
243-
ret.set('rhoa', rhoa)
247+
ret['rhoa'] = rhoa
248+
if ret.allNonZero('k'): # also provide r if user changes k later
249+
ret['r'] = ret['rhoa'] / ret['k']
244250

245251
ipError = None
246252
if phia is not None:
247253
if scheme.allNonZero('iperr'):
248-
ipError = scheme('iperr')
254+
ipError = scheme['iperr']
249255
else:
250256
# np.abs(self.data("phia") +TOLERANCE) * 1e-4absoluteError
251257
if noiseLevel > 0.5:
@@ -254,7 +260,7 @@ def simulate(mesh, scheme, res, **kwargs):
254260
if 'phiErr' in kwargs:
255261
ipError = np.ones(ret.size()) * kwargs.pop('phiErr') / 1000
256262
else:
257-
ipError = abs(ret["phia"]) * noiseLevel
263+
ipError = abs(ret['phia']) * noiseLevel
258264

259265
if verbose:
260266
print("Data IP abs error estimate (min:max) ",
@@ -272,6 +278,7 @@ def simulate(mesh, scheme, res, **kwargs):
272278
else:
273279
return rhoa
274280

281+
ret['valid'] = 1
275282
if returnFOP:
276283
return ret, fop
277284
else:

pygimli/physics/ert/ertManager.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ def saveResult(self, folder=None, size=(16, 10), **kwargs):
425425
self.mesh.save(os.path.join(path, 'mesh'))
426426

427427
m = pg.Mesh(self.paraDomain)
428-
m['Resistivity'] = self.paraModel(self.model)
428+
m['Resistivity'] = self.model
429429
m['Resistivity (log10)'] = np.log10(m['Resistivity'])
430430
m['Coverage'] = self.coverage()
431431
m['S_Coverage'] = self.standardizedCoverage()

0 commit comments

Comments
 (0)