40 lines
1.1 KiB
Matlab
40 lines
1.1 KiB
Matlab
|
|
|||
|
function [Rns, Rew, C_ECEF2ENU, C_ECEF2NED]= ch_earth(lat, lon, h)
|
|||
|
|
|||
|
%% <20><><EFBFBD>ݾ<EFBFBD>γ<EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
% INPUT
|
|||
|
% lat: γ<><CEB3>(rad)
|
|||
|
% lon: <20><><EFBFBD><EFBFBD>(rad)
|
|||
|
|
|||
|
% OUTPUT
|
|||
|
% Rns, R_meridian(RM, ns)<29><> <20>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʰ뾶, <20><><EFBFBD><EFBFBD>Ȧ<EFBFBD><C8A6><EFBFBD>ʰ뾶(<28><><EFBFBD>ŵ<EFBFBD>)
|
|||
|
% Rew_transverse(RN, ew)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʰ뾶, î<><C3AE>Ȧ<EFBFBD><C8A6><EFBFBD>ʰ뾶(<28><><EFBFBD>ŵ<EFBFBD>)
|
|||
|
% C_ECEF2ENU: ECEF<45><46>ENUת<55><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
% C_ECEF2NED: ECEF<45><46>NEDת<44><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
R0 = 6378137; %WGS84 <20><><EFBFBD><EFBFBD><EFBFBD>뾶
|
|||
|
e = 0.0818191908425; %WGS84 eccentricity
|
|||
|
% Calculate meridian radius of curvature using (2.105)
|
|||
|
temp = 1 - (e * sin(lat))^2;
|
|||
|
Rns = R0 * (1 - e^2) / temp^1.5;
|
|||
|
|
|||
|
% Calculate transverse radius of curvature using (2.105)
|
|||
|
Rew = R0 / sqrt(temp);
|
|||
|
|
|||
|
clat = cos(lat);
|
|||
|
slat = sin(lat);
|
|||
|
clon = cos(lon);
|
|||
|
slon = sin(lon);
|
|||
|
|
|||
|
C_ECEF2ENU(1,:) = [-slon , clon, 0];
|
|||
|
C_ECEF2ENU(2,:) = [ -slat*clon, -slat*slon clat];
|
|||
|
C_ECEF2ENU(3,:) = [ clat*clon, clat*slon, slat];
|
|||
|
|
|||
|
|
|||
|
C_ECEF2NED(1,:) = [-slat*clon, -slat * slon, clat];
|
|||
|
C_ECEF2NED(2,:) = [-slon, clon, 0];
|
|||
|
C_ECEF2NED(3,:) = [ -clat*clon, -clat*slon, -slat];
|
|||
|
|
|||
|
|
|||
|
end
|