Defining Parameters in Dinver (Parameterization)

This forum is dedicated to discuss all problems and suggestions related to the inversion software
brucey
Posts: 6
Joined: Tue Nov 02, 2010 5:16 am
Location: Tasmania Australia

Defining Parameters in Dinver (Parameterization)

How do I go about setting up the parameters in Dinver to invert a dispersion curve for a 1-D velocity profile.

I want to determine 1-D velocity profiles from seismic ambient noise. I have performed cross-correlations between stations from a noise array, and have then performed a frequency-time analysis to get the dispersion curves. To calculate the dispersion curves I have been using Bob Herrmann's do_mft program. I have been using Bob Herrmann's surf96 program to calculate 1-D velocity profiles, which can have many layers of fixed thicknesses. I like to use Dinver with the neighbourhood algorithm.

As a trial I've got a dispersion curve calculated from two stations approximately 14.4 Km apart, with group velocity for a range of 0.8-8.5s. So probably looking at calculating shear-wave velocity down to a depth of around 10 Km.

Got some questions:

How many layers would be appropriate? Would 3-4 layers of the compression-wave velocity, shear-wave velocity, Poisson's ratio and density be OK? Or 3-4 layers just for the compression-wave velocity and shear-wave velocity, and one each for the Poisson's ratio and density (similar to the tutorial)?

What's a guide on linking layers?

For a layer with a 'Bottom depth', do I select the range say from 9000-10000m, and the algorithm varies this range to give the best fit, if 'Fixed' is not selected?

Similar for a layer selected as 'Thickness'. For example the top sedimentary layer could be 1-2000m, and the next one could be 2000-5000m. Do these ranges change during the run to give the best fit, and can they overlap?

Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: Defining Parameters in Dinver (Parameterization)

Hi,

For parameters, the simplest model that explain all your data points is certainly the best choice.

First of all, for density there is no need have more than one layer unless you have good reasons. The dispersion curves are relatively not sensitive to density except in rare cases and given the usual uncertainties of dispersion curves. So the best choice is to set an average value (e.g. 2000 kg/m3) constant for all depths.

For Poisson's ratio, in the current release it is no possible to fix it. Future releases under preparation do now accept fixed values, to invert only for Vs. Poisson's ratio is not a parameter but just a condition. Random parameters are Vp and Vs and only models with a Poisson's ratio in the given range are generated. If you have no prior information available the distribution of Poisson's ratio with depth, you should set only one layer with the range you want. If you have more than one layer, you must set interface depths to fixed values or link them to other profiles. If not, you will have some sort of floating conditions, usually not what we want.

Vs is the best resolved parameter. Vp can be resolved in some cases but the reason of Vp is mostly for cases where we have no idea of Vp profile. By leaving a relative freedom to Vp, we avoid biases to Vs results if Vp were badly chosen. In most cases, Vp has a very low influence on the final Vs profile but in some not (e.g. stiff rocks). I would suggest a simple profile with two layers including half-space for Vp. The number of layer for Vs can be any. We usually link the Vp interface to the Vs interface where we expect the boundary between stiff rocks and soft sediments. For instance, I can resolve 4 layers in Vs which correspond to a single value of Vp. Depth of Vp0 must be linked to Vs3 in this case. Not linking might be useful if you have a refined Vp profile from other experiments. You can enter the precise Vp structure and generate a Vs profile that is completely disconnected (e.g. a water level visible on Vp not necessarily influencing Vs values at the same depth).

For the number of layers, I would recommend to start with a low number, let's say 2 or 3. 2 often generates a too rigid parameterizations and a bit more degrees of freedom are required. Then progressively increase the number if data fit is improved, if not you probably reached the minimum number of parameter required to explain your data curve.

For a layer with a 'Bottom depth', do I select the range say from 9000-10000m, and the algorithm varies this range to give the best fit, if 'Fixed' is not selected?

Right, random depths will be generated between 9000 and 10000 m. Do not be afraid of having a large range (e.g. 1000 to 10000) for a first try, to test roughly what can be inferred from your data. If it fails, try to restrict ranges. Same remark for velocity ranges. About depth or thickness, depths are preferred, see literature why (Wathelet 2008).

Depth range can overlap. You can start with all layers from 1 to 10000 m. Internally, depths are handled with a constitutive condition that their value increase as the layer index increases, to avoid negative thicknesses.

brucey
Posts: 6
Joined: Tue Nov 02, 2010 5:16 am
Location: Tasmania Australia

Re: Defining Parameters in Dinver (Parameterization)

Thank you for the explanation.
I've been working with 3 layers for compression-wave velocity, 1 for poisson's ratio, 3 or 4 for shear-wave velocity and one for density (fixed). I link Vp to Vs. Vs not linked.
Sometimes I get a different misfit between runs with the same settings, for example a misfit of 0.07 on one run, then 0.01 on another. I guess this is to do with the random seed? The run with the 0.01 misfit gives a good fit to the dispersion curve, though sometimes I cannot get this low misfit every time I perform a run. Is there a way to make it more consistent? tuning the neighbourhood parameters, Itmax, Ns0, Ns, and Nr? At the moment I'm using Itmax=200, Ns0=100, Ns=100, Nr=50.

Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: Defining Parameters in Dinver (Parameterization)

The seed value has little meaning... especially for a parallelized NA core. We are keeping the seed adjustement for debug purposes only. In this case, a single threaded inversion must be used (dinver started from command line with "dinver -j 1", see "dinver -h all" for details). According to the CPU load on your cores, the set of generated models will never be exactly the same, even with the same seed.

