I am committed to supporting open source. If we can, we should all contribute. Open science depends on open tools. And maintaining open tools takes work.

pyOpenSci: Building diverse community around scientific Python tools through open peer review, training and mentorship

Image of a xkcd comic showing a large maching with a very small leg holding the entire thing up. An arrow points to it and says A project some random person in nebraska has been thanklessly maintaining since 2008.
Critical scientific workflows and projects often have dependencies that are maintained by volunteers. source: xkcd
pyOpenSci builds diverse community around scientific Python open source tools. PyOpenSci has several core programs including:
  1. Peer review of Python free open source software
  2. Community building that supports both new and existing open source maintainers
  3. Training and mentorship that will support a diverse set of new contributors supporting open source
Open Source Software (OSS) refers to tools that are created in a way that allows all of the code to be openly available for anyone to see (and contribute too). FOSS adds the word "FREE" to the acronym (Free Open Source Software). And simply refers to the fact that the software is free to use.

Open peer review of Python scientific software:

Academics are often "valued" based on their peer review publication record. However software is critical driving the workflows that are driving that research. Peer review:
  • Supports credit in the form of a citable identifier (DOI) that maintainers can use to get credit for their work
  • Supports improved package infrastructure. Consistency can make it easier for more people to contribute / support maintaining the tool.
  • Supports improved documentation making it easier for scientists to use the tools.

Learn more at pyOpenSci.org.

Open source software tools that i’ve lead development of

placeholder image 1

Making spatial data easier to work with in Python: EarthPy

2017:2022 Collaborators: Max Joseph, Jenny Palomino, Joe McGlinchy, Nathan Korinek

EarthPy was developed to address the amount of complex code that students needed to write to open and plot raster and vector spatial data. The goal of developing this tool was always to create functions that perhaps in the future might be found in some of the bigger packages that had longer term maintenance and that were more broadly used. One of the biggest wins for EarthPy was contributing the entire clip module over to Geopandas! See below:

View Docs

placeholder image 1

Making teaching with GitHub classroom easier: abc-classroom

2018-2022: Collaborators: Karen Cranston, Tim Head, Nathan Korinek

abc-classroom is an Python open source project that makes it easier to work with GitHub classroom. GitHub classroom is a classroom interface for GitHub that allows you to create assignments as GitHub repositories. Students can submit their assignments on GitHub as well using pull requests. Having students use GitHub every week for assignments engrains git and GitHub skills that are some of the most complex to learn for many students.

View Docs

Image that says matplotcheck

Testing code in student assignments to support autograding

Collaborators: Kristen Curry, Nathan Korinek, Jess Hamrick

Matplotcheck is a tool built on top of Jess Hamrick’s plotchecker tool. The idea behind this tool was that we’d setup tests in student assignments submitted as Jupyter Notebook. The long term vision was that these tests could in part run on a Continuous Integration system to support them checking their homework before submission. Further it would support autograding using nbgrader of assignments reducing grading time. This project unfortunately took a back seat given all of the other development work happening in my team at that time.

View Docs

Below are several tools that I worked on when I was the Education director at Earth Lab.

The goal of these tools was to make teaching earth data science.

  • is used 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.

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