IN017-0007
Autoplot Scripting using Jython and GitLab for Research Applications

Thursday, 10 December 2020
Poster
Jeremy Faden1,2, Sadie Elliott3, William S Kurth2, Larry Granroth3, Ivar Christopher4, Sebastian De Pascuale5 and Kristoff W Paulson6, (1)Cottage Systems, Iowa City, IA, United States, (2)University of Iowa, Department of Physics and Astronomy, Iowa City, IA, United States, (3)University of Iowa, Physics and Astronomy, Iowa City, IA, United States, (4)University of Iowa, Iowa City, IA, United States, (5)Oak Ridge National Laboratory, Oak Ridge, United States, (6)Smithsonian Astrophysical Observatory, Cambridge, MA, United States
Abstract:
Autoplot was first introduced more than twelve years ago as a freely-available
tool which would easily read and display data. Since the beginning, Autoplot scripting
has been used effectively in research applications. Scripting is done in Jython, which
is Python implemented on the Java Virtual Machine. These scripts use an
API (Application Programming Interface) to retrieve data from many sources (like HAPI servers,
Das2Servers, and CDF files) using Autoplot code. The scripts operate on
data using "vectorized" operators as in IDL, Matlab, and SciPy. Unlike IDL,
Matlab, and Python these operators are metadata-aware, so that timetags, units,
and labels are handled automatically. This reduces code and opportunities for
mistakes which would slow research.

Our intent is that Autoplot operates "on the web" rather than "on the desktop,"
so that data references are web URLs and data is automatically downloaded
and stored. This simplifies collaboration, where two scientists can run the
same script and results will be the same at both sites. Scientists don't have
to think about directories where data will be stored and modifying code to
point to this downloaded data. Further enabling this, specialized support
for GitHub and GitLab sites allows scientists to comfortably collaborate using
scripts, so that a script itself is stored on the web. GitLab sites automatically
track and distribute code changes, and manage branches which allow for ad-hoc
experiments.

We present examples of studies done for the Juno mission outlining what has
worked effectively and what work still needs to be done.