예제 #1
0
def make_overburden(memsize=100,
                    grid_par=None,
                    noise_par=None,
                    taper_par=None):

    noise_grid_par = grid_par.copy()
    noise_grid_par['nx'] = grid_par['nx'] + 2 * grid_par['xy_pad']
    noise_grid_par['ny'] = grid_par['ny'] + 2 * grid_par['xy_pad']

    # Make sand fraction grid

    grid = '''
           n1=%(nx)d d1=%(dx)g o1=0
           n2=%(ny)d d2=%(dy)g o2=0
           n3=%(nz)d d3=%(dz)g o3=0
           ''' % (noise_grid_par)

    Flow('ovr_sand_xypad', '', 'math' + grid + 'output="0"', stdin=0)

    # Make shale and porosity

    make_shale_and_phi('ovr_')

    # Make correlated random fields

    real_par = {'name': 'ovr_bk_', 'nr': 1, 'seed': 1}

    rfield.rfield(real_par, noise_grid_par, noise_par)

    # Add correlated noise to the porosity

    add_noise_overburden('ovr_', noise_par['std_dev'])

    # Make density and sonic velocities

    make_rho_and_vel('ovr_')

    # Apply top & bottom tapers to the property arrays

    apply_taper('ovr_', memsize, noise_grid_par, taper_par)
예제 #2
0
파일: channels.py 프로젝트: 1014511134/src
def make_overburden (memsize=100, grid_par=None, 
                     noise_par=None, taper_par=None):

    noise_grid_par = grid_par.copy()
    noise_grid_par['nx'] = grid_par['nx']+2*grid_par['xy_pad']
    noise_grid_par['ny'] = grid_par['ny']+2*grid_par['xy_pad']
                      
# Make sand fraction grid

    grid = '''
           n1=%(nx)d d1=%(dx)g o1=0
           n2=%(ny)d d2=%(dy)g o2=0
           n3=%(nz)d d3=%(dz)g o3=0
           ''' % (noise_grid_par)

    Flow ('ovr_sand_xypad','','math'+grid+'output="0"',stdin=0)

# Make shale and porosity

    make_shale_and_phi ('ovr_')
     
# Make correlated random fields 

    real_par = {'name':'ovr_bk_', 'nr':1, 'seed':1}
    
    rfield.rfield (real_par,noise_grid_par,noise_par)

# Add correlated noise to the porosity

    add_noise_overburden ('ovr_',noise_par['std_dev'])

# Make density and sonic velocities

    make_rho_and_vel ('ovr_')

# Apply top & bottom tapers to the property arrays

    apply_taper ('ovr_',memsize,noise_grid_par,taper_par)
예제 #3
0
def make_reservoir(memsize=100,
                   private=None,
                   grid_par=None,
                   geo_par=None,
                   sand_par=None,
                   bk_noise_par=None,
                   sd_noise_par=None,
                   taper_par=None):

    # Get channel properties from the data server

    get_props(private)

    # Put the channel properties into layer arrays

    make_prop_arrays(memsize, grid_par)

    # Make channel profile surfaces

    make_surfaces(geo_par)

    # Erode the channel profile surfaces

    erode_surfaces(memsize)

    # Put channel properties into a regular grid

    make_prop_grids(memsize, grid_par)

    # Make indicators and masks

    make_masks(memsize, grid_par)

    # Make sand fraction grid

    make_sand(grid_par, geo_par, sand_par)

    # Add padding in the x and y direction and reset the origin

    add_xy_pad('res_', grid_par['xy_pad'])

    # Make shale and porosity

    make_shale_and_phi('res_')

    # Make correlated random fields

    noise_grid_par = grid_par.copy()
    noise_grid_par['nx'] = grid_par['nx'] + 2 * grid_par['xy_pad']
    noise_grid_par['ny'] = grid_par['ny'] + 2 * grid_par['xy_pad']

    real_par_bk = {'name': 'res_bk_', 'nr': 1, 'seed': 1}
    real_par_sd = {'name': 'sd_', 'nr': 15, 'seed': 2}

    rfield.rfield(real_par_bk, noise_grid_par, bk_noise_par)
    rfield.rfield(real_par_sd, noise_grid_par, sd_noise_par)

    # Add correlated noise to the porosity

    add_noise_reservoir('res_', bk_noise_par['std_dev'],
                        sd_noise_par['std_dev'])

    # Make density and sonic velocities

    make_rho_and_vel('res_')

    # Apply top & bottom tapers to the property arrays

    apply_taper('res_', memsize, grid_par, taper_par)
예제 #4
0
파일: channels.py 프로젝트: 1014511134/src
def make_reservoir (    memsize=100, 
                        private=None, 
                        grid_par=None,
                        geo_par=None,
                        sand_par=None,
                        bk_noise_par=None,
                        sd_noise_par=None,
                        taper_par=None):

# Get channel properties from the data server

    get_props (private)

# Put the channel properties into layer arrays

    make_prop_arrays (memsize,grid_par)

# Make channel profile surfaces

    make_surfaces (geo_par)

# Erode the channel profile surfaces

    erode_surfaces (memsize)

# Put channel properties into a regular grid

    make_prop_grids (memsize,grid_par)

# Make indicators and masks

    make_masks (memsize,grid_par)

# Make sand fraction grid

    make_sand (grid_par,geo_par,sand_par)

# Add padding in the x and y direction and reset the origin

    add_xy_pad ('res_',grid_par['xy_pad'])

# Make shale and porosity

    make_shale_and_phi ('res_')
     
# Make correlated random fields 

    noise_grid_par = grid_par.copy()
    noise_grid_par['nx'] = grid_par['nx']+2*grid_par['xy_pad']
    noise_grid_par['ny'] = grid_par['ny']+2*grid_par['xy_pad']
                      
    real_par_bk = {'name':'res_bk_', 'nr':1,  'seed':1}
    real_par_sd = {'name':'sd_',     'nr':15, 'seed':2}
    
    rfield.rfield (real_par_bk,noise_grid_par,bk_noise_par)
    rfield.rfield (real_par_sd,noise_grid_par,sd_noise_par)

# Add correlated noise to the porosity

    add_noise_reservoir ('res_',bk_noise_par['std_dev'],sd_noise_par['std_dev'])

# Make density and sonic velocities

    make_rho_and_vel ('res_')

# Apply top & bottom tapers to the property arrays

    apply_taper ('res_',memsize,grid_par,taper_par)