Python Programming for Subsurface Data Analysis

Siddharth Misra

This course will provide working knowledge on using python programming and open-source packages to perform geoscientific computing and subsurface data analysis. The course is suitable for geoscientists, geophysicists, and engineers working in areas related to subsurface engineering and characterization activities. The course will emphasize on developing and implementing python programming for various types of subsurface data.


15 hours

Intended Audience

Entry Level 

Prerequisites (Knowledge/Experience/Education required)


Course Outline

  1. Using numpy for numerical and scientific computing
    • Interpolation
    • Gradients and integrals
    • Model development
    • Statistical parameterization
  2. Using pandas for data analysis and manipulation
    • Data gathering
    • Data cleaning
    • Exploratory data analysis
  3. Using matplotlib and seaborn for data visualization
    • Importing and visualizing large datasets
  4. Using sklearn for regression and classification
    • Irreducible saturation prediction
    • Rock classification
  5. Using sklearn for clustering and data preprocessing
    • Anomaly detection
    • Rock typing
    • Waveform feature extraction
  6. Practice Sessions

Learning Outcomes

  • Assemble open-source coding and scripting workflows in Python to solve basic data science problems related to subsurface data
  • Apply numpy, pandas, matplotlib, seaborn and sklearn packages on subsurface data
  • Solve supervised regression problems using ElasticNet, random forest, nearest neighbor, and LASSO regressors
  • Solve supervised classification problems using nearest neighbor, random forest, and support vector classifiers
  • Solve unsupervised clustering problems using k-means and mean shift techniques
  • Apply anomaly detection and data preprocessing prior to subsurface data analysis

Instructor Biography

Siddharth Misra