The 2017 Unidata Summer Internship will offer graduate students and upper-level undergrads an opportunity to work with Unidata software engineers and scientists on projects drawn from a wide variety of areas that overlap atmospheric and computational sciences. Unidata's mission is to support the Earth Science research and education community with innovative data access, analysis, and visualization tools. As an intern, you will use, design, and/or modify existing Unidata software in innovative ways to better support the Unidata Community.
As an intern, you will use, design, and/or modify existing Unidata software in innovative ways to better support the Unidata Community. Projects could come from the following areas:
The 2017 program is a 11-week summer position (40 hours / week) running 22 May to 4 August, 2017. Interns work at the Unidata Program Center (UPC) in Boulder, Colorado. Housing (shared with other UCAR interns) is provided, along with an hourly stipend and transportation costs to and from Boulder. Additionally, Unidata will arrange for 2017 interns to attend the 2018 AMS annual meeting to present their work.
In addition to software projects, as a Unidata intern you will participate in the following activities:
You'll gain professional writing experience by documenting your work, at both the code and user documentation level. You'll be encouraged to participate in the Unidata Developers Blog throughout the summer.
In addition to working closely with individual developers, you will attend technical staff meetings to report on the status of your project. You'll also have weekly opportunities to update the UPC staff on the progress of your project through informal “brown bag” talks. And you'll also be encouraged to share your progress and experiences at UCAR and Unidata with a larger community by posting to the Unidata developer's blog.
In the last week of your internship, you will have the opportunity to give a Unidata Community Seminar describing your experience and the outcomes of your summer work.
Unidata will also arrange for your attendance at the 2016 AMS Annual Meeting's Student Conference, allowing you to present your internship work to a wide audience of working scientists and other students. We'll help you get starting on your presentation and abstract submission during the summer.
As a Unidata intern, you will be part of a larger community of UCAR and NCAR summer interns. Interns are expected to contribute positively to the UCAR/NCAR community and to conduct themselves in a manner appropriate to a professional environment. Interns are expected to fully participate during normal office hours.
Applications for the Unidata Summer Internship will be accepted starting in mid-December 2016. Applications are due 3 February 2017 and must be submitted through the UCAR Career Portal.
Part of the application process involves writing a letter of interest describing the work you are interested in doing during the internship. Please indicate which Unidata software package(s) you are interested in using or developing and how your work would positively impact the Unidata community. See the summaries of recent interns' projects (links at upper left) for an idea of the typical scope of a summer project, but don't feel limited by past interns' choices of areas to work in. You'll also be asked to provide recommendations from two faculty members and some source code samples.
Below are a number of possible projects that Unidata developers and scientists have suggested. Please feel free to expand on one of these. However, it is not necessary to restrict yourself to this list, if you have your own ideas of how you would like to enhance or use a Unidata software package to positively impact the community, please write it up and submit it.
Work with Unidata developers and MetPy's community to improve and extend MetPy. MetPy fills in the gaps for using Python in meteorology, with tools like calculations (dew point, wind chill, etc.) and plots like Skew-T's. Enhancements for MetPy can range from improving documentation and examples to adding new plots, calculations, or other tools. MetPy's open issues on GitHub also contain a wide array of bugs and feature ideas that could use some work.
We are looking for somebody to evaluate the existing netcdf4 python API and suggest/implement improvements in the form of new or extended functions/functionality. We are also looking for somebody to make sure our user documentation is consistent with the state of the current netcdf software.
Work with Unidata developers to improve and extend Siphon. Siphon provides a supported python library to talk to THREDDS. This includes parsing catalogs as well as formulating queries for the NetCDF Subset Service (NCSS). Enhancements for Siphon can range from improving documentation and examples to experimenting with implementing the ideas of the Common Data Model (CDM) in Python. Siphon's open issues on GitHub also contain bugs and feature requests that could use some work, or could inspire other ideas.
Work with the THREDDS and Python developers to assess the impact of doing analysis and visualization “near” data using cloud technologies.
We are looking for somebody to evaluate the existing netCDF C++ API and give it a good spring cleaning; this will involve making sure that recent improvements to the netcdf C library are accessible through the C++ interface, and are being properly tested and documented.
Work with Unidata developers and SSEC engineers to develop Java API of calibration module based on the old fortran code for different satellites.
Work with Unidata developers and scientists to develop basic data visualization and analysis applications using HTML5 and JavaScript. Investigate the use of data visualization libraries like D3 and OpenLayers.
Explore ways Unidata software packages can take advantage of containerization technologies like Docker. Lay the groundwork for a Unidata container image repository.
Work with the THREDDS developers to extend the set of data access web services available through the TDS.
Implement a C API for optimizing access to big datasets by setting optimum netCDF-4 chunking (multi-dimensional tiling) and compression parameters. Write tests and demonstration code showing huge improvements possible when optimum chunking is used with datasets too large to fit in memory.
Work with Unidata developers and community members to investigate the use of Google Earth Engine with earth science datasets important to the Unidata and broader community.
Work with Unidata software engineers and scientists to develop and document a library of IDV bundles for use by the Unidata community.
Improve netCDF Fortran-2003 API to exploit new features of the language, such as portable derived types.
Write a few simple netCDF utility tools that replace the overloaded options and complexity of current ncgen and ncdump tools. For example, a tool to generate Python, C, or Java code to read or write an input netCDF file (without using CDL) would be useful.
Work with the THREDDS developers to add a TDS service to capture specified datasets for a given space and time extent.