;---------- Directories spawn, 'hostname', host case strTrim(host) of 'hyperion': root = '/data/colors/vista/' 'endymion': root = '/home/bcarry/work/data/vista/' 'gnanzi': root = '/home/mpajuelo/W/Vista/' 'IMCCE5': root = 'PON_TU_PATH' else: stop endcase ;------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------; ;--- TAG --- I --- Read Data Sets ------------------------; ;------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------; if not keyword_set(sdss) then sdss = sdssReadTaxonomy( root+'mba.csv', /CSV ) if not keyword_set(movis) then movis= vistaReadTaxonomy( root+'movis-classed.csv' ) file = 'xmatch_sdss_vista.csv' readcol, root+file, numV, desigV, classV, classId, N, A, B, C, D, K, L, Q, S, T, X, V, $ YmJ, YmH, YmKs, JmH, JmKs, HmKs, a, e, inc, H, $ numS,nameS,classS,U,dU,G,dG,R,dR,I,dI,Z,dZ,Slope,IZ, $ delimiter=',', /Silent, $ format='(L,A,A,A,I,I,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,D,F,F,F,'+$ 'I,A,A,F,F,F,F,F,F,F,F,F,F,F,F)' nbSSO = n_elements( numV ) class = ['A','B','C','D','K','L','Q','S','T','X','V','U'] nbClass = n_elements(class) match = fltarr(nbClass,1+nbClass) print, 'VISTA Classes vs SDSS' print, ' ',class,format='(3x,13(2x,A1,3x))' for kC=0, nbClass-1 do begin cur = where( strCmp(classV, class[kC]), nbCur ) match[kC,0] = nbCur sdssC = classS[cur] ; uC = uniq( sdssC, sort(sdssC) ) ; print, sdssC[uC] for kS=0, nbClass-1 do begin xm = where( strCmp(sdssC,class[kS]), nbXM ) match[kC,kS+1]=nbXM endfor print, class[kC], nbCur, reform(100.*match[kC,1:nbClass]/match[kC,0]), $ total(reform(100.*match[kC,1:nbClass]/match[kC,0])), format='(A1,1x,I4,2x,13(F5.1,1x))' endfor print, total(match[*,0]), nbSSO print, 'SDSS Classes vs VISTA' match = fltarr(nbClass,1+nbClass) print, ' ',class,format='(3x,13(2x,A1,3x))' for kC=0, nbClass-1 do begin cur = where( strCmp(classS, class[kC]), nbCur ) movC = classV[cur] match[kC,0] = nbCur for kS=0, nbClass-1 do begin xm = where( strCmp(movC,class[kS]), nbXM ) match[kC,kS+1]=nbXM endfor print, class[kC], nbCur, reform(100.*match[kC,1:nbClass]/match[kC,0]), $ total(reform(100.*match[kC,1:nbClass]/match[kC,0])), format='(A1,1x,I4,2x,13(F5.1,1x))' endfor print, total(match[*,0]), nbSSO cgPS_open, Filename=root+'fig-sdss-movis.eps', $ /metric, /decomposed, /portrait, $ xsize=28, ysize=20, language_level=2, /quiet xRang = [-.5,3] yRang = [-0.75, 0.25] cutMAX = 200. ; noU = where( ~strCmp(movis.class,'U') ) ; help, noU ; help, movis,/str noU = where( ~strCmp(sdss.class,'U') ) slopBox= 0.05 coloBox= 0.01 sdssMap = hist_2d( sdss[noU].taxo.sl, sdss[noU].taxo.zi, bin1=slopBox, bin2=coloBox, $ ; sdssMap = hist_2d( slope,iz, bin1=slopBox, bin2=coloBox, $ min1=xRang(0), min2=yRang(0), $ max1=xRang(1), max2=yRang(1)) sdssLog = bytscl( alog10(sdssMap), min=0, max=alog10(cutMax)) sdssLog = 255-sdssLog loadct, 0,/silent mapSize = 18000 tv, sdssLog, 2400,1400, $ xsize=mapSize, ysize=mapSize ;-BOUNDARY ; classN=['A ','B ','C ','D ','K ','L ','Q ','R ','S ','V ','X '] ; cCol=[ 210 , 80 , 200 , 70 , 240 , 120 , 80 , 50 , 190 , 230 , 90 ] ; classT=[ 39 , 0 , 0 , 0 , 39 , 39 , 39 , 39 , 39 , 39 , 39 ] ; cSym=[ 13 , 12 , 11 , 11 , 12 , 02 , 12 , 01 , 05 , 01 , 11 ] nbClass=11 classDef = replicate({name:'',color:'',symbol:'',thick:1., size:1.}, nbClass) classDef.name = ['A','B','C','D','K','L','Q','R','S','V','X'] classDef.color= ['Brown', $ ; A 'Blue', $ ; B 'Black', $ ; C 'Gold', $ ; D 'Limegreen', $; K 'Skyblue',$ ; L 'Goldenrod',$ ; Q 'Purple', $ ; R 'Orange',$ ; S 'Red',$ ; V 'Gray'] ; X classDef.symbol=['Filled Up Triangle', $ ; A 'Filled Square', $ ; B 'Filled Circle', $ ; C 'Filled Down Triangle',$ ; D 'Filled Square', $ ; K 'Open Square', $ ; L 'Open Diamond', $ ; Q 'Open Down Triangle', $ ; R 'Star', $ ; S 'Open Right Triangle', $ ; V 'Filled Left triangle'] ; X classDef[8].size=1.5 ; C B X D L S K R Q V A slMin=[-0.50,-0.5, 0.2 , 0.7 , 0.7 , 0.6 , 0.6 , 0.5 , 0.5 , 0.6 , 2.15] slMax=[ 0.60, 0.0, 0.9 , 2.3 , 2.3 , 2.15, 1.2 , 2.3 , 0.95, 2.3 , 2.8 ] ziMin=[-0.20,-0.2,-0.03, 0.03 ,-0.1 ,-0.28, -0.11, -0.35,-0.28,-0.7 ,-0.3 ] ziMax=[ 0.15, 0.0, 0.15, 0.215, 0.03,-0.05, -0.04, -0.28,-0.2 ,-0.35,-0.1 ] ;shifting z-i up to account for difference between transform and no transform for loop=0,n_elements(ziMin)-1 do begin if loop eq 1 then goto, skipB ziMin(loop)=ziMin(loop)+0.035 ziMax(loop)=ziMax(loop)+0.035 skipB: endfor ord = [2,1,10,3,5,8,4,7,6,9,0] DIM = 1000. classArea = fltarr(DIM,DIM) xLen = xRang(1)-xRang(0) yLen = yRang(1)-yRang(0) for kC=0, nbClass-1 do begin xArr = [slMin(kC), slMax(kC), slMax(kC), slMin(kC), slMin(kC)] yArr = [ziMin(kC), ziMin(kC), ziMax(kC), ziMax(kC), ziMin(kC)] area = polyfillv( DIM*(xArr-xRang(0))/xLen, $ DIM*(yArr-yRang(0))/yLen, DIM, DIM) classArea(area) = kC+1 endfor for kC=0, nbClass-1 do begin classZone = fltarr(DIM,DIM) area = where( classArea eq kC+1 ) classZone(area) = kC+1 contour, classZone, $ min_value=0, max_value=nbClass+1, $ levels=[kC+1], $ /CLOSED, /PATH_DATA_COORDS, $ /DEVICE, /NOERASE, $ xst=5, yst=5, $ position = [2400,1400,2400+mapSize, 1400+mapSize], $ path_info=INFO, path_xy=XY S = [indgen(INFO(0).N), 0] coordXY=transpose(xy(*,INFO(0).OFFSET + S )) cgPlot, coordXY(*,0), coordXY(*,1), color=classDef[ord[kC]].color, thick=2, /OverPlot cgText, max(coordXY(*,0))-30, min(coordXY(*,1))+10, $ classDef[ord[kC]].name, $ charsize=1.5, charth=2, color=classDef[ord[kC]].color endfor cgPlot, [0.,0.],[0.,0.], /Device, /NoData, /NoErase , $ xst=1, yst=1, $ xrange=xRang,yrange=yRang , $ xtitle='gri slope (%/100nm)', $ ytitle='z-i', $ xthick=THK, ythick=THK, $ charthick=THK, charsize=1, $ ytickint=0.25, yminor=5, $ xtickint=1, xminor=5, $ xticklen=0.035, $ xtickname=['0','10','20','30'], $ position = [2400,1400,2400+mapSize, 1400+mapSize] for kC=0, nbClass-1 do begin cur = where( strCmp(classV,classDef[kC].name) ) cgPlot, slope(cur), iz(cur), /OverPlot, color=classDef[kC].color, pSym=classDef[kC].symbol, symSize=classDef[kC].size endfor ;-Key------------------------------------ loadct, 0, /silent tv, bytscl(transpose(reverse(indgen(101))), min=0, max=100), $ 2600+mapSize, 2400, $ xsize=600, ysize=0.9*mapSize cgPlot, [0], [0], /Device, /NoErase, $ position=[2600+mapSize, 2400, $ 3200+mapSize, 2400+0.9*mapSize], $ xst=1, yst=1, $ yr=[0.1,200], xr=[0,1], $ yticklen=.4, xtickint=4, $ xminor=1, yminor=5, $ xtickname=' ', ytickname=replicate(' ',5), $ /YLOG axis, yaxis=1, yst=1, /YLOG, yr=[0.1,200], ytickname=['0','1','10','100'], charsize=1 cgText, /Device, 4800+mapSize, 2400+0.45*mapSize, 'Number of classified SDSS objects', $ orientation=90, charsize=1, align=.5 cgPlot, [0.,0.],[0.,0.], /Device, /NoData, /NoErase , $ xst=5, yst=5, $ xrange=[0,1],yrange=yRang , $ position = [6000+mapSize,1400,6000+mapSize+3400, 1400+mapSize] xKey = 0.2 yKey = 0.15 yShi =-0.08 for kC=0, nbClass-1 do begin ; loadct, classT(kC), /silent ; define_psym, 1.25, color=classDef[kC].color, symbol=classDef[kC].symbol cgPlot, [xKey], [yKey+kC*yShi], /OverPlot, pSym=classDef[kC].symbol, color=classDef[kC].color, symSize=classDef[kC].size cgPlot, [1,7,7,1,1] * 0.1 +xKey, $ [-1,-1,1,1,-1]* 0.025 + yKey+kC*yShi, color=classDef[kC].color, thick=2, /OverPlot cgText, xKey+0.4, yKey+kC*yShi-0.01, charsize=1, /DATA, $ classDef[kC].name, align=.5, charthick=1.5 endfor cgText, 0.5, 0.2, 'Taxonomy', charsiz=1, align=.5, /Data cgPS_close, /PNG end