The Unidata Program Center's summer student intern Josh Clark has come to the end of his summer appointment. After a summer of widely varying projects, Josh gave an overview of his accomplishments to the UPC staff on July 31, 2015.
Josh graduated from the University of Northern Colorado in the spring of 2015 with a B.S. in Meteorology. After spending the summer at the Unidata Program Center, he is headed to the graduate program at San Jose State's Fire Weather Research Lab.
A Variety of Projects
Josh arrived at the Unidata Program Center in June with a summer project in mind: a small pure python wrapper around the MesoWest API that could be used to retrieve meteorological data at over 40,000 observation stations in the United States and display the data in geographic context. Within a week of his arrival, though, Josh had released a version of the MesoPy project on GitHub. After making some improvements based on advice from UPC developers Ryan May and Sean Arms, Josh presented his MesoPy work at the 2015 Unidata Users Workshop in June. Great progress, but it left Josh looking for other things to tackle.
“[When I got to Unidata] I thought I knew how to program,” says Josh. “What Sean and Ryan did immediately after looking at my code was teach me how to test it. So, I learned how to unit test within three days of being here.” He says he learned about a whole suite of tools for maintianing the health of his code — and documenting it for others. (All good software engineering skills.)
Next, Josh spent took a look at an experimental project called the Weather Analysis and Visualization Environment (WAVE). While the ideas behind the WAVE project are still under exploration, the particular technology he investigated (PyQt) was probably not right for the application. Which is another good lesson in software engineering — even good technologies can be a poor fit for a specific problem.
Josh spent some time working with Unidata's Siphon project, which conisists of several Python utilities for interacting with Unidata data technologies. He was even able to participate in the 2015 Software Training Workshop's Python course, presenting Siphon concepts to the class.
Finally, Josh also spent some time using Flask to demonstrate rapid web development in Python. Combining this with another experimental Python library that interfaces with an AWIPS II EDEX server (EdexPy) resulted in a prototype web application that could query the EDEX database for real-time weather information.
Whew! Quite a busy summer. You can read Josh's description of his projects, along with his thoughts on his time at Unidata, over on the Unidata Developers' blog. You can watch and listen to Josh's presentation to the UPC staff on the Unidata Seminar Series page.
Stay Tuned
The Unidata Summer Internships offer undergraduate and graduate students an opportunity to work with Unidata software engineers and scientists on projects drawn from a wide variety of areas in the atmospheric and computational sciences. If you're a student thinking about internships for the summer of 2016, keep Unidata in mind. Unidata's summer internships are generally advertised in early January, so be sure to check back at the beginning of next year. For reference, you can take a look at the Internship page.
We at the Program Center certainly enjoyed having Josh working beside us this summer, and we wish him the best of luck in what we're sure will be a brilliant career!