Iris: Build and Analyze Broadband Spectral Energy Distributions


The abstract goes here



The International Virtual Observatory Alliance (Quinn et al., 2004) provides a set of standards and protocols that enable interoperability among astronomy-centered services and applications. In order to design effective applications, one wants to leverage Virtual Observatory (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 et al., 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 et al., 2012; Laurino et al., 2013).

Users may populate SEDs with data from files, 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 the Iris application, software design, and the built-in infrastructure to support application extensibility with plug-ins. In section \ref{sec:overview} we briefly explore the landscape of SED applications and analysis tools which Iris joined. An overview of 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 include their own models or templates as Python functions in section \ref{sec:usermodels}. We provide details of the Iris extensible framework design (section \ref{sec:architecture}), followed by a detailed description of the more advanced Iris functionalities (section \ref{sec:components}). Finally, we include a “How-to” description about extending Iris using plug-ins (section \ref{sec:plugins}).


SED Analysis: an overview


Fitting spectral energy distributions allows astronomers to estimate fundamental physical properties like stellar mass, star formation rates, dust content and overall environments of astronomical objects (e.g. Sawicki et al. (1998), Shapley et al. (2001), Robitaille et al. (2007), and many others). With deeper wide-field surveys and increasing numbers of datasets over the years, astronomers have been able to utilize multi-wavelength SEDs more frequently for their research. As such, many robust SED analysis codes have been created to help astronomers model, fit, and derive physical quantities from SEDs (Walcher et al., 2011; Conroy, 2013). These widely-used codes implement a diverse set of methods, for instance: inversion (aureplacedverbaa (Smith et al., 2007), aureplacedverbaaa (Cid Fernandes 2004)), principal component analysis (Budavári et al., 2009), \(\mathrm{\chi}^{2}\)-minimization codes (aureplacedverbaaaa (Arnouts et al., 1999), aureplacedverbaaaaa (Bolzonella et al., 2000)), and Bayesian inference (aureplacedverbaaaaaa (Acquaviva et al., 2011); aureplacedverbaaaaaaa (Bayo et al., 2008); aureplacedverbaaaaaaaa (Benítez, 2000)).

Most distributed fitting packages are tailored for specific data sets or spectral ranges (e.g. PAHFIT, STARLIGHT), providing robust fitting methods and results. They require the data to be in a specific format with specific units in order for the tool to work properly. When fitting a broadband SED that spans over decades in the spectrum, the astronomer will typically gather data from different public archives and colleagues to add to their own dataset. More often than not, the datasets are presented in different file formats and units. The user must provide their own methods to extract the necessary data from each file, convert the units, and output a file in the single format supported by the tool.

While SED analysis tools have input formats that may be different from each other, they nevertheless require effectively the same information to run. It thus becomes a matter of providing an interoperable framework that makes building, viewing, and analyzing SEDs a straightforward process.

Following VO efforts to seamlessly combine data services and applications, Iris offers a standard means of building large broadband SEDs from different sources in various data formats, while providing robust fitting methods and interactive visualization capabilities. Users can input SED data from a local file or a URL, with high leniency on the data format. Users may also beam data from other VO-enabled applications or data archive services through SAMP (Simple Application Messaging Protocol; Taylor et al. (2011)). If the data format follows the IVOA Spectrum Data Model v1.03 (McDowell et al., 2012), or in other words a VO-compliant VOTable or FITS file, the data is read-in without any input by the user; otherwise, the user supplies the units and mapping to the spectral-flux coordinates in the file. How this method works is described in Section \ref{sec:components}.

Iris is meant to be an open box SED analysis tool. If Iris is missing certain functionality, the user may develop a plugin for that functionality and add it to Iris. Thus, a user can employ Iris’ SED building capabilites while running custom analysis, which in theory could be one of the fitting packages discussed above. We explore this possibility in detail in Section \ref{sec:plugins}