gimli-org / gimli

Geophysical Inversion and Modeling Library :earth_africa:
https://www.pygimli.org
Other
365 stars 133 forks source link

the number of shots and receivers #622

Closed ZHR0623 closed 8 months ago

ZHR0623 commented 9 months ago

I have a question regarding seismic exploration. Generally, the number of shot points is less than the number of receiver points. However, in the gimli/pygimli/physics/traveltime/TravelTimeManager.py file, the simulate function defined there assumes an equal number of shot points and receiver points by default. If I assume I have 5 shot points and 30 receiver points, how should I proceed?

carsten-forty2 commented 9 months ago

TT Simulate expect a DataContainer which containes a list of shot and receiver pairs. There are some traveltime examples that create different content for such a DataContainer, e.g., this Example creates multiple receiver for one shot.

In this Tutorial you will find a lot of explanations about the DataContainer in general.

ZHR0623 commented 9 months ago

Ok, thank you for your reply. I have one more question for you since my programming reading skills are limited. In your mgr.invert() function, what is the default algorithm you are using for? LSQR? Take gimli/doc/examples/2_seismics /plot_04_koenigsee.py as an example, mgr.invert(secNodes=3, paraMaxCellSize=5.0, zWeight=0.2, vTop=500, vBottom=5000, verbose=1) What inversion algorithm is called? I see that you have written the file gimli/pygimli/frameworks /lsqrinversion.py, is it possible to use LSQR algorithm for such seismic data?

halbmy commented 9 months ago

For inversion a Gauss-Newton method is used by default. For solving the inverse subproblem, either the conjugate gradient based CGLS (default) or LSQR algorithm is used. As both work on the same Krylov subspace, there should be no difference. Eventually, LSQR will replace CGLS as it is easier to extend and to parallelize.

ZHR0623 commented 9 months ago

I have created geologic model and I can do seismic ray tracing, but I want to know how the slowness values of the secondary nodes are obtained during the ray tracing process? By setting weights?

halbmy commented 9 months ago

nodes do not have slowness values, only cells have (constant) slowness. Secondary nodes just help rays to pass straight through the cells and thus have a better forward accuracy. See the referred paper of Giroux and Laroche (2013).