def make1Dseismic(v,d,sz,dt,fpeak): wtu = WTutils() nz = len(v) toz = wtu.tzVlog(v,sz) r = zerofloat(nz) s = zerofloat(nz) imp0 = v[0]*d[0] for iz in range(1,nz): imp1 = v[iz]*d[iz] r[iz] = (imp1-imp0)/(imp1+imp0) imp0 = imp1 st = Sampling(int(max(toz)/dt),dt,0.0) s = wtu.syntheticSeismogram(fpeak,r,toz,st,sz,"ricker") st = Sampling(len(s),dt,0.0) #s = addRickerWavelet(fpeak,r) #s = mul(1.0/max(abs(s)),s) return s,st
def make2Dseismic(st,sz,toz,r,fpeak): wtu = WTutils() nx = len(r) s = zerofloat(st.count,nx) ml = 0 for ix in range(nx): s[ix] = wtu.syntheticSeismogram(fpeak,r[ix],toz[ix],st,sz,"ricker") if (len(s[ix])>ml): ml = len(s[ix]) nt = ml s2 = zerofloat(nt,nx) for ix in range(nx): for it in range(len(s[ix])): s2[ix][it] = s[ix][it] st = Sampling(nt,st.delta,st.first) #dz = sz.delta #nx = len(r) #nz = len(r[0]) #t = zerofloat(nz) #s = zerofloat(nz,nx) #for ix in range(nx): # s[ix] = addRickerWavelet(fpeak,r[ix]) # s[ix] = mul(1.0/max(abs(r[ix])),r[ix]) return s2,st