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
- Peer review of Python free open source software
- Community building that supports both new and existing open source maintainers
- Training and mentorship that will support a diverse set of new contributors supporting open source
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.
Open source software tools that i’ve lead development of
Making spatial data easier to work with in Python: EarthPy
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:
Making teaching with GitHub classroom easier: abc-classroom
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.
Testing code in student assignments to support autograding
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.
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..
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.