; docformat = 'rst' ; ; NAME: ; getTelescopeID ; PURPOSE: ; Homogeneize the telescope ID from FITS header 'TELESCOP' keyword. ; ;+ ; :Description: ; Homogeneize the telescope ID from FITS header 'TELESCOP' keyword. ; ; :Categories: ; FITS, Telescope ; ; :Returns: A single identifyer for the telescope:: ; Header ID ; ALMA ALMA ; ESO-VLT-U1 ESO-VLT ; ESO-VLT-U2 ESO-VLT ; ESO-VLT-U3 ESO-VLT ; ESO-VLT-U4 ESO-VLT ; ESO-NTT ESO-LSO ; Keck II KeckII ; Gemini-North Gem-N ; OHP/T120 OHP-120 ; CFHT 3.6m CFHT ; C2PU/Omicron C2PU-Om ; LBTO LBTO ; ; :Params: ; head: in, required, type=string ; A FITS header from the telescope ; ; :Uses: ; sxpar() ; ; :Author: ; B.Carry (OCA) ; ; :History: ; Change History:: ; Written in March 2014, B. Carry (IMCCE) ; 2015-Jan.: B.Carry (IMCCE) - Added T120 @ OHP, UT3@VLT ; 2016 Aug.: B.Carry (OCA) - Changed ESO id into ESO-VLT. idl2 added ; 2019 Mar.: B.Carry (OCA) - Secure self-consistent ID if used multiple times ; 2023 Jan.: B.Carry (OCA) - Added C2PU ; 2023 Dec.: B.Carry (OCA) - Added LBTO ;- function getTelescopeID, head ;--I-- Initialization ----------------------------------------------------------------- COMPILE_OPT hidden, idl2 ;--II-- Input Syntax Verification ----------------------------------------------------- if N_PARAMS() ne 1 then begin message, /IOERROR, 'Syntax : ID = getTelescopeID(head)' return, -1 endif ;--III-- Header Parsing --------------------------------------------------------------- telName = sxpar(head, 'TELESCOP', count=nbFound, /SILENT) if nbFound eq 0 then begin camName = sxpar(head,'INSTRUME',count=nbFound, /Silent) case camName of 'NAOS+CONICA': telName='ESO-VLT' else: begin telName = sxpar(head, 'OBSERVAT', count=nbFound, /SILENT) if nbFound eq 0 then begin message, 'Inappropriate header: keyword TELESCOP not found' return, -1 endif end end endif else if nbFound gt 1 then begin telName = lxpar(head,'TELESCOP',/silent) telName = telName[0] endif ;--IV-- Telescope Name Analysis ------------------------------------------------------- telName = strtrim(telName,2) case telName of ;--IV.1-- Dictionary 'ESO-VLT-U1' : ID = 'ESO-VLT' 'ESO-VLT-U2' : ID = 'ESO-VLT' 'ESO-VLT-U3' : ID = 'ESO-VLT' 'ESO-VLT-U4' : ID = 'ESO-VLT' 'ESO-NTT' : ID = 'ESO-LSO' 'Keck II' : ID = 'KeckII' 'Gemini-South' : ID = 'Gem-S' 'Gemini-North' : ID = 'Gem-N' 'OHP T120' : ID = 'OHP-120' 'ALMA' : ID = 'ALMA' ;--IV.2-- Self-Consitent Dictionary 'ESO-VLT' : ID = 'ESO-VLT' 'ESO-LSO' : ID = 'ESO-LSO' 'KeckII' : ID = 'KeckII' 'Gem-S' : ID = 'Gem-S' 'Gem-N' : ID = 'Gem-N' 'OHP-120' : ID = 'OHP-120' 'CFHT 3.6m': ID = 'CFHT' 'C2PU/Omicron': ID = 'C2PU-Om' 'LBTO': ID = 'LBTO' ;--IV.3-- Unknown else: begin message, 'getTelescopeID: Observatory not available: '+telName return, -1 end end ;--V-- Return Telescope ID ------------------------------------------------------------ return, ID end