In long run, Astropy project should endeavour to incorporate generic tools for 1D and 2D spectroscopy analysis.
Yes, and interactive tools like splot in IRAF. Thanks!
Pyspeckit is a good package that need some improvements.
It could be a good starting point:
pyspeckit is largely meant to handle the splot use case. It won't ever handle the 2D spectroscopy case, which requires spectroscopic aperture extraction (e.g., apall) or regridding.
If you have any issues with pyspeckit or suggestions, you can raise issues (github.com/pyspeckit/pyspeckit/issues) or e-mail email@example.com. If there are enough issues or feature requests, we could open a userecho site like this too.
I've been using https://github.com/arnoutaertgeerts/python-highcharts for this. It allows you to interact with a dataset, like a spectra, in jupyter and select or zoom in to different ranges. Right now I have some ad hoc tools to calculate equivalent widths and what not but it would be nice for someone to create a package with these features built in.
Also, if you're interested in contributing to pyspeckit, it would be nice to have some help with the EQW method there: https://github.com/pyspeckit/pyspeckit/blob/master/pyspeckit/spectrum/fitters.py#L321
Looks interesting, I haven't used the nbagg backend yet. I may be reducing some spectra in the next few weeks so I'll take a look at it and see if there are any modifications I can make to pyspeckit.
On the general topic of "spectroscopic tools", it would be helpful to (1) have more specific requests and (2) split up 1D and 2D spectroscopy. A few 1D analysis tools have already been mentioned, and specutils (specutils.readthedocs.org) exists for IO operations on many 1D spectroscopic formats. What specific features are needed?
While a number of analysis tools for spectra have been mentioned, I haven't found much for reducing spectra, i.e. turning CCD frames that have images of spectral data into 1- or 2-D arrays of flux (or even counts) vs. wavelength (or even pixel number). So to be specific, tools for tracing and extracting spectra, for finding wavelength solutions, and for applying them to extracted spectra would be useful.
I would also like tools to help with reduction of both 1D and 2D spectroscopic data (eg. wavelength calibration, spectral extraction). I do have fairly well-formed plans to develop these things myself but I can't really commit to contributing tools on a specific timescale, given other constraints. I'm somewhat aware of Steve Crawford's existing work, as well as pyspeckit and specutils. Just FYI and as a +1.
PS. Also 3D but that's a different problem.
This topic is pretty broad, but clearly has a lot of interest. In the aim of understanding a bit better what should be focused on, I've created three somewhat more specific topics:
But note that this suggestion is still relevant as a large-scale view, and a need for these to be well-integrated into a full workflow!
Customer support service by UserEcho