ar4 / deepwave

Wave propagation modules for PyTorch.
MIT License
212 stars 47 forks source link

Is it possible to obtain cross correlation sensitivity kernel for RTM using p-wave excitation source and S-wave excitation source? #84

Open makeabhishek opened 2 days ago

makeabhishek commented 2 days ago

Hi Alan, I hope you are doing good.

I want to perform cross correlation sensitivity kernel analysis in RTM. What is the best way to perform that?

ar4 commented 1 day ago

Do you mean that you wish to calculate the gradient/sensitivity kernel of a cross-correlation loss function? If so, then I suggest calculating the cross-correlation loss function, calling .backward() on it, and looking at the .grad attribute of the model.

makeabhishek commented 1 day ago

I'm a little confuse. Why there would be a loss function in RTM? Will it not be direct cross correlation of forward and backward wavefield?

ar4 commented 12 hours ago

In RTM the loss function is typically the L2 norm of the difference between the modelled and observed data. This is then backpropagated to obtain the gradient of the loss function with respect to the model.

The gradient/sensitivity kernel indicates how much the loss function you have chosen will change when the values at each point in the model are varied.

I am not completely sure what you want, but I now suspect that you may just want the gradient/sensitivity kernel of the regular L2 norm loss function. In that case, you would use the same approach as I gave before, but use the L2 norm instead of a cross-correlation loss function. If you do not have observed data and just want to calculate how sensitive the L2 norm of the receiver amplitudes is to changes in the model, you could use the L2 norm of the modelled data as your loss function.

makeabhishek commented 10 hours ago

I'm looking something like the below image from the reference "Elastic reflection waveform inversion based on the decomposition of sensitivity kernels" image

Figure: The separated waveform sensitivity kernels for the two-layered model. PP kernels associated with (a) $\lambda$ and (b). $\mu$ PS kernels associated with (c) $\lambda$ and (d) $\mu$. .

I think something like that is mentioned at deepwave website https://ausargeo.com/deepwave/example_large_edge_gradient.

Need to consider P-wave and S-wave excitation sources.

ar4 commented 10 hours ago

Thank you for clarifying what you wish to calculate. The images show gradients/sensitivity kernels. Gradients/sensitivity kernels are calculated in the way that I described. However, I think the gradients/sensitivity kernels in the paper that you linked to involve performing elastic LSRTM using an elastic Born propagator. Deepwave does not have an elastic Born propagator, and so it is probably not possible to produce those particular images with Deepwave.