def su_specfem3d(d, h, channel=None, prefix='SEM', suffix='.adj', verbose=False): nproc = len(h.nn) if suffix == '': suffix = '.adj' if channel in ['x']: wildcard = '%s/%d_dx_SU%s' elif channel in ['y']: wildcard = '%s/%d_dy_SU%s' elif channel in ['z']: wildcard = '%s/%d_dz_SU%s' elif channel in ['p']: wildcard = '%s/%d_dp_SU%s' else: raise Exception("Undefined Exception") imax = 0 for iproc in range(nproc): file = wildcard % (prefix, iproc, suffix) imin = imax imax = imax + h.nn[iproc] d_ = d[:, imin:imax] h_ = SeisStruct(nr=h.nr, nt=h.nt, dt=h.dt, ts=h.ts, nrec=h.nrec, nsrc=h.nsrc) h_.rx = h.rx[imin:imax] h_.ry = h.ry[imin:imax] h_.rz = h.rz[imin:imax] h_.sx = h.sx[imin:imax] h_.sy = h.sy[imin:imax] h_.sz = h.sz[imin:imax] h_.nr = imax - imin if verbose: print file print(imin, imax) print '' segywriter.writesu(file, d_, h_)
def su_specfem2d(d, h, channel=None, prefix='SEM', suffix='.su.adj'): """ Writes Seismic Unix file """ if channel in ['x']: file = '%s/Ux_file_single%s' % (prefix, suffix) elif channel in ['y']: file = '%s/Uy_file_single%s' % (prefix, suffix) elif channel in ['z']: file = '%s/Uz_file_single%s' % (prefix, suffix) elif channel in ['p']: file = '%s/Up_file_single%s' % (prefix, suffix) else: raise ValueError('CHANNEL must be one of the following: x y z p') # write data to file segywriter.writesu(file, d, h)
def su_specfem2d(d, h, channel=None, prefix='SEM', suffix='.su.adj'): """ Writes Seismic Unix file """ if suffix == '': suffix = '.su.adj' if channel in ['x']: file = '%s/Ux_file_single%s' % (prefix, suffix) elif channel in ['y']: file = '%s/Uy_file_single%s' % (prefix, suffix) elif channel in ['z']: file = '%s/Uz_file_single%s' % (prefix, suffix) elif channel in ['p']: file = '%s/Up_file_single%s' % (prefix, suffix) else: raise Exception("Undefined Exception") # write data to file segywriter.writesu(file, d, h)
def su_specfem3d(d, h, channel=None, prefix='SEM', suffix='.adj', verbose=False): nproc = len(h.nn) if channel in ['x']: wildcard = '%s/%d_dx_SU%s' elif channel in ['y']: wildcard = '%s/%d_dy_SU%s' elif channel in ['z']: wildcard = '%s/%d_dz_SU%s' elif channel in ['p']: wildcard = '%s/%d_dp_SU%s' else: raise ValueError('CHANNEL must be one of the following: x y z p') imax = 0 for iproc in range(nproc): file = wildcard % (prefix, iproc, suffix) imin = imax imax = imax + h.nn[iproc] d_ = d[:, imin:imax] h_ = SeisStruct(nr=h.nr, nt=h.nt, dt=h.dt, ts=h.ts, nrec=h.nrec, nsrc=h.nsrc) h_.rx = h.rx[imin:imax] h_.ry = h.ry[imin:imax] h_.rz = h.rz[imin:imax] h_.sx = h.sx[imin:imax] h_.sy = h.sy[imin:imax] h_.sz = h.sz[imin:imax] h_.nr = imax - imin if verbose: print file print (imin, imax) print '' segywriter.writesu(file, d_, h_)
def su_specfem3d(d, h, prefix='SEM', channel=None, suffix='.adj', verbose=False): nproc = len(h.nn) if channel in ['x']: wildcard = '%s/%d_dx_SU%s' elif channel in ['y']: wildcard = '%s/%d_dy_SU%s' elif channel in ['z']: wildcard = '%s/%d_dz_SU%s' elif channel in ['p']: wildcard = '%s/%d_dp_SU%s' else: raise ValueError('CHANNEL must be one of the following: x y z p') imax = 0 for iproc in range(nproc): file = wildcard % (prefix, h.ip[iproc], suffix) imin = imax imax = imax + h.nn[iproc] d_ = d[:, imin:imax] h_ = SeisStruct(nr=h.nr, nt=h.nt, dt=h.dt, ts=h.ts, nrec=h.nrec, nsrc=h.nsrc) h_.rx = h.rx[imin:imax] h_.ry = h.ry[imin:imax] h_.rz = h.rz[imin:imax] h_.sx = h.sx[imin:imax] h_.sy = h.sy[imin:imax] h_.sz = h.sz[imin:imax] h_.nr = imax - imin if verbose: print file print (imin, imax) print '' segywriter.writesu(file, d_, h_)