;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;-What to do ;---------- Directories spawn, 'hostname', host case strTrim(host) of 'hyperion': dirEuclid = '/data/euclid/' 'endymion': dirEuclid = '/home/bcarry/work/data/euclid/' else: stop endcase dirFilter = dirEuclid+'filters/' dirTaxo = dirEuclid+'taxonomy/' dirStat = dirEuclid + 'stat/' dirRate = dirEuclid + 'rate/' dirFrac = dirEuclid + 'fraction/' dirSSO = dirEuclid + 'ssos/astermpi_per_date/' dirExten = dirEuclid + 'exten/' dirRS = dirEuclid + 'rs/' ;--- survey limits ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- SSO populations -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--II.1-- Read SSO populations readcol, dirEuclid+'pop.frac', delimiter=',', $ format='(A,I1,F4.1,F4.1,F4.1,F4.1,F3.1,F3,A,A)', $ popName, popMain, popHmin, popHmax, xMin, xMax, yMin, yMax, popC, popS, /Silent popName = strtrim(popName,2) nbPop=n_elements(popName) print, 'Populations considered: ('+strtrim(string(nbPop),2)+'): ', popName ;--II.2-- Read expected number of SSO at Euclid limiting mag (from euclid-stat.pro) readcol, dirStat+'euclid-stat.csv', delimiter=',', /Silent, $ statName, oLL, oLM, oLH, oML, oMM, oMH, oHL, oHM, oHH, $ dLL, dLM, dLH, dML, dMM, dMH, dHL, dHM, dHH, $ format='(A,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F)' statName = strTrim(statName,2) ;--II.3-- Read Limitso f detection in H readcol, dirStat+'euclid-faintH.csv', delimiter=',', /Silent, $ nameH, H0,H25, H50, h75, h100, format='(A,F,F,F,F,F)' nameH = strTrim(nameH,2) ;--II.4-- Read JDs readcol, dirSSO+'jd.list', jd, format='(D)',/Silent nbEp=n_elements(jd) ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- III -- Get Fractions -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; sufSurv=['Wide','Calib','Deep'] fracArr = fltarr(nbPop,4,2) nbSSO=fltarr(nbPop) vecObs = fltarr(nbPop,9) vecDisco= fltarr(nbPop,9) totN = 0L skyTot = fltarr(3) fWTot = fltarr(3) fDTot = fltarr(3) fCTot = fltarr(3) EoTot = fltarr(3) EdTot = fltarr(3) for kPop=0, nbPop-1 do begin case popName[kPop] of 'NEA': sufPop='nea' 'MC': sufPop='mars_crosser' 'MB': sufPop='mb' 'Trojan': sufPop='trojan' 'Centaur': sufPop='centaur' 'KBO': sufPop='kbo' 'Comet': sufPop='comet' else: goto, j2Next endcase powArr = [4,4,4,3,3,3,0] powSky = [5,5,6,5,4,4,0] spawn, 'wc '+dirSSO+'ephem_'+sufPop+string(jd[0],format='(D16.8)')+'.csv', res split=strSplit(res,' ',/Extract) nbSSO[kPop] = float(split[0]) for kS=0, 2 do begin rootName = 'result-'+sufPop+'-'+sufSurv[kS]+'-' locNum = fltarr(nbEp) for kEp=0, nbEp-1 do begin spawn, "awk '{print $4}' "+dirSSO+rootName+string(jd[kEp],format='(D16.8)')+'.txt', res ; print, "awk '{print $4}' "+dirSSO+rootName+string(jd[kEp],format='(D16.8)')+'.txt' locNum[kEp] = float(res) endfor locFrac = locNum / nbSSO[kPop] fracArr[kPop,kS,0] = mean( locFrac ) fracArr[kPop,kS,1] = stddev( locFrac ) endfor fracArr[kPop,3,0] = total( fracArr[kPop,0:2,0] ) fracArr[kPop,3,1] = total( fracArr[kPop,0:2,1] ) pPop = where( strCmp(statName,popName[kPop] ) ) nbObs = [ oLL[pPop[0]], oLM[pPop[0]], oLH[pPop[0]], oML[pPop[0]], oMM[pPop[0]], oMH[pPop[0]], oHL[pPop[0]], oHM[pPop[0]], oHH[pPop[0]] ] nbDis = [ dLL[pPop[0]], dLM[pPop[0]], dLH[pPop[0]], dML[pPop[0]], dMM[pPop[0]], dMH[pPop[0]], dHL[pPop[0]], dHM[pPop[0]], dHH[pPop[0]] ] vecObs[kPop,*] = nbObs vecDisco[kPop,*] = nbDis ;----- Number of known SSO line=string(popName[kPop],format='(A-8)')+' & '+string(nbSSo[kPop],format='(I6)')+' & ' totN += nbSSo[kPop] ;----- SSO on the SKY muSky = mean(nbObs) minSky= min(nbObs) maxSky= max(nbObs) skyO = toSciNote(muSky,muSky-minSky,maxSky-muSky,digit=1,power=powSky[kPop]) skyTot[0] += minSky skyTot[1] += muSky skyTot[2] += maxSky line += '$'+skyO+'$ & ' ;--- fraction of SSO in surveys line += '$'+toSciNote(100*fracArr[kPop,0,0],100*fracArr[kPop,0,1],digit=1, power=0) + '$ & ' line += '$'+toSciNote(100*fracArr[kPop,1,0],100*fracArr[kPop,1,1],digit=1, power=0) + '$ & ' fMin = fracArr[kPop,3,0] - fracArr[kPop,3,1] fMean= fracArr[kPop,3,0] fMax = fracArr[kPop,3,0] + fracArr[kPop,3,1] fWTot[0] += (100*fracArr[kPop,0,1]) * muSky fWTot[1] += (100*fracArr[kPop,0,0]) * muSky fCTot[0] += (100*fracArr[kPop,1,1]) * muSky fCTot[1] += (100*fracArr[kPop,1,0]) * muSky ;---- number of euclid discoveries muEuc = mean(nbDis)*fMean minEuc = min(nbDis)*fMin maxEuc = max(nbDis)*fMax eucD = toSciNote(muEuc,muEuc-minEuc,maxEuc-muEuc,digit=1,power=powArr[kPop]) line += '$'+eucD+'$ &' EdTot[0] += minEuc EdTot[1] += muEuc EdTot[2] += maxEuc ;---- number of euclid observations muEuc = muSky*fMean minEuc = minSky*fMin maxEuc = maxSky*fMax eucO = toSciNote(muEuc,muEuc-minEuc,maxEuc-muEuc,digit=1,power=powArr[kPop]) line += '$'+eucO +'$ ' EoTot[0] += minEuc EoTot[1] += muEuc EoTot[2] += maxEuc ;---- limits in absolute mag ph = where( strCmp(nameH,popName[kPop]) ) line += ' & '+string(h100[pH[0]],format='(F5.2)') line += ' & '+string( h50[pH[0]],format='(F5.2)') line += ' & '+string( h0[pH[0]],format='(F5.2)') line += ' \\' print, line j2Next: endfor fWTot /= skyTot[1] fCTot /= skyTot[1] print, '\hline' print, 'Total & '+string(totN,format='(I6)')+' & '+$ '$'+toSciNote(SkyTot[1],skytot[1]-skytot[0],skytot[2]-skytot[1],digit=1)+'$ & '+$ '$'+toSciNote(fWTot[1], fWTot[0],digit=1, power=0) + '$ & '+$ '$'+toSciNote(fCTot[1], fCTot[0],digit=1, power=0) + '$ & '+$ '$'+toSciNote(EdTot[1],EdTot[1]-EdTot[0],EdTot[2]-EdTot[1],digit=1, power=5)+'$ & '+$ '$'+toSciNote(EoTot[1],EoTot[1]-EoTot[0],EoTot[2]-EoTot[1],digit=1, power=5)+'$ \\ ' print, '\hline' forprint, vecObs[0,*], vecObs[1,*], vecObs[2,*], vecObs[3,*], vecObs[4,*], vecObs[5,*], $ comment='NEA,MC,MB,Trojan,Centaur,KBO,Comet', $ textout=dirStat+'stat_pop_for_topcat.csv', /Silent, $ format='(F,",",F,",",F,",",F,",",F,",",F,",",F)' for kPop=0, nbPop-1 do vecObs[kPop,*]*=fracArr[kPop,3,0] forprint, vecObs[0,*], vecObs[1,*], vecObs[2,*], vecObs[3,*], vecObs[4,*], vecObs[5,*], $ comment='NEA,MC,MB,Trojan,Centaur,KBO,Comet', $ textout=dirStat+'stat_pop_for_topcat_euc.csv', /Silent, $ format='(F,",",F,",",F,",",F,",",F,",",F)' ;for kP in nea mars_crosser hungaria mb trojan centaur kbo; do end