File: terms.rst

package info (click to toggle)
specreduce 1.7.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,500 kB
  • sloc: python: 4,449; makefile: 109
file content (488 lines) | stat: -rw-r--r-- 15,913 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488


Terminology
-----------

As part of a workshop at NOIRLab, 13-16 Nov 2024, the attendees
extensively discussed terminology in an effort to generate a common
understanding of, and the nuances in, many of the terms bandied about
when discussing spectroscopy data and its reduction and analysis.  The
following is a living document that stemmed from that original
discussion.

.. note::

    Below, relative terms that can have multiple meanings are
    highlighted in italics.


2D Spectrum/Image
=================

- Image = 2D Image
- Optical/IR, different for other wavelengths
- Something that is not necessarily pure “raw” data, but data that
  exists prior to extraction
- Refers to e.g. the 2D CCD images (optionally pre-processed) from which
  1D spectra (flux vs. wavelength) are extracted

.. KBW: I missed this discussion, so I don't know how we want to capture
   "Alt" definitions here...  Seems a bit awkward.

Alt Spectrum 2D
===============

- Spectrum as a function of slit position?
- Fiber dispersed
- Lots of alt Spectra 2D
- Multiple spectral orders?
- Can get up to something like 5D for solar data: wavelength x space x
  space x time x polarization
- Is there an IVOA definition that differs from both of the above?

1D Spectrum
===========

- Flux versus spectral axis (wavelength/frequency). Could be calibrated but not necessarily.

*Preprocessing*
===============

- (As related to spectral reduction): Things like flat-fielding and bias
  subtraction that are done on a full CCD image before extractions are
  performed.
- Alt term: instrument signature removal
- Meaning of this depends on context (“What do others do before I start?”)
- Typically done on raw/2d image
- Work done before mine.

*Post-processing*
=================

- Typically done on the extracted spectra?

Extraction
==========

- The process of converting raw spectrum data on 2D image into flux versus
  spectral axis or pixel (i.e. Spectrum1D), not necessarily flux or spectral
  calibration.

Rectified ND spectrum
=====================

- Non-dispersion axes means something like ra/dec, or polarization? 
- Nearly always (maybe always?) Implies some amount of resampling 
- There is one dimension that is ENTIRELY a spectral axis, all others are not
  specified by calling it a “Rectified ND Spectrum”, although they often do have
  some kind of meaning

Calibrated 2D image
===================

- Not-resampled. 
- Calibrated from raw pixel to wavelength.

.. KBW: Not really sure this is terminology, but I've left it as written in the
   workshop notes.

Facilitating Data sharing, cross-matching, etc., standards via IVOA standards
=============================================================================
- Data models (but see below)
- COM
- ObsCore
- SSA
- Not widely adopted, but could be!

*Workflow*
==========

- More holistic than a pipeline. Often a  superset of pipeline with additional
  steps to facilitate data ingest, job orchestration, data
  collection/coordination, data archiving, etc.  
- Also analysis.

*Pipeline*
==========

- Organized code for **automatically** processing raw data into calibrated spectra and 
    - Optionally derived quantities like redshifts, line fits, ...
- More generically, the linking of several steps/jobs/codes/methods where
  outputs of one feed as inputs to another.
- “Spectral reduction pipeline”? vs. “analysis pipeline” vs. “XYZ pipeline”
- SDSS and JWST pipelines are different, Dragons has three pipelines. DESI has
  different pipelines depending on who you talk to.

Classification
==============
- Identifying the type of object a spectrum represents: star, galaxy, QSO, ...
- Result of Model fitting (auto or by-eye).

*Redshifting*
=============

- Determining the redshift of a spectrum, which may or may not be independent of
  classification.
- Sometimes also means “changing the redshift of the object to its redshift”,
  e.g. converting the “wavelength/frequency” axis to rest-frame
- Related issues on GitHub:
    - `#258 <https://github.com/astropy/specutils/issues/258>`__
    - `#455 <https://github.com/astropy/specutils/issues/455>`__
    - `#820 <https://github.com/astropy/specutils/issues/820>`__

Heliocentric / barycentric correct
==================================

- Converting a spectrum to some rest frame in order to measure a radial velocity
  for a nearby stellar source.
- Heliocentric is “the frame where the sun is at rest”
- Barycentric is “the frame where the barycenter of the solar system is at rest”
- (Some of this is very very precisely defined at the GR level)

*Archive*
=========

- A physical or virtual location from which processed data can be accessed. This
  could include both PI/collaboration access and public access

    - Or unprocessed.
    - And metadata needed to reduce raw data.

- Raw data bundle (science+all cals needed to reduce it) 
- Ideally would Supporting FAIR principles (Findable, Accessible, Interoperable,
  Reusable)
- Noun or verb.

Data Assembly
=============

