资源简介

慕尼黑工大出的史上最全坐标转换工具箱,包含最常用的投影变换功能、七参数布尔沙模型等,强烈推荐!

资源截图

代码片段和文件信息

function ELL=cart2ell(CARTellipsFileOut)

% CART2ELL performs transformation from cartesian coordinates to ellipsoidal coordinates 

% ELL=cart2ell(CARTellipsFileOut)

% Also necessary:   Ellipsoids.mat   (see beneath)

% Inputs:  CART  Right-handed cartesian coordinates as nx3-matrix (XYZ) [m]
%                3xn-matrices are allowed. Be careful with 3x3-matrices!
%                CART may also be a file name with ASCII data to be processed. No point IDs only
%                coordinates as if it was a matrix.
%
%        ellips  The underlying ellipsoid as string in lower case letters default if omitted or set
%                to [] is ‘besseldhdn‘
%                See Ellipsoids.m for details.
%                   
%       FileOut  File to write the output to. If omitted no output file is generated.
%
% Outputs:  ELL  nx3-matrix with ellipsoidal coordinates (longitude latitude ell. height)
%                in [degree m]
%                Southern hemisphere is signalled by negative latitude.

% Author:
% Peter Wasmeier Technical University of Munich
% p.wasmeier@bv.tum.de
% Jan 18 2006

%% Do some input checking

% Load input file if specified
if ischar(CART)
    CART=load(CART);
end

% Check input sizes
if     (size(CART1)~=3)&&(size(CART2)~=3) error(‘Coordinate list CART must be a nx3-matrix!‘)
elseif (size(CART1)==3)&&(size(CART2)~=3) CART=CART‘;
end

% Defaults
if nargin<3 FileOut=‘‘;end
if nargin<2 || isempty(ellips) ellips=‘besseldhdn‘;end

% Load ellipsoids
load Ellipsoids;
if ~exist(ellips‘var‘) error([‘Ellipsoid ‘ellips‘ is not defined in Ellipsoids.mat - check your definitions!.‘])
end
eval([‘ell=‘ellips‘;‘]);

%% Do calculations

ELL=zeros(size(CART));
% Longitude
ELL(:1)=atan2(CART(:2)CART(:1))*180/pi;
ELL(ELL(:1)<0:)=ELL(ELL(:1)<0:)+360;

% Latitude
B0=atan2(CART(:3)sqrt(CART(:1).^2+CART(:2).^2));
B=100*ones(size(B0));
e2=(ell.a^2-ell.b^2)/ell.a^2;
while(any(abs(B-B0)>1e-10))
    N=ell.a./sqrt(1-e2*sin(B0).^2);
    h=sqrt(CART(:1).^2+CART(:2).^2)./cos(B0)-N;
    B=B0;
    B0=atan((CART(:3)./sqrt(CART(:1).^2+CART(:2).^2)).*(1-e2*N./(N+h)).^(-1));
end
ELL(:2)=B*180/pi;
ELL(:3)=h;

%% Write output to file if specified

if ~isempty(FileOut)
    fid=fopen(FileOut‘w+‘);
    fprintf(fid‘%12.10f  %12.10f  %12.10f\n‘ELL‘);
    fclose(fid);
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2420  2018-11-16 08:06  GeodeticToolbox\cart2ell.m
     文件        6035  2018-11-16 08:06  GeodeticToolbox\Contents.m
     文件        2761  2018-11-16 08:06  GeodeticToolbox\d1trafo.m
     文件        2858  2018-11-16 08:06  GeodeticToolbox\d2affinetrafo.m
     文件        3360  2018-11-16 08:06  GeodeticToolbox\d2projectivetrafo.m
     文件        3016  2018-11-16 08:06  GeodeticToolbox\d2trafo.m
     文件        2991  2018-11-16 08:06  GeodeticToolbox\d3affinetrafo.m
     文件        2577  2018-11-16 08:06  GeodeticToolbox\d3projectivetrafo.m
     文件        4447  2018-11-16 08:06  GeodeticToolbox\d3trafo.m
     文件        1412  2018-11-16 08:06  GeodeticToolbox\deg2dms.m
     文件        1970  2018-11-16 08:06  GeodeticToolbox\dms2deg.m
     文件        2433  2018-11-16 08:06  GeodeticToolbox\ell2cart.m
     文件        4519  2018-11-16 08:06  GeodeticToolbox\ell2lambertcc.m
     文件        7385  2018-11-16 08:06  GeodeticToolbox\ell2tm.m
     文件       11494  2018-11-16 08:06  GeodeticToolbox\ell2utm.m
     文件         550  2018-11-16 08:06  GeodeticToolbox\Ellipsoids.m
     文件        1086  2018-11-16 08:06  GeodeticToolbox\Ellipsoids.mat
     文件      810614  2018-11-16 08:06  GeodeticToolbox\Geodetic Transformations Toolbox - Examples and Background.pdf
     文件        5134  2018-11-16 08:06  GeodeticToolbox\helmert1d.m
     文件        7162  2018-11-16 08:06  GeodeticToolbox\helmert2d.m
     文件       14052  2018-11-16 08:06  GeodeticToolbox\helmert3d.m
     文件        4350  2018-11-16 08:06  GeodeticToolbox\helmertaffine2d.m
     文件        5156  2018-11-16 08:06  GeodeticToolbox\helmertaffine3d.m
     文件        4500  2018-11-16 08:06  GeodeticToolbox\helmertprojective2d.m
     文件        4623  2018-11-16 08:06  GeodeticToolbox\helmertprojective3d.m
     文件       10821  2018-11-16 08:06  GeodeticToolbox\itrstrafo.m
     文件        4618  2018-11-16 08:06  GeodeticToolbox\lambertcc2ell.m
     文件        1314  2018-11-16 08:06  GeodeticToolbox\license.txt
     文件        5188  2018-11-16 08:06  GeodeticToolbox\molodenskytrafo.m
     文件        6976  2018-11-16 08:06  GeodeticToolbox\ntv2trafo.m
     文件        5141  2018-11-16 08:06  GeodeticToolbox\Projections.m
............此处省略10个文件信息

评论

共有 条评论