;+ ; Contains the add_error_on_gp procedure ; ; :Author: ; Baptiste Cecconi, Laurent Lamy ; ; :History: ; 2008/03/05: Created ; ; 2008/03/05: Last Edit ;- ; ;+ ; add_error_on_gp is a procedure that <behavior desc here> ; ; :Params: ; dth: in, required, type=sometype ; A parameter named dth ; rr: in, required, type=sometype ; A parameter named rr ; ydf: in, required, type=sometype ; A parameter named ydf ; zdf: in, required, type=sometype ; A parameter named zdf ; qrot: in, required, type=sometype ; A parameter named qrot ; nerr: in, required, type=sometype ; A parameter named nerr ; qdferr: in, required, type=sometype ; A parameter named qdferr ; ; :Keywords: ; axis: in, optional, type=sometype ; A keyword named axis ;- pro add_error_on_gp,dth,rr,ydf,zdf,qrot,nerr,qdferr,axis=axis ndata = max([n_elements(dth),n_elements(rr),n_elements(ydf),n_elements(zdf)]) qdferr = fltarr(4,nerr,ndata) zdferr = fltarr(nerr,ndata) ydferr = fltarr(nerr,ndata) azierr = fltarr(nerr,ndata) laterr = fltarr(nerr,ndata) r0=rr*tan(dth) if ~ keyword_set(axis) then axis='N' case axis of 'N' : phi0 = !pi/2. 'NW' : phi0 = 3.*!pi/4. 'W' : phi0 = !pi 'SW' : phi0 = 5.*!pi/4. 'S' : phi0 = 3.*!pi/2. 'SE' : phi0 = 7.*!pi/4. 'E' : phi0 = 0. 'NE' : phi0 = !pi/4. end for i=0,nerr-1 do begin zdferr(i,*) = reform(zdf + sin(float(i)/nerr*2*!pi+phi0)*r0,1,ndata) ydferr(i,*) = reform(ydf + cos(float(i)/nerr*2*!pi+phi0)*r0,1,ndata) azierr(i,*) = reform(atan(-ydferr(i,*),rr),1,ndata) laterr(i,*) = reform(atan(zdferr(i,*),rr),1,ndata) ; qdferr([1:3],i,*) = reform(make_vect_sph(1.,reform(!pi/2.-laterr(i,*),ndata),reform(azierr(i,*),ndata)),3,1,ndata) qdferr(3,i,*) = reform(sin(laterr(i,*)),1,1,ndata) qdferr(2,i,*) = reform(cos(laterr(i,*))*sin(azierr(i,*)),1,1,ndata) qdferr(1,i,*) = reform(cos(laterr(i,*))*cos(azierr(i,*)),1,1,ndata) qdferr(*,i,*) = reform(q_rot(q_conj(qrot),reform(qdferr(*,i,*),4,ndata)),4,1,ndata) endfor ;thn = acos(qdfn(3,*)) ;phn = atan(qdfn(2,*),qdfn(1,*)) ;ths = acos(qdfs(3,*)) ;phs = atan(qdfs(2,*),qdfs(1,*)) ;the = acos(qdfe(3,*)) ;phe = atan(qdfe(2,*),qdfe(1,*)) ;thw = acos(qdfw(3,*)) ;phw = atan(qdfw(2,*),qdfw(1,*)) end