Skip to content
New issue

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

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

Already on GitHub? # to your account

[FEA] Modify the way sfdiffsim receives layers velocity input #17

Open
Dirack opened this issue Aug 21, 2020 · 0 comments · Fixed by #18
Open

[FEA] Modify the way sfdiffsim receives layers velocity input #17

Dirack opened this issue Aug 21, 2020 · 0 comments · Fixed by #18
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@Dirack
Copy link
Owner

Dirack commented Aug 21, 2020

🎉 Feature request

Is your feature request related to a problem? Please describe.

Now, program sfdiffsim is receiving a velocity sample for each hyperbola that will be generated in the stacked section.
Modify that behavior of the program to a new one, to receive the layers velocity as input that is assigned to a set of hyperbolas that corresponds to the same reflector.

Describe the solution you'd like

Receiving the velocity for a given set of hyperbolas allow to simulate the hyperbolas for each reflector in a loop.
For instance:

# Loop over reflectors
numberOfReflectors = len(layers)
section = 'stackedSection'

for i in range(numberOfReflectors):

	.
        .
        .

	# Diffraction simulation in stacked section
	Flow([returnedSection,diffSection],[section,t0sFile,m0sFile],
		'''
		diffsim diff=${TARGETS[1]} aperture=1
		t0=${SOURCES[1]} m0=${SOURCES[2]} v=%g freq=10 verb=y
		''' % (velocities[i]))

	section = returnedSection

Program sfdiffsim generates a set of hyperbolas for a given velocity in each iteration of the loop and stores it in a
'diffSection' file. The RSF files 'diffSection' is the simulated diffraction hyperbolas only and 'returnedSection'
is the summation of simulated diffractions plus stacked section given as input.

Describe alternatives you've considered

The picking of (m0,t0) pairs in the stacked section can be done using iterative picking with sfipick program available in Madagascar package.

@Dirack Dirack added the enhancement New feature or request label Aug 21, 2020
@Dirack Dirack added this to the V0.1-beta.1 milestone Aug 21, 2020
@Dirack Dirack self-assigned this Aug 21, 2020
Dirack added a commit that referenced this issue Aug 21, 2020
Program sfdiffsim now reads a velocity vector with a sample for each
reflector. Each sample of the velocity vector is assigned to a set of
(t0,m0) pairs in t0s and m0s files. Because of that, t0s and m0s files
now have n2 axis assigned to a given velocity sample in velocity vector.

So, v[0] corresponds to a velocity sample for
(t0[0][0],m0[0][0]),(t0[1][0],m0[1][0]),(t0[2][0],m0[2][0])... pairs

and  v[1] corresponds to a velocity sample for
(t0[0][1],m0[0][1]),(t0[1][1],m0[1][1]),(t0[2][1],m0[2][1])... pairs

and so on...
Dirack added a commit that referenced this issue Aug 21, 2020
Modify the program sfdiffsim to receive one velocity each time for
a set of (t0, m0) pairs for a given reflector. It allows the program
to run in a loop, each iteration of the loop receive (t0,m0) pairs
picked above one reflector in the stacked section.
Dirack added a commit that referenced this issue Aug 23, 2020
To simulate a stacked section with diffraction hyperbolas someone
should use half of the medium velocity in the hyperbola equation
following the model of a exploding reflector.
Dirack added a commit that referenced this issue Aug 23, 2020
Dirack added a commit that referenced this issue Aug 23, 2020
A division v=v/2 inside of a loop is a logic error because this
division will be done each loop iteration.
Dirack added a commit that referenced this issue Aug 23, 2020
Use pm0 and pt0 directly to calculate hyperbola traveltime
instead of using intermediate steps with m0, it0 and t0.
Dirack added a commit that referenced this issue Aug 23, 2020
To avoid segmentation fault errors, check if calculated traveltime
sample is outside the section, if it is the case, jump to the next
itaration. This check will allow the user to pick and generate
hyperbolas closer to the section boundaries
@Dirack Dirack changed the title [FEA] Modify sfdiffsim to receive layers velocity vector [FEA] Modify the way sfdiffsim receives layers velocity input Aug 23, 2020
@Dirack Dirack mentioned this issue Aug 23, 2020
4 tasks
@Dirack Dirack linked a pull request Aug 23, 2020 that will close this issue
4 tasks
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant