;docformat = 'rst' ;+ ;Given a wavelength, find the index of the wave array which is closest ;to it. ; :Params: ; wavelength: in, required ; input wavelength in nanometers ; ; :Keywords: ; megsa: in, optional ; if set, use MEGS A wavelength scale ; megsb: in, optional ; if set, use MEGS B wavelength scale ; l2: in, optional ; if set, use Level 2 wavelength scale ; inverse: in, optional ; if set, treat wavelength as an index instead of a wavelength and ; find the wavelength that matches the index ; :Returns: ; If /inverse is not set, index in the appropriate wave array matching this wavelength. ; If /inverse is set, wavelength matching this index. ; ;:Description: ; You should set exactly one of /megsa, /megsb, and /l2. If none are set, ; the function returns zero. If more than one is set, the first one ; in the priority list /megsa, /megsb, /l2 is chosen ;- function eve_get_wave_bin,wavelength,megsa=megsa,megsb=megsb,l2=l2,inverse=inverse ; stop @megs_wave_defines.pro if keyword_set(inverse) then begin if keyword_set(megsa) then return,megsa_L1_wave[wavelength] if keyword_set(megsb) then return,megsb_L1_wave[wavelength] if keyword_set(l2) then return,megs_l2_wave[wavelength] end if keyword_set(megsa) then return,max(where(wavelength ge megsa_L1_wave)) if keyword_set(megsb) then return,max(where(wavelength ge megsb_L1_wave)) if keyword_set(l2) then return,max(where(wavelength ge megs_l2_wave )) end