XSPEC Keith Arnaud Center for Research Excellence in Space Science and Technology University of Maryland College Park and NASA s Goddard Space Flight Center
9,525 refereed papers containing the word xspec
Papers using XSPEC have 335,975 citations. Papers using XSPEC have a collective H-index of 190. The XSPEC Facebook group has 651 members.
XSPEC XSPEC is a program to analyze high energy astrophysics energy spectra using forward-fitting to determine best-fit physical models and their parameters. Open source software distributed as part of the HEASARC's heasoft package.
Multiply by detector response Compare to data No Define Model Calculate Model Has fit converged? Yes Good Fit? Change model parameters No Yes Scientist Program Calculate confidence regions
216 different models included in the latest release.
CEI and NEI plasmas (many built on AtomDB - next talk). Photoionized plasmas. Photoelectric absorption due to neutral and ionized material (including grains and molecules). Reprocessing from ionized material in relativistic accretion disks. Neutron star atmospheres. Non-thermal pair plasmas. Thermal and bulk Comptonization.
Standard interface for models either as subroutines or as FITS format files allows anyone to add their own models. Energy bins (kev) Parameter values XSPEC model Standard interface Fortran/C/C++ or FITS format file Fluxes in energy bins (photons/cm^2/s)
Approximately half the models have been supplied by other people. Theorists know that to have their models used they should produce them in XSPEC format. Models can be loaded into XSPEC at run-time and can be written in Fortran, C, C++ or Python. The XSPEC model library can be and is used independently of XSPEC (e.g. in Sherpa and ISIS).
Models supplied by others have challenges: Typically not tested over entire parameter ranges. Often only tested on one operating system. Models are circulated without telling me. Author may subsequently leave the field or otherwise be unavailable for long-term support. Models may become obsolete due to out-of-date atomic data.
Spitzer IRS spectrum XSPEC NIR model library Draine & Li dust model Drude line profile Silicate extinction profile Nenkova et al. clumpy torus models Schweitzer et al. NLR models
In general, astronomers want to do the simplest thing possible. My goal is to make that simplest thing as close to the correct thing as possible.
The first version of XSPEC was written in 1983 by Rick Shafer at the Institute of Astronomy, Cambridge. Rick was funded by a Royal Society grant to Andy Fabian. Rick and Frank Haberl also made contributions while working for ESA in the mid-80s. I took over main responsibility for XSPEC in 1986 when funded by a scholarship from Emmanuel College, Cambridge then a Harvard-Smithsonian postdoctoral fellowship at CfA. My work on XSPEC has been funded by NASA since 1989. Since the founding of the HEASARC in 1990 there has been ~1 programmer supporting XSPEC.
Original version of XSPEC was written in Fortran (actually VAX/VMS Fortran). Mostly converted to C++ in late 90s (a ~5 year process). Python interface added in 2012 (a ~1 year process). Can also run XSPEC in Jupyter notebooks. Aim for one new release per year with interim patches for bugs and/or smaller improvements. Answering user e-mail is a significant time commitment. My xspec e-mail folder contains 76 conversations so far this year (i.e. >1 per work day). My standard is to have every question answered within 24 hours.
The initial cost of writing the first version is a tiny fraction of the long-term cost for improvement, maintenance, and support. The long-term success of software depends on how quickly you answer your e-mail. If you have a widely-used public domain software package it will become your career.
Succession issues
SPEX at SRON-Leiden
It is tough to get an academic position by supporting public use software that you write yourself. Winning an academic position on the basis of supporting someone else's public use software is likely impossible. NASA centers and National labs can, in theory, hire people specifically to support existing software. Will they?