This summer, I had the incredible opportunity to spend it as a Unidata intern. My main goal for the summer was to solidify my own fundamental Python skills, but I wanted to do it in a way that would also benefit others. My mentor, Drew Camron, and the rest of the Unidata staff dedicated their time to help me achieve this goal during my internship.
Unidata really gave me the freedom to customize my summer. I walked into this internship expecting to work on the same thing every day, but that was definitely not the case! Throughout the summer, I had the privilege of creating tutorials, contributing to Open Source projects, attending workshops and hackathons, presenting my work to the Unidata community, and creating a scientific poster to showcase some of my work.
While my Project Pythia contribution was the main project of my summer, I was able to work on other projects and explore my other interests as well as attend two week-long events. Keep reading for an overview of the exciting things I worked on this summer!
Main Project - Project Pythia: Contributing to This Project and Being a User
Project Pythia is an educational and training hub tailored towards the geoscientific Python community. Its main goal is to teach valuable skills through Open Source and accessible educational materials. The website is made up of four sections; Foundations, Cookbooks, Resources, and Community. The Foundations section has basic information from installing Python to working with specific core scientific packages such as Xarray.
My first experience with Project Pythia was as a user working through the Foundations material. While working through this material, I fell in love with the concept of Project Pythia and wanted to contribute to it. Once I completed working through the Foundations material, I decided I wanted to contribute to the MetPy Cookbook section.
A Cookbook is essentially a recipe for everything needed to successfully run a Python notebook. A user will get the proper environment, one or more notebooks of code, and detailed instructions. Cookbooks even have a prerequisite section of concepts the user should be familiar with prior to working through the Cookbook. The prerequisites typically link to a section in Pythia Foundations.
Project Pythia has an extensive Cookbook Contributor’s Guide available on their website and on GitHub. I followed this Guide and worked with my mentor to contribute materials for the MetPy Cookbook. I choose to showcase the MetPy Skew-T capabilities with my Cookbook contributions.
I cloned a copy of the Cookbook Template GitHub repository on my own computer to work on the Skew-T material. I created a full, in-depth tutorial describing how to create a Skew-T using MetPy and updated seven outdated notebooks into example workflows to be included with the MetPy Cookbook. I made sure each notebook was formatted similarly and updated to reflect the MetPy 1.5 version. Once my content was completed, I used GitHub and Visual Studio Code to open a Pull Request. This was my first Pull Request and my first contribution to an Open Science project!
Other Highlights From My Summer
Unidata Users Workshop
The Unidata Users Workshop was the by far the best workshop I’ve been to. I learned so much about storytelling, machine learning and Open Science. I’m thankful to have had the opportunity to participate and am already looking forward to the next one!
Project Pythia Cookbook Hackathon
I attended this week-long event in order to learn how to create a Cookbook and work with others who wanted to achieve the same goal. I had zero experience with Github and content creation prior to this event. By the end of the event, I created a “mini” cookbook on Remote Data Access with Xarray. This was a great primer for my main summer project.
I wanted to learn more about Python-AWIPS and more of the development side of Python. I worked on the way the Environmental Data Exchange (EDEX) outputs data, changing the output from NumPy arrays to an Xarray Dataset. While I was unable to finish this due to time constraints, I enjoyed exploring the development side of Python-AWIPS and laid a good foundation for this project to be completed at a later date.
Throughout this internship, I had continued exposure to the concept of contributing to Open Science. I made my first Open Science contribution with my Project Pythia contribution, but I wanted to learn other ways to keep contributing to Open Science after my internship was over. This lead me to the Issues in the MetPy GitHub repository. MetPy welcomes contributions from community members and even has a “good first issue” label on their issues section. On the final day of my internship, my wonderful mentor Drew spent several hours teaching me how to start tackling an issue. We got my computer set up with a development environment, went over a proper workflow, and an overview of the entire approval process.
Overall, my summer at Unidata was the experience of a lifetime that I will never forget. I felt like a member of the Unidata family from day one. Even on the final day of my internship, my mentor dedicated a large chunk of the day to teaching me and setting me up for success for future work. I learned so much from the variety of projects I worked on and ultimately was able to achieve my goal for the summer.