Giter Club home page Giter Club logo

crevelocityinversion's Introduction

Hi, I'm Rodolfo André Cardoso Neves (Dirack) 👋

Brazilian, 31 years old. Developer and PhD student with an emphasis on modeling and inversion of geophysical data at the Federal University of Pará (UFPA) (2021). Master's degree in geophysics (UFPA) (2015-2017). Bachelor's degree in geophysics (UFPA) (2010-2015). Contributor of Madagascar, an open-source seismic processing package, member of the Madagascar development team. Background experience in front-end web development with NodeJS, ReactJS and TypeScript, Eclipse RCP plugins with Java, C and Python development skills. Programming teacher and YouTuber.

Gravimetric survey

Image: Working as a Staff Geophysicist on a gravimetric survey of GPR Geophysics Ltda (2014).

Professional experience:

  • Freelance Web developer and geophysicist. Since May of 2023: I am a software developer with experience in Java and Python for desktop applications, plugins development, and web development with JavaScript, HTML/CSS, NodeJS, Bootstrap and PHP. Currently, I'm working as a freelancer.

  • Developer and Geophysicist Junior at Invision Geophysics. From March of 2022 to May of 2023. Rio de janeiro, Brazil: As a developer at Invision Geophysics, I have participated in the development of the Microseismic Monitoring System M2S. I was responsible for the development of a REST API, to simulate the receivers and servers responses to a dashboard, which I also developed with the orientation of senior programmers from the company team. I have used modern web development technologies, such as NodeJS, TypeScript, HTML/CSS, JavaScript and Bootstrap 4. I have also participated in the development of a plugin for Halliburton's application, Decision Space Geoscience (DSG). This plugin is an Eclipe RCP plugin, implemented in Java. Its purpose is to export seismic horizons, geoshapes and sections using the google Protobuf format for data serialization. By the end, I had also participated in the development of a geopressure calculator for Petrobrás. It was built using the Python language, plugin architecture, and the core of an open source project for well log visualization called Gripy.

  • Staff Geophysicist on a gravimetric survey of GPR Geophysics Ltda. From July to December of 2014. São Paulo, São Paulo, Brazil: As GPR Geophysics employee, I've worked on Agência Nacional de Águas (ANA) gravimetric survey for aquifer prospecting on karst relief. I was responsible for gravimetric data acquisition, data correction, and Bouguer anomaly maps construction.

  • Internship - Gravimetric survey of UNIFAP/UFPA/CNPQ/ANP Research project. From November to December of 2013. Macapá, Amapá, Brazil: As a member of the UNIFAP/UFPA/CNPQ/ANP research project for potential fields I've worked in gravimetric and magnetic data acquisition along Araguarí river, with the purpose of obtain the basement relief in that area.

Please check out my portfolio

Youtuber - Programming teacher

I teach computer programming on my Youtube chanel, Geofisicando (portuguese material). We teach several programming languages, such as C, Fortran, Shell Script, Python and others. Please subscribe and share!

Some of our courses have digital certificate available on Workover Academy platform (our partner, with several online courses available for free). Please check it out on the following video: Como conseguir o seu primeiro emprego como programador? A nova parceria do canal pode te ajudar!

Member of the Madagascar Developers team since 20/08/2021

Madagascar Developer: Madagascar is an Open-Source Software Package for Multidimensional Data Analysis and seismic processing

✨ My contributions:

  • Programs to Madagascar open-source seismic processing package:

    • sfvfsacrsnh: is a C programs adapted to the Madagascar package. The main objective of this program is to optimize the zero offset Common Reflection Surface (CRS) parameters (RN, RNIP, BETA) that best fits a Non-hyperbolic CRS approximation surface with a reflection traveltime surface extracted from a seismic data cube (seismic data organized in CMP x Offset X Time coordinates). The parameters optmization is achieved using Very Fast Simulated Aneelling (VFSA) global optimization algorithm. The result of that parameters optmization is used in CRS stacking and NIP tomography.

    • sfnhcrssurf: is a C programs adapted to the Madagascar package. The main objective of this programs is to build the Non-hyperbolic CRS surface using zero-offset CRS parameters obtained with sfvfsacrsnh program.

    • sfcrestack: Common Reflection Element (CRE) stacking.

    • sfcretrajec: Calculate CRE trajectory on CMP x Offset plane given zero-offset CRS parameters (RN, RNIP, BETA)

    • sfgetcregather: Build CRE gather given CMP X Offset CRE trajectory coordinates and interpolated data cube-

    • sfgetcretimecurve: Calculate CRE traveltime curve t(m,h) given CRS zero-offset parameters (RN, RNIP, BETA)

  • New Madagascar Computational Recipes:

    • kimodel.py, to generate a multi-layer model and apply Kirchhoff-Newton modeling on it.
    • velocityAnalysis.py, to do velocity Analysis, automatic picking, NMO correction and stack.
    • pefInterpolation.py, to increase CMP data sampling with Predictive Adaptative Error Filters (PEF) interpolation.
    • creGatherStack.py, to do CRE stacking.
A "computational recipe" is a python script that defines functions to facilitate seismic processing steps with Madagascar package.

🔭 Projects I'm currently working on:

  • ProSU: A Shell Script interface to Seismic Unix (SU) package.
  • creGatherStack: Common Reflection Element (CRE) Gather stacking.
  • creVelocityInversion: Velocity inversion algorithm using Common Reflection Element (CRE) traveltime approximation.
  • diffractionSimulator: SConscripts to simulate diffraction hyperbolas in the stacked section.
  • shellUnity: Unity test framework for Shell Script (Portuguese).

😄 How to reach me:

crevelocityinversion's People

Contributors

dirack avatar

Stargazers

 avatar

Watchers

 avatar  avatar

