During my time here at Unidata, I’ve focused on extending the THREDDS Data Server (TDS) web interface and services. I spend the first few weeks of the summer redesigning the interface to be more intuitive to end users and implementing UI changes using Thymeleaf HTML templating. The new TDS catalog pages are designed with a “plug-and-play” structure, allowing users to override or insert their own contributed HTML, which is processed by a server-side Thymeleaf template resolver.
Halfway through the summer, I thought that it would be useful if every dataset page in the TDS generated a code snippet demonstrating how to access that dataset and its metadata using Siphon. This idea rapidly escalated into a TDS Jupyter Notebook service, which returns a Jupyter Notebook (ipynb) pre-populated with a dataset ID and catalog URL. The default Notebook describes and demonstrates use of the Siphon remote access protocol and uses notebook widgets to allow users to explore variables within the dataset. Users can supply other Notebook files in place of (or in addition to) the default Notebook. Contributed Notebooks can be registered as valid for all datasets or a subset using the ipynb metadata; the mapping between Notebooks and datasets can be specified by dataset IDs, parent catalogs, or data type (e.g. grid, point). (Administrators of TDS version 5.0 and later will find information on tailoring the notebooks in the section of the documentation titled "Extending TDS Services.")
You can find my contributions to the TDS live on Unidata's thredds-dev data server!
The goal of these new features is to help lower the barrier-to-entry and enable a broader community of users to access data using the TDS. I’ve enjoyed the work I’ve done at Unidata this summer would like to continue working on problems with data management and access in the geoscience in my future research and career.