mirror of
https://github.com/wassname/simpeg.git
synced 2026-08-20 12:50:34 +08:00
Merge branch 'mt/iss290' into dev
This commit is contained in:
+1
-35
@@ -222,7 +222,7 @@ class SaveOutputDictEveryIteration(_SaveEveryIteration):
|
|||||||
mref = 0
|
mref = 0
|
||||||
mx = self.reg.Wx * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
mx = self.reg.Wx * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
||||||
phi_mx = 0.5 * mx.dot(mx)
|
phi_mx = 0.5 * mx.dot(mx)
|
||||||
if self.prob.mesh.dim==2:
|
if self.prob.mesh.dim >= 2:
|
||||||
my = self.reg.Wy * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
my = self.reg.Wy * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
||||||
phi_my = 0.5 * my.dot(my)
|
phi_my = 0.5 * my.dot(my)
|
||||||
else:
|
else:
|
||||||
@@ -237,40 +237,6 @@ class SaveOutputDictEveryIteration(_SaveEveryIteration):
|
|||||||
# Save the file as a npz
|
# Save the file as a npz
|
||||||
np.savez('{:03d}-{:s}'.format(self.opt.iter,self.fileName), iter=self.opt.iter, beta=self.invProb.beta, phi_d=self.invProb.phi_d, phi_m=self.invProb.phi_m, phi_ms=phi_ms, phi_mx=phi_mx, phi_my=phi_my, phi_mz=phi_mz,f=self.opt.f, m=self.invProb.curModel,dpred=self.invProb.dpred)
|
np.savez('{:03d}-{:s}'.format(self.opt.iter,self.fileName), iter=self.opt.iter, beta=self.invProb.beta, phi_d=self.invProb.phi_d, phi_m=self.invProb.phi_m, phi_ms=phi_ms, phi_mx=phi_mx, phi_my=phi_my, phi_mz=phi_mz,f=self.opt.f, m=self.invProb.curModel,dpred=self.invProb.dpred)
|
||||||
|
|
||||||
class SaveOutputDictEveryIteration(_SaveEveryIteration):
|
|
||||||
"""SaveOutputDictEveryIteration
|
|
||||||
A directive that saves some relevant information from the inversion run to a numpy .npz dictionary file (see numpy.savez function for further info).
|
|
||||||
"""
|
|
||||||
|
|
||||||
def initialize(self):
|
|
||||||
print "SimPEG.SaveOutputDictEveryIteration will save your inversion progress as dictionary: '%s-###.npz'"%self.fileName
|
|
||||||
|
|
||||||
def endIter(self):
|
|
||||||
# Save the data.
|
|
||||||
ms = self.reg.Ws * ( self.reg.mapping * (self.invProb.curModel - self.reg.mref) )
|
|
||||||
phi_ms = 0.5*ms.dot(ms)
|
|
||||||
if self.reg.smoothModel == True:
|
|
||||||
mref = self.reg.mref
|
|
||||||
else:
|
|
||||||
mref = 0
|
|
||||||
mx = self.reg.Wx * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
|
||||||
phi_mx = 0.5 * mx.dot(mx)
|
|
||||||
if self.prob.mesh.dim==2:
|
|
||||||
my = self.reg.Wy * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
|
||||||
phi_my = 0.5 * my.dot(my)
|
|
||||||
else:
|
|
||||||
phi_my = 'NaN'
|
|
||||||
if self.prob.mesh.dim==3 and 'CYL' not in self.prob.mesh._meshType:
|
|
||||||
mz = self.reg.Wz * ( self.reg.mapping * (self.invProb.curModel - mref) )
|
|
||||||
phi_mz = 0.5 * mz.dot(mz)
|
|
||||||
else:
|
|
||||||
phi_mz = 'NaN'
|
|
||||||
|
|
||||||
|
|
||||||
# Save the file as a npz
|
|
||||||
np.savez('{:s}-{:03d}'.format(self.fileName,self.opt.iter), iter=self.opt.iter, beta=self.invProb.beta, phi_d=self.invProb.phi_d, phi_m=self.invProb.phi_m, phi_ms=phi_ms, phi_mx=phi_mx, phi_my=phi_my, phi_mz=phi_mz,f=self.opt.f, m=self.invProb.curModel,dpred=self.invProb.dpred)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# class UpdateReferenceModel(Parameter):
|
# class UpdateReferenceModel(Parameter):
|
||||||
|
|
||||||
|
|||||||
@@ -7,17 +7,16 @@ from SimPEG.MT.Utils.dataUtils import rec2ndarr
|
|||||||
# Import modules
|
# Import modules
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import os, sys, re
|
import os, sys, re
|
||||||
try:
|
|
||||||
import osr
|
|
||||||
except ImportError as e:
|
|
||||||
print 'Could not import osr, missing the gdal package'
|
|
||||||
pass
|
|
||||||
|
|
||||||
class EDIimporter:
|
class EDIimporter:
|
||||||
"""
|
"""
|
||||||
A class to import EDIfiles.
|
A class to import EDIfiles.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
# Define data converters
|
||||||
_impUnitEDI2SI = 4*np.pi*1e-4 # Convert Z[mV/km/nT] (as in EDI)to Z[V/A] SI unit
|
_impUnitEDI2SI = 4*np.pi*1e-4 # Convert Z[mV/km/nT] (as in EDI)to Z[V/A] SI unit
|
||||||
_impUnitSI2EDI = 1./_impUnitEDI2SI # ConvertZ[V/A] SI unit to Z[mV/km/nT] (as in EDI)
|
_impUnitSI2EDI = 1./_impUnitEDI2SI # ConvertZ[V/A] SI unit to Z[mV/km/nT] (as in EDI)
|
||||||
|
|
||||||
@@ -26,8 +25,8 @@ class EDIimporter:
|
|||||||
comps = None
|
comps = None
|
||||||
|
|
||||||
# Hidden properties
|
# Hidden properties
|
||||||
_outEPSG = None
|
_outEPSG = None # Project info
|
||||||
_2out = None
|
_2out = None # The projection operator
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, EDIfilesList, compList=None, outEPSG=None):
|
def __init__(self, EDIfilesList, compList=None, outEPSG=None):
|
||||||
@@ -113,6 +112,12 @@ class EDIimporter:
|
|||||||
# nOutData=length(obj.data);
|
# nOutData=length(obj.data);
|
||||||
# obj.data(nOutData+1:nOutData+length(TEMP.data),:) = TEMP.data;
|
# obj.data(nOutData+1:nOutData+length(TEMP.data),:) = TEMP.data;
|
||||||
def _transfromPoints(self,longD,latD):
|
def _transfromPoints(self,longD,latD):
|
||||||
|
# Import the coordinate projections
|
||||||
|
try:
|
||||||
|
import osr
|
||||||
|
except ImportError as e:
|
||||||
|
print 'Could not import osr, missing the gdal package\nCan not project coordinates'
|
||||||
|
raise e
|
||||||
# Coordinates convertor
|
# Coordinates convertor
|
||||||
if self._2out is None:
|
if self._2out is None:
|
||||||
src = osr.SpatialReference()
|
src = osr.SpatialReference()
|
||||||
|
|||||||
@@ -242,9 +242,6 @@ class TestAnalytics(unittest.TestCase):
|
|||||||
def test_appRes1en3(self):self.assertTrue(appResPhsHalfspace_eFrom_ps_Norm(1e-3))
|
def test_appRes1en3(self):self.assertTrue(appResPhsHalfspace_eFrom_ps_Norm(1e-3))
|
||||||
def test_appPhs1en3(self):self.assertTrue(appResPhsHalfspace_eFrom_ps_Norm(1e-3,False))
|
def test_appPhs1en3(self):self.assertTrue(appResPhsHalfspace_eFrom_ps_Norm(1e-3,False))
|
||||||
|
|
||||||
# Do a derivative test
|
|
||||||
def test_derivProj1(self):self.assertTrue(DerivProjfieldsTest(halfSpace(1e-2)))
|
|
||||||
|
|
||||||
# Do a derivative test of Jvec
|
# Do a derivative test of Jvec
|
||||||
# def test_derivJvec_zxxr(self):self.assertTrue(DerivJvecTest(random(1e-2),'zxxr',.1))
|
# def test_derivJvec_zxxr(self):self.assertTrue(DerivJvecTest(random(1e-2),'zxxr',.1))
|
||||||
# def test_derivJvec_zxxi(self):self.assertTrue(DerivJvecTest(random(1e-2),'zxxi',.1))
|
# def test_derivJvec_zxxi(self):self.assertTrue(DerivJvecTest(random(1e-2),'zxxi',.1))
|
||||||
|
|||||||
Reference in New Issue
Block a user