Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
0513d95
visual detector layout, ETC mode
oczoske Jul 17, 2025
713c2ab
some definitions for VIS_LR_B mode
teutoburg Aug 22, 2025
7c58135
Beginning of Cherry-Picking...
teutoburg Aug 22, 2025
b942125
added aperture list for VIS-LR (7x 234mas)
astronomyk Jul 18, 2025
30586ab
VIS-LR trace files
oczoske Jul 18, 2025
3b290e7
VIS HR trace files
oczoske Jul 18, 2025
49a239e
add FiberBundle aperture
oczoske Jul 18, 2025
20b5352
skeleton for all VIS modes
oczoske Jul 30, 2025
25238b4
system throughput VIS
oczoske Jul 31, 2025
c6e5045
Throughput files for all modes
oczoske Aug 7, 2025
8712971
Add NIR modes
oczoske Aug 7, 2025
55c427d
Add metadata to VIS TERs
oczoske Aug 8, 2025
ff4a9dc
Added metadata to NIR TERs
oczoske Aug 8, 2025
490206f
add mode status information
oczoske Aug 8, 2025
e111e22
Drop 'VIS' from mode names
oczoske Aug 11, 2025
bfe4442
Traces for NIR; fewer wavelength points
oczoske Aug 11, 2025
77e746d
mIFU mode is running
oczoske Aug 11, 2025
9b393ca
add linearity file
oczoske Aug 12, 2025
fd0da72
increase y size of detector to accommodate HR fibers
oczoske Aug 20, 2025
244c75c
Include MosaicCollapseSpectralTraces
oczoske Aug 20, 2025
84966c5
Leiden sky modes for AIT
oczoske Aug 26, 2025
7afe90d
Appropriate resolutions for sky spectra
oczoske Sep 1, 2025
b09cfa6
Include line-spread function
oczoske Sep 1, 2025
063b804
Delete MOSAIC/apertures_VIS-LR-7.dat
oczoske Sep 2, 2025
06b9c79
Demo notebook, cleanup
oczoske Sep 4, 2025
b806391
Replace string T/F by boolean true/false
oczoske Sep 25, 2025
200d420
Add some sort of test for boolean keyword
oczoske Sep 25, 2025
3430459
FITS keyword values Boolean rather than string (#270)
gotten Sep 26, 2025
e63d0ae
IPC effect for METIS H2RG detectors, demo notebook
oczoske Sep 28, 2025
2bd81c8
needs scopesim 0.11.1a1
oczoske Sep 29, 2025
da7c5e6
IPC effect for METIS H2RG detectors, demo notebook (#272)
oczoske Sep 30, 2025
858c49c
Preliminary Leiden telescope and atmosphere
oczoske Sep 1, 2025
c3febc7
Script to create and plot atmo library
oczoske Sep 30, 2025
6dbaf15
Update ter library script
oczoske Oct 2, 2025
09d73df
surface list according to zemax model
oczoske Oct 2, 2025
c2065c9
Update cfo and img_lm
oczoske Oct 7, 2025
123d6e7
Update img_lm, img_n, lss, lms headers
oczoske Oct 7, 2025
fe39631
WCU keywords
oczoske Oct 8, 2025
5f68395
Update TRACE_LMS.fits with data to compute predisperser angle
oczoske Oct 8, 2025
5bdc656
Update TRACE_LMS.fits with data to compute predisperser angle (#275)
oczoske Oct 8, 2025
31f0e7e
ELT keywords; proper MJD values for METIS and MICADO
oczoske Oct 9, 2025
dbb80d4
LMS keywords
oczoske Oct 9, 2025
ad5fc1a
Update METIS FITS headers (#274)
oczoske Oct 15, 2025
0f4606b
Fix tranmission
hugobuddel Oct 15, 2025
8dc2dcd
Fix tranmission (#276)
hugobuddel Oct 16, 2025
8c57fb9
update relay telescope
oczoske Oct 16, 2025
254fb71
for test_package_contents.py
oczoske Oct 16, 2025
a30dfcb
Do not require MOSAIC.yaml
oczoske Oct 16, 2025
b8671ab
MICADO: crude additions to IRDB for FITS header keywords
janusbrink Oct 17, 2025
4cdb79b
Additional guess-values for fits_ins_filt/slit added
janusbrink Oct 21, 2025
ea4ab77
include fine grid in grid_lm mask; delete grid_lms mask
oczoske Oct 22, 2025
9c189b8
include fine grid in grid_lm mask; delete grid_lms mask (#279)
oczoske Oct 22, 2025
241a672
Update notebook for release
oczoske Oct 24, 2025
d79dc77
Update notebooktests for MOSAIC
oczoske Oct 24, 2025
98b2965
AtmoLibrary setup
oczoske Oct 24, 2025
d67657e
Merge branch 'dev_master' into oc/leiden_sky
oczoske Oct 24, 2025
768fc26
MICADO: crude additions to IRDB for FITS header keywords (#278)
janusbrink Oct 24, 2025
9785422
MOSAIC configuration (#264)
oczoske Oct 24, 2025
6df4671
Leiden sky modes for AIT (#262)
oczoske Oct 24, 2025
c47fac8
Add 3.13 to test matrix, update for non-matrix
teutoburg Oct 26, 2025
8c7b1c6
Add 3.13 to test matrix, update for non-matrix (#282)
teutoburg Oct 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 36 additions & 2 deletions .github/workflows/notebooktests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
uses: actions/setup-python@v6
with:
# No matrix is used since this is a time-consuming task.
python-version: 3.11
python-version: 3.13

- name: Install dependencies
run: |
Expand Down Expand Up @@ -85,6 +85,40 @@ jobs:
/usr/bin/time -v jupytext --execute --update "${fn}"
done

mosaic_notebooks:
name: Run MOSAIC Notebooks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
# No matrix is used since this is a time-consuming task.
python-version: 3.13
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.github_actions.txt

- name: Install ScopeSim from repo
if: ${{ inputs.from_pypi == false || inputs.from_pypi == 'false' }}
run: |
echo "Re-installing ScopeSim from source" >> $GITHUB_STEP_SUMMARY
pip uninstall -y scopesim scopesim_templates
pip install git+https://github.com/AstarVienna/ScopeSim.git@${{ inputs.ScopeSim }}
pip install git+https://github.com/AstarVienna/ScopeSim_Templates.git@${{ inputs.ScopeSim_Templates }}
- name: Run Notebooks
env:
PYDEVD_DISABLE_FILE_VALIDATION: 1
run: |
echo "## MOSAIC Notebooks tested" >> $GITHUB_STEP_SUMMARY
for fn in MOSAIC/docs/example_notebooks/*.ipynb
do
echo "${fn}"
echo "- ${fn}" >> $GITHUB_STEP_SUMMARY
/usr/bin/time -v jupytext --execute --update "${fn}"
done

metis_notebooks:
name: Run METIS Notebooks
runs-on: ubuntu-latest
Expand All @@ -94,7 +128,7 @@ jobs:
uses: actions/setup-python@v6
with:
# No matrix is used since this is a time-consuming task.
python-version: 3.11
python-version: 3.13
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10', '3.11', '3.12']
python-version: ['3.10', '3.11', '3.12', '3.13']

steps:
- uses: actions/checkout@v5
Expand Down
15 changes: 15 additions & 0 deletions ELT/FITS_telescope_keywords.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
- ext_type: PrimaryHDU
keywords:
HIERARCH:
ESO:
TEL:
ALT: [24.5, "Dummy value"]
AZ: [-1.3, "Dummy value"]
GEOELEV: 3046.0
GEOLAT: -24.58928 # Google maps, check
GEOLON: -70.19166
TARG:
DEC: ["!OBS.dec", "Dummy value"]
RA: ["!OBS.ra", "Dummy value"]
EPOCH: 2000.0
EPOCHSYSTEM: "J"
PARALLAX: [0.0, "Dummy value"]
RADVEL: [0.0, "Dummy value"]

WISE:
TEL:
NAME: "ELT"
Expand Down
2 changes: 1 addition & 1 deletion LFOA/tests/test_lfoa.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def test_something_comes_out(self):
if PLOTS:
plt.subplot(121)
wave = np.arange(3000, 11000)
plt.plot(wave, lfoa.optics_manager.system_tranmission(wave))
plt.plot(wave, lfoa.optics_manager.system_transmission(wave))

plt.subplot(122)
im = hdus[0][1].data
Expand Down
20 changes: 20 additions & 0 deletions METIS/LIST_Leiden_telescope.tbl
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# description: Leiden AIT relay optics for sky observations
# author: Oliver Czoske
# source: Zemax model
# date_created: 2025-08-28
# date_modified: 2025-10-16
# status: Zemax model
# outer_unit: mm
# inner_unit: mm
# angle_unit: degree
# temperature_unit: deg_C
# changes:
# - 2025-08-28 (OC) Initialised based on rough guess
# - 2025-10-02 (OC) Zemax model, discussed with J.Brink
# - 2025-10-16 (OC) assume Al coating, per I.Politopoulos
#
name outer inner angle temperature action filename
Ldn_M4 660. 0. 42.5 10. reflection TER_mirror_aluminium.dat
Ldn_M3 160.9 0. 0. 10. reflection TER_mirror_aluminium.dat
Ldn_M2 89.6 0. 17. 10. reflection TER_mirror_aluminium.dat
Ldn_M1 66.0 0. 45. 10. reflection TER_mirror_aluminium.dat
40 changes: 40 additions & 0 deletions METIS/Leiden_sky.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
### METIS AIT Leiden sky and telescope

object: Leiden sky
alias: OBS
name: Leiden_sky
description: Leiden sky and telescope
data_modified: 2025-08-26
changes:
- 2025-08-26 (OC) file created

properties:
location: Leiden
longitude: 4.45842
latitude: 52.16897
airmass: 1.0

effects:
- name: leiden_sky
description: atmospheric emission and transmission
class: AtmoLibraryTERCurve
include: True
kwargs:
pwv: "!ATMO.pwv"
remote_filename: "!ATMO.spectrum.filename"

- name: telescope
description: reflection curve
class: SurfaceList
include: True
kwargs:
filename: LIST_Leiden_telescope.tbl

---
alias: ATMO
properties:
temperature: 15 # Celsius!
pwv: 1.0 # mm
spectrum:
filename: Leiden_atmo_ter.fits
8 changes: 8 additions & 0 deletions METIS/METIS_DET_IFU.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,14 @@ effects:
kwargs:
filename: "!DET.linearity.file_name"

- name: ipc
description: Inter-pixel capacitance
class: InterPixelCapacitance
kwargs: # values from Kannawadi+2016 (H4RG!)
alpha_edge: 0.02
alpha_corner: 0.002
alpha_aniso: 0.

- name: readout_noise
description: Readout noise frames
class: BasicReadoutNoise
Expand Down
8 changes: 8 additions & 0 deletions METIS/METIS_DET_IMG_LM.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,14 @@ effects:
kwargs:
filename: "!DET.linearity.file_name"

- name: ipc
description: Inter-pixel capacitance
class: InterPixelCapacitance
kwargs: # values from Kannawadi+2016 (H4RG!)
alpha_edge: 0.02
alpha_corner: 0.002
alpha_aniso: 0.

- name: readout_noise
description: Readout noise frames
class: BasicReadoutNoise
Expand Down
3 changes: 3 additions & 0 deletions METIS/METIS_WCU.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,8 @@ effects:
alias: TEL
properties:
#area: 975.23478998
telescope: none (WCU)
ter_curve:
filename: none
area: 1354.593 #### TEST, needed to agree with RvB's calculation
temperature: "!WCU.temperature" # Overrides !ATMO.temperature
65 changes: 65 additions & 0 deletions METIS/TER_mirror_aluminium.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# author : ESO ELT DRM
# source : https://www.eso.org/sci/facilities/eelt/science/drm/tech_data/data/reflectivity/
# description : Bare Aluminium
# date_created : 2009-11-04
# date_modified : 2018-11-19
# status : Design, pre PDR list of MICADO mirrors for wide-field mode
# type : mirror:reflection
# wavelength_unit : um
#
# changes :
# - 2019-07-25 (KL) Changed 2-25um value to 0.98 to match ESO predictions
# - 2020-08-25 (KL) updated waveunit --> wavelength_unit
#
wavelength reflection
0.309 0.921
0.335 0.923
0.372 0.925
0.404 0.926
0.432 0.926
0.464 0.925
0.499 0.921
0.529 0.918
0.564 0.916
0.588 0.913
0.610 0.910
0.633 0.908
0.647 0.908
0.660 0.903
0.675 0.898
0.690 0.892
0.709 0.886
0.731 0.881
0.755 0.875
0.774 0.870
0.794 0.865
0.815 0.864
0.845 0.863
0.861 0.868
0.876 0.875
0.891 0.881
0.900 0.884
0.910 0.891
0.923 0.897
0.936 0.904
0.945 0.911
0.967 0.914
1.008 0.918
1.056 0.923
1.115 0.929
1.169 0.933
1.210 0.936
1.257 0.939
1.309 0.942
1.376 0.946
1.459 0.950
1.532 0.953
1.604 0.956
1.681 0.959
1.749 0.961
1.818 0.963
1.885 0.965
1.944 0.968
2.000 0.970
2.500 0.980
20.00 0.980
Binary file modified METIS/TRACE_LMS.fits
Binary file not shown.
44 changes: 44 additions & 0 deletions METIS/code/LMS_Traces/add_predisperser_ext.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
"""Add an extension with coefficients for the predisperser

Taken from Fig.3-15 of E-REP-ATC-MET-1003_3-0
"""
from astropy.io import fits
from astropy.table import Table
TRACEFILE = "TRACE_LMS.fits"


def add_predisperser():
# Coefficients in ascending order of powers of wavelength
coeff = fits.Column(name="coefficients", format="E",
array=[-6.0585, 9.1657, -2.7017, 0.3825, -0.0205])
power = fits.Column(name="power", format="I",
array=[0, 1, 2, 3, 4])
hdu = fits.BinTableHDU.from_columns([power, coeff])

hdu.header["EXTNAME"] = "Predisperser"

with fits.open(TRACEFILE) as hdul:
# Append the new HDU
hdul.append(hdu)

# Update the catalogue
cat = hdul["CATALOGUE"]
tab = Table(cat.data)
tab.add_row(('Predisperser', 5, 0, 0))
nhdu = fits.BinTableHDU(tab)
nhdu.header["EXTNAME"] = "CATALOGUE"
hdul[1] = nhdu

# Update the primary header
hdul[0].header.update(dict(
DATE="2025-10-06",
SOURCE="E-REP-ATC-MET-1003_3-0, E-REP-ATC-MET-1016_1-0",
DATE_MOD="2025-10-06",
HISTORY="2025-10-06 (OC) append predisperser angle fit"))
hdul.writeto("test_trace.fits", overwrite=True)
print("Output written to test_trace.fits. Rename to", TRACEFILE," when checked for correctness.")



if __name__ == "__main__":
add_predisperser()
Loading