; docformat = 'rst' ; ; NAME: ; getCameraSaturation ; PURPOSE: ; Retrieve the ADU level at which saturation occurs ; ;+ ; :Description: ; Retrieve the ADU level at which saturation occurs ; ; :Categories: ; FITS, Camera ; ; :Returns: The saturation level in ADU ; ; :Params: ; head: in, required, type=string ; A FITS header from the telescope ; tel: in, optional, type=string ; The ID of the telescope (from getTelescopeID) ; cam: in, optional, type=string ; The ID of the camera (from getCameraID) ; ; :Uses: ; sxpar, getTelescopeID, getCameraID, date_conv ; ; :Author: ; B.Carry (OCA) ; ; :History: ; Change History:: ; Written in January 2019, B. Carry (OCA) ; 2022 Nov. - B.Carry (OCA) - Added CFHT/PUEO ; 2023 Feb. - B.Carry (OCA) - Added NIRSPEC & Hokupaa ; 2023 Dec.: B.Carry (OCA) - Added LBTO ; 2024 Mar.: B.Carry (OCA) - Added VLT/ERIS/NIX ;- function getCameraSaturation, head, tel, cam COMPILE_OPT hidden, idl2 ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--I.1-- Input Syntax Verification ---------------------------------------------------- if N_PARAMS() lt 1 then begin message, /IOERROR, 'Syntax : ID = getCameraDIT(HEAD, [telID, camID])' return, -1 endif ;--I.2-- Telescope and Camera ID ------------------------------------------------------ if not keyword_set(tel) then tel=getTelescopeID(head) if not keyword_set(cam) then cam=getCameraID(head) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- Header Parsing and Saturation Level Determination -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; case tel of ;--II.1-- ESO-VLT Telescopes -------------------------------------------------------------- 'ESO-VLT': begin case cam of ;--II.1.1-- SPHERE/IRDIS -------------------------------------------------------------- 'SPHERE/IRDIS': satur=25000. ;-From User Manual P103 ;--II.1.2-- SPHERE/IFS ---------------------------------------------------------------- 'SPHERE/IFS': satur=25000. ;-From User Manual P103 ;--II.1.3-- SPHERE/ZIMPOL ------------------------------------------------------------- 'SPHERE/ZIMPOL': satur=63000. ;-From User Manual P103 ;--II.1.4-- SPHERE/ZIMPOL ------------------------------------------------------------- 'ERIS/NIX': satur=16300. ;-From User Manual P114: p33 for SLOW readout ;--II.1.5-- NACO ---------------------------------------------------------------------- 'NACO': begin ;-From User Manual P103 rom = lxPar(head,'HIERARCH ESO DET NCORRS NAME') case rom of 'FowlerNsamp': satur=7500. 'Double_RdRstRd': satur=15000. 'Uncorr': begin dcs = lxPar(head,'HIERARCH ESO DET MODE NAME') case dcs of 'HighDynamic': satur=15000. 'HighWellDepth': satur=22000. 'HighBackground': satur=28000. else: begin message, 'Unknown Detector mode for NACO!!!' stop end end end else: begin message, 'Unknown ReadOut mode for NACO!!!' stop end end end ;--II.1.2-- General ESO Keywords ----------------------------------------------------- else: begin message, 'getCameraSaturation: Camera not known' return, -1 end end end ;--II.2-- ESO-LSO Telescopes -------------------------------------------------------------- 'ESO-LSO': begin case cam of ;--II.2.1-- EFOSC --------------------------------------------------------------------- 'EFOSC': satur=104000. ;-From https://www.eso.org/sci/facilities/lasilla/instruments/efosc/inst/Ccd40.html ;--II.2.x-- Unknown ------------------------------------------------------------------ else: begin message, 'getCameraSaturation: Camera not known' return, -1 end end end ;--II.3-- Keck Observatory -------------------------------------------------------------- 'KeckII': begin case cam of 'NIRC2': begin ;-- https://www2.keck.hawaii.edu/inst/nirc2/genspecs.html satur=20000. ;-Approx saturation satur=18000. ;-End of linearity end 'NIRSPEC': begin ; https://www2.keck.hawaii.edu/koa/public/nspec/nirspec_data_description.html satur = 30000. ;-saturation end end end ;--II.4-- Gemini Observatory ------------------------------------------------------------ 'Gem-N': begin case cam of ;--II.4.1-- NIRI ---------------------------------------------------------------------- 'NIRI': begin ;-From Gemini ETC satur=16000. ;-Saturation satur=10000. ;-End of linearity end ;--II.4.2-- Hokupaa ------------------------------------------------------------------- 'Hokupaa': begin ;-From Gemini Web pages: https://www.gemini.edu/sciops/instruments/uhaos/uhaosQuirc.html satur=50000. ;-Saturation satur=40000. ;-End of linearity end else: begin message, 'getCameraSaturation: Camera not known' return, -1 end end end ;--II.5-- Misc. ------------------------------------------------------------------------- 'OHP-120': satur=99999999. 'ALMA': satur=99999999. 'CFHT': satur=99999999. 'LBTO': satur=99999999. ;--II.x-- Unknown ----------------------------------------------------------------------- else: begin message, 'getCameraSaturation: Telescope not known' return, -1 end end ;----- Return Start-Time ------------------------------------------------------------------- return, satur end