Skip to content

An introductory course for earth scientists interested in learning ml/ai application and approaches with geophysical data

Notifications You must be signed in to change notification settings

pnnl/AI_Modules_for_Earth_Science

Repository files navigation

AI_Modules_for_Earth_Science

These modules were originally developed for a machine learning and artificial intelligence (ML/AI) bootcamp organized by PNNL’s ACES division, designed to explore the application of ML models within the geophysical sciences. The bootcamp, held in Fall 2022, was highly successful and was featured in an article published by Eos: “A Two-Step Approach to Training Earth Scientists in AI”. The modules have since been updated and are now publicly available under IPID 33445, IR#373274.

Each lesson module covers a different ML technique, progressing in complexity from one lesson to the next. Users of these lessons should be proficient in python and familiar with using jupyter notebooks. Each module is accompanied with a powerpoint or pdf lesson, well commented python scripts, data, and a requirements.yaml file. Further inquiries can be directed to Xingyuan Chen.

Step 1 -- Clone the Repository

Each lesson was designed independently by an author who's expertise aligns with the ML lesson. The structures may differ, but each folder contains:

  • a clearly ordered set of notebooks
  • a dedicated aces.yml environment file
  • additional resources (datasets, powerpoints, etc)

This repo contains some large files. You will need to enable Git Large File Storage.

.
git lfs install
git clone https://github.com/pnnl/AI_Modules_for_Earth_Science.git
cd AI_Modules_for_Earth_Science

Step 2 -- Set up the Environment

Each lesson includes an unique aces.yml file containing all required dependencies. Always activate the environment inside each lesson folder before running its notebooks, as dependencies may differ between lessons. You can create the conda environment with:

.
conda env create -f aces.yml
conda activate aces

Step 3 -- Launch Jupyter Notebook

.
jupyter notebook

Repository Structure

Lessons should be followed in order and get progressively more technical.

.
├── Lesson_01 ML 101/
   ├── Data
   ├── Figures
   ├── Scripts
       └── start here: ML101_Forests.ipynb/
   ├── Readme
        └── contains detailed instruction for getting started/
   ├── aces.yml
   └── Powerpoint/

├── Lesson_02 Artificial Neural Networks/
   └── Part 1 Deep Neural Networks/
      ├── Data
      ├── Figures
      ├── Scripts/
          └── start here: 1_load_data_notebook.ipynb/
   └── Part 2 Unsupervised Neural Networks/
      ├── Data
      ├── Scripts/
          └── start here: Unsupervised_Learning_Neural_Nets.ipynb/
   ├── Readme
   ├── aces.yml
   └── Powerpoint/

├── Lesson_03 Keras (library)/
   ├── Data
   ├── Scripts
        └── start here: keral_reg_model.ipynb/
   ├── Readme
   ├── aces.yml
   ├── Powerpoint/

├── Lesson_04 Convolutional Neural Networks/
   ├── Data
   ├── Scripts
        └── start here: 1_load_data_notebook.ipynb/
   ├── PreProcess_Models
   ├── Readme
   ├── aces.yml
   ├── Powerpoint/

├── Lesson_05 Generative Adversarial Networks/
   ├── Figures
   ├── Scripts
        └── start here: mnist_gan_example.ipynb/
   ├── mnist_generator
   ├── modis_generator
   ├── Readme
   ├── aces.yml
   ├── PDF/

├── Lesson_06 pytorch & tensor flow (libraries)/
   ├── Data
   ├── Scripts
        └── start here: Pytorch_DNN_example.ipynb/
   ├── Readme
   ├── aces-torch.yml
   ├── Powerpoint/

└── Lesson_07 RNN/
   ├── Data
   ├── Figures
   ├── Scripts
       └── start here: Rainfall_runoff_modeling.ipynb/
   ├── Readme
   ├── aces-torch.yml
   └── Powerpoint/

Thank you to Xingyuan Chen, Jiang Peishi, Sing-Chun (Sally) Wang, Maruti Mudunuru, Erol Cromwell, Robert Hetland, Andrew Geiss, Melissa Swift, Robin Cosbey, Samuel Dixon, Tirthankar (TC) Chakraborty, Lexie Goldberger, Heidi Medford, Jessica Baweja, Amanda Hutton, Tim Carlson, Ian Smith, Ian Kraucunas, Larry Berg, and Tim Scheibe