Example #1
0
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_)
Example #2
0

        
Example #3
0
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)
Example #4
0
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)
Example #5
0
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_)
Example #6
0
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_)