Skip to content
Rupak Dey

Navigate

Work

News

Links

Theme

Projects

Engineering

ELSA: Metadata Tooling for NASA's Planetary Data System

Role
Research Assistant / Software Engineer
Period
May 2024 – Present
Stack
  • Python 3.11
  • Django 4.2
  • MariaDB
  • xarray / netCDF4
  • Bootstrap 5
  • Gemini API

Context#

NASA's Planetary Data System (PDS) is the long-term archive for data from planetary missions; its Atmospheres Node curates atmospheric datasets. Archiving to PDS is only useful if the metadata is correct and complete, and producing that metadata by hand for large datasets is slow and error-prone. ELSA, the Educational Labeling System at Atmospheres, is the web application that makes this tractable: it walks planetary scientists through generating PDS4 metadata for large datasets and preparing it for submission to the node, so the data becomes searchable and reusable.

The Atmospheric Modeling Annex is a new PDS service for archiving planetary atmospheric model output. For Annex bundles, ELSA harvests metadata directly from netCDF model output, including per-variable attributes and dimensions and per-coordinate boundaries and units, and generates PDS4 labels against the published Annex data dictionary.

ELSA pipeline: mission and atmospheric-model data flow through ELSA guided metadata generation and are routed to the PDS Atmospheres Node for review.Mission & instrument dataAtmospheric model data(Annex)ELSAguided metadata generationvalidation & reviewPDS Atmospheres Nodereview, then archiving

Pipeline sketch: ELSA sits between scientists’ datasets and the archive, turning data that would need hand-written metadata into submission-ready PDS4 labels, now including atmospheric models via the Annex. A completed bundle is routed to node staff for review rather than written to the archive directly. Access is protected by two-factor authentication; public forms use reCAPTCHA.

What I built#

Interface rebuild#

Rebuilt ELSA's primary bundle-building and bundle-hub interfaces on Bootstrap 5, adding responsive layouts, client-side search and filtering, and bundle status tracking.

ELSA's bundle hub: a search field, a type filter, and a row of bundle cards, each showing its name, its PDS logical identifier, an In Progress status badge, and a last-updated date.
The bundle hub, where a scientist's work is organized: search, filter by bundle type, and per-bundle status.

Atmospheric Modeling Annex (frontend lead)#

Led the frontend for a new PDS service for planetary model output, building most of the bundle-building interface and co-authoring the netCDF metadata extraction pipeline behind it.

An Annex bundle in ELSA: a model output collection with a netCDF upload panel, and an uploaded file marked Processed after ELSA extracted its metadata.
An Annex bundle's model-output collection. Uploaded netCDF files are marked Processed once ELSA has read their variables, dimensions, and coordinate boundaries into the PDS4 label.

AI Assistant (beta) and Guided Bundle Creation#

Built ELSA's in-app AI Assistant: a retrieval layer over a curated PDS4 knowledge base, a multi-model fallback chain, streaming responses, an evaluation suite, and a CI gate that fails the build when ELSA's code drifts ahead of the documentation the assistant answers from. Also built ELSA's Guided Bundle Creation flow.

ELSA's in-app AI Assistant answering a question about what belongs in PDS4 Citation Information, with a structured breakdown of author list, editor list, publication year, DOI, keywords, description, and funding acknowledgement.
The in-app assistant, answering from a curated PDS4 knowledge base rather than from the model's general training.

Authentication#

Implemented email-based two-factor authentication for sign-in, and integrated reCAPTCHA on public forms.

Impact#

ELSA lets scientists produce submission-ready PDS4 metadata for large datasets that would otherwise be prohibitively tedious to prepare, and the Atmospheric Modeling Annex extends the node's archive to a new data type.

ELSA is built by a team at the PDS Atmospheres Node. The Annex netCDF pipeline was co-authored with Said Ajo-Montaño, and the Annex walkthrough was extended by Nicholas Miller.