visDIR = '/observ/vista/' vistaDir = visDIR+'filters/' demeoDir = visDIR+'bus-demeo/' doplot=01 ;---I -- Mean reflectance from Bus-DeMeo demeoTAXO = taxoRead( demeoDIR+'meanspectra.tab' ) filtwave = [1.020,0.877,1.252 ,1.645 ,2.147] xRang = [0.3, 2.5] yRang = [0.5, 2.5] ;--------------------------------------------------------------------; ;--------------------------------------------------------------------; ;-- TAG -- 1 -- Initialization, Constants... ----; ;--------------------------------------------------------------------; ;--------------------------------------------------------------------; if not keyword_set(dirWORK) then dirWORK = vistaDIR if not keyword_set(filtwave) then filtwave = [1.020,0.877,1.252,1.645,2.147] nbClass=n_elements( demeoTAXO.class ) bdflux = fltarr(nbClass,5) ; hold mean flux for each color for each class bdfluxerr= fltarr(nbClass,5) ; hold mean error for each color for each class vistaTAXO = {Y: fltarr(nbClass), $ Z: fltarr(nbClass), $ J: fltarr(nbClass), $ H: fltarr(nbClass), $ K: fltarr(nbClass) } bdflux2 = fltarr(nbClass,5) ; hold mean flux for each color for each class bdfluxerr2= fltarr(nbClass,5) ; hold mean error for each color for each class vistaTAXO2 = vistaTAXO ;-Read VISTA QE readcol, vistaDIR+'qe.tab', wQE, tQE, /silent readcol, vistaDIR+'VISTA_M1_Reflectivity_forETC_2009-Sep12.txt', wM1, tM1, /silent readcol, vistaDIR+'VISTA_M2_Reflectivity_forETC_2007-Jun19.txt', wM2, tM2, /silent ;-Read VISTA Filter Response readcol, vistaDIR+'VISTA_Filters_at80K_forETC_Y.dat', wY, tY, /SILENT readcol, vistaDIR+'VISTA_Filters_at80K_forETC_Z.dat', wZ, tZ, /SILENT readcol, vistaDIR+'VISTA_Filters_at80K_forETC_J.dat', wJ, tJ, /SILENT readcol, vistaDIR+'VISTA_Filters_at80K_forETC_H.dat', wH, tH, /SILENT readcol, vistaDIR+'VISTA_Filters_at80K_forETC_Ks.dat', wK, tK, /SILENT ;-Wavelength convertion to microns wZ /= 1.e3 & wY /= 1.e3 & wJ /= 1.e3 & wH /= 1.e3 & wK /= 1.e3 wQE /= 1.e3 & wM1 /= 1.e3 & wM2 /= 1.e3 tZ( where( wZ le 0.78 or wZ ge 1.00) ) = 0 tY( where( wY le 0.80 or wY ge 1.20) ) = 0 tJ( where( wJ le 1.05 or wJ ge 1.50) ) = 0 tH( where( wH le 1.48 or wH ge 2.00) ) = 0 tK( where( wK le 1.88 or wK ge 2.45) ) = 0 validZ = where( tZ ne 0 ) validY = where( tY ne 0 ) validJ = where( tJ ne 0 ) validH = where( tH ne 0 ) validK = where( tK ne 0 ) ;--------------------------------------------------------------------; ;--------------------------------------------------------------------; ;-- TAG -- 2 -- Compute Fluxes, Colors... ----; ;--------------------------------------------------------------------; ;--------------------------------------------------------------------; normaI = 2 for kClass=0, nbClass-1 do begin specY = interpol( demeoTAXO.spec(kClass,*), demeoTAXO.wave, wY ) specZ = interpol( demeoTAXO.spec(kClass,*), demeoTAXO.wave, wZ ) specJ = interpol( demeoTAXO.spec(kClass,*), demeoTAXO.wave, wJ ) specH = interpol( demeoTAXO.spec(kClass,*), demeoTAXO.wave, wH ) specK = interpol( demeoTAXO.spec(kClass,*), demeoTAXO.wave, wK ) errY = interpol( demeoTAXO.err(kClass,*), demeoTAXO.wave, wY ) errZ = interpol( demeoTAXO.err(kClass,*), demeoTAXO.wave, wZ ) errJ = interpol( demeoTAXO.err(kClass,*), demeoTAXO.wave, wJ ) errH = interpol( demeoTAXO.err(kClass,*), demeoTAXO.wave, wH ) errK = interpol( demeoTAXO.err(kClass,*), demeoTAXO.wave, wK ) ;--2.1-- Convert DeMeo Spectra into VISTA Colors (Normalized to R) fluxes=[ total( specY(validY)*tY(validY) ) / total(tY(validY)), $ total( specZ(validZ)*tZ(validZ) ) / total(tZ(validZ)), $ total( specJ(validJ)*tJ(validJ) ) / total(tJ(validJ)), $ total( specH(validH)*tH(validH) ) / total(tH(validH)), $ total( specK(validK)*tK(validK) ) / total(tK(validK)) ] colors = -2.5*alog10( fluxes );/fluxes(normaI) ) vistaTAXO.Y(kClass) = colors(0) vistaTAXO.Z(kClass) = colors(1) vistaTAXO.J(kClass) = colors(2) vistaTAXO.H(kClass) = colors(3) vistaTAXO.K(kClass) = colors(4) bdflux(kClass,*) = [ 10.^( -0.4* (vistaTAXO.Y(kClass)) ), $ 10.^( -0.4* (vistaTAXO.Z(kClass)) ), $ 10.^( -0.4* (vistaTAXO.J(kClass)) ), $ 10.^( -0.4* (vistaTAXO.H(kClass)) ), $ 10.^( -0.4* (vistaTAXO.K(kClass)) ) ] ;--2.2-- Associate DeMeo Deviation into VISTA Colors bdfluxerr(kClass,*)=[ mean(errY(validY)), $ mean(errZ(validZ)), $ mean(errJ(validJ)), $ mean(errH(validH)), $ mean(errK(validK)) ] endfor set_plot,'ps' device, xs=29.7, ys=21 device, filename=dirWORK+'taxonomy-KQD.eps', /color, encapsulated=0 loadct, 0, /silent lth =3 plot, demeoTAXO.wave, demeoTAXO.spec(0,*), /dev, $ xr=xRang, yr=yRang, xst=1,yst=1, /NODATA, $ charsize=2, thick=lth, $ xthick=2, ythick=2, $ xtickint=0.5, xminor=5, $ position=[3000,2500,27000,20000], $ xtitle='Wavelength (!4l!5m)', $ ytitle='Reflectance spectra (normalize at 0.5 !4l!5m)' ; cgPlot, /over, demeoTAXO.wave, demeoTAXO.spec(0,*), color='black', thick=lth ;a ; cgPlot, /over, demeoTAXO.wave, demeoTAXO.spec(13,*), color='green', thick=lth ;s ; cgPlot, /over, demeoTAXO.wave, demeoTAXO.spec(9,*), color='orange', thick=lth ;L cgPlot, /over, demeoTAXO.wave, demeoTAXO.spec(7,*), color='black', thick=lth ;D cgErrPlot, filtwave, bdflux(7,*)-bdfluxerr(7,*)/2., $ bdflux(7,*)+bdfluxerr(7,*)/2. cgPlot, /over, filtwave, bdflux(7,*), color='black', psym='filled circle' cgText, 2.4, 2.15, 'D' cgPlot, /over, demeoTAXO.wave, demeoTAXO.spec(8,*), color='cornflower blue', thick=lth ;K cgErrPlot, filtwave, bdflux(8,*)-bdfluxerr(8,*)/2., $ bdflux(8,*)+bdfluxerr(8,*)/2. cgPlot, /over, filtwave, bdflux(8,*), color='cornflower blue', psym='filled circle' cgText, 2.4, 1.3, 'K', color='cornflower blue' cgPlot, /over, demeoTAXO.wave, demeoTAXO.spec(11,*), color='navy', thick=lth ;Q cgErrPlot, filtwave, bdflux(11,*)-bdfluxerr(11,*)/2., $ bdflux(11,*)+bdfluxerr(11,*)/2. cgPlot, /over, filtwave, bdflux(11,*), color='navy', psym='filled circle' cgText, 2.4, 1.1, 'Q', color='navy' cgText, filtwave, intarr(5)+0.55, ['Y', 'Z', 'J', 'H', 'K'], align=0.5 device,/close set_plot,'X' end