資源簡介
以克拉索夫斯基橢球參數為例,由B、L、H三參數正算得到空間坐標系,再由得到的空間坐標系反算得到大地坐標系并計算出誤差,檢核誤差是否在范圍內。
代碼片段和文件信息
clc;clear;
%克拉索夫斯基
a=6378245;?b=6356863.0187730473;?e2=0.006693421622966;fprintf(‘%s\n‘‘克拉索夫斯基‘)
fprintf(‘%s\n‘‘正算得到的空間坐標系:‘)
B=(-83.79970551/360)*2*pi;
L=(-85.33033757/360)*2*pi;
H=-270.410;e=e2^(1/2);W=(1-e^2*sin(B)^2)^(1/2);N=a/W;
X=(N+H)*cos(B)*cos(L);
Y=(N+H)*cos(B)*sin(L);
Z=(N*(1-e2)+H)*sin(B);
M=a-(X*X+Y*Y+Z*Z)^(1/2);
P=[X;Y;Z]
%反算
fprintf(‘%s\n‘‘由上一步所得空間坐標系反算大地坐標系:‘)
NL=atan2(YX);i=1;
B1=atan2(Z((X^2+Y^2)^(1/2)));CB=1;
while?CB>10^-9
???N=a/((1-(e2)*(sin(B1)^2))^(1/2))?;
???B2=atan2((Z+N*(e2)*sin(B1))(X^2+Y^2)^(1/2));
???CB=abs(B2-B1);
???B1=B2;
end
NB=B2;
NN=a/((1-(e2)*(sin(NB)^2))^(1/2))?;
NH=Z/sin(NB)-NN*(1-e2);
LBH=[NL/pi*180;NB/pi*180;NH]
fprintf(‘%s\n‘‘反算誤差為:‘)
derta=[(L-NL)/pi*180;(B-NB)/pi*180;H-NH]
????
評論
共有 條評論