Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Can I use PyGIMLi to perform an attenuation tomography with earthquake data? #788

Closed
eguzmanv opened this issue Oct 29, 2024 · 5 comments
Assignees

Comments

@eguzmanv
Copy link

eguzmanv commented Oct 29, 2024

Problem description

I have an earthquake database. For each event-station pair, I have calculated the Q value along the raypath. Based on this information, I have created a DataContainer that includes the locations of the sensors and events, along with +9000 Q values. Additionally, I have created the grid (3D) for my study volume.

As I explore the various classes, functions, and examples that PyGIMLi offers to understand its capabilities, I'm wondering if it is possible to perform tomography to visualize how Q is distributed throughout my study volume.

Your environment


Date: Tue Oct 29 14:41:48 2024 UTC

            OS : Linux (Ubuntu 22.04)
        CPU(s) : 32
       Machine : x86_64
  Architecture : 64bit
           RAM : 16 GiB
   Environment : Python
   File system : ext4

Python 3.10.14 | packaged by conda-forge | (main, Mar 20 2024, 12:45:18)
[GCC 12.3.0]

       pygimli : 1.5.2
        pgcore : 1.5.0
         numpy : 1.26.4
    matplotlib : 3.9.1
         scipy : 1.14.1
          tqdm : 4.66.5
       IPython : 8.29.0
       pyvista : 0.44.1

Expected behavior

I aim to conduct tomography to examine how Q is distributed across the study volume.

@halbmy
Copy link
Contributor

halbmy commented Oct 29, 2024

I guess that's easily possible. Of course, first one needs to do a traveltime tomography to have the way matrix, which is then needed as operator for the logarithmic amplitudes. So there should be columns for both t and Q. Would be good to demonstrate this on behalf of a simple 2D model first.

@makeabhishek
Copy link

makeabhishek commented Nov 13, 2024

Take a look of it here : https://github.com/gimli-org/notebooks/blob/main/issues/546/issue546.ipynb

But I do not understand why the log of amplitude was taken.

appAtt = - np.log(data["a"]) / dist

Also what is TransLog

tLog = pg.trans.TransLog()
fAtt.modelTrans = tLog

@halbmy
Copy link
Contributor

halbmy commented Nov 14, 2024

Indeed I had forgotten that I have created a notebook one and a half year ago...

If the logarithm of the amplitude is taken (on the data side), the problem is linear with the traveltime way matrix.

The logarithmic transform used for the model parameter is as usual to prevent negative model parameters. Actually, a tutorial for transformation functions is needed.

@halbmy halbmy self-assigned this Nov 14, 2024
@eguzmanv
Copy link
Author

Thank you both for your prompt responses. The notebook you mentioned has been very helpful. I've been testing the pygimli functions with my data for both 2D and 3D scenarios. In both cases, I was able to map Q in my study volume; however, I think I'll need to increase my RAM a bit more for the 3D scenario to get better results. This would be my next step.

I was also wondering if there might be a way to paralellize the processes - I believe there isn't an input parameter for that (please correct me if I'm wrong).

A tutorial for transformation functions would be very helpful in the future

@halbmy
Copy link
Contributor

halbmy commented Dec 13, 2024

I am closing this issue as answered. If there is a specific question about parallelization, open a new one.

@halbmy halbmy closed this as completed Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants