mirror of
https://github.com/wassname/simpeg.git
synced 2026-10-04 13:00:11 +08:00
Generalize the DC2D HTML movie maker.
Create example for 2 sphere problem
This commit is contained in:
1 parent
fc3893c72f
commit
9d861267e1
13 files changed
+572
-226
No files matched your search
@@ -0,0 +1,217 @@
|
||||
import os
|
||||
from SimPEG import np, sp, Utils, Mesh, mkvc
|
||||
import simpegDCIP as DC
|
||||
import pylab as plt
|
||||
#from ipywidgets import interact, IntSlider
|
||||
from matplotlib import animation
|
||||
from JSAnimation import HTMLWriter
|
||||
import time
|
||||
import re
|
||||
from readUBC_DC2DMesh import readUBC_DC2DMesh
|
||||
from readUBC_DC2DModel import readUBC_DC2DModel
|
||||
from readUBC_DC2DLoc import readUBC_DC2DLoc
|
||||
from convertObs_DC3D_to_2D import convertObs_DC3D_to_2D
|
||||
from readUBC_DC3Dobs import readUBC_DC3Dobs
|
||||
|
||||
#%%
|
||||
home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
|
||||
msh_file = 'Mesh_2D.msh'
|
||||
mod_file = 'Model_2D.con'
|
||||
obs_file = 'FWR_data3D.dat'
|
||||
|
||||
dsep = '\\'
|
||||
|
||||
# Forward solver
|
||||
slvr = 'BiCGStab' #'LU'
|
||||
|
||||
# Preconditioner
|
||||
pcdr = 'Jacobi'#'Gauss-Seidel'#
|
||||
|
||||
# Number of padding cells to remove from plotting
|
||||
padc = 15
|
||||
|
||||
# Load UBC mesh 2D
|
||||
mesh = readUBC_DC2DMesh(home_dir + dsep + msh_file)
|
||||
|
||||
# Load model
|
||||
model = readUBC_DC2DModel(home_dir + dsep + mod_file)
|
||||
|
||||
# load obs file
|
||||
[Tx,Rx,d,wd] = readUBC_DC3Dobs(home_dir + dsep + obs_file)
|
||||
[Tx, Rx] = convertObs_DC3D_to_2D(Tx,Rx)
|
||||
#%% Create system
|
||||
#Set boundary conditions
|
||||
mesh.setCellGradBC('neumann')
|
||||
|
||||
Div = mesh.faceDiv
|
||||
Grad = mesh.cellGrad
|
||||
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
|
||||
|
||||
A = Div*Msig*Grad
|
||||
|
||||
# Change one corner to deal with nullspace
|
||||
A[0,0] = 1
|
||||
A = sp.csc_matrix(A)
|
||||
|
||||
start_time = time.time()
|
||||
|
||||
if re.match(slvr,'BiCGStab'):
|
||||
# Create Jacobi Preconditioner
|
||||
if re.match(pcdr,'Jacobi'):
|
||||
dA = A.diagonal()
|
||||
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
|
||||
|
||||
# Create Gauss-Seidel Preconditioner
|
||||
elif re.match(pcdr,'Gauss-Seidel'):
|
||||
LD = sp.tril(A,k=0)
|
||||
#LDinv = sp.linalg.splu(LD)
|
||||
|
||||
elif re.match(slvr,'LU'):
|
||||
# Factor A matrix
|
||||
Ainv = sp.linalg.splu(A)
|
||||
print("LU DECOMP--- %s seconds ---" % (time.time() - start_time))
|
||||
|
||||
#%% Create SimPEG objects
|
||||
|
||||
|
||||
# Create sub-mesh for plotting
|
||||
hx = mesh.hx
|
||||
hy = mesh.hy
|
||||
|
||||
hx_sub = hx[padc:-padc]
|
||||
hy_sub = hy[padc:]
|
||||
mesh_sub = Mesh.TensorMesh([hx_sub,hy_sub],(mesh.vectorNx[padc], mesh.vectorNy[padc]))
|
||||
model_sub = model.reshape(mesh.nCy,mesh.nCx)
|
||||
model_sub = mkvc(model_sub[padc:,padc:-padc].T)
|
||||
|
||||
xx = mesh_sub.vectorCCx
|
||||
yy = mesh_sub.vectorCCy
|
||||
|
||||
#%% Solve
|
||||
#txii = range(50,1950,100)
|
||||
#jx_CC_sub = np.zeros((len(txii),mesh_sub.nCx,mesh_sub.nCy))
|
||||
#jy_CC_sub = np.zeros((len(txii),mesh_sub.nCx,mesh_sub.nCy))
|
||||
|
||||
fig = plt.figure(figsize=(10,5))
|
||||
axs = plt.axes(ylim = (yy[0],yy[-1]+mesh.hy[-1]*2), xlim = (xx[0],xx[-1]))#
|
||||
plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)
|
||||
plt.ylim(yy[0],yy[-1]+mesh.hy[-1]*2)
|
||||
plt.xlim(xx[0],xx[-1])
|
||||
#im1 = axs.pcolormesh([],[],[], alpha=0.75,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',vmin=-1e-2, vmax=1e-2)
|
||||
#im2 = axs.pcolormesh([],[],[],alpha=0.2,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',cmap='gray')
|
||||
im1 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,np.zeros((mesh_sub.nCy,mesh_sub.nCx)), alpha=0.75,vmin=-1e-2, vmax=1e-2)
|
||||
im2 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,np.zeros((mesh_sub.nCy,mesh_sub.nCx)), alpha=0.75,vmin=-1e-2, vmax=1e-2)
|
||||
im3 = axs.streamplot(xx, yy, np.zeros((mesh_sub.nCy,mesh_sub.nCx)), np.zeros((mesh_sub.nCy,mesh_sub.nCx)),color='k')
|
||||
im4 = axs.scatter([],[], c='r', s=200)
|
||||
im5 = axs.scatter([],[], c='r', s=200)
|
||||
|
||||
|
||||
|
||||
#==============================================================================
|
||||
# def init():
|
||||
# im1.set_data([[],[],[]])
|
||||
# im2.set_data([[],[],[]])
|
||||
#
|
||||
# return [im1]+[im2]
|
||||
#==============================================================================
|
||||
|
||||
def animate(ii):
|
||||
|
||||
|
||||
|
||||
#for ii in range(len(txii)):
|
||||
|
||||
removeStream()
|
||||
tx = np.asarray(np.c_[Tx[ii],np.ones(Tx[ii].shape[0])*mesh.vectorNy[-1]-1])
|
||||
inds = Utils.closestPoints(mesh, tx )
|
||||
RHS = mesh.getInterpolationMat( tx , 'CC').T*( [-1,1] / mesh.vol[inds] )
|
||||
|
||||
if re.match(slvr,'BiCGStab'):
|
||||
|
||||
if re.match(pcdr,'Jacobi'):
|
||||
dA = A.diagonal()
|
||||
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
|
||||
|
||||
# Iterative Solve
|
||||
phi = sp.linalg.bicgstab(P*A,P*RHS, tol=1e-5)
|
||||
phi = mkvc(phi[0])
|
||||
|
||||
elif re.match(slvr,'LU'):
|
||||
#Direct Solve
|
||||
phi = Ainv.solve(RHS)
|
||||
|
||||
|
||||
j = -Msig*Grad*phi
|
||||
j_CC = mesh.aveF2CCV*j
|
||||
|
||||
# Compute charge density solving div*grad*phi
|
||||
Q = -mesh.faceDiv*mesh.cellGrad*phi
|
||||
|
||||
jx_CC = j_CC[0:mesh.nC].reshape(mesh.nCy,mesh.nCx)
|
||||
jy_CC = j_CC[mesh.nC:].reshape(mesh.nCy,mesh.nCx)
|
||||
|
||||
#%% Grab only the core for presentation
|
||||
jx_CC_sub = jx_CC[padc:,padc:-padc]
|
||||
|
||||
jy_CC_sub = jy_CC[padc:,padc:-padc]
|
||||
|
||||
Q_sub = Q.reshape(mesh.nCy,mesh.nCx)
|
||||
Q_sub = Q_sub[padc:,padc:-padc]
|
||||
|
||||
J_rho = np.sqrt(jx_CC_sub**2 + jy_CC_sub**2)
|
||||
lw = np.log10(J_rho/J_rho.min())
|
||||
|
||||
|
||||
#axs.imshow(Q_sub,alpha=0.75,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',vmin=-1e-2, vmax=1e-2)
|
||||
#axs.imshow(np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)),alpha=0.2,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',cmap='gray')
|
||||
global im1
|
||||
im1 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,Q_sub, alpha=0.75,vmin=-1e-2, vmax=1e-2)
|
||||
|
||||
global im2
|
||||
im2 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)), alpha=0.25)
|
||||
|
||||
global im3
|
||||
im3 = axs.streamplot(xx, yy, jx_CC_sub, jy_CC_sub,color='k',linewidth = lw,density=0.5)
|
||||
|
||||
global im4
|
||||
im4 = axs.scatter(tx[0,0],mesh.vectorNy[-1], c='r', s=75, marker='v' )
|
||||
|
||||
global im5
|
||||
im5 = axs.scatter(tx[1,0],mesh.vectorNy[-1], c='b', s=75, marker='v' )
|
||||
|
||||
|
||||
#plt.show()
|
||||
#im1.set_array(Q_sub)
|
||||
#im2.set_array(np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)))
|
||||
#im2.set_array(mesh_sub.vectorCCx, mesh_sub.vectorCCy,jx_CC_sub.T,jy_CC_sub.T)
|
||||
|
||||
#return [im1] + [im2]
|
||||
#%% Create widget
|
||||
def removeStream():
|
||||
global im1
|
||||
im1.remove()
|
||||
|
||||
global im2
|
||||
im2.remove()
|
||||
|
||||
global im3
|
||||
im3.lines.remove()
|
||||
axs.patches = []
|
||||
|
||||
global im4
|
||||
im4.remove()
|
||||
|
||||
global im5
|
||||
im5.remove()
|
||||
#def viewInv(msh,iteration):
|
||||
|
||||
|
||||
|
||||
#, linewidth=lw.T
|
||||
#%%
|
||||
#interact(viewInv,msh = mesh_sub, iteration = IntSlider(min=0, max=len(txii)-1 ,step=1, value=0))
|
||||
# set embed_frames=True to embed base64-encoded frames directly in the HTML
|
||||
anim = animation.FuncAnimation(fig, animate,
|
||||
frames=len(Tx), interval=5)
|
||||
|
||||
anim.save(home_dir + '\\animation.html', writer=HTMLWriter(embed_frames=True))
|
||||
@@ -1,139 +0,0 @@
|
||||
import os
|
||||
|
||||
home_dir = 'C:\Users\dominiquef.MIRAGEOSCIENCE\Documents\GIT\SimPEG\simpegdc\simpegDCIP\Dev'
|
||||
|
||||
os.chdir(home_dir)
|
||||
|
||||
#%%
|
||||
from SimPEG import np, Utils, Mesh, mkvc, SolverLU
|
||||
import simpegDCIP as DC
|
||||
import pylab as plt
|
||||
#from ipywidgets import interact, IntSlider
|
||||
from matplotlib import animation
|
||||
from JSAnimation import HTMLWriter
|
||||
|
||||
from readUBC_DC2DMesh import readUBC_DC2DMesh
|
||||
from readUBC_DC2DModel import readUBC_DC2DModel
|
||||
from readUBC_DC2DLoc import readUBC_DC2DLoc
|
||||
|
||||
# Number of padding cells to remove from plotting
|
||||
padc = 16
|
||||
|
||||
# Load UBC mesh 2D
|
||||
mesh = readUBC_DC2DMesh('mesh2d_fine.txt')
|
||||
|
||||
# Load model
|
||||
model = readUBC_DC2DModel('model2d_fine.con')
|
||||
|
||||
# load obs file
|
||||
[txLoc,rxLoc,d,wd] = readUBC_DC2DLoc('obs2d_East.loc')
|
||||
|
||||
# Create SimPEG objects
|
||||
rx = DC.RxDipole(rxLoc[:,0], rxLoc[:,1])
|
||||
#tx = DC.SrcDipole([rx],txLoc[200,0],txLoc[200,1])
|
||||
|
||||
# Create sub-mesh for plotting
|
||||
hx = mesh.hx
|
||||
hy = mesh.hy
|
||||
|
||||
hx_sub = hx[padc:-padc]
|
||||
hy_sub = hy[padc:]
|
||||
mesh_sub = Mesh.TensorMesh([hx_sub,hy_sub],(hx_sub[0], -sum(hy_sub)))
|
||||
model_sub = model.reshape(mesh.nCy,mesh.nCx)
|
||||
model_sub = mkvc(model_sub[padc:,padc:-padc].T)
|
||||
|
||||
xx = mesh_sub.vectorCCx
|
||||
yy = mesh_sub.vectorCCy
|
||||
|
||||
#%% Solve
|
||||
txii = range(50,1950,100)
|
||||
#jx_CC_sub = np.zeros((len(txii),mesh_sub.nCx,mesh_sub.nCy))
|
||||
#jy_CC_sub = np.zeros((len(txii),mesh_sub.nCx,mesh_sub.nCy))
|
||||
|
||||
fig = plt.figure(figsize=(10,5))
|
||||
axs = plt.axes(ylim=(-800,50), xlim=(25,2000))
|
||||
plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)
|
||||
im1 = axs.imshow([[],[]], alpha=0.75,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',vmin=-1e-2, vmax=1e-2)
|
||||
im2 = axs.imshow([[],[]],alpha=0.2,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',cmap='gray')
|
||||
im3 = axs.streamplot(mesh_sub.vectorCCx, mesh_sub.vectorCCy, np.zeros((mesh_sub.nCy,mesh_sub.nCx)), np.zeros((mesh_sub.nCy,mesh_sub.nCx)),color='k')
|
||||
im4 = axs.scatter([],[], c='r', s=200)
|
||||
|
||||
def init():
|
||||
im1.set_data([[],[]])
|
||||
im2.set_data([[],[]])
|
||||
|
||||
return [im1]+[im2]
|
||||
|
||||
def animate(ii):
|
||||
|
||||
|
||||
|
||||
#for ii in range(len(txii)):
|
||||
|
||||
removeStream()
|
||||
|
||||
tx = DC.SrcDipole([rx],txii[ii],txii[ii])
|
||||
|
||||
survey = DC.SurveyDC([tx])
|
||||
problem = DC.ProblemDC_CC(mesh)
|
||||
problem.pair(survey)
|
||||
problem.Solver = SolverLU
|
||||
|
||||
u1 = problem.fields(model)
|
||||
|
||||
Msig1 = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
|
||||
|
||||
j = -Msig1*mesh.cellGrad*u1[tx, 'phi_sol']
|
||||
j_CC = mesh.aveF2CCV*j
|
||||
|
||||
# Compute charge density solving div*grad*phi
|
||||
Q = -mesh.faceDiv*mesh.cellGrad*u1[tx, 'phi_sol']
|
||||
|
||||
jx_CC = j_CC[0:mesh.nC].reshape(mesh.nCy,mesh.nCx).T
|
||||
jy_CC = j_CC[mesh.nC:].reshape(mesh.nCy,mesh.nCx).T
|
||||
|
||||
#%% Grab only the core for presentation
|
||||
jx_CC_sub = jx_CC[padc:-padc,padc:]
|
||||
jy_CC_sub = jy_CC[padc:-padc,padc:]
|
||||
Q_sub = Q.reshape(mesh.nCy,mesh.nCx)
|
||||
Q_sub = Q_sub[padc:,padc:-padc]
|
||||
|
||||
J_rho = np.sqrt(jx_CC_sub**2 + jy_CC_sub**2)
|
||||
lw = np.log10(J_rho/J_rho.min())
|
||||
|
||||
#axs.imshow(Q_sub,alpha=0.75,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',vmin=-1e-2, vmax=1e-2)
|
||||
#axs.imshow(np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)),alpha=0.2,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',cmap='gray')
|
||||
|
||||
|
||||
global im3
|
||||
im3 = axs.streamplot(mesh_sub.vectorCCx, mesh_sub.vectorCCy, jx_CC_sub.T, jy_CC_sub.T,color='k',linewidth = lw.T,density=1.25)
|
||||
|
||||
global im4
|
||||
im4 = axs.scatter(txii[ii],10, c='r', s=60, marker='+' )
|
||||
|
||||
#plt.show()
|
||||
im1.set_array(Q_sub)
|
||||
im2.set_array(np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)))
|
||||
#im2.set_array(mesh_sub.vectorCCx, mesh_sub.vectorCCy,jx_CC_sub.T,jy_CC_sub.T)
|
||||
|
||||
return [im1] + [im2]
|
||||
#%% Create widget
|
||||
def removeStream():
|
||||
global im3
|
||||
im3.lines.remove()
|
||||
axs.patches = []
|
||||
|
||||
global im4
|
||||
im4.remove()
|
||||
#def viewInv(msh,iteration):
|
||||
|
||||
|
||||
|
||||
#, linewidth=lw.T
|
||||
#%%
|
||||
#interact(viewInv,msh = mesh_sub, iteration = IntSlider(min=0, max=len(txii)-1 ,step=1, value=0))
|
||||
# set embed_frames=True to embed base64-encoded frames directly in the HTML
|
||||
anim = animation.FuncAnimation(fig, animate, init_func=init,
|
||||
frames=len(txii), interval=10)
|
||||
|
||||
anim.save('animation.html', writer=HTMLWriter(embed_frames=True))
|
||||
@@ -43,7 +43,7 @@ dsep = '\\'
|
||||
#from scipy.linalg import solve_banded
|
||||
|
||||
# Load UBC mesh 3D
|
||||
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_10m.msh')
|
||||
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_5m.msh')
|
||||
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\MtIsa_20m.msh')
|
||||
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_50m.msh')
|
||||
|
||||
@@ -74,6 +74,9 @@ flr = 1e-4
|
||||
chifact = 100
|
||||
ref_mod = 1e-2
|
||||
|
||||
# DOI threshold
|
||||
cutoff = 0.8
|
||||
|
||||
#%% Create system
|
||||
#Set boundary conditions
|
||||
mesh.setCellGradBC('neumann')
|
||||
@@ -276,7 +279,7 @@ if not re.match(stype,'gradient'):
|
||||
# m3D = np.reshape(model, (mesh.nCz, mesh.nCy, mesh.nCx))
|
||||
# m2D = m3D[:,1,:]
|
||||
#==============================================================================
|
||||
|
||||
#%%
|
||||
plt.figure()
|
||||
axs = plt.subplot(1,1,1)
|
||||
|
||||
@@ -284,8 +287,8 @@ if not re.match(stype,'gradient'):
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
circle1=plt.Circle((150,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((325,1500),50,color='k',fill=False, lw=3)
|
||||
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
|
||||
axs.add_artist(circle1)
|
||||
axs.add_artist(circle2)
|
||||
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D))#axes = [mesh2d.vectorNx[0],mesh2d.vectorNx[-1],mesh2d.vectorNy[0],mesh2d.vectorNy[-1]])
|
||||
@@ -307,66 +310,130 @@ if not re.match(stype,'gradient'):
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
circle1=plt.Circle((150,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((325,1500),50,color='k',fill=False, lw=3)
|
||||
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
|
||||
axs.add_artist(circle1)
|
||||
axs.add_artist(circle2)
|
||||
|
||||
plot_pseudoSection(Tx2d,Rx2d,data,nz[-1],stype)
|
||||
plt.show()
|
||||
|
||||
#%% Create dcin2d inversion files and run
|
||||
inv_dir = home_dir + '\Inv2D'
|
||||
if not os.path.exists(inv_dir):
|
||||
os.makedirs(inv_dir)
|
||||
#%% Run two inversions with different reference models and compute a DOI
|
||||
|
||||
invmod = []
|
||||
refmod = []
|
||||
plt.figure()
|
||||
|
||||
for jj in range(2):
|
||||
|
||||
# Create dcin2d inversion files and run
|
||||
inv_dir = home_dir + '\Inv2D'
|
||||
if not os.path.exists(inv_dir):
|
||||
os.makedirs(inv_dir)
|
||||
|
||||
mshfile2d = 'Mesh_2D.msh'
|
||||
modfile2d = 'Model_2D.con'
|
||||
obsfile2d = 'FWR_3D_2_2D.dat'
|
||||
inp_file = 'dcinv2d.inp'
|
||||
|
||||
mshfile2d = 'Mesh_2D.msh'
|
||||
modfile2d = 'MtIsa_2D.con'
|
||||
obsfile2d = 'FWR_3D_2_2D.dat'
|
||||
inp_file = 'dcinv2d.inp'
|
||||
|
||||
# Export 2D mesh
|
||||
fid = open(inv_dir + dsep + mshfile2d,'w')
|
||||
fid.write('%i\n'% mesh2d.nCx)
|
||||
fid.write('%f %f 1\n'% (mesh2d.vectorNx[0],mesh2d.vectorNx[1]))
|
||||
np.savetxt(fid, np.c_[mesh2d.vectorNx[2:],np.ones(mesh2d.nCx-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
|
||||
fid.write('\n')
|
||||
fid.write('%i\n'% mesh2d.nCy)
|
||||
fid.write('%f %f 1\n'%( 0,mesh2d.hy[-1]))
|
||||
np.savetxt(fid, np.c_[np.cumsum(mesh2d.hy[-2::-1])+mesh2d.hy[-1],np.ones(mesh2d.nCy-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
|
||||
fid.close()
|
||||
|
||||
# Export 2D model
|
||||
fid = open(inv_dir + dsep + modfile2d,'w')
|
||||
fid.write('%i %i\n'% (mesh2d.nCx,mesh2d.nCy))
|
||||
np.savetxt(fid, mkvc(m2D[::-1,:].T), fmt='%e',delimiter=' ',newline='\n')
|
||||
fid.close()
|
||||
|
||||
# Export data file
|
||||
writeUBC_DCobs(inv_dir + dsep + obsfile2d,Tx2d,Rx2d,data,unct,'2D')
|
||||
|
||||
# Write input file
|
||||
fid = open(inv_dir + dsep + inp_file,'w')
|
||||
fid.write('OBS LOC_X %s \n'% obsfile2d)
|
||||
fid.write('MESH FILE %s \n'% mshfile2d)
|
||||
fid.write('CHIFACT 1 %f\n'% chifact)
|
||||
fid.write('TOPO DEFAULT %s \n')
|
||||
fid.write('INIT_MOD DEFAULT\n')
|
||||
fid.write('REF_MOD VALUE %e\n'% (ref_mod*(jj+1)))
|
||||
fid.write('ALPHA DEFAULT\n')
|
||||
fid.write('WEIGHT DEFAULT\n')
|
||||
fid.write('STORE_ALL_MODELS FALSE\n')
|
||||
fid.write('INVMODE SVD\n')
|
||||
fid.write('USE_MREF TRUE\n')
|
||||
fid.close()
|
||||
|
||||
os.chdir(inv_dir)
|
||||
os.system('dcinv2d ' + inp_file)
|
||||
|
||||
|
||||
#Load model
|
||||
minv = readUBC_DC2DModel(inv_dir + dsep + 'dcinv2d.con')
|
||||
|
||||
axs = plt.subplot(2,1,jj+1)
|
||||
|
||||
plt.xlim([-dx,nc*dx+dx])
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
minv = np.reshape(minv,(mesh2d.nCy,mesh2d.nCx))
|
||||
#plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')
|
||||
|
||||
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
|
||||
axs.add_artist(circle1)
|
||||
axs.add_artist(circle2)
|
||||
|
||||
|
||||
axp = plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(minv),alpha=1,vmin = -2.25, vmax = -1.5)
|
||||
|
||||
plt.show()
|
||||
|
||||
if jj == 1:
|
||||
|
||||
plt.ylabel('(b)',rotation=360)
|
||||
plt.xlabel('Distance (m)')
|
||||
|
||||
else:
|
||||
plt.ylabel('(a)',rotation=360)
|
||||
|
||||
|
||||
cbar = plt.colorbar(format = '%.2f',fraction=0.05,orientation='vertical',pad=0.02)
|
||||
cmin,cmax = cbar.get_clim()
|
||||
ticks = np.linspace(cmin,cmax,3)
|
||||
cbar.set_ticks(ticks)
|
||||
#cbar.set_ticklabels('%.2f')
|
||||
|
||||
invmod.append(minv)
|
||||
refmod.append(ref_mod*(jj+1))
|
||||
|
||||
#%% Compute DOI
|
||||
DOI = np.abs(invmod[0] - invmod[1]) / np.abs(refmod[0] - refmod[1])
|
||||
# Normalize between [0 1]
|
||||
DOI = DOI - np.min(DOI)
|
||||
DOI = (1.- DOI/np.max(DOI))
|
||||
DOI[DOI > cutoff] = 1
|
||||
|
||||
plt.figure()
|
||||
plt.xlim([-dx,nc*dx+dx])
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
# Export 2D mesh
|
||||
fid = open(inv_dir + dsep + mshfile2d,'w')
|
||||
fid.write('%i\n'% mesh2d.nCx)
|
||||
fid.write('%f %f 1\n'% (mesh2d.vectorNx[0],mesh2d.vectorNx[1]))
|
||||
np.savetxt(fid, np.c_[mesh2d.vectorNx[2:],np.ones(mesh2d.nCx-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
|
||||
fid.write('\n')
|
||||
fid.write('%i\n'% mesh2d.nCy)
|
||||
fid.write('%f %f 1\n'%( 0,mesh2d.hy[-1]))
|
||||
np.savetxt(fid, np.c_[np.cumsum(mesh2d.hy[-2::-1])+mesh2d.hy[-1],np.ones(mesh2d.nCy-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
|
||||
fid.close()
|
||||
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,DOI,alpha=1)
|
||||
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
|
||||
|
||||
# Export 2D model
|
||||
fid = open(inv_dir + dsep + modfile2d,'w')
|
||||
fid.write('%i %i\n'% (mesh2d.nCx,mesh2d.nCy))
|
||||
np.savetxt(fid, mkvc(m2D[::-1,:].T), fmt='%e',delimiter=' ',newline='\n')
|
||||
fid.close()
|
||||
|
||||
# Export data file
|
||||
writeUBC_DCobs(inv_dir + dsep + obsfile2d,Tx2d,Rx2d,data,unct,'2D')
|
||||
|
||||
# Write input file
|
||||
fid = open(inv_dir + dsep + inp_file,'w')
|
||||
fid.write('OBS LOC_X %s \n'% obsfile2d)
|
||||
fid.write('MESH FILE %s \n'% mshfile2d)
|
||||
fid.write('CHIFACT 1 %f\n'% chifact)
|
||||
fid.write('TOPO DEFAULT %s \n')
|
||||
fid.write('INIT_MOD DEFAULT\n')
|
||||
fid.write('REF_MOD VALUE %e\n'% ref_mod)
|
||||
fid.write('ALPHA DEFAULT\n')
|
||||
fid.write('WEIGHT DEFAULT\n')
|
||||
fid.write('STORE_ALL_MODELS FALSE\n')
|
||||
fid.write('INVMODE SVD\n')
|
||||
fid.write('USE_MREF TRUE\n')
|
||||
fid.close()
|
||||
|
||||
os.chdir(inv_dir)
|
||||
os.system('dcinv2d ' + inp_file)
|
||||
|
||||
#%%
|
||||
#Load model
|
||||
minv = readUBC_DC2DModel(inv_dir + dsep + 'dcinv2d.con')
|
||||
#%% Replace alpha values from inversion
|
||||
#rgba_plt = axp.get_facecolor()
|
||||
#rgba_plt[:,3] = mkvc(DOI)/2
|
||||
plt.figure()
|
||||
axs = plt.subplot(1,1,1)
|
||||
|
||||
@@ -374,22 +441,20 @@ if not re.match(stype,'gradient'):
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
minv = np.reshape(minv,(mesh2d.nCy,mesh2d.nCx))
|
||||
#plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')
|
||||
|
||||
circle1=plt.Circle((150,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((325,1500),50,color='k',fill=False, lw=3)
|
||||
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
|
||||
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
|
||||
axs.add_artist(circle1)
|
||||
axs.add_artist(circle2)
|
||||
|
||||
axp = plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(minv),alpha=1,vmin = np.min(np.log10(minv)), vmax = np.max(np.log10(minv)))
|
||||
#t = [-3, -2, -1]
|
||||
axs = plt.pcolor(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(invmod[0]),edgecolor="none")
|
||||
plt.draw()
|
||||
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
|
||||
cmin,cmax = cbar.get_clim()
|
||||
ticks = np.linspace(cmin,cmax,3)
|
||||
cbar.set_ticks(ticks)
|
||||
#cbar.set_ticklabels('%.2f')
|
||||
|
||||
aa = axs.get_facecolors()
|
||||
aa[:,3] = mkvc(DOI.T)
|
||||
axs.set_facecolor(aa)
|
||||
|
||||
plt.draw()
|
||||
|
||||
#%% Othrwise it is a gradient array, plot surface of apparent resisitivty
|
||||
elif re.match(stype,'gradient'):
|
||||
|
||||
|
||||
@@ -37,29 +37,30 @@ from gen_DCIPsurvey import gen_DCIPsurvey
|
||||
from convertObs_DC3D_to_2D import convertObs_DC3D_to_2D
|
||||
import os
|
||||
|
||||
home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
|
||||
#home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
|
||||
home_dir ='C:\\LC\Private\\dominiquef\\Projects\\4414_Minsim\\Model'
|
||||
dsep = '\\'
|
||||
#from scipy.linalg import solve_banded
|
||||
|
||||
# Load UBC mesh 3D
|
||||
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_10m.msh')
|
||||
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_10m.msh')
|
||||
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\MtIsa_20m.msh')
|
||||
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_50m.msh')
|
||||
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_50m.msh')
|
||||
|
||||
# Load model
|
||||
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\MtIsa_3D.con',mesh)
|
||||
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Synthetic.con',mesh)
|
||||
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Lalor_model_50m.con',mesh)
|
||||
model = Utils.meshutils.readUBCTensorModel(home_dir + '\TwoSpheres.con',mesh)
|
||||
model = Utils.meshutils.readUBCTensorModel(home_dir + '\Lalor_model_50m.con',mesh)
|
||||
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\TwoSpheres.con',mesh)
|
||||
|
||||
#model = model**0 * 1e-2
|
||||
# Specify survey type
|
||||
stype = 'dpdp'
|
||||
stype = 'pdp'
|
||||
|
||||
# Survey parameters
|
||||
a = 30
|
||||
b = 30
|
||||
n = 20
|
||||
a = 150
|
||||
b = 150
|
||||
n = 40
|
||||
|
||||
# Forward solver
|
||||
slvr = 'BiCGStab' #'LU'
|
||||
@@ -71,7 +72,7 @@ pcdr = 'Jacobi'#'Gauss-Seidel'#
|
||||
pct = 0.01
|
||||
flr = 1e-4
|
||||
chifact = 100
|
||||
ref_mod = 1e-2
|
||||
ref_mod = 1e-3
|
||||
|
||||
#%% Create system
|
||||
#Set boundary conditions
|
||||
@@ -112,8 +113,8 @@ top = int(mesh.nCz)-1
|
||||
plt.figure()
|
||||
ax_prim = plt.subplot(1,1,1)
|
||||
mesh.plotSlice(model, ind=top, normal='Z', grid=False, pcolorOpts={'alpha':0.5}, ax =ax_prim)
|
||||
plt.xlim([423000,424000])
|
||||
plt.ylim([546200,547000])
|
||||
#plt.xlim([423000,424000])
|
||||
#plt.ylim([546200,547000])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
plt.show()
|
||||
@@ -129,7 +130,7 @@ plt.sca(ax_prim)
|
||||
|
||||
# Takes two points from ginput and create survey
|
||||
#if re.match(stype,'gradient'):
|
||||
# gin = [(423187. , 546311.), (423867. , 546991.)]
|
||||
#gin = [(425347, 6079766), (427792, 6081806)]
|
||||
#else:
|
||||
gin = plt.ginput(2, timeout = 0)
|
||||
|
||||
@@ -280,7 +281,7 @@ if not re.match(stype,'gradient'):
|
||||
axs = plt.subplot(2,1,1)
|
||||
|
||||
plt.xlim([0,nc*dx])
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]])
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len,mesh2d.vectorNy[-1]])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')#axes = [mesh2d.vectorNx[0],mesh2d.vectorNx[-1],mesh2d.vectorNy[0],mesh2d.vectorNy[-1]])
|
||||
@@ -348,27 +349,29 @@ if not re.match(stype,'gradient'):
|
||||
axs = plt.subplot(2,1,2)
|
||||
|
||||
plt.xlim([0,nc*dx])
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]])
|
||||
plt.ylim([mesh2d.vectorNy[-1]-dl_len,mesh2d.vectorNy[-1]])
|
||||
plt.gca().set_aspect('equal', adjustable='box')
|
||||
|
||||
minv = np.reshape(minv,(mesh2d.nCy,mesh2d.nCx))
|
||||
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')
|
||||
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(minv),alpha=0.5, clim=(np.min(np.log10(m2D)),np.max(np.log10(m2D))))
|
||||
plt.colorbar
|
||||
|
||||
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
|
||||
cmin,cmax = cbar.get_clim()
|
||||
ticks = np.linspace(cmin,cmax,3)
|
||||
cbar.set_ticks(ticks)
|
||||
|
||||
#%% Othrwise it is a gradient array, plot surface of apparent resisitivty
|
||||
elif re.match(stype,'gradient'):
|
||||
|
||||
rC1P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
|
||||
rC2P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
|
||||
rC1P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
|
||||
rC2P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
|
||||
rC1P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
|
||||
rC2P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
|
||||
|
||||
rC1C2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0]-Tx[0][0:2,1],Rx[0].shape[0], 1) )**2, axis=1 ))
|
||||
rP1P2 = np.sqrt( np.sum( (Rx[0][:,0:2] - Rx[0][:,3:5])**2, axis=1 ))
|
||||
|
||||
rho = np.abs(data[0]) * np.pi *((rC1P1)**2 / rP1P2)#/ ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 )
|
||||
rho = np.abs(data[0]) *np.pi *2. / ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 )#*((rC1P1)**2 / rP1P2)#
|
||||
|
||||
Pmid = (Rx[0][:,0:2] + Rx[0][:,3:5])/2
|
||||
|
||||
@@ -378,7 +381,10 @@ elif re.match(stype,'gradient'):
|
||||
|
||||
|
||||
#plt.subplot(2,1,2)
|
||||
plt.figure()
|
||||
plt.imshow(grid_rho.T, extent = (np.min(grid_x),np.max(grid_x),np.min(grid_z),np.max(grid_z)) ,origin='lower')
|
||||
|
||||
var = 'Gradient Array - a-spacing: ' + str(a) + ' m'
|
||||
plt.title(var)
|
||||
plt.colorbar()
|
||||
plt.contour(grid_x,grid_z,grid_rho, colors='k')
|
||||
@@ -0,0 +1,191 @@
|
||||
|
||||
<script language="javascript">
|
||||
/* Define the Animation class */
|
||||
function Animation(frames, img_id, slider_id, interval, loop_select_id){
|
||||
this.img_id = img_id;
|
||||
this.slider_id = slider_id;
|
||||
this.loop_select_id = loop_select_id;
|
||||
this.interval = interval;
|
||||
this.current_frame = 0;
|
||||
this.direction = 0;
|
||||
this.timer = null;
|
||||
this.frames = new Array(frames.length);
|
||||
|
||||
for (var i=0; i<frames.length; i++)
|
||||
{
|
||||
this.frames[i] = new Image();
|
||||
this.frames[i].src = frames[i];
|
||||
}
|
||||
document.getElementById(this.slider_id).max = this.frames.length - 1;
|
||||
this.set_frame(this.current_frame);
|
||||
}
|
||||
|
||||
Animation.prototype.get_loop_state = function(){
|
||||
var button_group = document[this.loop_select_id].state;
|
||||
for (var i = 0; i < button_group.length; i++) {
|
||||
var button = button_group[i];
|
||||
if (button.checked) {
|
||||
return button.value;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Animation.prototype.set_frame = function(frame){
|
||||
this.current_frame = frame;
|
||||
document.getElementById(this.img_id).src = this.frames[this.current_frame].src;
|
||||
document.getElementById(this.slider_id).value = this.current_frame;
|
||||
}
|
||||
|
||||
Animation.prototype.next_frame = function()
|
||||
{
|
||||
this.set_frame(Math.min(this.frames.length - 1, this.current_frame + 1));
|
||||
}
|
||||
|
||||
Animation.prototype.previous_frame = function()
|
||||
{
|
||||
this.set_frame(Math.max(0, this.current_frame - 1));
|
||||
}
|
||||
|
||||
Animation.prototype.first_frame = function()
|
||||
{
|
||||
this.set_frame(0);
|
||||
}
|
||||
|
||||
Animation.prototype.last_frame = function()
|
||||
{
|
||||
this.set_frame(this.frames.length - 1);
|
||||
}
|
||||
|
||||
Animation.prototype.slower = function()
|
||||
{
|
||||
this.interval /= 0.7;
|
||||
if(this.direction > 0){this.play_animation();}
|
||||
else if(this.direction < 0){this.reverse_animation();}
|
||||
}
|
||||
|
||||
Animation.prototype.faster = function()
|
||||
{
|
||||
this.interval *= 0.7;
|
||||
if(this.direction > 0){this.play_animation();}
|
||||
else if(this.direction < 0){this.reverse_animation();}
|
||||
}
|
||||
|
||||
Animation.prototype.anim_step_forward = function()
|
||||
{
|
||||
this.current_frame += 1;
|
||||
if(this.current_frame < this.frames.length){
|
||||
this.set_frame(this.current_frame);
|
||||
}else{
|
||||
var loop_state = this.get_loop_state();
|
||||
if(loop_state == "loop"){
|
||||
this.first_frame();
|
||||
}else if(loop_state == "reflect"){
|
||||
this.last_frame();
|
||||
this.reverse_animation();
|
||||
}else{
|
||||
this.pause_animation();
|
||||
this.last_frame();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Animation.prototype.anim_step_reverse = function()
|
||||
{
|
||||
this.current_frame -= 1;
|
||||
if(this.current_frame >= 0){
|
||||
this.set_frame(this.current_frame);
|
||||
}else{
|
||||
var loop_state = this.get_loop_state();
|
||||
if(loop_state == "loop"){
|
||||
this.last_frame();
|
||||
}else if(loop_state == "reflect"){
|
||||
this.first_frame();
|
||||
this.play_animation();
|
||||
}else{
|
||||
this.pause_animation();
|
||||
this.first_frame();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Animation.prototype.pause_animation = function()
|
||||
{
|
||||
this.direction = 0;
|
||||
if (this.timer){
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
}
|
||||
}
|
||||
|
||||
Animation.prototype.play_animation = function()
|
||||
{
|
||||
this.pause_animation();
|
||||
this.direction = 1;
|
||||
var t = this;
|
||||
if (!this.timer) this.timer = setInterval(function(){t.anim_step_forward();}, this.interval);
|
||||
}
|
||||
|
||||
Animation.prototype.reverse_animation = function()
|
||||
{
|
||||
this.pause_animation();
|
||||
this.direction = -1;
|
||||
var t = this;
|
||||
if (!this.timer) this.timer = setInterval(function(){t.anim_step_reverse();}, this.interval);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="animation" align="center">
|
||||
<img id="_anim_imgBYBDWVXULSOEHXUW">
|
||||
<br>
|
||||
<input id="_anim_sliderBYBDWVXULSOEHXUW" type="range" style="width:350px" name="points" min="0" max="1" step="1" value="0" onchange="animBYBDWVXULSOEHXUW.set_frame(parseInt(this.value));"></input>
|
||||
<br>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.slower()">–</button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.first_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAgaeZk4EQAAASlJREFUKM/dkj9LQnEUhp9zr3bpj1uBcKGiJWxzLWivKAIRjIhcCqcgqJbKRagPICiVSVEuNTu0tLYGUg4tkRGUdxLJ0u79Ndxr5FfwTO/L+xzO4XCgO+v2T70AFU+/A/Dhmlzg6Pr0DKAMwOH4zQxAAbAkv2xNeF2RoQUVc1ytgttXUbWVdN1dOPE8pz4j4APQsdFtKA0WY6vpKjqvVciHnvZTS6Ja4HgggJLs7MHxl9nCh8NYcO+iGG0agiaC4h9oa6Vsw2yiK+QHSZT934YoEQABNBcTNDszsrhm1m1B+bFS86PT6QFppx6oeSaeOwlMXRp1h4aK13Y2kuHhUo9ykPboPvFjeEvsrhTMt3ylHyB0r8KZyYdCrbfj4OveoHMANjuyx+76rV+/blxKMZUnLgAAAABJRU5ErkJggg=="></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.previous_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAgyTCyQ6wAAANRJREFUKM9jYBjO4AiUfgzFGGAp4+yayUvX6jMwMDCsYmBgOCS4OAOrSYmMgcc8/pd5Q3irC+Neh/1AlmeBMVgZmP8yMLD8/c/cqv9r90whzv/MX7Eq/MfAwMDIwCuZdfSV8U8WDgZGRmYGrAoZGRgY/jO8b3sj/J2F6T8j4z80pzEhmIwMjAxsSbqqlkeZGP//Z8SlkJnhPwMjwx/Guoe1NhmRwk+YGH5jV8jOwMPHzcDBysAwh8FrxQwtPU99HrwBXsnAwMDAsJiBgYGBoZ1xmKYqALHhMpn1o7igAAAAAElFTkSuQmCC"></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.reverse_animation()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAgmVvZElgAAAVFJREFUKM+t0k8ow3EYx/H3s/2aLDUSZctFkgsHEi1XLi5ukpPSWsuJklwclsPSsDKFi7MSJ0I5qF2GHO2m0FY7+BdNv7Y9DpuxDSt5vsfvq+fT9/k+8D8VBxIAWH6H0ead4Qb5BRwCENoceZi5Stl/6BgCBmtWhjzxg4mUQ02rAhil7JgB9tze7aTLxFAKsUUd14B9ZzCyFUk401gQyQJaDNcBHwv7t7ETd0ZVQFEEzcNCdE/1wtj15imGWlEB8qkf2QaAWjbG/bPSamIDyX65/iwDIFx7tWjUvWCoSo5oGbYATN7PORt7W9IZEQXJH8ohuN7C0VVX91KNqYhq4a1lEGJI0j892tazXCWQRUpwAbYDcHczPxXuajq3mbnhfANz5eOJxsuNvs7+jud0UcuyL3QAkuEMx4rnIvBYq1JhEwPAUb3fG7x8tVdc292/7Po7f2VqA+Yz7ZwAAAAASUVORK5CYII="></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.pause_animation()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAkR91DQ2AAAAKtJREFUKM9jYCANTEVib2K4jcRbzQihGWEC00JuNjN8Z2Q0Zo3VYWA4lL005venH9+c3ZK5IfIsMIXMBtc12Bj+MMgxMDAwMPzWe2TBzPCf4SLcZCYY4/9/RgZGBiaYFf8gljFhKiQERhUOeoX/Gf8y/GX4y/APmlj+Mfxj+MfwH64Qnnq0zr9fyfLrPzP3eQYGBobvk5x4GX4xMIij23gdib0cRWYHiVmAAQDK5ircshCbHQAAAABJRU5ErkJggg=="></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.play_animation()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAkEmo00MwAAAS9JREFUKM+tkj1IQmEUhp9j94LQj0FD4RRBLdLQ3ftb26PRcCiQIIiIDFwKC0OhaAiam5wVDBpqCKohQojMLYzaAiUatOtpuQrKVQl64fu+4Xt4OLwc+Fs+nNM16jsPAWS6gZXggoZfXmfhog3hcZ6aTXF87Sp68OmH4/YggAo8bmfyyeh6Z1AAKPVldyO1+Iz2uILq3AriJSe3l+H7aj+cuRnrTsVDxSxay+VYbMDnCtZxxQOU9G4nlU9E1HQBxRkCQMRGRnIbpxMARkvxCIoAorYMMrq0mJ0qu4COUW3xyVDqJC4P+86P0ewDQbQqgevhlc2C8ETApXAEFLzvwa3EXG9BoIE1GQUbv1h7k4fTXxBu6cKgUbX5M3ZzNC+a7rQ936HV56SlRpcle+Mf8wvgJ16zo/4BtQAAAABJRU5ErkJggg=="></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.next_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAkd/uac8wAAAMhJREFUKM9jYBie4DEUQ8B+fEq3+3UrMzAwMFxjYGBgYJizYubaOUxYFUaXh/6vWfRfEMIL/+//P5gZJoei4/f/7wxnY1PeNUXdE2RgYGZgYoCrY2BBVsjKwMDAwvCS4f3SG/dXxm5gYESSQ1HIwvCPgZmB8f8Pxv+Kxxb/YfiPJIdi9T8GJgaG/38ZFd4Fx0xUYsZt4h8GBgb2D2bLy7KnMTAwMEIxFoVCXIYr1IoDnkF4XAysqNIwUMDAwMDAsADKS2NkGL4AAIARMlfNIfZMAAAAAElFTkSuQmCC"></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.last_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAknOOpFQQAAAS9JREFUKM/dkrEvQ3EQxz/33mtoQxiYpANbLU26NAabSCcSUouGBVNDjYQaOiDpIEiKjURIw2Kx04hEYmkHEpGoJpSISaXq9Wd4P03/ht5y98197/u9XA4aK4rAWw3lgWddZ3S+/G9mEovtAB8AHE4pgTQAx8PbJweRmsq6GimmNpxaNYXVzMNNCI6A2figimwCGACK786zuWgh3qcsKf/w0pM4X0m/doNVFVzVGlEQsdRj193VxEWpH0RsdRu+zi3tVMqCAsDShoiYqiSV4OouVDFEqS9Pbiyg7vV62lpQ2BJ4Gg0meg0MbNpkYG/e+540NNFyrE1a8qHk5BaAjfnrzUaHfAWImVrLIXbgnx4/9X06s35cweWsVACa3a24PVp0X+rPv1aHFnSONdiL8Qci0lzwpOM5sQAAAABJRU5ErkJggg=="></button>
|
||||
<button onclick="animBYBDWVXULSOEHXUW.faster()">+</button>
|
||||
<form action="#n" name="_anim_loop_selectBYBDWVXULSOEHXUW" class="anim_control">
|
||||
<input type="radio" name="state" value="once" > Once </input>
|
||||
<input type="radio" name="state" value="loop" checked> Loop </input>
|
||||
<input type="radio" name="state" value="reflect" > Reflect </input>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<script language="javascript">
|
||||
/* Instantiate the Animation class. */
|
||||
/* The IDs given should match those used in the template above. */
|
||||
(function() {
|
||||
var img_id = "_anim_imgBYBDWVXULSOEHXUW";
|
||||
var slider_id = "_anim_sliderBYBDWVXULSOEHXUW";
|
||||
var loop_select_id = "_anim_loop_selectBYBDWVXULSOEHXUW";
|
||||
var frames = new Array(0);
|
||||
|
||||
frames[0] = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Wd0lNXehvFrJr0nJCGFAKEFQpGS0FE6KEoRAUGKHgER1KPYKO+xHRsWig2BI4KCUmxgR1ABEUSq1NBbSCghpPdk3g8hAyEBAkxmJnD/1pqVZM8ze/8nkrW8Z5fHYDKZTIiIiIiIiIiITRltXYCIiIiIiIiIKKCLiIiIiIiI2AUFdBERERERERE7oIAuIiIiIiIiYgcU0EVERERERETsgAK6iIiIiIiIiB1QQBcRERERERGxAwroIiIiIiIiInZAAV1ERERERETEDiigi4iIiIiIiNgBBXQRERERERERO6CALiIiIiIiImIHFNBFRERERERE7IACuoiIiIiIiIgdUEAXERERERERsQMK6CIiIiIiIiJ2QAFdRERERERExA4ooIuIiIiIiIjYAQV0ERERERERETuggC4iIiIiIiJiBxTQRUREREREROyAArqIiIiIiIiIHVBAFxEREREREbEDCugiIiIiIiIidkABXURERERERMQOKKCLiIiIiIiI2AEFdBERERERERE7oIAuIiIiIiIiYgcU0EVERERERETsgAK6iIiIiIiIiB1QQBcRERERERGxAwroIiIiIiIiInZAAV1ERERERETEDiigi4iIiIiIiNgBBXQRERERERERO6CALiIiIiIiImIHFNBFRERERERE7IACuoiIiIiIiIgdUEAXERERERERsQMK6CIiIiIiIiJ2wNHWBZSXhIQEli1bRnh4OG5ubrYuR0RERERERCqYzMxMDh8+TPfu3QkICCj38W7YgL5s2TKGDBli6zJERERERESkgps/fz6DBw8u93Fu2IAeHh4OFP4iIyMjbVuMyE1i7NixTJ061dZliEgp9PcpYt/0Nypin3bv3s2QIUPM+bK83bABvWhZe2RkJM2aNbNxNSI3Bx8fH/29idgp/X2K2Df9jYrYN2ttm9YhcSIiIiIiIiJ2QAFdRERERERExA4ooIuIiIiIiIjYAQV0EbGYQYMG2boEEbkE/X2K2Df9jYoIKKCLiAXpfy5E7Jf+PkXsm/5GRQQU0EVERERERETsggK6iIiIiIiIiB1QQBcRERERERGxAwroIiIiIiIiInZA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 truncated
|
||||
frames[1] = "data:image/png;base64,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 truncated
|
||||
frames[2] = "data:image/png;base64,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 truncated
|
||||
frames[3] = "data:image/png;base64,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 truncated
|
||||
frames[4] = "data:image/png;base64,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 truncated
|
||||
frames[5] = "data:image/png;base64,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 truncated
|
||||
frames[6] = "data:image/png;base64,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 truncated
|
||||
frames[7] = "data:image/png;base64,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 truncated
|
||||
frames[8] = "data:image/png;base64,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 truncated
|
||||
frames[9] = "data:image/png;base64,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 truncated
|
||||
frames[10] = "data:image/png;base64,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 truncated
|
||||
frames[11] = "data:image/png;base64,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 truncated
|
||||
frames[12] = "data:image/png;base64,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 truncated
|
||||
frames[13] = "data:image/png;base64,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 truncated
|
||||
|
||||
|
||||
/* set a timeout to make sure all the above elements are created before
|
||||
the object is initialized. */
|
||||
setTimeout(function() {
|
||||
animBYBDWVXULSOEHXUW = new Animation(frames, img_id, slider_id, 33, loop_select_id);
|
||||
}, 0);
|
||||
})()
|
||||
</script>
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -35,7 +35,13 @@ def readUBC_DC2DModel(fileName):
|
||||
model = model[:,::-1]
|
||||
|
||||
else:
|
||||
mm = np.array(obsfile[1:].split(),dtype=float)
|
||||
|
||||
if len(obsfile[1:])==1:
|
||||
mm = np.array(obsfile[1:].split(),dtype=float)
|
||||
|
||||
else:
|
||||
mm = np.array(obsfile[1:],dtype=float)
|
||||
|
||||
# Permute the second dimension to flip the order
|
||||
model = mm.reshape(dim[1],dim[0])
|
||||
|
||||
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user