(will not install)
This is a code framework designed to allow for analysis of spectroscopic data from a wide variety of astronomical instruments. It is motivated by the lack of general spectroscopic analysis tools applicable at multiple wavelengths (compare to IRAF, SPLAT, etc. - these are wavelength-specific and/or do not make user scripting easy).
Initial implementation focuses on optical and radio applications, e.g. gaussian and voigt profile fitting, baseline/continuum fitting, and equivalent width measurements. However, the design is meant to be extensible. We want additional features to be trivial to implement.
In that vein, there is a growing set of spectral models implemented. The model and hyperfinemodel classes makes model implementation quite straightforward, if not trivial (you still have to plug in the right frequency offsets and relative line strengths).
Plotting is straightforward, as is usually the case with matplotlib-based codes. We have a few different methods of error bar plotting implemented, a decent (and expanding) units class for pretty printing of spectroscopic units, and different methods of fit plotting.
- bugfix: unit conversion with reference wavelength
- bugfix: interactive buttons “reconnected” each time
- new feature: voigt profile interactive guess now has 2 widths
- Added lineid_plot tools
- Baseline can fit power laws
- New TSPEC unmerged, IRAF fits readers
- astropy.io.fits compatibility fixes
- General bugfixes
- Voigt Profile Fitter - bugfix, previously abused notation / misused widths
- BUGFIX RELEASE
- Documentation updates
- Speed boost for model grids
- Some support for pymodelfit
- added emcee and pymc generators
- Added cross-correlation
- Added (some) unit tests
- New interactive slider widget for manipulating models (Spectrum.specfit.add_sliders())
- Subtle but very significant bug-fix: parinfo is now a single uniform list, based on the ParinfoList class.
- You can now fit based on what you see by using the ‘use_window_limits=True’ kwarg .. warning:: This changes the default behavior in interactive mode!
- lmfit-py can now be used for fitting via the ‘use_lmfit’ kwarg
- BUGFIX: SpectroscopicAxis can be converted between units even when scalar
- velocity frames are read from FITS headers following the VELDEF conventions
- H2CO fit / plot wrapper
- setup.py no longer tries to write config files
- Added GBT (GBTIDL SDFITS file) and ALFALFA (ALFALFA idlsave .src) readers
- added extinction model (just a function, not a complete model yet)
- removed setuptools & distribute (they fail)
- added hydrogen.py to models
- first release to inherit from astropy’s Spectrum1D
- some internal cleanup / refactoring
- override slicing (__getitem__ features)
- parallel moment & fitting in Cubes repaired
- added MIT license, moved mpfit and parallel_map inside pyspeckit as
- bugfixes and versioning work
- Initial creation