;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--I.1-- Computer & Directories --------------------------------------------------------------; spawn, 'hostname', host case host of 'hyperion': root='/data/colors/mmx/' else: begin print, 'Where am I?' stop end endcase sQC=0 ;--I.2-- Magnitude System --------------------------------------------------------------------; Vega = 1 ;--I.3-- Definition of Instruments to Process ------------------------------------------------; readcol, root+'LEDs.csv', wLED, L590,L610,VSC614,VSC644,L720,VSC771,E0880,LSC885,L910, $ delimiter=',', format='(F,F,F,F,F,F,F,F,F,F,F)', /Silent wLED/=1000. nbLED=n_elements(wLED) nbSet=9 print, 'Number of sets: '+strTrim(string(nbSet),2) ;some cleaning bad=where(wLED le 0.560 or wLED ge 0.630) L610[bad]=0 bad=where(wLED le 0.560 or wLED ge 0.640) VSC614[bad]=0 bad=where(wLED le 0.650 or wLED ge 0.740) L720[bad]=0 bad=where(wLED le 0.700 or wLED ge 0.780) VSC771[bad]=0 bad=where(wLED le 0.710 or wLED ge 0.920) E0880[bad]=0 ;--I.X-- File Extension ----------------------------------------------------------------------; sufCSV='.csv' sufXML='.xml' ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- Reference Filter & Reference Spectra -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--II.1-- Reference Reflectivity of Phobos -------------------------------------------------- phobos = readPhobos() nbSpec=phobos.N cgPlot, phobos.wave, phobos.class[0].spec, YR=[0,0.3] head='Wave' for i=0, phobos.N-1 do head+=', '+phobos.class[i].name forprint, phobos.wave*1000,$ phobos.class[0].spec, $ phobos.class[1].spec, $ phobos.class[2].spec, $ phobos.class[3].spec, $ phobos.class[4].spec, $ phobos.class[5].spec, $ phobos.class[6].spec, $ phobos.class[7].spec, $ phobos.class[8].spec, $ phobos.class[9].spec, $ phobos.class[10].spec, $ textOut='spectra.csv', comment=head,$ format='(I4,11(", ",F5.3))', /Silent ; for i=1, phobos.N-1 do begin ; cgPlot, /OverPlot, phobos.wave, phobos.class[i].spec ;;, color=phobos.class[i].color ; endfor ;stop ;--II.2-- LED Flux -------------------------------------------------------------------------- eSet = {facility:'MMX', instrument:'WheelCam', led:'', filter:{wave:phobos.wave,trans:phobos.wave,WavelengthUnit:'micron'}} set=replicate(eSet,nbSet) set[0].led='L590' iL590 =interpol(L590, wLED, phobos.wave) iL610 =interpol(L610, wLED, phobos.wave) iVSC614=interpol(VSC614, wLED, phobos.wave) iVSC644=interpol(VSC644, wLED, phobos.wave) iL720 =interpol(L720, wLED, phobos.wave) iVSC771=interpol(VSC771, wLED, phobos.wave) iE0880 =interpol(E0880, wLED, phobos.wave) iLSC885=interpol(LSC885, wLED, phobos.wave) iL910 =interpol(L910, wLED, phobos.wave) set[0].filter.trans=iL590 set[1].led='L610' set[1].filter.trans=iL610 set[2].led='VSC614' set[2].filter.trans=iVSC614 set[3].led='VSC644' set[3].filter.trans=iVSC644 set[4].led='L720' set[4].filter.trans=iL720 set[5].led='VSC771' set[5].filter.trans=iVSC771 set[6].led='E0880' set[6].filter.trans=iE0880 set[7].led='LSC885' set[7].filter.trans=iLSC885 set[8].led='L910' set[8].filter.trans=iL910 print, 'wavelength of maximum' for kSet=0, nbSet-1 do begin trash=max( set[kSet].filter.trans,pMax) print, phobos.wave[pMax]*1000. endfor ;--II.3-- WheelCam QE ------------------------------------------------------------------------; readcol, root+'WheelCam-QE.csv', wQE, iQE, delimiter=',', format='(F,F)', /Silent wQE/=1000. QE=interpol(iQE/100., wQE, phobos.wave) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- IV -- Facility/Instrument -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; fluxArr=fltarr(nbSet,phobos.N) head='Sample' for kSet=0, nbSet-1 do begin print, kSet+1,nbSet,set[kSet].instrument, set[kSet].LED, $ format='(I2,"/",I2,2x,A-10,1x,A-6)' head+=', '+set[kSet].LED for kS=0, phobos.N-1 do begin ref = set[kSet].filter.trans*phobos.class[kS].spec x= ref*QE cgPlot, phobos.wave, phobos.class[kS].spec cgPlot, /OverPlot, phobos.wave, set[kSet].filter.trans, color='grey' cgPlot, /OverPlot, phobos.wave, ref, color='red' cgPlot, /OverPlot, phobos.wave, x, color='cornflower blue' fluxArr[kSet,kS] = total(x,/Nan) endfor endfor if sQC eq 1 then begin for kS=0, phobos.N-1 do begin cgPlot, phobos.wave, phobos.class[kS].spec for kSet=0, nbSet-1 do begin ref = set[kSet].filter.trans*phobos.class[kS].spec x= ref*QE ; cgPlot, phobos.wave, phobos.class[kS].spec ; cgPlot, /OverPlot, phobos.wave, set[kSet].filter.trans, color='grey', thick=2 cgPlot, /OverPlot, phobos.wave, ref, color='red' cgPlot, /OverPlot, phobos.wave, x, color='cornflower blue' print, set[kSet].LED stop endfor endfor endif head+=', Type, color, marker' forprint, phobos[*].class.name, $ fluxArr[0,*], $ fluxArr[1,*], $ fluxArr[2,*], $ fluxArr[3,*], $ fluxArr[4,*], $ fluxArr[5,*], $ fluxArr[6,*], $ fluxArr[7,*], $ fluxArr[8,*], $ phobos[*].class.type, $ phobos[*].class.color, phobos[*].class.sym, $ format='(A-10,9(", ",F8.3),", ",I1,", ",A-15,", ",A-1)', /Silent, $ comment=head, textOut='fluxes.csv' wdelete end