lfast-etc 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lfast_etc/__init__.py +27 -0
- lfast_etc/constants.py +23 -0
- lfast_etc/data/config/bench_1200_28p7_o1.toml +18 -0
- lfast_etc/data/config/bench_1200_28p7_o2.toml +18 -0
- lfast_etc/data/config/bench_316_63p4_o9.toml +18 -0
- lfast_etc/data/config/bench_316_7p0_o1.toml +18 -0
- lfast_etc/data/config/bench_316_7p0_o2.toml +18 -0
- lfast_etc/data/config/bench_3300vph_o1.toml +18 -0
- lfast_etc/data/config/bench_400_4p2_o1.toml +18 -0
- lfast_etc/data/config/bench_600_13p9_o1.toml +18 -0
- lfast_etc/data/config/bench_600_13p9_o2.toml +18 -0
- lfast_etc/data/config/bench_740vph_o1.toml +18 -0
- lfast_etc/data/config/bench_740vph_o2.toml +18 -0
- lfast_etc/data/config/bench_860_30p9_o1.toml +18 -0
- lfast_etc/data/config/bench_860_30p9_o2.toml +18 -0
- lfast_etc/data/config/bench_860_30p9_o3.toml +18 -0
- lfast_etc/data/config/bench_r1800.toml +20 -0
- lfast_etc/data/config/cshell_r18000.toml +19 -0
- lfast_etc/data/config/cshell_r21500.toml +17 -0
- lfast_etc/data/config/cshell_r43000.toml +17 -0
- lfast_etc/data/sky/skytable_secz1.3.fits +9516 -31
- lfast_etc/data/throughput/Eta_fib_value_18.npy +0 -0
- lfast_etc/data/throughput/Eta_fib_value_50.npy +0 -0
- lfast_etc/data/throughput/Eta_fib_wavelength.npy +0 -0
- lfast_etc/data/throughput/Kopt_value_18.npy +0 -0
- lfast_etc/data/throughput/Kopt_value_50.npy +0 -0
- lfast_etc/data/throughput/Kopt_wavelength.npy +0 -0
- lfast_etc/etc.py +466 -0
- lfast_etc/instrument.py +116 -0
- lfast_etc/plotting.py +203 -0
- lfast_etc/sky.py +77 -0
- lfast_etc/source.py +197 -0
- lfast_etc/telescope.py +164 -0
- lfast_etc/web/__init__.py +0 -0
- lfast_etc/web/app.py +248 -0
- lfast_etc/web/templates/index.html +148 -0
- lfast_etc-0.1.0.dist-info/METADATA +135 -0
- lfast_etc-0.1.0.dist-info/RECORD +42 -0
- lfast_etc-0.1.0.dist-info/WHEEL +5 -0
- lfast_etc-0.1.0.dist-info/entry_points.txt +2 -0
- lfast_etc-0.1.0.dist-info/licenses/LICENSE +28 -0
- lfast_etc-0.1.0.dist-info/top_level.txt +1 -0
lfast_etc/__init__.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""lfast_etc: Exposure Time Calculator for the LFAST telescope array.
|
|
2
|
+
|
|
3
|
+
Quick start::
|
|
4
|
+
|
|
5
|
+
from lfast_etc import LFASTETC, Source
|
|
6
|
+
etc = LFASTETC("bench_r1800", n_telescopes=20)
|
|
7
|
+
src = Source.blackbody(5800, mag=15, band="V")
|
|
8
|
+
res = etc.exptime(src, snr=50)
|
|
9
|
+
res.plot()
|
|
10
|
+
"""
|
|
11
|
+
import importlib.metadata
|
|
12
|
+
|
|
13
|
+
try:
|
|
14
|
+
__version__ = importlib.metadata.version("lfast-etc")
|
|
15
|
+
except importlib.metadata.PackageNotFoundError: # pragma: no cover
|
|
16
|
+
__version__ = "0.0.0"
|
|
17
|
+
|
|
18
|
+
from .instrument import Instrument, list_instruments
|
|
19
|
+
from .telescope import Telescope
|
|
20
|
+
from .source import Source, BANDS
|
|
21
|
+
from .sky import Sky
|
|
22
|
+
from .etc import LFASTETC, ETCResult
|
|
23
|
+
|
|
24
|
+
__all__ = [
|
|
25
|
+
"__version__", "LFASTETC", "ETCResult", "Instrument", "list_instruments",
|
|
26
|
+
"Telescope", "Source", "Sky", "BANDS",
|
|
27
|
+
]
|
lfast_etc/constants.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Physical constants (SI) and package data paths."""
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
import numpy as np
|
|
4
|
+
|
|
5
|
+
H_PLANCK = 6.62607015e-34 # J s
|
|
6
|
+
C_LIGHT = 2.99792458e8 # m/s
|
|
7
|
+
K_BOLTZMANN = 1.380649e-23 # J/K
|
|
8
|
+
|
|
9
|
+
DATA_DIR = Path(__file__).parent / "data"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def positive(name, value, allow_zero=False):
|
|
13
|
+
"""Validate a scalar parameter at the public boundary; returns it as float."""
|
|
14
|
+
try:
|
|
15
|
+
v = float(value)
|
|
16
|
+
except (TypeError, ValueError):
|
|
17
|
+
raise ValueError(f"{name} must be a number, got {value!r}") from None
|
|
18
|
+
if not np.isfinite(v) or v < 0 or (v == 0 and not allow_zero):
|
|
19
|
+
raise ValueError(f"{name} must be {'>= 0' if allow_zero else '> 0'}, got {value!r}")
|
|
20
|
+
return v
|
|
21
|
+
THROUGHPUT_DIR = DATA_DIR / "throughput"
|
|
22
|
+
SKY_DIR = DATA_DIR / "sky"
|
|
23
|
+
CONFIG_DIR = DATA_DIR / "config"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 1200 @ 28.7 grating, order 1, blaze peak 7500 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 1231 A, red-cable resolution 1.19 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_1200_28p7_o1"
|
|
7
|
+
description = "WIYN Bench, 1200 @ 28.7 deg, order 1, 688-812 nm, R~6910"
|
|
8
|
+
wavelength_min_nm = 688.5
|
|
9
|
+
wavelength_max_nm = 811.5
|
|
10
|
+
resolving_power = 6910
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.229 # grating peak efficiency 55% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 1200 @ 28.7 grating, order 2, blaze peak 4000 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 615 A, red-cable resolution 0.58 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_1200_28p7_o2"
|
|
7
|
+
description = "WIYN Bench, 1200 @ 28.7 deg, order 2, 400-431 nm, R~7560 (clipped at 400 nm)"
|
|
8
|
+
wavelength_min_nm = 400.0
|
|
9
|
+
wavelength_max_nm = 430.8
|
|
10
|
+
resolving_power = 7561
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.229 # grating peak efficiency 55% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 316 @ 63.4 grating, order 9, blaze peak 6563 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 250 A, red-cable resolution 0.23 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_316_63p4_o9"
|
|
7
|
+
description = "WIYN Bench, 316 @ 63.4 deg, order 9, 644-669 nm, R~31280"
|
|
8
|
+
wavelength_min_nm = 643.8
|
|
9
|
+
wavelength_max_nm = 668.8
|
|
10
|
+
resolving_power = 31284
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.208 # grating peak efficiency 50% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 316 @ 7.0 grating, order 1, blaze peak 7500 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 5290 A, red-cable resolution 5.72 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_316_7p0_o1"
|
|
7
|
+
description = "WIYN Bench, 316 @ 7.0 deg, order 1, 486-1014 nm, R~1440"
|
|
8
|
+
wavelength_min_nm = 485.5
|
|
9
|
+
wavelength_max_nm = 1014.5
|
|
10
|
+
resolving_power = 1438
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.292 # grating peak efficiency 70% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 316 @ 7.0 grating, order 2, blaze peak 3750 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 2645 A, red-cable resolution 2.86 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_316_7p0_o2"
|
|
7
|
+
description = "WIYN Bench, 316 @ 7.0 deg, order 2, 400-507 nm, R~1440 (clipped at 400 nm)"
|
|
8
|
+
wavelength_min_nm = 400.0
|
|
9
|
+
wavelength_max_nm = 507.2
|
|
10
|
+
resolving_power = 1438
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.292 # grating peak efficiency 70% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 3300 VPH grating, order 1, blaze peak 5120 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 273 A, red-cable resolution 0.31 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_3300vph_o1"
|
|
7
|
+
description = "WIYN Bench, 3300 VPH, order 1, 498-526 nm, R~18110"
|
|
8
|
+
wavelength_min_nm = 498.4
|
|
9
|
+
wavelength_max_nm = 525.6
|
|
10
|
+
resolving_power = 18108
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.300 # no peak efficiency listed for the VPH gratings: anchor value kept
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 400 @ 4.2 grating, order 1, blaze peak 5000 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 4199 A, red-cable resolution 4.56 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_400_4p2_o1"
|
|
7
|
+
description = "WIYN Bench, 400 @ 4.2 deg, order 1, 400-710 nm, R~1200 (clipped at 400 nm) (not recommended by WIYN: hard to focus over the range)"
|
|
8
|
+
wavelength_min_nm = 400.0
|
|
9
|
+
wavelength_max_nm = 710.0
|
|
10
|
+
resolving_power = 1202
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.292 # grating peak efficiency 70% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 600 @ 13.9 grating, order 1, blaze peak 7500 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 2724 A, red-cable resolution 2.86 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_600_13p9_o1"
|
|
7
|
+
description = "WIYN Bench, 600 @ 13.9 deg, order 1, 614-886 nm, R~2880"
|
|
8
|
+
wavelength_min_nm = 613.8
|
|
9
|
+
wavelength_max_nm = 886.2
|
|
10
|
+
resolving_power = 2875
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.292 # grating peak efficiency 70% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 600 @ 13.9 grating, order 2, blaze peak 3800 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 1362 A, red-cable resolution 1.43 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_600_13p9_o2"
|
|
7
|
+
description = "WIYN Bench, 600 @ 13.9 deg, order 2, 400-448 nm, R~2910 (clipped at 400 nm)"
|
|
8
|
+
wavelength_min_nm = 400.0
|
|
9
|
+
wavelength_max_nm = 448.1
|
|
10
|
+
resolving_power = 2913
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.292 # grating peak efficiency 70% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 740 VPH grating, order 1, blaze peak 8798 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 2152 A, red-cable resolution 2.68 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_740vph_o1"
|
|
7
|
+
description = "WIYN Bench, 740 VPH, order 1, 772-987 nm, R~3600"
|
|
8
|
+
wavelength_min_nm = 772.2
|
|
9
|
+
wavelength_max_nm = 987.4
|
|
10
|
+
resolving_power = 3599
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.300 # no peak efficiency listed for the VPH gratings: anchor value kept
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 740 VPH grating, order 2, blaze peak 5000 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 1076 A, red-cable resolution 1.34 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_740vph_o2"
|
|
7
|
+
description = "WIYN Bench, 740 VPH, order 2, 446-554 nm, R~4090"
|
|
8
|
+
wavelength_min_nm = 446.2
|
|
9
|
+
wavelength_max_nm = 553.8
|
|
10
|
+
resolving_power = 4091
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.300 # no peak efficiency listed for the VPH gratings: anchor value kept
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 860 @ 30.9 grating, order 1, blaze peak 10800 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 1680 A, red-cable resolution 1.64 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_860_30p9_o1"
|
|
7
|
+
description = "WIYN Bench, 860 @ 30.9 deg, order 1, 996-1164 nm, R~7220"
|
|
8
|
+
wavelength_min_nm = 996.0
|
|
9
|
+
wavelength_max_nm = 1164.0
|
|
10
|
+
resolving_power = 7220
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.271 # grating peak efficiency 65% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 860 @ 30.9 grating, order 2, blaze peak 6000 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 840 A, red-cable resolution 0.77 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_860_30p9_o2"
|
|
7
|
+
description = "WIYN Bench, 860 @ 30.9 deg, order 2, 558-642 nm, R~8540"
|
|
8
|
+
wavelength_min_nm = 558.0
|
|
9
|
+
wavelength_max_nm = 642.0
|
|
10
|
+
resolving_power = 8543
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.271 # grating peak efficiency 65% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, 860 @ 30.9 grating, order 3, blaze peak 4000 A.
|
|
2
|
+
# Row of https://www.wiyn.org/Instruments/wiynbench.html; generated by
|
|
3
|
+
# scripts/build_bench_presets.py from the bench_r1800 anchor (see that script).
|
|
4
|
+
# Table coverage 560 A, red-cable resolution 0.52 A at 2x2 binning.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "bench_860_30p9_o3"
|
|
7
|
+
description = "WIYN Bench, 860 @ 30.9 deg, order 3, 400-428 nm, R~8430 (clipped at 400 nm)"
|
|
8
|
+
wavelength_min_nm = 400.0
|
|
9
|
+
wavelength_max_nm = 428.0
|
|
10
|
+
resolving_power = 8434
|
|
11
|
+
pixels_per_resel = 2.2 # dispersion direction only, as bench_r1800
|
|
12
|
+
spectrograph_efficiency = 0.271 # grating peak efficiency 65% vs 72% for the 600 @ 10.1 anchor
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.75 # placeholder flat QE, as bench_r1800
|
|
15
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
16
|
+
read_noise = 3.7 # e-/pix
|
|
17
|
+
full_well = 100000.0 # placeholder
|
|
18
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# WIYN Bench spectrograph, sample moderate-resolution visible configuration.
|
|
2
|
+
# 600 lpm grating @ 10.1 deg, lambda_central = 5500 A, delta_lambda = 2763 A.
|
|
3
|
+
# Only 1-2 Bench configurations will be offered at the start of operations;
|
|
4
|
+
# the spectrograph cannot be reconfigured during the night. LFAST uses 1x1 binning.
|
|
5
|
+
# The other Bench modes (bench_*.toml) are generated from this one by
|
|
6
|
+
# scripts/build_bench_presets.py from the WIYN configuration table.
|
|
7
|
+
[instrument]
|
|
8
|
+
name = "bench_r1800"
|
|
9
|
+
description = "WIYN Bench, 600 @ 10.1 deg, order 1, 412-686 nm, R~1800 (reference notebook)"
|
|
10
|
+
wavelength_min_nm = 412.0
|
|
11
|
+
wavelength_max_nm = 686.0 # config spans to 688 nm; K_opt drops to ~5e-9 at 687 nm (O2 B band)
|
|
12
|
+
resolving_power = 1800.0
|
|
13
|
+
pixels_per_resel = 2.2 # dispersion direction only (reference notebook); x fiber-image height when known
|
|
14
|
+
spectrograph_efficiency = 0.3
|
|
15
|
+
slit_throughput = 1.0
|
|
16
|
+
qe = 0.75 # placeholder flat QE
|
|
17
|
+
dark_current = 3.0e-4 # e-/s/pix
|
|
18
|
+
read_noise = 3.7 # e-/pix
|
|
19
|
+
full_well = 100000.0 # placeholder
|
|
20
|
+
min_exptime = 1.0
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# CSHELL, native resolution using the input fiber alone (no slit).
|
|
2
|
+
# CSHELL covers ~1.08-1.75 um. Free spectral range is small: ~2.5e-3 lambda
|
|
3
|
+
# (39 A at 1.555 um, 27 A at 1.08 um, 44 A at 1.75 um), so one setup covers
|
|
4
|
+
# only a narrow window; set wavelength limits to the window of interest.
|
|
5
|
+
[instrument]
|
|
6
|
+
name = "cshell_r18000"
|
|
7
|
+
description = "CSHELL, native fiber resolution R=18,000, 1.08-1.75 um"
|
|
8
|
+
wavelength_min_nm = 1080.0
|
|
9
|
+
wavelength_max_nm = 1750.0
|
|
10
|
+
resolving_power = 18000.0
|
|
11
|
+
pixels_per_resel = 2.5 # dispersion direction only (reference notebook); x fiber-image height when known
|
|
12
|
+
spectrograph_efficiency = 0.1
|
|
13
|
+
slit_throughput = 1.0
|
|
14
|
+
qe = 0.8 # placeholder flat QE
|
|
15
|
+
dark_current = 0.5 # e-/s/pix
|
|
16
|
+
read_noise = 22.0 # e-/pix, Fowler sampling with total exposure > 8 s
|
|
17
|
+
full_well = 80000.0 # placeholder
|
|
18
|
+
min_exptime = 8.0
|
|
19
|
+
free_spectral_range_frac = 2.5e-3
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# CSHELL with the 200 um slit. Slit throughput loss is TBD ("XX%" in the
|
|
2
|
+
# reference notebook); 0.75 is a placeholder -- update when measured.
|
|
3
|
+
[instrument]
|
|
4
|
+
name = "cshell_r21500"
|
|
5
|
+
description = "CSHELL, 200 um slit, R=21,500, 1.08-1.75 um (slit loss placeholder)"
|
|
6
|
+
wavelength_min_nm = 1080.0
|
|
7
|
+
wavelength_max_nm = 1750.0
|
|
8
|
+
resolving_power = 21500.0
|
|
9
|
+
pixels_per_resel = 2.5 # dispersion direction only (reference notebook); x fiber-image height when known
|
|
10
|
+
spectrograph_efficiency = 0.1
|
|
11
|
+
slit_throughput = 0.75 # PLACEHOLDER
|
|
12
|
+
qe = 0.8
|
|
13
|
+
dark_current = 0.5
|
|
14
|
+
read_noise = 22.0
|
|
15
|
+
full_well = 80000.0
|
|
16
|
+
min_exptime = 8.0
|
|
17
|
+
free_spectral_range_frac = 2.5e-3
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# CSHELL with the 100 um slit. Slit throughput loss is TBD ("YY%" in the
|
|
2
|
+
# reference notebook); 0.5 is a placeholder -- update when measured.
|
|
3
|
+
[instrument]
|
|
4
|
+
name = "cshell_r43000"
|
|
5
|
+
description = "CSHELL, 100 um slit, R=43,000, 1.08-1.75 um (slit loss placeholder)"
|
|
6
|
+
wavelength_min_nm = 1080.0
|
|
7
|
+
wavelength_max_nm = 1750.0
|
|
8
|
+
resolving_power = 43000.0
|
|
9
|
+
pixels_per_resel = 2.5 # dispersion direction only (reference notebook); x fiber-image height when known
|
|
10
|
+
spectrograph_efficiency = 0.1
|
|
11
|
+
slit_throughput = 0.5 # PLACEHOLDER
|
|
12
|
+
qe = 0.8
|
|
13
|
+
dark_current = 0.5
|
|
14
|
+
read_noise = 22.0
|
|
15
|
+
full_well = 80000.0
|
|
16
|
+
min_exptime = 8.0
|
|
17
|
+
free_spectral_range_frac = 2.5e-3
|