Community Modeling and Analysis System

Special Course: Python for Air Research and Application


Availability | About the Course | Meet the Trainers | Payment Info | Registration | Hotels | Prerequisites | Contact info


The table below lists the dates of the upcoming special courses along with the enrollment status in each class. When enrollment is full, we will no longer accept applications for the class and the status column in the table will display that the class is full.

The class is subject to cancellation if there are not enough registered students. A minimum of 8 trainees must be registered to conduct a training.

Name Dates Status Space Left Price  
No classes currently scheduled. Check back soon!

About the Course

This course starts at 9:00 AM

Course GitHub page


  1. Produce publication quality graphics
  2. Perform standard model performance evaluations
  3. Create emission perturbations
  4. Add custom modifications to each exercise


Attendees will learn how to leverage Python to interact with air pollution-related model and observational data. Air research and application relies on big data. In addition to the challenge presented by data size, researchers must understand a multitude of formats and meta-data standards. For example, CMAQ, CAMx, and GEOS-Chem all use different formats and different meta-data conventions. This tutorial provides format-independent and convention-independent tools.


  • Some scripting experience (R, Python, Perl, bash, or csh). Attendees who do not have experience can follow my on-line Python-primer ( to satisfy the requiremnt.
  • A computer with either
    • Windows, Linux, or Mac; a text editor; and Anaconda 3.5 installed.
    • or a computer and an account on

Sections (4 hours)

Intro to the Common Data Model (30 minutes)
  1. files and groups
  2. dimensions
  3. properties
  4. variables
  5. Conventions
    • Climate Forecasting (CF) Conventions
  6. Conceptualizing any data set as CDM
Intro to ipython (30 minutes)
  1. Loading key libraries
  2. Running interactively
  3. Running a saved file
  4. Making and saving a figure
Tile Plots (30 minutes)

Make tile plots of ozone with 3 different methods from CMAQ data.

  1. Python Environment
  2. Python with PseudoNetCDF
  3. Command Line Interface (terminal or DOS)
  4. Advanced users will overlay observations
  5. Advanced users will repeat with CAMx or GEOS-Chem
Common Processing and Terminology (30 minutes)

This section will explain many of the techniques used in the tile plot section and in all subsequent sections.

  1. slicing in numpy
  2. dimensional reductions
  3. Loading data from different formats
    • CMAQ (already done)
  4. Adding coordinate variables
  5. Using named dimensions via PseudoNetCDF
  6. Adding derived variables via PseudoNetCDF
Time series (30 minutes)

Make time series plots with 3 different methods from CMAQ data.

  1. Python Environment
  2. Python with PseudoNetCDF
  3. Command Line Interface (terminal or DOS)
  4. Advanced users will add observations
  5. Advanced users will add another species on a secondary axis
  6. Advanced users will repeat with CAMx or GEOS-Chem
Scatter Plots (30 minutes)
  1. Python Environment
  2. Python with PseudoNetCDF
  3. Command Line Interface (terminal or DOS)
  4. Advanced users will switch from time/space paired to rank paired
Statistical Evaluations (30 minutes)
  1. Python with PseudoNetCDF
  2. Command Line Interface
  3. Advanced users will write their own function.
Emissions Perturbations (30 minutes)
  1. CMAQ - Python without PseudoNetCDF
  2. CAMx - Python with PseudoNetCDF
Wrapping up (30 minutes)
  1. Expanding on what we've done
  2. Questions

Guided Custom Analyses (afternoon optional session: 120 minutes)

  1. k-cluster analysis in Python
  2. ttest, Mann-Whitney-U
  3. applying evaluations over specified dimensions

Meet the Trainers

Barron Henderson

Barron Henderson Assistant Professor, University of Florida

Research Interests: Applying mathematical models to investigate the science of air pollution; including deriving chemical kinetics, scientific guidance for model application, ambient composition prediction, and quantifying climate and health outcomes.

Byeong-Uk Kim

Byeong-Uk Kim Environmental Modeler, Environmental Protection Division, Georgia Department of Natural Resources

Dr. Byeong-Uk Kim has been using the Python language over 10 years for his air quality modeling and data analysis duties. He will bring a state modeler's perspective and introduce some Python libraries he utilized to improve his workflow efficiencies. He will also share some of his Python scripts he is using for his air quality modeling, emission inventory, and data analysis tasks.

Payment Info

Payment is accepted with credit card or purchase order. Note that you are asked to make the payment or initiate the payment process (e.g. by providing the purchase order number) at the time of registration. We will send you a receipt by email to confirm the receipt of the registration and payment. If you find later that you are unable to attend to the class after registration, notify the CMAS Center as soon as possible. Please see our Payment Info page for our refund policy.


Register online to sign up for a CMAS training classes.

Contact Information

For more information on CMAS Special Courses, please contact Brian Naess at 919-966-9925 or email