dirEuclid = '/observ/euclid/' dirFilter = dirEuclid+'filters/' dirTaxo = dirEuclid+'taxonomy/' dirTaxo = '~/work/mining/euclid/' ; Comp.1 Comp.2 Comp.3 uY = [-0.279 , 0.531 , 0.800 ] uJ = [-0.524 , 0.613 , -0.591 ] uH = [-0.805 , -0.584 , 0.107 ] print, 'Norm' print, total( uY^2), total( uJ^2), total( uH^2) print, '' print, 'Orthogonality' print, total(uY*uJ), $ total(uY*uH), $ total(uJ*uH) print, '' print, '' pts = [[uY], [uJ],[uH]] rotZ = atan( uY[1], uY[0] )/!DTOR print, rotZ t3d, /reset t3d, rotate=[0,0,-rotZ] int1=vert_t3d(pts) print, int1 rotY = atan( int1[2,0], int1[0,0] )/!DTOR print, rotY t3d, /reset t3d, rotate=[0,rotY,0] int2=vert_t3d(int1) print, int2 rotX = atan( int1[0,1], int1[1,1] )/!DTOR print, rotX t3d, /reset t3d, rotate=[rotX,0,0] int3=vert_t3d(int2) print, int3 print, '' print, '' print, '' unitX=[1,0,0.] unitY=[0,1,0.] unitZ=[0,0,1.] pts = [ [unitX], [unitY], [unitZ] ] t3d, /reset t3d, rotate=[0,0,-rotZ] int1=vert_t3d(pts) t3d, /reset t3d, rotate=[0,rotY,0] int2=vert_t3d(int1) t3d, /reset t3d, rotate=[rotX,0,0] int3=vert_t3d(int2) print, int3 ;stop ; unitX = [ 1.0 , 0.0 , 0.0 ] ; unitY = [ 0.0 , 1.0 , 0.0 ] ; unitZ = [ 0.0 , 0.0 , 1.0 ] ; ; test = unitX ; ; cross = crossp( test,uY ) ; sin2 = total( cross^2 ) ; cosA = dot_product(test,uY) ; ; nu = fltarr(3,3) ; nu[0,*] = [0, -cross[2], cross[1]] ; nu[1,*] = [cross[2], 0, -cross[0]] ; nu[2,*] = [-cross[1], cross[0], 0] ; ; ;; nu[*,0] = [0, -cross[2], cross[1]] ;; nu[*,1] = [cross[2], 0, -cross[0]] ;; nu[*,2] = [-cross[1], cross[0], 0] ; ; rotM = identity(3) + nu + ((1-cosA)/sin2)* nu^2 ; ; ; print, uY , format='( F7.3,4x,F7.3,4x,F7.3)' ; print, rotM#test , format='( F7.3,4x,F7.3,4x,F7.3)' ; print, reform(rotM##test), format='( F7.3,4x,F7.3,4x,F7.3)' ; ; help, cross, sinA, cosA ; ; ; ;stop ;------ Read Euclid colors readcol, dirTaxo+'euclid-demeoColors.csv', $ ssoNum, ssoName, ssoClass, $ colVis, colY, colJ, colH, $ uncVis, uncY, uncJ, uncH, $ classId, compLabel, complexId, $ format='(F6,A-15,A-3,F7.4,F7.4,F7.4,F7.4,F7.4,F7.4,F7.4,F7.4,I2,A1,I1)', $ skipline=1, delim=',', /Silen nbSSO= n_elements( ssoNum ) ;------ Read PCA readcol, dirTaxo+'pca-371-11.csv', $ id, pca1, pca2, pca3, format='(I,F,F,F)', /Silent, skipline=1 PCAs = [ [pca1], [pca2], [pca3] ] nbPCA=3 pts = transpose(PCAs) ; transpose([ [colY],[colJ],[colH] ]) t3d, /reset t3d, rotate=[0,0,-rotZ] int1=vert_t3d(pts) t3d, /reset t3d, rotate=[0,rotY,0] int2=vert_t3d(int1) t3d, /reset t3d, rotate=[rotX,0,0] int3=vert_t3d(int2) pts = transpose([ [colY],[colJ],[colH] ]) t3d, /reset t3d, rotate=[-rotX,0,0] int1=vert_t3d(pts) t3d, /reset t3d, rotate=[0,-rotY,0] int2=vert_t3d(int1) t3d, /reset t3d, rotate=[0,0,rotZ] int3=vert_t3d(int2) x=int3[0,*] y=int3[1,*] z=int3[2,*] cgplot, x,z, psym=2 ; ; ; print, '' ;; print, max(abs(x-pca1)), max(abs(x-pca2)), max(abs(x-pca3)) ; print, max(abs(x-colY)), max(abs(x-colJ)), max(abs(x-colH)) ; print, max(abs(y-colY)), max(abs(y-colJ)), max(abs(y-colH)) ; print, max(abs(z-colY)), max(abs(z-colJ)), max(abs(z-colH)) ; ; ; print, sqrt(total( (x-colY)^2 )), $ ; sqrt(total( (y-colJ)^2 )), $ ; sqrt(total( (z-colH)^2 )) ; end