Geophysical Data Analysis in Julia, including Machine Learning

Course Description

The main objective of this course is to bridge the gap between R&E and non-R&E people working in the industry together by providing a learning platform to non-R&E people where they can understand and develop their own research ideas and give them life. Even R&E people can learn the power of open source languages such as JULIA in testing and writing small prototypes while utilizing parallel computing capabilities. The audience will learn and develop small research prototypes on seismic data processing concepts such as denoising, interpolation, modelling and inversion.

The second objective is to demonstrate to the audience that they can further explore the world of machine learning in JULIA while connecting the conventional and ML techniques to stay up-to-date with the advancements in the field of signal processing.

Course Objectives

Upon completion of the course, participants will learn:

  • how to build and test small research prototypes in JULIA for day-to-day task
  • to use and understand signal processing tools available in open source and how to adapt these tools as per the research requirements
  • to perform parallel computing in JULIA to scale small research prototypes to a large-scale problem

Course Outline

The course is completely hands-on delivered through various Jupyter notebooks with a couple of presentations in between.

  • Introduction to JULIA
    • loading JULIA, IDE and various other environments
    • introduction to variables, types, functions, data structure, control flow
    • introduction to parallel computing in JULIA
  • Various data preprocessing tasks such as
    • loading LAS, Excel, text, SEGY format in JULIA
    • organizing the data
    • cleaning and visualization
  • Tutorial on designing different seismic preprocessing tools such as
    • denoising
    • interpolation
    • deconvolution
  • Using Synthetic VSP dataset, setup and perform
    • full-waveform inversion
    • reverse time-migration
  • Building machine learning model to perform denoising on VSP datasets

Participants’ Profile

Geoscientists who are interested to create, design and learn programming to develop their ideas from imagination to real-world solutions. This course will demonstrate to them the power of open source programming languages such as JULIA, and enable them to use it in there day to day tasks while testing it in real-time to further extend it to be ready to deploy on the production scale.


The audience is expected to have prior knowledge of basic signal processing concepts such as correlation, deconvolution and Fourier transforms and seismic processing background.

Recommended Reading


About the Instructor

Dr. Rajiv Kumar received his M.Sc. degree in Applied Geophysics in 2008 from the Indian Institute of Technology, Bombay. He worked as a Borehole Geophysicist in Schlumberger from 2008-2011. He completed his Ph.D. in 2017 from the University of British Columbia, Canada, in Computational Geophysics. From 2017-2018 he was a Postdoctoral Fellow at the University of British Columbia, Canada and Georgia Institute of Technology, USA. He joined DownUnder Geosolutions as a Research Scientist in 2019 based in Perth, Australia. Since 2020, He is working as a Senior Research Scientist in Schlumberger Geophysics Technology Centre, Gatwick, UK. His main interests are signal processing, modelling, inversion, and bridging the gap between machine learning and classical processing techniques in Geophysics. He is a member of EAGE and SEG.