hvasbath / beat

Bayesian Earthquake Analysis Tool
GNU General Public License v3.0
128 stars 42 forks source link

Question for the mess slip distribution result in Scenario II #30

Closed vic-chou closed 5 years ago

vic-chou commented 5 years ago

Hi, when I complete the running Scenario II, I plot the slip distribution (the following figure I attached), but the slip distribution is mess and different from the slip distribution in tutorial in the website. Can you give some suggestion to solve this problem? 1

hvasbath commented 5 years ago

What regularization and initialization did you use? How many chains in the SMC sampler did you use? Looks like it is not converged. For example in the file you sent me for debugging the plot there was no regularization used ... If you did not use least-squares-solution as the starting points of the Markov Chains, but used random init you will have to use MANY Markov Chains with a large number of steps. E.g.: n_chains = 8000 and n_steps=500. This will produce huge sampling results-please keep that in mind of your disk-space!

vic-chou commented 5 years ago

I attached the configure file, in this runing, I set the regularization to laplacian based on the tutorial. The regularization and initialization is baed on the tutorial (I don't know if my understanding of the tutorial is right or not). The chains in the SMC sampler is set to 1000. How can I use least-squares-solution as the starting points of the Markov Chains? I don't see the procedure in the tutorial. --- !beat.BEATconfig name: Laquila date: '2009-04-06' event: !pf.Event lat: 42.29 lon: 13.35 time: 2009-04-06 01:32:49.190000 name: 200904060132A depth: 12000.0 magnitude: 6.343080192483292 region: CENTRAL ITALY catalog: gCMT moment_tensor: !pf.MomentTensor mnn: 1.43e+18 mee: 1.87e+18 mdd: -3.3e+18 mne: 1.77e+18 mnd: -1.43e+18 med: 2.6900000000000003e+17 strike1: 120.23408298515041 dip1: 54.240869089580485 rake1: -112.81739742081386 strike2: 335.98575923255856 dip2: 41.58440373860804 rake2: -61.69749587601104 moment: 3.6696131948749036e+18 magnitude: 6.343080192483292 duration: 7.0 project_dir: /data4/gyxu/beat/test_beat/Laquila problem_config: !beat.ProblemConfig mode: ffo mode_config: !beat.FFOConfig regularization: laplacian npatches: 132 initialization: random source_type: RectangularSource stf_type: HalfSinusoid decimation_factors: geodetic: 4 n_sources: 1 datatypes: [geodetic] hyperparameters: h_SAR: !beat.heart.Parameter name: h_SAR form: Uniform lower: [0.0] upper: [6.0] testvalue: [3.0] h_laplacian: !beat.heart.Parameter name: h_laplacian form: Uniform lower: [-3.0] upper: [2.0] testvalue: [-0.5] priors: uparr: !beat.heart.Parameter name: uparr form: Uniform lower: [-0.1] upper: [2.0] testvalue: [1.15] uperp: !beat.heart.Parameter name: uperp form: Uniform lower: [-1.0] upper: [1.0] testvalue: [0.5] geodetic_config: !beat.GeodeticConfig datadir: /data4/gyxu/beat/test_beat/laquila_kite_container-master names: [Laquila_dscxn, Laquila_ascxn] types: [SAR] calc_data_cov: true interpolation: multilinear fit_plane: false dataset_specific_residual_noise_estimation: true gf_config: !beat.GeodeticLinearGFConfig store_superdir: /data4/gyxu/beat/test_beat/GF/Laquila reference_model_idx: 0 n_variations: [0, 1] earth_model_name: ak135-f-continental.m nworkers: 1 reference_sources:

hvasbath commented 5 years ago

It is written here under Markov Chain initialization: https://hvasbath.github.io/beat/examples/FFO_static.html#sample-the-solution-space

But you are right, I did not write explicitely to set the initialization flag (under mode_config) from "random" to "lsq". Please do so! Will update the tutorial accordingly. Thanks!

vic-chou commented 5 years ago

I set the initialization to "lsq", but the slip distribution is still mess and the synthetic displacements is bad. Is there a problem with my understanding of the tutorial? Can you give me some suggestion? I attached the slip distribution and configure file. 2 the config_ffo.yaml file --- !beat.BEATconfig name: Laquila date: '2009-04-06' event: !pf.Event lat: 42.29 lon: 13.35 time: 2009-04-06 01:32:49.190000 name: 200904060132A depth: 12000.0 magnitude: 6.343080192483292 region: CENTRAL ITALY catalog: gCMT moment_tensor: !pf.MomentTensor mnn: 1.43e+18 mee: 1.87e+18 mdd: -3.3e+18 mne: 1.77e+18 mnd: -1.43e+18 med: 2.6900000000000003e+17 strike1: 120.23408298515041 dip1: 54.240869089580485 rake1: -112.81739742081386 strike2: 335.98575923255856 dip2: 41.58440373860804 rake2: -61.69749587601104 moment: 3.6696131948749036e+18 magnitude: 6.343080192483292 duration: 7.0 project_dir: /data4/gyxu/beat/test_beat/Laquila problem_config: !beat.ProblemConfig mode: ffo mode_config: !beat.FFOConfig regularization: laplacian npatches: 132 initialization: lsq source_type: RectangularSource stf_type: HalfSinusoid decimation_factors: geodetic: 4 n_sources: 1 datatypes: [geodetic] hyperparameters: h_SAR: !beat.heart.Parameter name: h_SAR form: Uniform lower: [0.0] upper: [7.0] testvalue: [3.5] h_laplacian: !beat.heart.Parameter name: h_laplacian form: Uniform lower: [-3.0] upper: [2.0] testvalue: [-0.5] priors: uparr: !beat.heart.Parameter name: uparr form: Uniform lower: [-0.1] upper: [2.0] testvalue: [1.15] uperp: !beat.heart.Parameter name: uperp form: Uniform lower: [-1.0] upper: [1.0] testvalue: [0.5] geodetic_config: !beat.GeodeticConfig datadir: /data4/gyxu/beat/test_beat/laquila_kite_container-master names: [Laquila_dscxn, Laquila_ascxn] types: [SAR] calc_data_cov: true interpolation: multilinear fit_plane: false dataset_specific_residual_noise_estimation: true gf_config: !beat.GeodeticLinearGFConfig store_superdir: /data4/gyxu/beat/test_beat/GF/Laquila reference_model_idx: 0 n_variations: [0, 1] earth_model_name: ak135-f-continental.m nworkers: 1 reference_sources:

hvasbath commented 5 years ago

Of course after setting it to lsq you will have to rerun the sampling after deleting all your old sampling results. As mentioned earlier you should set the n_chains parameters and n_steps parameters to higher values. For the tutorial I used 3000 n_chains and 300 nsteps. Did you also do the hyper parameter estimation including the laplacian? Your bounds there are rather narrow. Try with -5, 5.

Please also do not use any decimation factor in the ffo= set it to 1 and rerun your linear GF calculations!

vic-chou commented 5 years ago

Yes, I run the "beat sample Laquila --hypers --mode=ffo" to do the hyper parameter estimation including the laplacian. The bounds -3~2 is updated after running the "beat sample Laquila --hypers --mode=ffo". Should I set the bounds to -5,5 without running the command "beat sample Laquila --hypers --mode=ffo"? Does the parameters "n_chains" and "nsteps" refer to theparameters in "sampler_config" section not in "hyper_sampler_config" section?

hvasbath commented 5 years ago

Yes set the parameters by hand without running the hypers-otherwise they will be overwritten again. Of course this refers to the sampler_config.

vic-chou commented 5 years ago

OK, now I can obtain the same slip distribution in the tutorial under your suggestion. Thank you!

hvasbath commented 5 years ago

Great!