Frequently Asked Questions

I see “UnitConversionError: ‘km / s’ (speed) and ‘GHz’ (frequency) are not convertible” errors when using the ammonia fitter

For versions of pyspeckit 0.16 (May 2015) and later, pyspeckit uses astropy’s units for the spectroscopic axis. It therefore requires an equivalency to be defined.

To create a SpectroscopicAxis with the appropriate equivalency defined, the axis must have a reference frequency (refX) and a velocity_convention.:

>>> from astropy import units as u
>>> from pyspeckit.spectrum.units import SpectroscopicAxis
>>> import numpy as np
>>> xarr = SpectroscopicAxis(np.linspace(22,24)*u.GHz,
                             refX=23*u.GHz,
                             velocity_convention='radio')

If you have loaded a spectrum from file and it doesn’t contain the appropriate metadata (usually a CTYPE in the header), you can set the refX and velocity_convention manually. The options for velocity_convention are radio, optical, and relativisitic.

For details on the meaning of the various velocity conventions, see Frank Ghigo’s site or FITS Paper III, especially table 4. For details on the accepted FITS CTYPE keywords, see FITS Paper III. In particular, their table 1 speciefies all valid spectral coordinate type codes.