关于工具箱
dxyz2pos函数用于将两点之间的xyz三轴坐标差值换算为纬经高。
本文所述的代码需要基于PSINS工具箱,工具箱的讲解:
dxyz2pos函数用于将两点之间的xyz三轴坐标差值换算为纬经高
程序使用
使用程序的代码如下:
pos = dxyz2pos(dxyz, pos0)
其中,dxyz是xyz三轴坐标差值(待求点与基准点的差值),pos0是基准点的纬经高(纬度、经度、高度)。
输出的pos为待求点的纬经高。
例程实践
运行代码:
a = dxyz2pos([1000,0,10], [30,120,0]')
上面的代码意思是:一个点,相对于经度120、纬度30、高度0的点来说,偏北1000m、高10m,变量 a a a里面存放这个点的纬经高数据,得到如下结果:
运行结果
可以看出来的,这个点的纬度为30°、经度为120.001°,高度为10m
函数内容
源代码如下:
function pos = dxyz2pos(dxyz, pos0)
global glv
if nargin<2, pos0 = glv.pos0; end;
ddxyz = diff([[0,0,0];dxyz(:,1:3)],1);
pos0 = repmat(pos0',size(ddxyz,1),1);
pos = pos0;
for k=1:3 % iteration for calcuating DR pos, faster than element for-loop
[RMh, clRNh] = RMRN(pos);
dpos = [ddxyz(:,2)./RMh, ddxyz(:,1)./clRNh, ddxyz(:,3)];
dpos = cumsum(dpos,1);
pos = pos0 + dpos;
end
if size(dxyz,2)>3, pos(:,4) = dxyz(:,4); end