function simpleSNR, target, D, filter=filter, sky=sky, seeing=seeing, pixel=pixel, $ tExp=tExp, dark=dark, RON=RON, aperture=aperture, gain=gain ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; COMPILE_OPT hidden, idl2 ;--I.1-- Check Input Parameters -------------------------------------------------------------- if n_params() lt 2 then begin message, /ioError, 'syntax: SNR = simpleSNR( target, D [,filter=, sky=, ...])' return, -1 endif ;--I.2-- Default Values ---------------------------------------------------------------------- if not keyword_set(filter) then filter = 100. ;-Filter - nm if not keyword_set(sky) then sky = 100. ;-Sky - mag/arcsec^2 if not keyword_set(seeing) then seeing = 2.0 ;-Seeing - arcsec if not keyword_set(pixel) then pixel = 0.5 ;-Pixel - arcsec/pixel if not keyword_set(tExp) then tExp = 1.0 ;-Exposure- second if not keyword_set(ron) then ron = 0. ;-ReadOut - e- if not keyword_set(dark) then dark = 0. ;-Dark - e/s/pix if not keyword_set(aperture) then aperture = 3. ;-AperPhot- seeing if not keyword_set(gain) then gain = 10. ;-Gain - ADU ;--I.3-- Flux Constant ----------------------------------------------------------------------- N0 = 1e5 ;-Photon / s/ cm2 / nm ;--I.4-- Preliminary Computation ------------------------------------------------------------- time=float(tExp) nbARC = !PI * (float(aperture) * seeing )^2. nbPix = !PI * (float(aperture) * seeing / pixel )^2. ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- Compute Noises -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--II.1-- Read-Out Noise --------------------------------------------------------------------- sRON = sqrt( nbPix * float(RON) ) ;--II.2-- Dark Current Noise ----------------------------------------------------------------- sDark = sqrt( nbPix * dark * time ) ;--II.3-- Photon Noise in Source ------------------------------------------------------------- fTarget = N0 * 10.^(-0.4* target) * time * filter * (!PI*D*D/4) * gain sTarget = sqrt( fTarget ) ;--II.4-- Photon Noise from Sky -------------------------------------------------------------- fSky = N0 * 10.^(-0.4* sky) * time * filter * (!PI*D*D/4) * gain sSky = sqrt( fSky * nbARC ) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- III -- Signal to Noise Ratio -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; SNR = fTarget / sqrt( sTarget^2. + sSky^2 + sRON^2 + sDark^2 ) return, SNR end