The 2021 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.
The 2021 program is a 11-week summer position (40 hours / week) running 17 May to
30 July, 2021.
Depending on the COVID-19 situation in May, interns will either work at the Unidata Program Center (UPC) in Boulder,
Colorado or in a virtual internship setting.
If interns come to 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 2021 interns to attend the 2022 AMS annual meeting
to present their work.
In addition to software projects, as a Unidata intern you will participate in the
following activities:
Writing
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.
Reporting / Seminars
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
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 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.
Community and Professional Behavior
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.
How to Apply
Applications for the Unidata Summer Internship will be accepted starting in
December 2020. Applications are due
27 January 2021 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. An additional short
personal
esssay is also required as part of the application. 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.
Possible Projects
We'd like to hear what you want to work on! We're open to pretty
much any project that holds your interest and will benefit the Unidata
community in some way.
To get a good idea about the scope of summer projects, read through some of the
descriptions of previous
interns'
summer activities. (You can also watch their end-of-summer presentations on the
Unidata Seminar Series
page.)
If you're still undecided, below are a number of possible projects that Unidata developers
and scientists have
suggested. If one of these topics grabs you, feel free to make it your own!
-
Improve and extend
MetPy — an open-source Python
toolkit
for meteorology
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.
-
Contribute improvements to the netCDF4-Python API and Documentation
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.
-
Enhance
Siphon — an open-source library
for
working with the THREDDS Data Server
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.
-
Investigate the impact of data localization, enabled by cloud technologies,
using the THREDDS Data Server (TDS) with Siphon and MetPy via Unidata's
JupyterHub instance
Work with the THREDDS and Python developers to assess the impact of doing analysis
and visualization “near” data using cloud technologies.
-
Improve netCDF C++ interface/API
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.
-
Develop Java APIs and implementations for calibration of local satellite
imagery dataset
Work with Unidata developers and
SSEC engineers to develop Java API of
calibration
module based on the
old fortran code for different satellites.
-
Develop HTML5/JavaScript-based data visualization and analysis applications
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.
-
Investigate container technologies
Explore ways Unidata software packages can take advantage of containerization
technologies
like Docker. Lay the groundwork for a Unidata container image repository.
-
Develop new data access web services in the THREDDS Data Server (TDS)
Work with the THREDDS developers to extend the set of data access web services
available
through the TDS.
-
Develop optimization schemes for selecting netCDF-4 chunking and compression
parameters
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.
-
Develop IDV bundle/script library for use by the Unidata 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
Improve netCDF Fortran-2003 API to exploit new features of the language, such as
portable derived types.
-
Develop simple netCDF utility tools
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.
-
Develop THREDDS Data Server (TDS) capability to easily capture data for a
case study
Work with the THREDDS developers to add a TDS service to capture specified datasets
for a given space and time extent.
-
Have other ideas for how to help the Unidata Community? Let us know!