crevelocityinversion's Issues

[DOC] Diagrams of the package

:octocat: Documentation request

Describe your documentation request clearly bellow

Diagrams of the package that will be produced showing the way it uses dependencies and connection between the packages.

Program version

None. This is the first version.

What kind of documentation you are requesting?

  • README files.
  • Wiki pages.
  • Jupyter notebooks.
  • Other (Diagrams of the package)

[DOC] Write a README file to this repository

:octocat: Documentation request

Describe your documentation request clearly bellow

Program version

What kind of documentation you are requesting?

  • README files.
  • Wiki pages.
  • Jupyter notebooks.
  • Other

[FEA] velocity inversion for a velocity varying with depth model

🎉 Feature request

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

No.

Describe the solution you'd like

The program sfstereoniptomo should use a constant velocity gradient model to fit the data in the velocity inversion algorithm.

Describe alternatives you've considered

The parameter optimized in Very Fast Simulated Annealing (VFSA) step is the velocity gradient of the model. VFSA will optimize this parameter in a loop.

Additional context

It should use the following equation to generate the model:

v(z) = v0 + grad * z

This equation describes a velocity varying with depth model (example of this model in the image bellow).

Screenshot from 2021-03-21 13-03-49

[BUG] Wrong diffraction simulation

🐛 Bug report

Describe the bug

Diffraction simulation is not working, the simulated hyperbolas are not generated correctly. It appears a black hyperbola in the stacked section, instead of the simulated hyperbola.

Screenshot from 2020-11-19 14-30-02

Screenshot from 2020-11-19 14-29-45

To Reproduce
Steps to reproduce the behavior:

  1. Run the Velocity inversion experiment with the following data

section.tar.gz

sfin st.rsf 
st.rsf:
    in="stdin"
    esize=4 type=float form=native 
    n1=600         d1=0.004       o1=0.3        label1="Time" unit1="s" 
    n2=201         d2=0.025       o2=0          label2="CMP" unit2="Km" 
    n3=1           d3=0.025       o3=0          label3="CMP" unit3="Km" 
	120600 elements 482400 bytes
  1. With this version of the diffraction simulation program https://github.com/Dirack/diffractionSimulator/tree/0271f0098a218367a35a921a8fbcf52e4613c7ae sfdiffsim.

  2. The simulated hyperbolas will appear as the black image showed previously.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Linux Ubuntu
  • Version 19.04 Focal Fossa

Additional context

[FEA] Create NIP tomography programs

🎉 Feature request

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

Create programs to set up the model and to get traveltime curves for each NIP sources to be used in NIP tomography

Describe the solution you'd like

That will be accomplished by two programs:

  • A program to set up model: Trace normal rays from acquisition surface into the model to get NIP sources position.
  • A program to get traveltime curves: Trace several rays from NIP sources to acquisition surface.

Describe alternatives you've considered

Modify the Madagascar program sfrays2, used to kinematic ray tracing, to create new programs.

Additional context

  • Example of a exploding source point. Several rays are traced from source to acquisition surface using Madagascar program sfrays2:

ray

  • Example of a ray traced from acquisition surface into the model using sfrays2:

nip

[FEA] cubic spline velocity function for lateral variation

🎉 Feature request

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

Use cubic spline functions to represent the velocity model variation in depth to allow models with lateral velocity variations.

Describe the solution you'd like

Use cubic spline functions of the velocity

Describe alternatives you've considered

You could split the velocity model in stripes and define a cubic spline velocity function of depth to each stripe.

Additional context

[FEA] Scratch of full velocity inversion SConstruct

🎉 Feature request

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

Scratch a SConstruct to do a velocity inversion using diffraction simulated hyperbolas in the stacked section and diffraction
migration by focusing analysis

Describe the solution you'd like

Do the conventional NMO stacking using the functions of MadagascarRecipes package, 'kimodel.py' and 'velocityAnalysis.py' to obtain the stacked section. Run iterative picking to get (m0,t0) pairs of a reflector in the stacked section. Simulate diffraction hyperbolas and migrate it using focusing analysis.

[FEA] Modify the NIP tomography programs to use stereotomography strategy

🎉 Feature request

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

The ray tracer should receive the RNIP and BETA parameters in order to determine CRE traveltime curve. From NIP point, two reflection rays are traced with angle TETA in relation to the normal determined by the normal ray that reaches NIP. Both rays should reach the acquisition surface.

After that, CMP and Offset coordinates are calculated and the time misfit is given by the difference between the CRE traveltime calculated and the sum of the traveltimes between these two reflection rays.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[FEA] Use the velocity inversion algorithm from Maria Cameron (2008) to estimate the depth velocity model

🎉 Feature request

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

This algorithm estimates the velocity model, depth domain, using time migration velocities. As an intermediate step, it estimates the Dix velocity from interval velocities and geometrical spreading of the image ray.

Describe the solution you'd like

Obtain the time migration velocity using a focusing migration algorithm through diffraction hyperbola simulation, and use this as input to the Cameron algorithm.

Additional context

[FEA] Calculate data misfit of the forward modeling

🎉 Feature request

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

Calculate the data misfit of the rays traveltimes in a constant velocity model in comparison with the true model (constant velocity model too).

Describe the solution you'd like

Build a traveltime curve for a constant velocity model. Trace rays with the program niptimecurve and get the data misfit between then.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Generate a study about velocity model update

Generate a study about velocity mode update using one interface model. This model is updated in a loop and interface is represented by a set of nodes of a spline cubic curve. In each iteration of the loop this nodes are disturbed and interpolated.

The purpose of this experiment is to produce a way of model searching updating the model and checking the coherence between the seismic data generated with this model in comparison with initial model

Originally posted by @Dirack in #2 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.