def goThin(): s1, s2, g = getImage() g = slog(g) # plot2(s1,s2,g,title="log input") fse = FaultSemblance() g = fse.taper(10, g) for iter in range(1): p = fse.slopes(g) # p = zerofloat(len(p[0]),len(p)) sn, sd = fse.semblanceNumDen(p, g) fsc = FaultScanner2(sigmaTheta, [sn, sd], smoother) f, t = fsc.scan(-15, 15) # plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") # plot2(s1,s2,g,t,title="fault dip (degrees)") fs = copy(f) RecursiveGaussianFilter(1.0).apply00(fs, fs) # plot2(s1,s2,g,fs,gmin=0,gmax=1,title="fault likelihood smoothed") plot2(s1, s2, g, fs, gmin=0.5, gmax=1, gmap=jetr, label="Fault likelihood") ft, tt = fsc.thin([f, t]) # plot2(s1,s2,g,ft,gmin=0,gmax=1,title="fault likelihood thinned") # plot2(s1,s2,g,tt,title="fault dip (degrees) thinned") plot2(s1, s2, g, ft, gmin=0.5, gmax=1, gmap=jetr, label="Fault likelihood", png="flt") plot2(s1, s2, g, tt, gmap=bwrn, label="Fault dip (degrees)", png="ftt") g = fsc.smooth(8, p, ft, g) # plot2(s1,s2,g,title="input smoothed") plot2(s1, s2, g, label="Log amplitude", png="gs")
def goThin(): s1,s2,g = getImage() g = slog(g) #plot2(s1,s2,g,title="log input") fse = FaultSemblance() g = fse.taper(10,g) for iter in range(1): p = fse.slopes(g) #p = zerofloat(len(p[0]),len(p)) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd],smoother) f,t = fsc.scan(-15,15) #plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") #plot2(s1,s2,g,t,title="fault dip (degrees)") fs = copy(f); RecursiveGaussianFilter(1.0).apply00(fs,fs) #plot2(s1,s2,g,fs,gmin=0,gmax=1,title="fault likelihood smoothed") plot2(s1,s2,g,fs,gmin=0.5,gmax=1,gmap=jetr,label="Fault likelihood") ft,tt = fsc.thin([f,t]) #plot2(s1,s2,g,ft,gmin=0,gmax=1,title="fault likelihood thinned") #plot2(s1,s2,g,tt,title="fault dip (degrees) thinned") plot2(s1,s2,g,ft,gmin=0.5,gmax=1,gmap=jetr, label="Fault likelihood",png="flt") plot2(s1,s2,g,tt,gmap=bwrn,label="Fault dip (degrees)",png="ftt") g = fsc.smooth(8,p,ft,g) #plot2(s1,s2,g,title="input smoothed") plot2(s1,s2,g,label="Log amplitude",png="gs")
def goShifts(): s1, s2, g = getImage() g = slog(g) plot2(s1, s2, g, title="log input") fse = FaultSemblance() g = fse.taper(10, g) p = fse.slopes(g) sn, sd = fse.semblanceNumDen(p, g) fsc = FaultScanner2(sigmaTheta, [sn, sd], smoother) f, t = fsc.scan(-15, 15) # plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") # ff,tt = fsc.thin([f,t]) # plot2(s1,s2,g,ff,gmin=0,gmax=1,title="fault likelihood") shiftMin, shiftMax = -20, 20 faults = fsc.findFaults([f, t], shiftMax - shiftMin) ff = faults.getLikelihoods() # plot2(s1,s2,g,ff,gmin=0,gmax=1,title="fault likelihood") # plot2(s1,s2,g,ff,gmin=0,gmax=1,label="Fault likelihood",png="flg") g = fsc.smooth(4, p, ff, g) # plot2(s1,s2,g,ff,gmin=0,gmax=1,title="input smoothed") # plot2(s1,s2,g,ff,gmin=0,gmax=1,label="Fault likelihood",png="flgs") plot2(s1, s2, g, label="Log amplitude", png="gs") p = fse.slopes(g) faults.findShifts(g, p, shiftMin, shiftMax) faults.clean() s = faults.getShifts() s = mul(s1.delta * 1000.0, s) print "s min =", min(s), " max =", max(s)
def goScan(): s1, s2, g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10, g) #p = fse.slopes(g) p = getSlopes(g) sn, sd = fse.semblanceNumDen(p, g) fsc = FaultScanner2(sigmaTheta, [sn, sd], FaultScanner2.Smoother.FFT) st = Sampling(25, 2.0, -25.0) for theta in st.values: f = fsc.likelihood(theta) plot2(s1, s2, g, f, gmin=0.2, gmax=0.7, gmap=jetr, title="theta = " + str(int(theta))) tmin, tmax = st.first, st.last f, t = fsc.scan(tmin, tmax) plot2(s1, s2, g, f, gmin=0.2, gmax=0.7, gmap=jetr, title="fault likelihood")
def goShifts(): s1,s2,g = getImage() g = slog(g) plot2(s1,s2,g,title="log input") fse = FaultSemblance() g = fse.taper(10,g) p = fse.slopes(g) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd],smoother) f,t = fsc.scan(-15,15) plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") #ff,tt = fsc.thin([f,t]) #plot2(s1,s2,g,ff,gmin=0,gmax=1,title="fault likelihood") shiftMin,shiftMax = -20,20 faults = fsc.findFaults([f,t],shiftMax-shiftMin); ff = faults.getLikelihoods() plot2(s1,s2,g,ff,gmin=0,gmax=1,title="fault likelihood") g = fsc.smooth(4,p,ff,g) plot2(s1,s2,g,ff,gmin=0,gmax=1,title="input smoothed") p = fse.slopes(g) faults.findShifts(g,p,shiftMin,shiftMax) faults.clean() s = faults.getShifts() print "s min =",min(s)," max =",max(s) plot2(s1,s2,g,s,gmin=-8,gmax=8,title="fault throws")
def goSlopes(): s1,s2,g = getImage() plot2(s1,s2,g,title="input") g = slog(g) plot2(s1,s2,g,title="log input") fse = FaultSemblance() p = fse.slopes(g) plot2(s1,s2,g,p,gmin=-0.9,gmax=0.9,title="slopes")
def goSlopes(): s1, s2, g = getImage() # plot2(s1,s2,g,title="input") plot2(s1, s2, g, label="Amplitude", png="ga") g = slog(g) # plot2(s1,s2,g,title="log input") plot2(s1, s2, g, label="Log amplitude", png="g") fse = FaultSemblance() p = fse.slopes(g) p = mul(s1.delta / s2.delta, p) # plot2(s1,s2,g,p,gmin=-0.9,gmax=0.9,title="slopes") plot2(s1, s2, g, p, gmin=-0.15, gmax=0.15, gmap=bwrf, label="Slope (s/km)", png="p")
def goSlopes(): s1,s2,g = getImage() #plot2(s1,s2,g,title="input") plot2(s1,s2,g,label="Amplitude",png="ga") g = slog(g) #plot2(s1,s2,g,title="log input") plot2(s1,s2,g,label="Log amplitude",png="g") fse = FaultSemblance() p = fse.slopes(g) p = mul(s1.delta/s2.delta,p) #plot2(s1,s2,g,p,gmin=-0.9,gmax=0.9,title="slopes") plot2(s1,s2,g,p,gmin=-0.07,gmax=0.07,gmap=bwrf,label="Slope (s/km)",png="p")
def goScan(): s1,s2,g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10,g) p = fse.slopes(g) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd]) st = Sampling(31,1.0,-15.0) for theta in st.values: f = fsc.likelihood(theta) png = "fl"+str(int(theta)) plot2(s1,s2,g,f,gmin=0,gmax=1,gmap=jetr,label="Fault likelihood",png=png) tmin,tmax = st.first,st.last f,t = fsc.scan(tmin,tmax) plot2(s1,s2,g,f,gmin=0,gmax=1,gmap=jetr,label="Fault likelihood",png="fl")
def goScan(): s1,s2,g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10,g) p = fse.slopes(g) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd]) st = Sampling(31,1.0,-15.0) for theta in st.values: f = fsc.likelihood(theta) plot2(s1,s2,g,f,gmin=0,gmax=1,title="theta = "+str(int(theta))) tmin,tmax = st.first,st.last f,t = fsc.scan(tmin,tmax) plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") plot2(s1,s2,g,t,gmin=tmin,gmax=tmax,title="fault dip (degrees)")
def goScan(): s1,s2,g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10,g) p = fse.slopes(g) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd]) st = Sampling(31,1.0,-15.0) for theta in st.values: f = fsc.likelihood(theta) png = "fl"+str(int(theta)) plot2(s1,s2,g,f,gmin=0.5,gmax=1,gmap=jetr,label="Fault likelihood",png=png) tmin,tmax = st.first,st.last f,t = fsc.scan(tmin,tmax) plot2(s1,s2,g,f,gmin=0.5,gmax=1,gmap=jetr,label="Fault likelihood",png="fl")
def goScan(): s1,s2,g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10,g) #p = fse.slopes(g) p = getSlopes(g) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd],FaultScanner2.Smoother.FFT) st = Sampling(25,2.0,-25.0) for theta in st.values: f = fsc.likelihood(theta) plot2(s1,s2,g,f,gmin=0.2,gmax=0.7,gmap=jetr, title="theta = "+str(int(theta))) tmin,tmax = st.first,st.last f,t = fsc.scan(tmin,tmax) plot2(s1,s2,g,f,gmin=0.2,gmax=0.7,gmap=jetr,title="fault likelihood")
def goSemblance(): s1,s2,g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10,g) p = fse.slopes(g) sn0,sd0 = fse.semblanceNumDen(p,g) print "semblances for different vertical smoothings:" for sigma in [0,2,4,8]: ref = RecursiveExponentialFilter(sigma) sn = copy(sn0) sd = copy(sd0) ref.apply1(sn,sn) ref.apply1(sd,sd) s = fse.semblanceFromNumDen(sn,sd) print "sigma =",sigma," s min =",min(s)," max =",max(s) title = "semblance: sigma = "+str(sigma) plot2(s1,s2,g,s,gmin=0,gmax=1,title=title)
def goAlign(): s1,s2,g = getImage() g = slog(g) n1,n2 = len(g[0]),len(g) fse = FaultSemblance() #p = fse.slopes(g) p = getSlopes(g) ref = RecursiveExponentialFilter(4) sn,sd = fse.semblanceNumDen(p,g) ref.apply1(sn,sn) ref.apply1(sd,sd) s = fse.semblanceFromNumDen(sn,sd) plot2(s1,s2,g,s,gmin=0,gmax=1,title="semblance with alignment") p = zerofloat(n1,n2) # semblance with zero slopes sn,sd = fse.semblanceNumDen(p,g) ref.apply1(sn,sn) ref.apply1(sd,sd) s = fse.semblanceFromNumDen(sn,sd) plot2(s1,s2,g,s,gmin=0,gmax=1,title="semblance without alignment")
def goSemblance(): s1, s2, g = getImage() g = slog(g) fse = FaultSemblance() g = fse.taper(10, g) #p = fse.slopes(g) p = getSlopes(g) sn0, sd0 = fse.semblanceNumDen(p, g) print "semblances for different vertical smoothings:" for sigma in [0, 2, 4, 8]: ref = RecursiveExponentialFilter(sigma) sn = copy(sn0) sd = copy(sd0) ref.apply1(sn, sn) ref.apply1(sd, sd) s = fse.semblanceFromNumDen(sn, sd) print "sigma =", sigma, " s min =", min(s), " max =", max(s) title = "semblance: sigma = " + str(sigma) plot2(s1, s2, g, s, gmin=0, gmax=1, title=title)
def goThin(): s1, s2, g = getImage() plot2(s1, s2, g, title="input") g = slog(mul(2.0, g)) plot2(s1, s2, g, title="log input") fse = FaultSemblance() g = fse.taper(10, g) for iter in range(1): #p = fse.slopes(g) p = getSlopes(g) #p = zerofloat(len(p[0]),len(p)) sn, sd = fse.semblanceNumDen(p, g) fsc = FaultScanner2(sigmaTheta, [sn, sd], smoother) f, t = fsc.scan(-25, 25) plot2(s1, s2, g, f, gmin=0, gmax=1, title="fault likelihood") #plot2(s1,s2,g,t,title="fault dip (degrees)") ft, tt = fsc.thin([f, t]) plot2(s1, s2, g, ft, gmin=0, gmax=1, title="fault likelihood thinned") #plot2(s1,s2,g,tt,title="fault dip (degrees) thinned") g = fsc.smooth(16, p, ft, g) plot2(s1, s2, g, title="input smoothed")
def goThin(): s1,s2,g = getImage() plot2(s1,s2,g,title="input") g = slog(mul(2.0,g)) plot2(s1,s2,g,title="log input") fse = FaultSemblance() g = fse.taper(10,g) for iter in range(1): #p = fse.slopes(g) p = getSlopes(g) #p = zerofloat(len(p[0]),len(p)) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd],smoother) f,t = fsc.scan(-25,25) plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") #plot2(s1,s2,g,t,title="fault dip (degrees)") ft,tt = fsc.thin([f,t]) plot2(s1,s2,g,ft,gmin=0,gmax=1,title="fault likelihood thinned") #plot2(s1,s2,g,tt,title="fault dip (degrees) thinned") g = fsc.smooth(16,p,ft,g) plot2(s1,s2,g,title="input smoothed")
def goShifts(): s1,s2,g = getImage() g = slog(g) #plot2(s1,s2,g,title="log input") fse = FaultSemblance() g = fse.taper(10,g) p = fse.slopes(g) sn,sd = fse.semblanceNumDen(p,g) fsc = FaultScanner2(sigmaTheta,[sn,sd],smoother) f,t = fsc.scan(-15,15) shiftMin,shiftMax = -20,20 faults = fsc.findFaults([f,t],shiftMax-shiftMin); ff = faults.getLikelihoods() plot2(s1,s2,g,ff,gmin=0,gmax=1,gmap=jetr,label="Fault likelihood",png="flg") g = fsc.smooth(4,p,ff,g) plot2(s1,s2,g,ff,gmin=0,gmax=1,gmap=jetr,label="Fault likelihood",png="flgs") plot2(s1,s2,g,label="Log amplitude",png="gs") p = fse.slopes(g) faults.findShifts(g,p,shiftMin,shiftMax) faults.clean() s = faults.getShifts() s = mul(s1.delta*1000.0,s) s = neg(s) print "s min =",min(s)," max =",max(s) plot2(s1,s2,g,s,gmin=0,gmax=28,gmap=jetr, label="Vertical component of throw (ms)",png="fs") plot2(s1,s2,g,s,gmin=0,gmax=15,gmap=jetr, label="Vertical component of throw (ms)",png="fs15")
def goShifts(): s1, s2, g = getImage() g = slog(g) plot2(s1, s2, g, title="log input") fse = FaultSemblance() g = fse.taper(10, g) p = fse.slopes(g) sn, sd = fse.semblanceNumDen(p, g) fsc = FaultScanner2(sigmaTheta, [sn, sd], smoother) f, t = fsc.scan(-15, 15) #plot2(s1,s2,g,f,gmin=0,gmax=1,title="fault likelihood") #ff,tt = fsc.thin([f,t]) #plot2(s1,s2,g,ff,gmin=0,gmax=1,title="fault likelihood") shiftMin, shiftMax = -20, 20 faults = fsc.findFaults([f, t], shiftMax - shiftMin) ff = faults.getLikelihoods() #plot2(s1,s2,g,ff,gmin=0,gmax=1,title="fault likelihood") #plot2(s1,s2,g,ff,gmin=0,gmax=1,label="Fault likelihood",png="flg") g = fsc.smooth(4, p, ff, g) #plot2(s1,s2,g,ff,gmin=0,gmax=1,title="input smoothed") #plot2(s1,s2,g,ff,gmin=0,gmax=1,label="Fault likelihood",png="flgs") plot2(s1, s2, g, label="Log amplitude", png="gs") p = fse.slopes(g) faults.findShifts(g, p, shiftMin, shiftMax) faults.clean() s = faults.getShifts() s = mul(s1.delta * 1000.0, s) print "s min =", min(s), " max =", max(s)
def goAlign(): s1,s2,g = getImage() g = slog(g) n1,n2 = len(g[0]),len(g) fse = FaultSemblance() p = fse.slopes(g) ref = RecursiveExponentialFilter(4) sn,sd = fse.semblanceNumDen(p,g) ref.apply1(sn,sn) ref.apply1(sd,sd) s = fse.semblanceFromNumDen(sn,sd) plot2(s1,s2,g,s,gmin=0,gmax=1,title="semblance with alignment") p = zerofloat(n1,n2) # semblance with zero slopes sn,sd = fse.semblanceNumDen(p,g) ref.apply1(sn,sn) ref.apply1(sd,sd) s = fse.semblanceFromNumDen(sn,sd) plot2(s1,s2,g,s,gmin=0,gmax=1,title="semblance without alignment")