예제 #1
0
def test_waveform_adjoint():
    obs = read(obsfile).select(channel="*R")[0]
    syn = read(synfile).select(channel="*R")[0]

    with open(winfile) as fh:
        wins_json = json.load(fh)
    windows = []
    for _win in wins_json:
        windows.append(Window._load_from_json_content(_win))

    config_file = os.path.join(DATA_DIR, "adjoint",
                               "waveform.adjoint.config.yaml")
    config = adj.load_adjoint_config_yaml(config_file)

    win_time, _ = adj._extract_window_time(windows)

    adjsrc = adj.calculate_adjsrc_on_trace(
        obs, syn, win_time, config, adj_src_type="waveform_misfit",
        adjoint_src_flag=True, figure_mode=False)

    # tr_adj = adj._convert_adj_to_trace(adjsrc, syn.stats.starttime, syn.id)
    # tr.write("%s.sac" % syn.id, format="SAC")
    # plot_adjoint_source(adjsrc, win_time, obs, syn)

    assert adjsrc
예제 #2
0
def test_read_config():
    config_file = os.path.join(DATA_DIR, "adjoint",
                               "waveform.adjoint.config.yaml")
    config = adj.load_adjoint_config_yaml(config_file)
    assert isinstance(config, pyadjoint.Config)
    assert config.max_period == 60.0
    assert config.min_period == 27.0
    assert config.taper_percentage == 0.15
    assert config.taper_type == 'hann'
    assert not config.use_cc_error

    config_file = os.path.join(DATA_DIR, "adjoint",
                               "cc_traveltime.adjoint.config.yaml")
    config = adj.load_adjoint_config_yaml(config_file)
    assert isinstance(config, pyadjoint.Config)
    assert config.max_period == 60.0
    assert config.min_period == 27.0
    assert config.ipower_costaper == 10
    assert config.taper_percentage == 0.15
    assert config.taper_type == 'hann'
    assert config.use_cc_error

    config_file = os.path.join(DATA_DIR, "adjoint",
                               "multitaper.adjoint.config.yaml")
    config = adj.load_adjoint_config_yaml(config_file)
    assert isinstance(config, pyadjoint.Config)
    assert config.max_period == 60.0
    assert config.min_period == 27.0
    assert config.lnpt == 15
    assert config.transfunc_waterlevel == 1.0e-10
    assert config.ipower_costaper == 10
    assert config.min_cycle_in_window == 3
    assert config.taper_percentage == 0.3
    assert config.mt_nw == 4.0
    assert config.num_taper == 5
    assert config.phase_step == 1.5
    assert config.dt_fac == 2.0
    assert config.err_fac == 2.5
    assert config.dt_max_scale == 3.5
    assert config.measure_type == "dt"
    assert config.taper_type == 'hann'
    assert config.use_cc_error
    assert not config.use_mt_error
예제 #3
0
def load_config_multitaper():
    config_file = os.path.join(DATA_DIR, "adjoint",
                               "multitaper.adjoint.config.yaml")
    return adj.load_adjoint_config_yaml(config_file)
예제 #4
0
def load_config_traveltime():
    config_file = os.path.join(DATA_DIR, "adjoint",
                               "cc_traveltime.adjoint.config.yaml")
    return adj.load_adjoint_config_yaml(config_file)
예제 #5
0
def load_config_waveform():
    config_file = os.path.join(DATA_DIR, "adjoint",
                               "waveform.adjoint.config.yaml")
    return adj.load_adjoint_config_yaml(config_file)