TOPOCENT.M
上传用户:sfyaiting
上传日期:2009-10-25
资源大小:320k
文件大小:1k
源码类别:

GPS编程

开发平台:

Matlab

  1. function [Az, El, D] = topocent(X,dx)
  2. %TOPOCENT  Transformation of vector dx into topocentric coordinate
  3. %          system with origin at X.
  4. %          Both parameters are 3 by 1 vectors.
  5. %          Output: D    vector length in units like the input
  6. %                  Az   azimuth from north positive clockwise, degrees
  7. %                  El   elevation angle, degrees
  8. %Kai Borre 11-24-96
  9. %Copyright (c) by Kai Borre
  10. %$Revision: 1.0 $  $Date: 1997/09/26  $
  11. dtr = pi/180;
  12. [phi,lambda,h] = togeod(6378137,298.257223563,X(1),X(2),X(3));
  13. cl = cos(lambda*dtr); sl = sin(lambda*dtr);
  14. cb = cos(phi*dtr); sb = sin(phi*dtr);
  15. F = [-sl -sb*cl cb*cl;
  16.       cl -sb*sl cb*sl;
  17.        0    cb   sb];
  18. local_vector = F'*dx;
  19. E = local_vector(1);
  20. N = local_vector(2);
  21. U = local_vector(3);
  22. hor_dis = sqrt(E^2+N^2);
  23. if hor_dis < 1.e-20
  24.    Az = 0;
  25.    El = 90;
  26. else
  27.    Az = atan2(E,N)/dtr;
  28.    El = atan2(U,hor_dis)/dtr;
  29. end
  30. if Az < 0
  31.    Az = Az+360;
  32. end
  33. D = sqrt(dx(1)^2+dx(2)^2+dx(3)^2);
  34. %%%%%%%%% end topocent.m %%%%%%%%%