Least Squares Inversion of simulated gravitational field data

I am currently in the middle of a project in which I am looking to invert potential gravitational field data to obtain information on subsurface mass anomalies.

I have been following this tutorial (except using my own gravitational data)

However I can’t seem to recover any information other than the visible density contrast the final plot gives out. Is anyone aware of how I could potentially recover the depth or mass of the subsurface anomaly after the inversion?


Hi Rory,
I am not sure I understand your question.
The model sections shown after the inversion are vertical depth slices of density contrast: https://docs.simpeg.xyz/content/tutorials/03-gravity/plot_inv_1a_gravity_anomaly.html#plotting-true-model-and-recovered-model

You might want to load the results in a 3D software to interpret? It might be more obvious that way.

Hi Dom,

Thank you for getting back to me.
I wasn’t fully comprehending the purpose of the model but I understand it better now, thanks.

Another question I have, if you or anyone else on here might possibly know the answer, what part of the code is it which sets the value of Y for which the slice of the model is plotted?

For example in this tutorial it is a slice at y =0 https://docs.simpeg.xyz/content/tutorials/03-gravity/plot_1a_gravity_anomaly.html#sphx-glr-content-tutorials-03-gravity-plot-1a-gravity-anomaly-py

But here, it is a slice at y = 2.5 http://docs.simpeg.xyz/content/tutorials/01-models_mapping/plot_1_tensor_models.html#sphx-glr-content-tutorials-01-models-mapping-plot-1-tensor-models-py

and I cannot seem to see the difference.

Any help is appreciated,
Thanks, Rory

Hi Rory,
in the mesh.plotSlice function, the ind argument controls which slice you plot (1, 2 …). The y= … just depends on your mesh location. if you look at mesh.vectorCCy, you will see all the y-locations of your mesh cells. So for example, choosing ind=0 will plot the slice at location y=mesh.vectorCCy[0].

1 Like

Ah yes. It seems obvious now haha I should have worked that out.
Thank you for the help

Although in each of those cases the example uses int(mesh.nCy / 2)… so not an obvious number?

The 0 slice has a hardcoded heading, whereas the 2.5 uses the variable

Zeros in an axes/origin sense or metres sense.

E.g. presumably mesh.nCy cannot be zero and this a slice on the above calculation so ind can’t be zero either?

So I suppose a little confusing to the user at first who might assume that 0 works, whereas in this case because it is symmetrical?

e.g. if you had two thirds of your cells below the sea level, so to speak you would want int(mesh.Ncyz/2*3)) - or just work out which one it was and use that?