@@ -11,14 +11,17 @@ type: Process, Standard Track
11
11
12
12
status: Accepted
13
13
14
+ revised-by:
15
+
16
+ * Benjamin Weaver - 2024 July 19 - Spectrum visualization is now out-of-scope.
14
17
15
18
Abstract
16
19
--------
17
20
18
21
The goal of this APE is to coordinate and plan the development of spectroscopic
19
22
software within the astropy project. The requirements for spectroscopic tools
20
23
include handling and reducing observations, different types of analysis, and
21
- visualization of spectra . The goal of this APE is to provide a framework that
24
+ supporting IO on data files used in the community . The goal of this APE is to provide a framework that
22
25
different astronomy packages can use to coordinate the development of
23
26
spectroscopic tools. The idea is a set of foundational packages that can then
24
27
be extended to build other tools. As part of this coordination effort, this APE
@@ -108,7 +111,7 @@ The path forward
108
111
^^^^^^^^^^^^^^^^
109
112
110
113
This APE proposes a coordinated suite of packages for doing astronomical
111
- spectroscopy in Python. It suggests a division of functionality into three
114
+ spectroscopy in Python. It suggests a division of functionality into two
112
115
packages, then specifies in detail the structure and API of the core spectral
113
116
object, `Spectrum1D `.
114
117
@@ -128,15 +131,15 @@ domain-specific classes are not defined in this APE; instead, the intent is for
128
131
`Spectrum1D ` to provide a starting point for such efforts, which will then
129
132
develop as they are called for by the community.
130
133
131
- The development outlined in this APE will consist of three packages:
134
+ The development outlined in this APE will consist of two packages:
132
135
133
- * `specutils <https://github.com/astropy/specutils) >`_. This will provide the
134
- basic interface classes (including the `Spectrum1D ` object), as well as
136
+ * `specutils <https://github.com/astropy/specutils >`_. This will provide the
137
+ basic interface classes (including the `Spectrum1D ` object, to be renamed ` Spectrum ` in specutils 2.0 ), as well as
135
138
*basic * analysis of spectroscopic data (which are enumerated in `Analysis
136
139
tools to be included in specutils `_ below). This package is the primary
137
140
focus of this APE.
138
141
139
- * `specreduce ` . This will provide a standard toolbox for reducing spectra,
142
+ * `specreduce < https://github.com/astropy/specreduce >`_ . This will provide a standard toolbox for reducing spectra,
140
143
roughly akin to the IRAF “specred” functionality (although not necessarily
141
144
*all * of those tasks, nor in a one-to-one manner). Note that this should
142
145
*not * contain any instrument-specific code. Observatories or instruments are
@@ -145,23 +148,12 @@ The development outlined in this APE will consist of three packages:
145
148
This package will provide the tools to quickly be able to build specific
146
149
instrument pipelines.
147
150
148
- * `specviz `. This package will provide 1D spectrum visualization capabilities,
149
- but is scoped to be focused primarily on that, and not arbitrarily complex
150
- spectrum visualization (e.g., data cubes). Note that, unlike the above two,
151
- this package should *not * be considered a toolbox that other tools should be
152
- derived from. While other packages are welcome to use it, it is meant to
153
- provide a critical piece of functionality, while acknowledging that
154
- visualization, GUI code, and even personal taste are variable enough that
155
- there is room for a few other visualization packages in the ecosystem. It
156
- will, however, have a plugin architecture that may allow users/developers to
157
- add to it.
158
-
159
151
In addition to the packages described above, there are a wide range of more
160
152
domain-specific, experimental, or taste-specific packages that are likely to be
161
153
desired in the field of astronomical spectroscopy. These packages can be
162
154
developed as independent affiliated packages, and this APE encourages such
163
155
development. However, the intent is for such packages to not *duplicate *
164
- behavior in the foundational three packages described above. Because of the
156
+ behavior in the foundational packages described above. Because of the
165
157
wide range of scientific use cases for spectra, it is understood that some
166
158
level of duplication between affiliated packages is expected. E.g., multiple
167
159
line-fitting packages may be reasonable because different science cases may be
@@ -420,29 +412,19 @@ This should *not* be taken as an exhaustive list, however. Additional
420
412
functionality that meets the above guidelines will be implemented or accepted
421
413
via PRs to `specutils ` if of sufficient general interest.
422
414
423
- The next steps: specreduce and specviz
424
- --------------------------------------
425
- This APE is not intended to specify the full details of the `` specviz `` and
426
- ``specreduce `` packages . They will develop separately following the
415
+ The next steps: specreduce
416
+ --------------------------
417
+ This APE is not intended to specify the full details of the
418
+ ``specreduce `` package . It will develop separately following the
427
419
standard process for developing astropy packages, but this section
428
- outlines *example * functionality expected for these packages.
429
-
430
- ``specreduce ``:
420
+ outlines *example * functionality expected for this package:
431
421
432
422
* Methods for extracting a 1D spectrum from a 2D image of a dispersed spectrum, including boxcar and “optimal” extraction
433
423
* Wavelength calibration
434
424
* Removal of sky features
435
425
* Flux calibration of spectra
436
426
* Integration with (but *not * duplication of) 2D image-level reduction steps from packages like `ccdproc <https://github.com/astropy/ccdproc >`_
437
427
438
- ``specviz ``:
439
- * Display a spectrum
440
- * Explore the spectra by zooming in on features or moving to different areas.
441
- *
442
- * Do analysis like line flux measurements (using algorithms provided in `specutils `) or line fitting
443
- * Overlay spectral line lists (including redshift offsets if relevant)
444
-
445
-
446
428
447
429
Branches and pull requests
448
430
--------------------------
@@ -453,13 +435,11 @@ Implementation
453
435
--------------
454
436
455
437
`specutils <https://github.com/astropy/specutils >`_ already exists in its
456
- github repository, and *part * of the `Spectrum1D ` class in this APE has been
457
- implemented there, but will need to be completed if this APE is accepted.
458
- `specreduce <https://github.com/crawfordsm/specreduce >`_
459
- also has an implementation, which can be adapted to use the framework described
460
- here. Similarly, visualization via the `specviz
461
- <https://github.com/spacetelescope/specviz> `_ package will do the same. Of
462
- course, other packages for spectroscopic analysis exist, and hopefully will
438
+ github repository, and the `Spectrum1D ` class in this APE has been
439
+ implemented there. Additional features are in development.
440
+ `specreduce <https://github.com/astropy/specreduce >`_
441
+ also has an implementation, which has been adapted to use the framework described
442
+ here. Of course, other packages for spectroscopic analysis exist, and hopefully will
463
443
also be adapted to this framework in due time.
464
444
465
445
@@ -498,3 +478,7 @@ Decision rationale
498
478
------------------
499
479
There were extensive discussions with multiple stakeholders undertaken in the process of putting together this APE and it appears as though concensus has been reached. This APE was accepted on Dec 18, 2017.
500
480
481
+ Previous versions of this APE
482
+ -----------------------------
483
+
484
+ * 2017-12-12 [`DOI <https://doi.org/10.5281/zenodo.1117942 >`_] [`GitHub <https://github.com/astropy/astropy-APEs/blob/b544e82ed1942045886c15acd4985ae3ed2ead6d/APE13.rst >`_]
0 commit comments