Iris: Build and Analyze Broadband Spectral Energy Distributions

Abstract The abstract goes here



The Virtual Observatory (VO) provides a set of standards and protocols that enable interoperability among astronomy-centered services and applications [NEED VO CITATION]. In order to design effective applications, one wants to leverage VO standards and protocols without exposing the complexity and technicality of their specifications to the users. Also, while application developers implement many desired functionalities, they must keep the door open for plugging in user’s analysis code, and allow third party developers to extend the application’s functionality without being aware of the standards themselves.

Designing such general purpose applications thus becomes an exercise in designing a framework that implements some basic, effective functionality for a wide set of use cases, while being highly extensible.

Iris, the Virtual Astronomical Observatory1 (Berriman 2012) spectral energy distribution (SED) analysis tool, is such a VO-enabled application. Iris was developed to provide the astronomical community with a desktop application for building, viewing and analyzing broadband spectro-photometric SEDs, while implementing VO standards and protocols and taking advantage of existing astronomy software (Doe 2012, Laurino 2013).

Users may populate SEDs with data from file, built-in portals to data archives, and other VO applications. Iris is lenient on the data format, so while it natively supports VO-compliant files (properly annotated VOTABLE and FITS files), Iris can ingest ASCII, CSV, and other table-like formats with some user input. Iris also provides interactive data visualization and editing tools, and a SED fitting tool for fine-tuned modeling. Users may choose from a suite of provided astrophysical models, or load their own Python functions and template libraries. All front-end features of Iris completely hide the underlying technical VO standards and protocols from the user.

Iris was devoted to provide functionality in a specific scientific domain, namely the analysis of broad-band SEDs. This requirement clearly defines the semantic scope of the Iris extensible framework, and provides a clear abstraction layer to both users and developers, inside and outside of the development team.

In this paper we present Iris, its design, and how users and developers can plug their code in it. In section \ref{sec:overview} we briefly explore the landscape of applications and analysis tools in which Iris is inserted. An overview of the Iris general architecture (the Iris stack) is illustrated in section \ref{sec:stack}. We introduce the Iris features in section \ref{sec:builtin}, and explore how astronomers can plug their models or templates in as Python functions in section \ref{sec:usermodels}. We then move to the details of the Iris extensible framework design (section \ref{sec:architecture}) and to a somewhat detailed description of the more advanced Iris functionalities (section \ref{sec:components}). Finally, we provide more details about how to extend Iris via Plug-ins (section \ref{sec:plugins}).