0001 function [maz,mel]=pointing_model(model,iaz,iel)
0002
0003
0004
0005
0006
0007 if(length(model)==9)
0008 model(10) = 0;
0009 model(11) = 0;
0010 end
0011 model(11) = mod(model(11), 360);
0012
0013
0014 d2r=pi/180;
0015 model=model*d2r;
0016 az=iaz*d2r;
0017 el=iel*d2r;
0018
0019
0020
0021
0022
0023
0024
0025 el=el-model(1)*sin(el);
0026 el=el-model(2)*cos(el);
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 az=-az+pi/2;
0038
0039
0040 c=cross([1,0,tan(model(3))],[0,1,tan(-model(4))]);
0041
0042 phi=atan2(c(2),c(1));
0043 theta=atan(sqrt(c(1)^2+c(2)^2./c(3)));
0044
0045 [x,y,z]=sph2cart(az,el,ones(size(az)));
0046 [x,y,z]=rotaboutz(x,y,z,phi);
0047 [x,y,z]=rotabouty(x,y,z,theta);
0048 [x,y,z]=rotaboutz(x,y,z,-phi);
0049 [az,el]=cart2sph(x,y,z);
0050
0051
0052 az=-az+pi/2;
0053
0054
0055
0056
0057
0058
0059 el = asin(sin(el)./cos(model(5)));
0060 el(imag(el)~=0)=NaN;
0061 az=az-asin(tan(model(5)).*sin(el)./cos(el));
0062 az(imag(az)~=0)=NaN;
0063
0064
0065
0066
0067
0068 az=az-asin(-sin(model(6))./cos(el));
0069 az(imag(az)~=0)=NaN;
0070 el=asin(sin(el)./cos(model(6)));
0071 el(imag(el)~=0)=NaN;
0072
0073
0074
0075 el=el+model(7);
0076
0077
0078
0079 el = el + model(10)*(cos(az + model(11)));
0080
0081
0082 az=az+model(8);
0083 el=el+model(9);
0084
0085
0086
0087 ind=az<0; az(ind)=az(ind)+2*pi;
0088 ind=az>2*pi; az(ind)=az(ind)-2*pi;
0089
0090
0091 maz=az/d2r;
0092 mel=el/d2r;
0093
0094 return