XSPEC Keith Arnaud Center for Research Excellence in Space Science and Technology University of Maryland College Park and NASA’s Goddard Space Flight Center
XSPEC
Keith Arnaud
Center for Research Excellence in Space Science and Technology
University of Maryland College Parkand
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 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.
XSPEC
Define Model
Calculate Model
Change model
parameters
Multiply by detector response
Compare to data
Has fit converged?
GoodFit?
No
Calculate confidence
regions
Yes
Yes
No
Scientist Program
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.
Energy bins (keV)Parameter values
Fluxes in energy bins (photons/cm^2/s)
XSPECmodel
Standard interface Fortran/C/C++ or FITS format file
Standard interface for models either as subroutines or as FITSformat files allows anyone to add their own models.
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.
Draine & Li dust modelDrude line profileSilicate extinction profileNenkova et al. clumpy torus modelsSchweitzer et al. NLR models
Spitzer IRS spectrum
XSPEC NIR model library
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?