{"id":49972589,"url":"https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers","last_synced_at":"2026-05-18T09:19:12.223Z","repository":{"id":40322570,"uuid":"269352815","full_name":"yohanesnuwara/python-bootcamp-for-geoengineers","owner":"yohanesnuwara","description":"Python source codes and notebooks from my courses I've given to SPEs and in Marietta College, Ohio, US","archived":false,"fork":false,"pushed_at":"2026-02-23T17:18:54.000Z","size":26468,"stargazers_count":86,"open_issues_count":0,"forks_count":61,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-02-24T00:46:58.207Z","etag":null,"topics":["courses","geoscience","oil-and-gas","python","tutorials"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yohanesnuwara.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-04T12:24:53.000Z","updated_at":"2026-02-23T17:18:58.000Z","dependencies_parsed_at":"2025-07-30T22:08:55.414Z","dependency_job_id":"d6a9833a-1f7d-45b9-bc8a-a2e06e486d1d","html_url":"https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers","commit_stats":{"total_commits":120,"total_committers":1,"mean_commits":120.0,"dds":0.0,"last_synced_commit":"29ef93dd2ab08cb60e947fa6b1756ade88e5ce06"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yohanesnuwara/python-bootcamp-for-geoengineers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohanesnuwara%2Fpython-bootcamp-for-geoengineers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohanesnuwara%2Fpython-bootcamp-for-geoengineers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohanesnuwara%2Fpython-bootcamp-for-geoengineers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohanesnuwara%2Fpython-bootcamp-for-geoengineers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yohanesnuwara","download_url":"https://codeload.github.com/yohanesnuwara/python-bootcamp-for-geoengineers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohanesnuwara%2Fpython-bootcamp-for-geoengineers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33172298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T05:43:36.989Z","status":"ssl_error","status_checked_at":"2026-05-18T05:43:19.133Z","response_time":71,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["courses","geoscience","oil-and-gas","python","tutorials"],"created_at":"2026-05-18T09:19:07.981Z","updated_at":"2026-05-18T09:19:12.215Z","avatar_url":"https://github.com/yohanesnuwara.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![python-bootcamp-for-geoengineers-logo](https://user-images.githubusercontent.com/51282928/83759266-80d8f580-a69d-11ea-9149-9c2eed8b025f.png)\n\nThis repository contains all Python source codes, notebooks, and data that I use for my course I've given to SPE student chapters and in PioPetro (Marietta College, Ohio, US). Topics of these courses revolve around basics of Python programming and applications in exploration and production.\n\n## SPE Trisakti SC Course (13 September 2020)\n\nThis course consisted of 3 sessions in 1 day; first session about basic Python programming, second session about Python application in exploration (basic well-log analysis); and third session about Python application in production (basic decline curve analysis of production data). \n\n|Session|Topic|Video|Source code|\n|:--:|:--:|:--:|:--:|\n|1|NumPy, Matplotlib, Pandas, and Scipy|[Lecture video](https://youtu.be/hob5Hilj8sM?list=PLuHj14O65bBAOIdS5AYAKU0Fz_G7tMz73\u0026t=1074) (Play until 38:21)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/petroweek_notebooks/petroweek2020_unit1.ipynb)|\n|2|Basic well-log data analysis|[Lecture video](https://youtu.be/fLGX92Doiw4?list=PLuHj14O65bBAOIdS5AYAKU0Fz_G7tMz73\u0026t=6561) (Play until 2:30:29)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/petroweek_notebooks/petroweek2020_unit2.ipynb)|\n|3|Basic decline curve analysis|[Lecture video](https://youtu.be/fLGX92Doiw4?list=PLuHj14O65bBAOIdS5AYAKU0Fz_G7tMz73\u0026t=9842) (Play until 3:13:35)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/petroweek_notebooks/petroweek2020_unit3.ipynb)|\n\n## SPE Port Harcourt Section Course in Nigeria (November 2020)\n\nThis course consisted of 3 sessions in 1 month; first session about basic Python programming and well-log analysis, second session about material balance analysis; and third session about well-test analysis. There were also coding assignments after this course. \n\n|Session|Topic|Video|Source code|Assignment|Solution\n|:--:|:--:|:--:|:--:|:--:|:--:|\n|1a|NumPy, Matplotlib, and Pandas|[Lecture video](https://youtu.be/fLGX92Doiw4?list=PLuHj14O65bBAOIdS5AYAKU0Fz_G7tMz73\u0026t=1701) (Play until 1:35:20)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/very_brief_intro_to_python.ipynb)|||\n|1b|Advanced well-log data analysis|[Lecture video](https://youtu.be/hob5Hilj8sM?list=PLuHj14O65bBAOIdS5AYAKU0Fz_G7tMz73\u0026t=2602) |[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/session3_formation_evaluation_training.ipynb)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/assignment2_SPE_PortHarcourt.ipynb)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/SPE_assignment2_solution.ipynb)|\n|2|Material balance analysis|[Lecture video](https://youtu.be/7AoExt4Ju1M?list=PLuHj14O65bBAOIdS5AYAKU0Fz_G7tMz73\u0026t=383)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/session4_mbal.ipynb)|||\n|3|Well-test modeling and analysis|[Lecture video](https://youtu.be/8SujEmdoj0U?t=1102)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/session5_welltest_instructor.ipynb)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/assignment3_SPE.ipynb)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/EnP_training/SPE_assignment3_notebook.ipynb)|\n\n## PioPetro Course in Marietta College, Ohio, US (February 2021)\n\nThis course consisted of 4 sessions in 1 month; first session about basic Python programming, second session about production data analysis; and third session about exploration data visualization of well-log data, wellbore trajectory, and natural fractures; and fourth session about decline curve analysis and production forecast. This course was held as part of the Summer Internship Program. \n\n|Session|Topic|Video|Source code|\n|:--:|:--:|:--:|:--:|\n|1|NumPy, Matplotlib, Pandas, and Scipy|[Lecture video](https://youtu.be/pun_03d_i4Q)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/PioPetro/piopetro_session1_introduction_participant.ipynb)|\n|2|Production data analysis|[Lecture video](https://youtu.be/gLHDcwHFN50)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/PioPetro/piopetro_session2_production_data_analysis.ipynb)|\n|3|Exploration data visualization: \u003c/br\u003e well-log, trajectory, natural fractures|[Lecture video](https://youtu.be/-BGiI_5CrwQ)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/PioPetro/piopetro_session3_exploration_data.ipynb)|\n|4|Basic decline curve analysis and forecast|[Lecture video](https://youtu.be/Fjetnt9Bp6s)|[Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/PioPetro/piopetro_session4_decline_curve_analysis.ipynb)|\n\n\u003c!--\nPython Bootcamp for Geoengineers is a GitHub repository that stores all of available materials to start learning and working with Python for needs in oil and gas exploration and production, energy sector, and geoscience. This repo also stores all Jupyter notebooks that I give training to several SPEs student and professional sections. Some materials also linked to other repos and packages that I created (e.g. *PyReservoir* and *PyReSim*) where they're used.\n\n## Contents:\n* **Workshops and Training**\n\n  * [Introduction to Python for Exploration and Production Course](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers#1-introduction-to-python-for-exploration-and-production-course-notebook) \n  * [Geoscience, Exploration, and Production Automation with Python](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers#2-geoscience-exploration-and-production-automation-with-python)\n \n* **Talks**\n\n  * [Python Awareness in Exploration and Production for Students and Professionals](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers#1-python-awareness-in-exploration-and-production-for-students-and-professionals-notebook)\n\n\n## Workshops and Training\n\n### 1. Introduction to Python for Exploration and Production Course ([Notebook](https://colab.research.google.com/drive/1NKjTuP16JeX8a1lvS2bRaqSCEnhGzFZD?usp=sharing))\n\nThis is a 1-day (3-hour) workshop I gave with SPE Trisakti Student Chapter, Indonesia, in September 13rd, 2020. Around 450 participants registered for this training session. \n\n[\u003cimg src=\"https://user-images.githubusercontent.com/51282928/91654109-81343180-ead0-11ea-898d-4c43c199fa14.png\"\u003e](https://colab.research.google.com/drive/1NKjTuP16JeX8a1lvS2bRaqSCEnhGzFZD?usp=sharing)\n\n**Topics discussed:**\n\n*To start learning the following curriculum, see inside the notebook link provided above.* \n\n* Intro to Numpy, Matplotlib, Pandas, and Scipy\n* Python for Exploration\n  * Streaming well log and seismic data from open geoscience data\n  * Visualize well log data\n  * Basic exploratory data analysis (crossplot and histogram) using Seaborn\n  * Basic petrophysics processing (computation of porosity, Vclay)\n  * Demo: Read and display 3D seismic data\n* Python for Production\n  * Streaming production data (borehole pressure, production rate)\n  * Simple well-test analysis\n  * Simple decline curve analysis\n\n### 2. Automate Geosciences and Reservoir Engineering with Python (Go to [Folder](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/tree/master/EnP_training))\n\nThis is a 5-day (2-hour) training I (and Destiny Otto) gave with SPE Port Harcourt Section in Nigeria, from 6 to 21 November 2020. Surprisingly, 1,000+ participants from academia and industry from all around the world registered for this training session. \n\nIn the folder, you will find 5 notebooks (3 notebooks for training + 2 for assignments; answer key).\n\n**Topics discussed:**\n\n* Formation evaluation with Python: Dataset used is well 15/9-F-11 A in Volve field dataset\n  * Visualize well log data\n  * Visualize triple combo\n  * Visualize Neutron-Density plot\n  * Compute petrophysical variables (formation porosity PHIF, shale volume VSH, and permeability K)\n  \n* Material balance analysis with Python: Using [`PyReservoir`](https://github.com/yohanesnuwara/pyreservoir). Datasets used are from `PyReservoir` tutorial notebooks, and in Volve field dataset\n  * Produce MBAL plot to calculate OOIP and OGIP in gas and oil reservoirs\n  * Calculate water (aquifer) influx\n  \n* Well-test analysis with Python: Using [`PyReservoir`](https://github.com/yohanesnuwara/pyreservoir). Datasets used is well 15/9-F-1 C in Volve field dataset\n  * Simulation of constant rate and pressure test\n  * Analysis of BHP drawdown and build-up \n\n## Talks\n\n### 1. Python Awareness in Exploration and Production for Students and Professionals ([Notebook](https://github.com/yohanesnuwara/python-bootcamp-for-geoengineers/blob/master/demo_starting_python_E%26P_1hour.ipynb))\n\nThis is my 1-1.5 hour talk to tell reasons why geoscientists and petroleum engineers, students and professionals, should consider starting to learn Python. I gave this talk in a joint webinar by SPE Asia Pacific University (Malaysia) and SPE Northern Emirates Section (UAE) in 21 October, 2020. \n\nI gave a Python demo as a trigger material. See inside the notebook.\n\n* Python and its effectiveness - *comparing use vs. non-use of list comprehension*\n* Numpy, Matplotlib, and Pandas - *quick tour of the libraries*\n* Access exploration open dataset - *stream exploration data (well log) from Kansas Geological Survey*\n* Access production open dataset - *stream production data from Volve field in a Zenodo repository*\n\n### 2. Machine Learning Application in the Volve Field Dataset\n\n## License\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License\u003c/a\u003e.\n\n\u003c!--\n**yohanesnuwara/yohanesnuwara** is a ✨ _special_ ✨ repository because its `README.md` (this file) appears on your GitHub profile.\n\n**Python Bootcamp for Geoengineers** was created in June 2020, seeing lots of geoengineers and geoscientists are interested to start programming in Python. This Bootcamp is structured into **4 Courses** and **1 Demo Room** (so far), each of the courses contains several modules that can be accessed using **Google Colab**, a web-cloud Python IDE. \n\nIt is always recommended to start with the first 2 courses (**Intro to Python I and II**). Then, you could choose either to take the **Python Course for Oil and Gas** (ideal for geoengineers, such as petroleum engineers or reservoir engineers) or to take the **Python Course for Geoscience** (ideal for geoscientists, such as geologists or geophysicists). \n\nAt the end of each course, there is a dummy **Exam** to test how far you already master each course!\n\nEnjoy!\n\n\n## Intro to Python I (Absolute Beginner)\n\n1. Intro to Google Colab\n2. [Intro to Numpy](https://colab.research.google.com/drive/1C2RCLJCQcyjw3pdfjWpQgOwCQWvHbqJs?usp=sharing)\n3. Intro to Visualization with Matplotlib\n4. Intro to Data with Pandas\n5. Exam\n\n## Intro to Python II (Next Level)\n\n5. Intro to Scientific Computing with Scipy\n6. Intro to Exploratory Data Analysis with Seaborn\n7. Exam\n\n## Python Course for Oil and Gas\n\n1. Exploring Production Data with Pandas\n2. Plotting Production with Matplotlib\n3. Decline Curve Analysis with Scipy\n4. Volumetric Calculation in Python\n5. Exam\n\n## Python Course for Geoscience\n\n1. Accesing Open Geoscience Data\n2. Well-log Data Processing and Petrophysics\n3. Exploring Seismic Data\n4. Exam\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyohanesnuwara%2Fpython-bootcamp-for-geoengineers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyohanesnuwara%2Fpython-bootcamp-for-geoengineers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyohanesnuwara%2Fpython-bootcamp-for-geoengineers/lists"}