In [1]:
from ZarcfitCalculations import *
import numpy as np
In [2]:
from SimPEG import Tests
In [3]:
%matplotlib inline
import matplotlib.pyplot as plt
In [4]:
path = "../data/HVC2014_10Grenon/"
# fnameobs = "BC13867-A 2014-10-23.z"
# fnameobs = "BC13871-B 2014-10-23.z"
# fnameobs = "BC13890A 2014-10-23.z"
# fnameobs = "BC13859 2014-10-23.z"
fnameobs = "BC13877 2014-10-28.z"
pathobs = path+fnameobs
temp = np.loadtxt(pathobs, skiprows=11, delimiter=",")
obs = temp[:,4]+1j*temp[:,5]
frequency = temp[:,0].copy()
In [ ]:
In [5]:
zarc = ZarcfitCalculations(obs, frequency)
In [6]:
m0 = zarc.GetDefaultmodel()
In [7]:
pred0 = zarc.Zparallel(frequency)
In [103]:
dm = m0*0.1
derChk = lambda m: [zarc.dpred(m), lambda mx: zarc.Jvec(m0, mx)]
passed = Tests.checkDerivative(derChk, m0, plotIt=False, dx = m0*2, num=4)
In [8]:
plt.loglog(frequency, obs.real)
plt.loglog(frequency, -obs.imag)
# plt.loglog(frequency, pred0.real)
# plt.loglog(frequency, -pred0.imag)
Out[8]:
In [9]:
# a = np.r_[obs.real, obs.imag]
# b = np.r_[pred.real, pred.imag]
# u = abs(a)*0.05
In [10]:
# np.linalg.norm((b-a)/u)**2
In [11]:
inact = np.isnan(m0)
m0[~inact]
Out[11]:
In [93]:
uncert = (np.r_[0.085*abs(obs.real)+np.linalg.norm(obs.real)*5e-5, 0.0723*abs(obs.imag)+np.linalg.norm(obs.imag)*1e-6])
m1 = zarc.GN(m0, uncert, maxiter=100)
In [94]:
m0
Out[94]:
In [95]:
m1
Out[95]:
In [96]:
print zarc.Rh, zarc.Rm, zarc.Rl
In [97]:
print zarc.Fh, zarc.Fm, zarc.Fl
In [98]:
print zarc.Ph, zarc.Pm, zarc.Pl
In [99]:
pred = zarc.dpred(m1)
In [100]:
frequency.shape
Out[100]:
In [101]:
plt.loglog(frequency, obs.real, 'k')
plt.loglog(frequency, -obs.imag, 'b')
plt.loglog(frequency, pred[:40], 'k.')
plt.loglog(frequency, -pred[40:], 'b.')
Out[101]:
In [90]:
plt.plot(obs.real[:-3], -obs.imag[:-3])
plt.plot( pred[:40], -pred[40:], '.')
# plt.plot(pred0.real[:-3], -pred0.imag[:-3])
Out[90]:
In [92]:
print zarc.Fh, zarc.Fm, zarc.Fl