- A bundle of data prepared for collaboration access (to write papers, etc.)
  that will eventually become a data release.
- Used internally by DESI, but deprecated.
- It becomes the data release at the DR date
- Sloan synonym: “Internal Product Launch”

Data release
============

- A bundle of data specifically intended to be public
- Can be raw or not raw
- Somehow “pinned” data raw/reduced/analyzed with a particular version of
  pipelines.
- Aspires to be frozen.
- Can be either a noun or a verb

Open Development 
================

- Developing software in a way that the community can see both how it has been
  developed and why it was developed that way. 
- Usually, but not absolutely necessarily, implies the community is also free to
  contribute.
- Not necessarily open source.  
- Repos are publicly visible, including issue tracker.

Flux calibration
================

- Converting a 1D/2D spectrum from “counts” to astrophysical units of flux
  density

*Telluric Correction*
=====================

- Removing the telluric (atmospheric) absorption bands from spectra
- Removing the *multiplicative* component of the sky - absorption
- But there was some disagreement over whether this includes sky

*Sky subtraction*
=================

- Removing the *additive* component of the sky/emission so all “photons” come
  from the source
- But there was some disagreement over whether this is overlapping with a
  Telluric correction

IFU (Integral-Field Unit)
=========================

- Covers a “contiguous” 2d field on the sky  with spatial information along both
  axes
- Fibers or similar are tightly bundled and contiguously cover a region on the
  sky. Or an image slicer. Or a microlens array.
- May or may not be multi-object.
- IFS (Integral field Spectrograph) and IFU are sometimes distinguished where
  IFS is the whole instrument but IFU is the head-unit that does the IF part

MOS (Multi-Object Spectroscopy)
===============================

- Could be a fiber or a slit 
- Multiple objects observed in the same exposure

*Flux*
======

- Energy per time per area
- Also used as a shorthand for “the not spectral unit part of a 1D spectrum”
  (would that be the “dependent variable”?)
- Oftentimes used to mean “flux density”
- `Spectrum1D
  <https://specutils.readthedocs.io/en/stable/api/specutils.Spectrum1D.html#specutils.Spectrum1D>`__
  uses the attribute 'flux'. Should this be renamed to 'flux_density'?

    - The intent in specutils was to not agonize over this but just accept that
      it's a shorthand astronomers use, and there wasn't a better name (“y”,
      “data”, etc)

Flux Density
============

- Flux per unit wavelength/energy/wavenumber, usually(?) in astrophysical units,
  e.g., W/m^2/nm

*Row-stacked spectra*
=====================

- Collection of 1D spectra in a 2D array (image?), one spectrum per row.
- Shared spectral axis.
- This is the format of specutils.Spectrum1D when it's a “vector” spectrum1D

*Data cube*
===========

- Spectral 3D matrix with 2 spatial dimensions and one spectral one. Product of
  IFU data with contiguous sky coverage

    - Doesn't even have to be spectral, although in the spectral context it
      usually is

- Not always 3D (data hypercuboid??).
- “Multi dimensional data blob”

*Spectral data cube*
====================

- At least one axis is a spectral axis but who knows about the rest!
- Hypercube.

*[Spectral] Data format*
========================

