;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> de leeblos2 theta=2*!PI*findgen(361)/360 ;------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------; ;--- TAG --- I --- Define classes ------------------------; ;------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------; ;--I.1--Class Labels -------------------------------------------------------------------- cLabel=['A','B','C','D','K','L','Q','S','T','X','V'] ;--I.2--Class Look'n'Feel --------------------------------------------------------------- cColor=['Sienna' , $ ;-- A 'Gray' , $ ;-- B 'Charcoal' , $ ;-- C 'Dark Gray' , $ ;-- D 'Green' , $ ;-- K 'Navy', $ ;-- L 'Orange' , $ ;-- Q 'Cornflower blue', $ ;-- S 'PUR8' , $ ;-- T 'Magenta' , $ ;-- X 'Red' ] ;-- V cSymb =['Filled circle' , $ ;-- A 'Filled circle', $ ;-- B 'Open circle', $ ;-- C 'Filled circle', $ ;-- D 'Open circle', $ ;-- K 'Open square', $ ;-- L 'Filled star', $ ;-- Q 'Open square', $ ;-- S 'Star' , $ ;-- T 'Open diamond', $ ;-- X 'Filled Circle' ] ;-- V SSymb =[ 0.8 ,$ ;-- A 0.8 ,$ ;-- B 0.8 ,$ ;-- C 0.8 ,$ ;-- D 0.8 ,$ ;-- K 0.8 ,$ ;-- L 1.5 ,$ ;-- Q 0.8 ,$ ;-- S 1.5 ,$ ;-- T 0.8 ,$ ;-- X 0.8 ] ;-- V ;------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------; ;--- TAG --- II --- Read Datasets ------------------------; ;------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------; ;--II.1--Class Labels ------------------------------------------------------------------- ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< datos='(I,A,A,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F)' data='(A,A,F,F,F,I,I,F,F,F,I,I,F,F,F,I,I,F,F,F,I,I,F,F,F,I,I,F,F,F,I,I)' readcol, 'MOVIS-C.csv',f=datos,num,name,classOb,YmJ,YmJerr,YmJtm,$ ;classOb es tipo de obj Orb Dynam YmH,YmHerr,YmHtm,$ YmK,YmKerr,YmKtm,$ JmH,JmHerr,JmHtm,$ JmK,JmKerr,JmKtm,$ HmK,HmKerr,HmKtm,$ delimiter=',' good1 = where( YmH ne -99.99 and YmK ne -99.99 ) qYmK = createBoxPlotData( transpose( [ [YmH[good1]],[ymK[good1]] ] ) ) ; a ver boxes = BOXPLOT(qYmK, XTITLE="", YTITLE="YmK" );??? ; \\\\\\\\\\\\\\\\\\\\\\\\\\\ good2 = where( JmH ne -99.99 and JmK ne -99.99 ) qJmK = createBoxPlotData( transpose([[JmH[good2]],[JmK[good2]]]) ) ; a ver boxes = BOXPLOT(qJmK, XTITLE="", YTITLE="JmK" );??? ; a ver ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ good3 = where( JmK ne -99.99 and HmK ne -99.99 ) qHmK = createBoxPlotData( transpose([[JmK[good3]],[HmK[good3]]]) ) ; a ver boxes = BOXPLOT(qHmK, XTITLE="", YTITLE="HmK" );??? ; a ver a ver ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ; stop readcol, 'bdm-col.csv',f=data,clas,ID,YmeJ,dYmeJ,YmeJDt,NsY,NsJ,$ YmeH,dYmeH,YmeHDt,NsY,NsH,$ YmeKs,dYmeKs,YmeKsDt,NsY,NsKs,$ JmeH,dJmeH,JmeHDt,NsJ,NsH,$ JmeKs,dJmeKs,JmeKsDt,NsJ,NsKs,$ HmeKs,dHmeKs,HmeKsDt,NsH,NsKs,$ delimiter=',' ; esto anhadido al leeMOVIS.pro con function de Benoit -> c=vistaReadMOVIS( 'MOVIS-C.csv' ) ; valid=where( c.YmJ.val ne -99.99 and c.JmK.val ne -99.99 ) ;;;? ; cgPlot, c[valid].YmJ.val, c[valid].JmK.val, psym=3 ; esto anhadido al leeMOVIS.pro con function de Benoit <- filters=['Y', 'J', 'H','Ks'] nbFilt=n_elements(filters) nbComb = factorial(nbFilt)/ ( 2*factorial( nbFilt-2 )) comp=[[YmeJ],[YmeH],[YmeKs],[JmeH],[JmeKs],[HmeKs]] ; col=[[YmJ],[YmH],[YmKs],[JmH],[JmKs],[HmKs]] col=[[YmJ],[YmH],[YmK],[JmH],[JmK],[HmK]] ; no hay Ks ;help, comp ;stop ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& label=['Y-J','Y-H','Y-Ks','J-H','J-Ks','H-Ks'] ; nbComb, 6 opciones <-traido de leeblos2 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& cgPlot, YmeJ, JmeKs, color='red' , psym=4, $ xtitle= 'Y-J', $ ytitle= 'J-Ks', $ title= 'MOVIS & BdM' ;---select points with error below 0.10 mag errLow010 = where( abs(YmJerr) le 0.10 and abs(JmKerr) le 0.10 ) cgPlot, /OverPlot, YmJ[errLow010], JmK[errLow010], color='blue' , psym='open circle' ; esto es de MOVIS no hay JmKs, solo JmK cgPlot, /OverPlot, YmeJ, JmeKs, color='red', psym='filled circle' ;-BDM again, on top ;******************************* taxo = ['S','C','V',$ 'D','X','K', $ 'L','A','B','Q'] ; con Q, no hay T color= ['Red','Gray','Orange',$ 'Green', 'Light gray', 'Purple', $ 'Royal blue', 'Black', 'Dark gray', 'Slate Gray' ] nClas = n_elements(taxo); print, '' print, 'numero de clases taxonomicas:', nClas print, '' stop ;/--- AQUI tu hacias un nClas,4... cuando hay nbComb =6 meanArr = fltarr(nClas,nbComb) stdArr = fltarr(nClas,nbComb) for i=0, nClas-1 do begin ; print, Taxo[i] placeCl = where( clas eq taxo[i], nbCl) print, ' ['+Taxo[i]+'] ', nbCl for j=0, nbComb-1 do begin ;--- aqui tu hacias comp[j,i] --> era un FLOAT y no un ARRAY meanArrCl = [ mean( comp[placeCl,j] ) ] stdArrCl = [ stddev( comp[placeCl,j] ) ] ;---igual aqui tu indices eran equivocados meanArr[i,j] = meanArrCl stdArr[i,j] = stdArrCl endfor endfor ;variable undefined YMKS.? print, 'meanArr' print, meanArr print, '' print, 'stdArr' print, stdArr ;stop ; continuara... nObj = n_elements(num) ; esto es el numero de objetos de MOVIS print, '' print, 'numero de asteroides de MOVIS:', nObj ;nClas = n_elements(clas) ;for i=0, nObj-1 do begin ; for j=0, ;endfor stop ;;;;;;;;;;;; ;;;; hacer loop sobre combinaciones >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ;estas dos lineas de abajo para controlar que esten todos los colores: ; W sobre los elemntos de la selecc for j=0, nbComb-1 do begin for j2=j+1, nbComb-1 do begin ; Larg[i,j] = [meanArr[i,j] - stdArr[i,j], meanArr[i,j] + stdArr[i,j]] ;#################3 lonX = [ meanArr[*,j]-stdArr[*,j], meanArr[*,j]+stdArr[*,j] ] lonY = [ meanArr[*,j2]-stdArr[*,j2], meanArr[*,j2]+stdArr[*,j2] ] ; cgPlot, meanArr[*,j], meanArr[*,j2], /NoData, $ cgPlot, lonX, lonY, /NoData, $ xTitle=label[j], yTitle=label[j2] for i=0, nClas-1 do begin ; x cada clase buscr los obj que corresponden cur=where( strcmp(clas,taxo[i]) ) cgPlot, /over, col[cur,j], col[cur,j2] , psym=cSymb[i], color=cColor[i], symSize=sSymb[i] endfor for i=0, nClas-1 do begin ;plot de tods los colores individuales de bdm cgPlot, meanArr[i,j]+stdArr[i,j]*cos(theta), $ meanArr[i,j2]+stdArr[i,j2]*sin(theta), color=cColor[i], /over cgErrPlot, meanArr[i,j], color=cColor[i], $ meanArr[i,j2]-stdArr[i,j2], meanArr[i,j2]+stdArr[i,j2] cgErrPlot, meanArr[i,j2], color=cColor[i], meanArr[i,j]-stdArr[i,j], $ meanArr[i,j]+stdArr[i,j], /horizontal ; cgPlot, /over, meanArr[kT2,kX], meanArr[kT2,kY], psym='Filled Circle', symSize=1.5, color=cColor[kT2] cgText, meanArr[i,j]+stdArr[i,j]*0.3, $ meanArr[i,j2]+stdArr[i,j2]*0.3, taxo[i], color=cColor[i] endfor stop endfor ;;;;;;;;;;;;;;;;;hacer loop sobre combinaciones &&&&& <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ;----------------------------------------** VER **-------------------------------------------------------- ; sobre MOVIS!!! ; nbselect en vez de col[i] seria col de select de i algo porq hago col[select[i]] print, '' select = where( YmJ ne -99.99 and YmH ne -99.99 and YmK ne -99.99 $ and JmH ne -99.99 and JmK ne -99.99 and HmK ne -99.99, nbSel) print, 'Numero de Asteroides seleccionados: ',nbSel ;for i=0, nObj-1 do begin ; nObj es el # de obj de MOVIS, checo con la lista ;de abajo ahora solo para los seleccionados...nbSel = 7579 en este caso for i=0, nbSel-1 do begin distArr=fltarr(nClas) for j=0, nClas-1 do begin ; sobre todas las clases taxonomicas... nClas= 10 a=0 nUSe = 0 for k=0, nbComb-1 do begin ; sobre todas las combinaciones... nComb=6 c = meanArr[j,k] ;j de 0 a 9 , k de 0 a 5 sc = stdArr[j,k] ;antes>> if col[i,k] ne 0 then begin ; diferencia de colores de MOVIS if col[select[i],k] ne 0 then begin ; diferencia de colores de MOVIS << agora con 0 a+= ( (col[select[i],k]-c)/sc )^2 ;coli existe? uno de ellos cero? nUse++ ; incremento de 1 endif endfor tot=sqrt(a/nUse) distArr[j] = tot endfor order = sort( distArr ) print, '' ; print, i, ' ['+clas[select[i]]+'] ',taxo[order] ; a ver a ver.... print, i, taxo[order] ; a ver a ver.... ; print, i, ' ['+clas[i]+'] ',taxo[order] ; aca se detiene...en obj 370 ; % Attempt to subscript CLAS with I ; is out of range. ; % Execution halted at: $MAIN$ 291 print, distArr[order] endfor ;-------------------------------------**VER**------------------------------------------------------- end end