Skip to main content

Toolkit for fitting and manipulating spectroscopic data in python

Project description

pyspeckit.bitbucket.org and https://github.com/pyspeckit/pyspeckit

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.

We’re also looking for more users to give us more use cases! Contact us at pyspeckit@gmail.com or post issues

Requirements: matplotlib numpy

Preferably at least one of: pyfits atpy asciitable

Optional: scipy lmfit-py lineid_plot

Authors: Adam Ginsburg Jordan Mirocha (or both of us at pyspeckit@gmail.com)

The PySpecKit logo uses the Voyager 1 image of Earth known as the “Pale Blue Dot” [ original source | reprocessed image ]

CHANGES

Release 0.1.14 (2013-09-10)

  • Bugfix: integral(direct=True) double-subtracted the baseline if it was

    already subtracted

  • New Feature: Models now include analytic integrals (only implemented for

    Gaussian so far)

  • New Feature: hyperfine models added that allow varying amplitudes & widths

Release 0.1.13 (2013-03-04)

  • Cleanup excess data files

  • Bugfixes in baseline fitting

  • Added astropy.models interface

Release 0.1.12

  • New formaldehyde 218 GHz fitter

  • Allow parinfo to be input as “guess=” or “parinfo=”

Release 0.1.11

  • bugfix to EQW non-fitted (“empirical”)

Release 0.1.10

  • bugfix: unit conversion with reference wavelength

  • bugfix: interactive buttons “reconnected” each time

  • new feature: voigt profile interactive guess now has 2 widths

Release 0.1.9

  • 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

Release 0.1.8

  • BUGFIX RELEASE

  • Documentation updates

  • Speed boost for model grids

  • Some support for pymodelfit

  • added emcee and pymc generators

Release 0.1.7

  • 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

Release 0.1.6

  • H2CO fit / plot wrapper

  • bugfixes

  • setup.py no longer tries to write config files

Release 0.1.5

  • Added GBT (GBTIDL SDFITS file) and ALFALFA (ALFALFA idlsave .src) readers

  • added extinction model (just a function, not a complete model yet)

Release 0.1.4

  • removed setuptools & distribute (they fail)

  • added hydrogen.py to models

  • first release to inherit from astropy’s Spectrum1D

Release 0.1.3

  • some internal cleanup / refactoring

  • override slicing (__getitem__ features)

  • parallel moment & fitting in Cubes repaired

Release 0.1.2

  • added MIT license, moved mpfit and parallel_map inside pyspeckit as

  • submodules

Release 0.1.1

  • bugfixes and versioning work

Release 0.1.0

  • Initial creation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyspeckit-0.1.14.tar.gz (244.0 kB view details)

Uploaded Source

File details

Details for the file pyspeckit-0.1.14.tar.gz.

File metadata

  • Download URL: pyspeckit-0.1.14.tar.gz
  • Upload date:
  • Size: 244.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyspeckit-0.1.14.tar.gz
Algorithm Hash digest
SHA256 cf601a5ca5371604dde93eb906c8476ccb7de84244e60b0d42b11b1aae8579a9
MD5 1eccdd1afbdc441496f37df8928240ba
BLAKE2b-256 ff5cba5a0ff464b88e29e4ebf91efe6654f86e4fce9d6bc2d0e4e6d8a460c9e9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page