Having distinct misfits for distinct runs with the same parameters is to be expected when the inversion is not perfectly exploring the parameter space. When the number of layers is increasing the complexity of the parameter space increases as well, and the minimum is more difficult to find. About your tuning parameters, I would not suggest to have Ns>Nr if you want to achieve the best exploration. One extreme case is Nr=1, a very selective one. The inversion gets easily trapped in local minima and great variability in obtained misfits is expected.

I noticed that you usually need a sufficiently broad band for group dispersion curve to be successful. However, I have very little experience with the inversion of group velocities. We generally get phase velocities. With group velocities, the inversion problem is a little bit more difficult than with phase. I'm half surprised that you get various misfits with changing seeds. Are the ground profiles much different in those runs? Do they correspond to distinct model families? If so, you may want to prevent the inversion to explore one of those (set velocity or depth limits to forbid some areas of the parameter space). Are they all consistent with you prior information?

You might be interested by fixing the Poisson's ratio. Only the "devel" release can achieve it if you tolerate a little more instabilities.

brucey
Posts: 6
Joined: Tue Nov 02, 2010 5:16 am
Location: Tasmania Australia

Re: Defining Parameters in Dinver (Parameterization)

With the different misfits between runs I do get different looking profiles. For example, Vs is calculated to a depth of 2000m or 4000m for one run, while another run it's calculated down to 10000m.

I want to constrain the depth to 10000m to make it more consistent. For the bottom layer I ticked the 'fixed' box for DVs0 to 10000m, then HVs1 and HVs2 as thickness for 1 to 10000m range. However I still get profiles of varying depths between runs. How could I force the solutions for Vs to have a specified depth?

Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: Defining Parameters in Dinver (Parameterization)

For the bottom layer I ticked the 'fixed' box for DVs0 to 10000m, then HVs1 and HVs2 as thickness for 1 to 10000m range

Counting of layer is in the other way. If you have 4 layers, DVs0 is the depth of the most superficial and DVs2 is the depth of the deepest interface. I would not use thicknesses but depths for all layers. I kept thickness during development, to test and compare things. As explained in Wathelet (2008, GRL) depths are better than thicknesses for stochastic methods. If you want the deepest interface at 10 km, yes, you can tick the fixed check box, or if you not 100% that it is 10 km, leave a small range of variation.

When you invert group velocity data, the non-uniqueness is bit larger than for phase velocity.

brucey
Posts: 6
Joined: Tue Nov 02, 2010 5:16 am
Location: Tasmania Australia

Re: Defining Parameters in Dinver (Parameterization)

I fixed the deepest layer (DVs2) to 10km, though when I plot the ground profiles (View -> ground profiles) the depth on the y-axis sometimes doesn't go all the way down to 10km. Is this because the program only plots velocity that varies? If the velocity doesn't change after a certain depth (i.e. profile goes straight) it's not included in the plot?

AA01AA09_profiles_run1.png
profile run1

AA01AA09_profiles_run2.png
profile run2

AA01AA09_profiles_run3.png
profile run3

AA01AA09_dispersion_run1.png
dispersion run1

AA01AA09_dispersion_run2.png
dispersion run2

brucey
Posts: 6
Joined: Tue Nov 02, 2010 5:16 am
Location: Tasmania Australia

Re: Defining Parameters in Dinver (Parameterization)

AA01AA09_dispersion_run3.png
dispersion run3

AA01AA09_display_status.png
display status

AA01AA09_display_parameters.png
display parameters

Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: Defining Parameters in Dinver (Parameterization)

Looking at your figures, there is something wrong but can't find what it is. Can you save the dinver environment (File/Save as) and send me the .dinver file. *_report directory is no required.

You'd better tick the Vs*>Vs* or Vp*>Vp* conditions, at least for the last layer (the bottom half space). For the majority of models, if the Vs3 (in your case) is less than for upper layers, leaky modes are common and the forward computation will certainly fail, which does not hurt too much the final result except that it slows down the process. If you remove that condition for all other layers, you can drastically increase the non-uniqueness of the problem. Usually, I remove that condition only under special circumstances when the geology supports it or if there is no other way to fit a dispersion curve.

brucey
Posts: 6
Joined: Tue Nov 02, 2010 5:16 am
Location: Tasmania Australia

Re: Defining Parameters in Dinver (Parameterization)

asetAA01AA09.dinver
.dinver file

Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: Defining Parameters in Dinver (Parameterization)

Having a look at your dinver file, I finally got your question, sorry for the delay:

Is this because the program only plots velocity that varies? If the velocity doesn't change after a certain depth (i.e. profile goes straight) it's not included in the plot?

The answer is simply yes. The y axis is adjusted to the deepest velocity change plus a small percentage (cannot remember how much exactly). If you want to plot things down to 10 km you can adjust the y-axis range using the properties (context menu or double click on the graph).

When you create an inversion run, the current target and parameterization is copied into the new run. In other words, if you change the parameterization afterwards if does not affect the already created runs. To review the parameters and the targets of the run created so far, you can switch to "show" mode in menu "Run". The parameter window becomes read-only. Hence, the 3 runs you created have all 3 layers from 1 to 10 km, none of them has a fixed depth at 10 km as stated in the current parameterization, valid for next created run. If these explanations are somewhat unclear, do not hesitate.