- “Format” can mean data structure (i.e., in-memory, possibly bound to a
  particular language, though it doesn't have to be - see Apache Arrow)
- “Format” can also mean a file format
- “Format” can also be something even more technical like “how the bytes in a
  struct are packed“

Data Structures
===============

- Python Data structures, which are Python classes.

    - NDData/NDCube/SpectrumCollection, Spectrum1D etc.  
    - CCDData. Subclass of NDData
    - AstroData - from DRAGONS (collection of NDData-like objects, mapped to a
      file, plus metadata abstraction etc.)
    - Lots of classes to represent spectra
    - Link to issue about renaming Spectrum1D class in specutils.
    - arrays

*Data Model*
============

- In the SDSS/DESI sphere, this has a meaning that is known to differ from other
  uses of the term. In SDSS/DESI this means a documentation product that
  describes all of the files in a data release, both file formats and how they
  are organized into a hierarchy of directories on disk. For example,
  see the `desidatamodel <https://desidatamodel.readthedocs.io/en/stable/>`__.

- IVOA data model is a formalized thing that follows a specific XML schema

    - Data model is abstract, implementation could potentially be different.
    - In the IVOA it is not yet allowed to be anything other than XML although
      there's a lot of interest in changing that

- Which is different from SQL data models

    - The word 'schema' is sometimes used here, but that is also ambiguous even
      within SQL flavors itself.

*Spectroscopic search - Data discovery*
=======================================

- Search for spectra from any/particular instrument based on position or other
  known properties of the sources. If available, all the spectra will be listed.
- Example tool to do this: SPARCL (How-To Jupyter notebook available here)

SSA = Simple Spectral Access [VO protocol]
==========================================

- "Uniform interface to remotely discover and access one-dimensional spectra."
  See `here <https://www.ivoa.net/documents/SSA/#:~:text=The%20Simple%20Spectral%20Access%20(SSA,(DAL)%20of%20the%20IVOA>`__.
- Not commonly (used in the US?). (Example of use Data Central)

Reduction (of spectroscopic data)
=================================

- Getting data from raw-off-the-instrument (or nearly so) to the point where
  analysis can be done.
- The process of turning 2D spectral images to 1D spectra. Can be wavelength
  calibrated, sky subtracted, flux calibrated, but intermediate products are
  "reduced" compared to earlier steps of the process.
- MAYBE: Can potentially be done automatically without a human-in-the-loop?
- Required products vs optional products
- Removing instrument signature.
- "Reduction" is in the sense of reducing complexity, but it is often an
  inflation of bytes (in radio it is a literal reduction, in optical usually
  not)
- Astronomy specific word.
- Spectroscopic reduction: the process of going from raw data to science-ready
  spectra

Analysis (of spectroscopic data) 
================================

- Taking scientific measurements or achieving scientific results from
  already-reduced spectroscopic data
- Analysis does not depend on the instrument.Rem
- MAYBE: cannot be done automatically, requires a human to make some sort of
  judgment
- Optional.
- Spectroscopic analysis: the process of going from science-ready spectra to
  science

Sky
===

- Model or observed sky background (really a foreground!) which was usually
  subtracted from the observed spectrum

*Stacking*
==========

- Combination of multiple spectra in a prescribed way to increase quality (e.g.,
  S/N)
- in some contexts like numpy arrays and astropy.table.vstack, it can refer to
  combining multiple objects / tables into a single object without coadding data.

*Coadding*
==========

- combining multiple spectra of the same object into a single spectrum, e.g. to
  improve signal-to-noise or combine spectra across multiple wavelength ranges.
- Alternative term for “stacking” to disambiguate meanings

Spectral fitting
================

- Modeling an observed spectrum with templates (possibly physically motivated)
  and/or mathematical functions 

Digital Twins
=============

- Realistic fake data that potentially adapts to new states of the system over
  time.

Trace fitting
=============

- on a 2D CCD image from a multi-object spectrometer, typically wavelengths span
  in 1 direction and fibers/objects in the other direction.  “trace fitting” is
  mapping the y vs. x of where the spectra actually go on the CCD image.

- Different for slit-based and fiber-based spectrographs

    - slit-based: trace the *edges* of the slit spectrum along the spectral
      direction
    - fiber-based: trace the *center* of the fiber spectrum spatial point-spread
      function

- Spectral tracing

Wavelength calibration
======================

- calibrating what true wavelength is represented by the observed photons on a
  detector, e.g. what wavelength is row y of a detector?
- Possibly a 2d process
- The process of adding (the spectral part of) a WCS

Visual Inspection (of spectra)
==============================

- Humans looking at spectra and making decisions about what the “truth” is.
- Can include identifying the presence/absence of features (qualitative) or
  assessing a quantitative fit (e.g., best-fit redshift value)

*Spectral resolution*
=====================

- Changes in spectral dispersion power as a function of wavelength due to
  instrument 

- Resolving power vs Resolution/Dispersion

    - Resolving power is the ability to distinguish close features
    - Dispersion is the change in wavelength/energy per pixel

API
===

- Application Programming Interface

    - What makes a good API for spectroscopic software?
    - What is needed for different aspects of spectroscopic software (e.g.,
      reduction vs. archive access)?

*Spectral class*
================

- E.g., Spectrum1D
- In SDSS, 'class' is short for 'classification'.
- DESI uses SPECTYPE for spectral type (QSO, GALAXY, STAR)

Package
=======

- A software tool or collection of tools developed in the same “space”
- Has a specific meaning in a Python context that’s more specific, but can be
  used more generally for multiple languages

Spectral data visualization
===========================

- Tools and procedures to display reduced spectral data

Spectral decomposition 
======================

- a form of spectral fitting that identifies separate components that appear in
  a spectrum; e.g, quasar + galaxy.
- Goes with spectral fitting.

Processing Steps
================

- For DESI (largely inherited from SDSS usage):

    - pre-processing (of CCD images, bias, dark, pixel-flat fielding)
    - extraction (getting counts vs. wavelength from 2D images)
    - sky subtraction (subtracting the additive non-signal sky component)
    - flux calibration (includes both instrument throughput and telluric
      absorption multiplicative corrections)
    - classification and redshift fitting (is it a galaxy, star, or quasar; at
      what redshift?)


----

Mentioned but not defined
-------------------------

- WCS & Database archive
- Cloud archiving
- Modular functions which can be used by other pipelines.
- Interactive Dashboard