Open source refers to a (programming) tool or project where the (source) or the code used to build the tool is available for anyone to see, use and contribute to. If the tool is free, it will be referred to as FOSS or Free Open Source Software. To make it easier to teach earth data science I help build free open source software tools. Below are some of the free-to-use open source projects that I am currently leading development of.

pyOpenSci: Peer Reviewed, Documented, Tested and Discoverable Open Source Software for Science

pyOpenSci is a community modeled after rOpenSci that promotes open science through supporting development and peer review of scientific software written in the Python programming language.

I currently am organizing and leading the pyOpenSci effort with several colleagues. In the past 2 years we have:

  • Developed a robust peer review process
  • Created and published a contributing guide that provides guidelines and standards for Python packages
  • Created a partnership with JOSS (Journal of Open Source Software) to ensure they are citable.
  • Gathered extensive community support.
  • Reviewed a suite of open source python packages harnessing the power of volunteer reviewers and editors.

I am currently serving as the editor in chief but am also actively seeking funding for this project to support hiring someone to work on this project full time.

Learn more at

Open Source Software Tools That I Am Currently Working On

I am leading the development of several free open source software tools for Python. These tools have been developed collaboratively with colleagues at Earth Lab, undergraduate interns and graduate students. EarthPy is used extensively as a part of the earth-analytics-python open education course. Matplotcheck was designed to support unit testing of plots for autograding student assignment. It also is useful for developing unit tests in Python packages that have plots.



A Python package that makes it easier to plot, manipulate and use spatial data. It also includes tools to manage data downloads and home directories.

View Docs



A Python package that makes it easier to test and validate matplotlib plots. This tool supports autograding student assignments and can be used in Jupyter Noteboks.

View Docs


abc-classroom Platform

A tool that makes managing github classroom repository management and grading easier.

View Docs

Earth Analytics Python Conda Environment

A curated conda environment and docker container that has a suite of spatial tools that support teaching and learning spatial open source python..

View GitHub Repo

JupyterHub for Earth Analytics Teaching

A JupyterHub deployment system that supports multiple hubs with different configurations including custom environments, compute settings and more setup through Google Cloud.

View Docs