当前位置:文档之家› 基于matlab的大地坐标与直角坐标间的转换精编版

基于matlab的大地坐标与直角坐标间的转换精编版

基于matlab的大地坐标与直角坐标间的转换精编版
基于matlab的大地坐标与直角坐标间的转换精编版

测量程序设计

实验报告

实验名称:大地坐标与空间直角坐标的

换算

实验四 大地坐标与空间直角坐标的换算

一、实验目的

编写大地坐标与空间直角坐标相互转换的程序,并对格式化文件数据进

行计算,验证程序。

二、实验内容:

1、大地坐标向空间直角坐标换算

转换公式:

B

h e N z L B h N y L

B h N x sin ])1([sin cos )(cos cos )(2+-=+=+= (1)

其中:L 为经度,B 为纬度,h 为大地高,B e a

N 22sin 1-=为卯酉圈曲率半径,

a

b a e 2

2-=为第一偏心率,a 为旋转椭球长半轴,b 为短半轴。 WGS84椭球参数:长半轴 a = 6378137

扁率 f = 1/298.257223563

根据上式创建以geo 2xyz 命名的函数,函数输入输出格式为

[x, y, z] = geo 2xyz (L, B, h)

2、空间直角坐标向大地坐标换算

根据式(1)推导大地坐标向空间直角坐标转换公式: N B

y x h y

x B Ne z B x y L -+=++==cos )sin arctan()

/arctan(2

2222 注意计算纬度时需要用到迭代,可用)arctan(22y

x b az B +=作为初始值。 创建以xyz2geo 命名的函数,函数输入输出格式为

[L, B, h] = xyz 2geo (x, y, z)

三、实验步骤

1、大地坐标向空间直角坐标换算

主程序:

%%大地坐标向空间直角坐标换算

%函数的输入输出格式为[x,y,z]=geo2xyz(L,B,h)

[filename,pathname] = uigetfile('*.txt','请选择打开的数据文件');

file = [pathname, filename];

data = importdata(file);

L=data.data(:,1);

B=data.data(:,2);

h=data.data(:,3);

[x,y,z]=geo2xyz(L,B,h);

A=[x,y,z];

A=A';

[filename_out,pathname_out] = uiputfile('*.txt','请选择要输出数据文件');

fileout = [pathname_out, filename_out];

fid = fopen(fileout,'wt');

fprintf(fid,' x y z\n'); fprintf(fid,'%15.7f %15.7f %15.7f\n',A);

close('all');

函数:

function [x,y,z]=geo2xyz(L,B,h)

%大地坐标经纬度转换成空间直角坐标

B=dms2rad(B);

L=dms2rad(L);

a=6378137;

%a是长半轴

f=1/298.257223563;

%f是扁率

b=a-a*f;

e=sqrt(a^2-b^2)/a;

N=a./(sqrt(1-e^2.*(sin(B)).^2));

%N为卯酉圈半径率,e为第一偏心率

x=(N+h).*cos(B).*cos(L);

y=(N+h).*cos(B).*sin(L);

z=(N*(1-e^2)+h).*sin(B);

end

function rad=dms2rad(jiaodu)

%度分秒->弧度(rad)

degree = fix(jiaodu);

mimute = fix((jiaodu-degree)*100);

second = (jiaodu-degree-mimute/100)*10000;

degree = degree+mimute/60+second/3600;

rad=degree/180*pi;

end

2、空间直角坐标向大地坐标换算

主程序:

%% 将文件data.2.txt中的空间直角坐标系转换为大地坐标,并将计算结果按照格式存储在文件data3.txt中

%data3.txt格式为:经度(ddmmss)纬度(ddmmss)大地高[filename,pathname]=uigetfile('*.txt','请选择打开的数据文件');

file=[pathname,filename];

data=importdata(file);

x=data.data(:,1);

y=data.data(:,2);

z=data.data(:,3);

[L,B,H]=xyz2geo(x,y,z);

[filename_out,pathname_out] = uiputfile('*.txt','请选择要输出数据文件');

fileout = [pathname_out, filename_out];

fid = fopen(fileout,'wt');

fprintf(fid,' 经度(ddmmss)纬度(ddmmss)大地高\n'); fprintf(fid,'%10.7f %10.7f %7.3f\n',[L,B,H]'); fclose('all');

函数:

function [L,B,H]=xyz2geo(x,y,z)

%将直角坐标转换为大地坐标

%% 已知:WGS-84椭球参数

f=1/298.257223563;%扁率f=(a-b)/a

a=6378137; %长半轴

b=a*(1-f); %短半轴

e=(sqrt(a^2-b^2))/a; %第一偏心率

%% 经度L的计算

L=atan2(y,x);

L=rad2dms(L);

%% 纬度B的计算

B0=atan2((a*z),(b.*sqrt(x.^2+y.^2))); % B初始值

while 1

N=a./(sqrt(1-(e^2).*(sin(B0).^2))); %卯酉圈曲率半径N

B=atan2(z+N.*(e^2).*sin(B0),(sqrt(x.^2+y.^2)));

if abs(B0-B)<10^-6

break;

end

abs(B0-B)

B0=B;

end

%% 大地高H的计算

H=(sqrt(x.^2+y.^2))./cos(B)-N;

B=degree2dms(B.*180/pi);%纬度B

End

function dms= degree2dms(jiaodu)

%度->度分秒(dd.mmss)

degree = fix(jiaodu);

mimute = fix((jiaodu-degree)*60); second = ((jiaodu-degree)*60-mimute)*60; dms = degree+mimute/100+second/10000;

基于MATLAB的七参数坐标系统转换问题分析(精)

基于 MATLAB 的七参数法坐标系统转换问题分析 1 张鲜妮 21, ,王磊 21, 1、中国矿业大学环境与测绘学院,江苏徐州 (221008 2、江苏省资源环境信息工程重点实验室,江苏徐州 (221008 E-mail: 摘要:GPS 测量的坐标是基于 WGS-84坐标系下的,而我国实用的测量成果大多都是基于北京 54坐标系下的。随着 GPS 测量技术的广泛使用,由 WGS-84坐标向北京 54坐标系下坐标的转换问题一直是一个可探讨的问题, 坐标系统转换的现有模型很多, 但常用的还是经典的七参数转换模型。随着不断的实践研究, 发现七参数在进行坐标系统转换时有一定的局限性。本文采用 MATLAB 语言编写了七参数法坐标系统转换程序,并对七参数坐标系统转换的若干问题进行了分析讨论。分析结果表明, 小区域范围内用正常高代替大地高对坐标转换精度影响很小; 公共点分布情况对坐标转换精度影响显著; 合适的公共点密度有利于提高坐标转换精度。 关键词:七参数法;坐标系统; MATLAB ;转换问题 1. 引言 随着 GPS 空间定位技术的发展, GPS 技术以其快速、精确、全天候在测量中的应用变的越来越广泛, GPS 成为建立基础控制网的首选手段 ]1[,由于 GPS 系统采用的是 WGS-84坐标系, 是一种地心坐标系, 而我国目前常用的两个坐标系 1954年北京坐标系 (以下称 BJ54 和 1980年国家大地坐标系,是一种参心坐标系,采用克拉所夫斯基椭球为参考椭球,并采用高斯克吕格投影方式进行投影, 我国的国土测量成果和在进行工程施工时大都是基于这两个坐标系下的。所以在利用 GPS 技术进行测量过程中必然存在由 WGS-84坐标向北京 54坐标系下的转换问题。现有的转换模型已经成熟,归纳起来主要有布尔莎 -沃尔夫模型(七参数法、莫洛登斯基 -巴代卡

大地坐标系转换

从大地水准面起算的陆地高度,称为绝对高度或海拔。 大地水准面就是由静止海水面并向大陆延伸 与平均海水面相吻合的称为大地水准面 所形成的不规则的封闭曲面。它就是重力等位面,即物体沿该面运动时,重力不做功(如水在这个面上就是不会流动的)。 地心直角坐标系又称为空间直角坐标系。如图2、1所示,她以地球的地心O为坐标原点,XOY平面在赤道面上,OX正向指向格林尼治子午线与赤道的交点,OZ轴指向地球北极与地球的极轴重合。该坐标系与地球紧 密结合在一起,随着地球的旋转而旋转。 图2、1 地心直角坐标系 2、1、2 大地坐标系

从微观上来说,地球并非就是一个圆球体,而就是近似椭圆体,其极半径约为6 357km,赤道半径约为6 378km,相差约21km,地球表面凹凸不平。 为了得到高的定位精度,在定位时必须用与地球最吻合的椭球体来代替地球。这个椭球体就是指所取得椭球面与大地水准面之间高度差的平方与最小。这个椭球称为参考椭球或基准椭球。大地水准面就是指假想的无潮汐、无温差、无风、无盐的海面。基准椭球面、大地水准面与实际的地形的关系如图2、2所示。在地球任意一点G的大地水准面高度就是指该点大地水准面与基准椭球面之间的距离。G点的海拔高度就是指该点实际地形与大地水准面之间的距离。 图2、2 基准椭球面与大地水准面 地球上某点,常用大地坐标或称地理坐标表示,即用经度、纬度与高度表示。大地坐标的基准圈就是赤道。通过英国伦敦的格林尼治天文台的地球子午线称为0经度线,它与赤道的交点就是大地坐标的起算点。地球上一点的经度,就就是以格林尼治子午线与该点子午线间所截的赤道短弧所对的圆心角,常用λ表示。经度的计算就是以格林尼治子午线算起,向东与向西都就是0o~180o。向东称为东经,用E表示;向西称为西经,用W 表示。地球上一点的纬度,就是以赤道为基准,子午线在该点的法线与赤道面的交角为该点的纬度,用φ表示。纬线从赤道算起,向北向南都就是0o~90o。向赤道以北称为北纬,用N表示;向赤道以南称为南纬,用S表示。 地面上一点的高度H就是指该点的实际地形与基准椭球面之间的距离,即: H = N + h N为大地水准面高度;h为海拔高度。 2、2 坐标转换

坐标系向国家大地坐标系的转换完整版

坐标系向国家大地坐标 系的转换 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

北京54坐标系向国家2000大地坐标系的转换 摘要:2000国家坐标系统提高了测量的绝对精度,并且可以快速获取精确的三维地心坐标,能够提供高精度、地心、实用、统一的大地坐标系,自此以后的测量成果要求坐标系统采用2000国家大地坐标系,本文就北京54坐标系和2000国家大地坐标系原理和转换方法进行简单的分析。 1引言大地坐标系是地球空间框架的重要基础,是表征地球空间实体位置的三维参考基准,科学地定义和采用国家大地坐标系将会对航空航天、对地观测、导航定位、地震监测、地球物理勘探、地学研究等许多领域产生重大影响。建立大地坐标框架,是测量科技的精华,与空间导航乃至与经济、社会和军事活动均有密切关系,它是适应一定社会、经济和科技发展需要和发展水平的历史产物。过去受科技水平的限制,人们不得不使用经典大地测量技术建立局部大地坐标系,它的基本特点是非地心的、二维使用的。采用地心坐标系,即以地球质量中心为原点的坐标系统,是国际测量界的总趋势,世界上许多发达和中等发达国家和地区多年前就开始采用地心坐标系,如美国、加拿大、欧洲、墨西哥、澳大利亚、新西兰、日本、韩国等。我国也于2008年7月开始启用新的国家大地坐标系—2000国家大地坐标系。 2北京54系我国北京54坐标系是采用前苏联的克拉索夫斯基椭球参数(长轴6378245ra,短轴635686m,扁率1/298.3),并与前苏联1942年坐标系进行联测,通过计算建立了我国大地坐标系,定名为1954年北京坐标系。其坐标的原点不在北京,而是在前苏联的普尔科沃。

GPS坐标和国家大地坐标之间的转换

GPS坐标和国家大地坐标之间的转换 一、前言 WGS-84坐标系是目前GPS所采用的坐标系统,GPS所发布的星历参数就是基于此坐标系统的。WGS-84坐标系统的全称是World Geodical System-84(世界大地坐标系-84),它是一个地心地固坐标系统。WGS-84坐标系统由美国国防部制图局建立,于1987年取代了当时GPS所采用的坐标系统-WGS-72坐标系统而成为GPS的所使用的坐标系统。WGS-84坐标系的坐标原点位于地球的质心,轴指向BIH1984.0定义的协议地球极方向,轴指向BIH1984.0的启始子午面和赤道的交点。 采用椭球参数为:a=6 378 137m,f= 1/298.257 223 563。 北京54 坐标系、西安80 坐标系—属于参心坐标系, 北京54 坐标系采用克拉索夫斯基椭球参数,长轴a= 6 3 78 2 4 5 米, 扁率f=l : 2 98.3 ;西安80 大地系坐标系椭球参数采用国际大=地测量和地球物理联合19 7 5 后推荐的地球椭球参数, 长轴a= 6 3 7 8 140 米, 扁率f1 : 298.257,大地原点在我西安市径阳县永乐镇。西安80 坐标系的建立是在54 年北京坐标系的基础上完成的。 在实际的工作中,对于GPS的测量数据。我们需要将其转换成所需要的54或80坐标系,才能够使用。或是将其转换成相应的地方坐标系。在转换的过程中需要进行一系列的变换。本文将对其过程做详细的说明。 二、转换过程 (1)数据测量:在实际操作中,首先进行的是数据的观测。根据实际工作需要,采用相应的观测方法进行观测,得到合格的测量成果。本文主要是针对GPS控制网的转换来说明的。 (2)平差:在GPS控制网的测量工程中,在进行完基线测量(地面坐标和高程)后,需要对测量结果进行平差,得到相应的平差结果。下面对相应的条件平差①做具体说明: AV-W=0 [1] L#=L+V [2] 基础方程和它的解: 设有r个平差线性条件方程: [3]

MATLAB中的abc dq相坐标变换

坐标变换总结 姓名: 日期:2011.11.4

坐标变换的总结 一.由三项坐标系变换到两相旋转坐标系 1.三相到两相静止坐标系的变换首先,确定三相电压的相序: cos() 2cos()34cos()3A m B m c m u U wt u U wt u U wt ππ==- =- 在坐标图上表示三相到两相静止坐标系上的变换,如图所示: 图13-2s 变换 由上图,我们可以将A u 、B u 、c u 转化到两相静止坐标系上,具体等式如下: 211()3222()322A B C B C u u u u u αβ?=--????=-?? 插入系数2、 3是为了保证两相坐标系中合成矢量的模与各相电压的模相同。后面会推导为什么可以保证模不变。 整理成状态方程的形式,如下: 1112223022A B C u u u u u αβ????-- ???????=?????????-??????2.两相静止坐标系到两相旋转坐标系的变换 我们知道,在两相静止坐标系中,合成矢量是旋转的,我们令旋转坐标系的d 轴与旋转矢量重合,则可将其转换到旋转坐标系中。坐标变换如图所示:

图22s-2r 变换 此时,我们可以得到,两相静止坐标系到两相旋转坐标系的公式,其中θ一般取为A 相的相角。 cos sin sin cos d q u u u u αβθθθθ??????=??????-???? ??二.反向变换 1.若需要将旋转坐标系转化到静止坐标系上,只需相应的将d-q 向αβ-投影即 可,根据图二,我们可以得到: cos sin sin cos d q u u u u αβθθθθ????-??=???????????? 2.同理,根据图1,我们可以将αβ-分别投影到A 、B 、C 上,获得其逆变换: 102133221322A B C u u u u u αβ??????????????=-???????????????--???? 三.关于乘以2/3保持模不变的问题首先,我们已经能够确定了电压相序 cos() 2cos()34cos()3A m B m c m u U wt u U wt u U wt ππ==- =-经过变换后: 211()322 A B c u u u u α=--

空间大地坐标系与平面直角坐标系转换公式

§2.3.1 坐标系的分类 正如前面所提及的,所谓坐标系指的是描述空间位置的表达形式,即采用什么方法来表示空间位置。人们为了描述空间位置,采用了多种方法,从而也产生了不同的坐标系,如直角坐标系、极坐标系等。 在测量中常用的坐标系有以下几种: 一、空间直角坐标系 空间直角坐标系的坐标系原点位于参考椭球的中心,Z 轴指向参考椭球的北极,X 轴指向起始子午面与赤道的交点,Y 轴位于赤道面上且按右手系与X 轴呈90°夹角。某点在空间中的坐标可用该点在此坐标系的各个坐标轴上的投影来表示。空间直角坐标系可用图2-3来表示: 图2-3 空间直角坐标系 二、空间大地坐标系 空间大地坐标系是采用大地经、纬度和大地高来描述空间位置的。纬度是空间的点与参考椭球面的法线与赤道面的夹角;经度是空间中的点与参考椭球的自转轴所在的面与参考椭球的起始子午面的夹角;大地高是空间点沿参考椭球的法线方向到参考椭球面的距离。空间大地坐标系可用图2-4来表示:

图2-4空间大地坐标系 三、平面直角坐标系 平面直角坐标系是利用投影变换,将空间坐标空间直角坐标或空间大地坐标通过某种数学变换映射到平面上,这种变换又称为投影变换。投影变换的方法有很多,如横轴墨卡托投影、UTM 投影、兰勃特投影等。在我国采用的是高斯-克吕格投影也称为高斯投影。UTM 投影和高斯投影都是横轴墨卡托投影的特例,只是投影的个别参数不同而已。 高斯投影是一种横轴、椭圆柱面、等角投影。从几何意义上讲,是一种横轴椭圆柱正切投影。如图左侧所示,设想有一个椭圆柱面横套在椭球外面,并与某一子午线相切(此子午线称为中央子午线或轴子午线),椭球轴的中心轴CC ’通过椭球中心而与地轴垂直。 高斯投影满足以下两个条件: 1、 它是正形投影; 2、 中央子午线投影后应为x 轴,且长度保持不变。 将中央子午线东西各一定经差(一般为6度或3度)范围内的地区投影到椭圆柱面上,再将此柱面沿某一棱线展开,便构成了高斯平面直角坐标系,如下图2-5右侧所示。 图2-5 高斯投影 x 方向指北,y 方向指东。 可见,高斯投影存在长度变形,为使其在测图和用图时影响很小,应相隔一定的地区,另立中央子午线,采取分带投影的办法。我国国家测量规定采用六度带和三度带两种分带方法。六度带和三度带与中央子午线存在如下关系: 366 N L =中; n L 33=中 其中,N 、n 分别为6度带和3度带的带号。

高斯平面直角坐标系与大地坐标系相互转化

高斯平面直角坐标系与大地坐标系相互转化 高斯平面直角坐标系与大地坐标系转换 1. 高斯投影坐标正算公式(1) 高斯投影正算:已知椭球面上某点的大地坐标(L,B),求该点在高斯投影平面上的直角坐标(x,y),即(L,B)->(x,y)的坐标变换。(2) 投影变换必须满足的条件中央子午线投影后为直线; 中央子午线投影后长度不变; 投影具有正形性质,即正形投影条件。(3) 投影过程在椭球面上有对称于中央子午线的两点P 1 和P 2 ,它们的大地坐标分别为(L,B)及(l,B),式中l 为椭球面上P 点的经度与中央子午线(L 0 )的经度差:l=L-L 0 ,P 点在中央子午线之东,l 为正,在西则为负,则投影后的平面坐标一定为P 1 ’(x,y)和P 2 ’(x,-y)。(4) 计算公式 4 ' ' 2 2 3 4 ' ' 2 ' ' 2 ' ' ) 9 5 ( cos sin 2 sin 2 l t B B N Bl N X x 5 ' ' 4 2 5 5 ' ' 3 ' ' 2 2 3 ' ' ' ' ' ' ) 18 5 ( cos 120 ) 1 ( 6 cos l t t B N l t B N Bl N y 当要求转换精度精确至0.001m时,用下式计算: 6 ' ' 4 2 5 6 ' ' 4 ' ' 4 2 2 3 4 ' ' 2 ' ' 2 ' ' ) 58 61 ( cos sin 720 ) 4 9 5 ( cos sin 24 sin 2 l t t B B N l t B B N Bl N X x 5 ' ' 2 2 2 4 2 5 5 ' ' 3 ' ' 2 2 3 3 ' ' ' ' ' ' ) 58 14 18 5 ( cos 720 ) 1

大地坐标与空间坐标的互相转换··

大地坐标向空间坐标转换和空间坐标向大地坐标转换的c程 序 #include #include void main() { float a=6378137.000,b=6356752.3142,E=0.006694379990,pi=3.14159265; float B,L,N,H,X,Y,Z; float K,t0,t1,t2,P; int i; float B1,B2,B3,L1,L2,L3; printf("如果向进行大地坐标向空间坐标转换请输入1,进行空间坐标向大地坐标转换请输入0"); scanf("%d",&i); if(i) { printf("请输入经度:B1,B2,B3"); scanf("%f%f%f",&B1,&B2,&B3); B=(B1+B2/60+B3/3600)*pi/180; printf("请输入纬度:L1,L2,L3"); scanf("%f%f%f",&L1,&L2,&L3); L=(L1+L2/60+L3/3600)*pi/180; printf("请输入大地高:H"); scanf("%f",&H); N=a/sqrt(1-E*sin(B)*sin(B)); X=(N+H)*cos(B)*cos(L); Y=(N+H)*cos(B)*sin(L); Z=(N*(1-E)+H)*sin(B); printf("X=%f\n",X); printf("Y=%f\n",Y); printf("Z=%f\n",Z); } else {printf("请输入空间坐标:X,Y,Z"); scanf("%f%f%f",&X,&Y,&Z);

不同坐标系之间的变换

不同坐标系之间的变换 SANY GROUP system office room 【SANYUA16H-

§10.6不同坐标系之间的变换 10.6.1欧勒角与旋转矩阵 对于二维直角坐标,如图所示,有: ?? ? ?????????-=??????1122cos sin sin cos y x y x θθθθ(10-8) 在三维空间直角坐标系中,具有相同原点的两坐标系间的变换一般需要在三个坐标平面上,通过三次旋转才能完成。如图所示,设旋转次序为: ①绕1OZ 旋转Z ε角,11,OY OX 旋 转至0 0,OY OX ; ②绕0 OY 旋转Y ε角 10 ,OZ OX 旋转至0 2 ,OZ OX ; ③绕2OX 旋转X ε角, 0,OZ OY 旋转至22,OZ OY 。 Z Y X εεε,,为三维空间直角坐标变换的三个旋转角,也称欧勒角,与 它相对应的旋转矩阵分别为: ???? ? ?????-=X X X X X R εεεεεcos sin 0sin cos 00 01 )(1 (10-10)

????? ?????-=Y Y Y Y Y R εεεεεcos 0sin 010sin 0cos )(2 (10-11) ???? ? ?????-=10 0cos sin 0sin cos )(3Z Z Z Z Z R εεεεε (10-12) 令 )()()(3210Z Y X R R R R εεε= (10- 13) 则有: ???? ? ?????=??????????=??????????1110111321222)()()(Z Y X R Z Y X R R R Z Y X Z Y X εεε (10-14) 代入: ???? ??? ??? +-+++--=Y X Z Y X Z X Z Y X Z X Y X Z Y X Z X Z Y X Z X Y Z Y Z Y R εεεεεεεεεεεεεεεεεεεεεεεεεεεεεcos cos sin sin cos cos sin cos sin cos sin sin cos sin sin sin sin cos cos cos sin sin sin cos sin sin cos cos cos 0一般Z Y X εεε,,为微小转角,可取: sin sin sin sin sin sin sin ,sin ,sin 1cos cos cos =========Z Y Z X Y X Z Z Y Y X X Z Y X εεεεεεεεεεεεεεε 于是可化简

大地坐标和经纬度之间的换算完整版

大地坐标和经纬度之间 的换算 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

大地坐标和经纬度之间的换算 地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,我写一下一般的过程,希望对大家有点帮助. 大地座标-----→经纬度(地理坐标) 1,输入大地坐标数据,格式为 Y空格X,输入到文本就行 如下,原始的大地坐标由一8位的Y和一个7位的X组成, 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y,6位,X,7位 保存这个TXT的文本文件。 2,打开MAPGIS,启动坐标投影变形程序 接下来选择投影转换>>>>用户文件投影转换 点打开文件,打开刚才的大地坐标的文本文件, 设置输入数据的格式,点击用户投影参数,并完成设置。 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米 好了以为设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置 我们输出的经纬度的单位应该是DDDMMMSS。SS注意 点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀 下面是计算出的结果文件 XP为经度,1234234。357就是123度42分34。357秒, YP为纬度,403950。225就是40度39分50。255秒(纬度没有最多90,所以没有三位数) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 经纬度——→大地座标 输入文件格式如下, 这里面的数据前面的为经度,格式为DDDMMSS,后面的为纬度,格式为DDMMSS 接下来的转换过程和大地坐标转换一样,只要将刚才的用户转换参数和结果转换参数交换即可, 要注意分带号的确定,如果你不知道分带号,就应该先计算分带号,算法是 经度/3得到的整数为三度带的分带号 经度/6得到的整数为六度带的分带号 其中的XP为地图上的Y坐标,记得在前面加上带号,其中的YP为地图上的X坐标

基于matlab的坐标正反算

测量程序设计实验报告 实验名称:坐标正反算

实验三坐标正反算 一、实验目的 编写坐标正反算程序,并对格式化文件数据进行计算,验证程序。 二、实验内容 1、编写坐标正算程序 1)建立以xy_direct命名的函数,函数输入输出格式为 [x2,y2] = xy_direct(x1,y1,distance, azimuth) 度转度分秒: >> function dms= degree2dms(jiaodu) >>degree = fix(jiaodu); >>mimute = fix((jiaodu-degree)*60); >>second = ((jiaodu-degree)*60-mimute)*60; >>dms = degree+mimute/100+second/10000; 度分秒转度: >> function degree = dms2degree(jiaodu) >>degree = fix(jiaodu); >> mimute = fix((jiaodu-degree)*100); >>second = (jiaodu-degree-mimute/100)*10000; >>degree = degree+mimute/60+second/3600; 弧度转度: >> function dms=rad2dms(rad) >> rad=abs(rad); >>jiaodu=rad*180.0/pi; >> % l=fix(a) >> % b=(a-l)*60.0 >> % m=fix(b) >> % a=l+m/100.0+(b-m)*0.006

常用坐标系之间的关系与转换

7.5 常用坐标系之间的关系与转换 一、大地坐标系和空间大地直角坐标系及其关系 大地坐标系用大地纬度企丈地经度L 和丈地髙H 来表示点的位置°这种坐标系是经 典大地 测量甬:両用座标紊7屜据地图投影的理论,大地坐标系可以通过一定的投影转 化为投影平面上的直角坐标系,为地形测图和工程测量提供控制基础。同时,这种坐标系 还是研究地球形状和大小的 种有用坐标系°所以大地坐标系在大地测量中始终有着重要 的作用. 空间大地直角坐标系是-种以地球质心为原点购亘墮?坐标系,一般用X 、化Z 表 示点 BSSTSTT 逐碇SS 範菇飞両H 绕禎扭转冻其轨道平面随时通过 地球质心。对它们的跟踪观测也以地球质心为坐标原点,所以空间大地直角坐标系是卫星 大地测量中一种常用的基本坐标系。现今,利用卫星大地测量的手段*可以迅速地测定点 的空间大地直角坐拯,广泛应用于导航定位等空间技术。同时经过数学变换,还可求岀点 的大地坐标I 用以加强和扩展地面大地网,进行岛屿和洲际联测,使传统的大地测量方法 发生了深刻的变化,所以空间大地宜角坐标系对现今大地测量的发展’具有重要的意义。 、大地坐标系和空间大地直角坐标系的转换 如图7- 23所示’尸点的位置用空间 大地 直角坐标〔X, Y, Z)表示,其相应 的大地坐 标为(E, L)a 将该图与图?一5 上式表明了 2种基本坐标系之间的关系。 加以比较可见,图7-5中的子午椭圆平面 相 当于图7-23中的OJVP 平面.其中 PPz=Z.相 当于图7-5中的j7;OP 3相当 丫于图7-5中的 仏两平面的经度乙可视为 相同,等于"叽 于是可以直接写岀 X=jrcQsi f Y=jrsinL, Z=y 将式(7-21).式(7-20)分别代入上式, 井考虑 式(7-26)得 X=Ncos^cosZr ” Y =NcQsBsinL > (7—78) Z=N (1—护〉sin^ ; BB 7-23

Matlab_Simulink中Clark变换和Park变换的深度总结

Matlab_Simulink 中Clark 变换和Park 变换的深度总结 最近搞三相并网逆变系统,对这个坐标变换产生了很多疑惑。调模型,排错,最后发现坐标变换这个地方出来的波形总是和我设想的不一样。以前认为坐标变换都是死的,带公式即可,经过这几天的研究,发现这里面真的有些方法。基于MATLAB/Simulink 中的模块,我也发现了Simulink 中和一些书上不一样的地方。而且现在这个坐标变换每本书上的表示方法都不一样,甚至字母都有好多种。下面我想基于MATLAB/Simulink 深刻的总结一下三相交流控制系统常用的两个变换Clark (3-2)变换和Park (2-2)变换。 首先来搞清楚为什么要用这两个变换,在三相交流系统中,常用的控制器还是经典的PI 调节器。PI 调节器可以对直流量进行无净差的调节,而交流量就不行,所以需要将三相交流分量转化为两项直流分量加以控制。 接下来看看Clark 变换(3-2)原理。由于三相分量幅值相等,相位相差120,角速度相等,因此三相分量存在信息冗余,这时,可以去掉一项将其化为两相,这就是Clark 变换的作用。由于两项分量所在的坐标轴是静止的,所以我们把此坐标轴称为两相静止坐标系。也就是说平面上的原来基于三相静止坐标系的矢量,可以切换到两相静止坐标系表示。变换的原则是投影原则+等幅值等效原则(DPC 时用功率等效原则)。 令A 与alfa 轴重合,按照变换原则,计算投影ABC 分量在alfa 、beta 上的投影,按照 等复制变换原则导出变换矩阵方程如下。 11122230A B C αβ????-- ????? =???? ???? ??? Simulink 中的3/2变换也是基于此变换进行的。但是,在电气工程中为大家熟知的三相正序的相序是,A 为0,B 为-120,C 为120(也可以是-240).如果按照图中所标注的方向进行坐标变换,那一定要将相序变为负序,也就是说A 为0,B 为120,C 为-120. 如果坚持用传统正序,那么再按上式变换之后的坐标进行变换的话,beta 轴就反向了。也就是说,采用A 为0,B 为-120,C 为120的相序,利用上面的变换方程进行变换的结果是,beta 滞后alfa 90°.

大地坐标转换为施工坐标

****大桥关于大地坐标 转化为施工坐标的报告 ****监理公司: ****大桥为特大型桥梁,对测量精度要求高、施工难度大。在实际施工测量当中,例如承台等结构尺寸比较简单的结构,在模板的安装的时候需要不断的测量、调整,直到满足要求。在上述过程中需要用放样模式来确定设计位置,待模板调整后又要切换到测量模式检查坐标的偏差,如果没有满足要求,又需要切换到放样模式来确定设计位置。如此反复,给我们施工放样带来了不必要的时间浪费,根据特大跨径桥梁施工的特点方便大桥测量定位,我项目部拟大地坐标系转化为独立的施工坐标系。 转化方法及过程 从国家坐标系转换到施工坐标系,具体转换公式: ()()θθsin cos 11?-+?-=Y Y X X E ()()θθsin cos 11?-+?--=X X Y Y F (做了修改) 施工坐标系以桥轴线为E 轴,且以桩号增加方向为正向;以垂直于E 轴为F 轴,水平向右为正向。高程采用设计提供的85黄海高程,式中E 、F 为转换后的施工坐标系坐标;X 、Y 为国家坐标系下坐标, 1X 、1Y 为施工坐标原点在国家坐标系下坐标;θ表示桥轴正向在国家 坐标系下的方位角。 本桥梁起点桩号为K119+375.781,大地坐标为X: 5034.6566,Y: 5380.6574,方位角为289°2′58″=289.289.0494444°

具体转化过程如下: 以DQ06为例 DQ06大地坐标为X: 5157.7791,Y: 4351.265。 ()()θθsin cos 11?-+?--=X X Y Y F ()()0494444 .289sin 5034.65665157.77910494444.289cos 5380.65744351.265?--?-= 2052.1013=(做了修改) ()()θθsin cos 11?-+?-=Y Y X X E ()()0494444 .289sin 5380.65744351.2650494444.289cos 5034.65665157.7791?-+?-= 1972.219-= 见下图: (0,0) 由上可知,DQ06的施工坐标为(X:1013.205,Y:-219.197)。 用以上公式同样可以求出控制点施工坐标,列表如下:

大地坐标与大地空间坐标转换工具

#include "stdafx.h" #include #include #include "resource.h" #include "MainDlg.h" #include #include BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { return TRUE; } void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { double a=0; double e2=0; switch(id) { case IDC_B1: { a=6378245.0000; e2=0.00669342162297; if(a==0) { MessageBox(hwnd,TEXT("请选择坐标系"),TEXT("警告"),MB_OK); } else{

空间直角坐标系与空间大地坐标系的相互转换及其C++源程序

空间直角坐标系与空间大地坐标系的相互转换 1.空间直角坐标系/笛卡尔坐标系 坐标轴相互正交的坐标系被称作笛卡尔坐标系。三维笛卡尔坐标系也被称为空间直角坐标系。在空间直角坐标系下,点的坐标可以用该点所对应的矢径在三个坐标轴上的投影长度来表示,只有确定了原地、三个坐标轴的指向和尺度,就定义了一个在三维空间描述点的位置的空间直角坐标系。 以椭球体中心O为原点,起始子午面与赤道面交线为X轴,在赤道面上与X轴正交的方向为Y轴,椭球体的旋转轴为Z轴构成右手坐标系O.XYZ,在该坐标系中,P点的位置用X,Y,Z表示。 在测量应用中,常将地球空间直角坐标系的坐标原点选在地球质心(地心坐标系)或参考椭球中心(参心坐标系),z轴指向地球北极,x轴指向起始子午面与地球赤道的交点,y轴垂直于XOZ面并构成右手坐标系。 空间直角坐标系 2.空间大地坐标系 由于空间直角坐标无法明确反映出点与地球之间的空间关系,为了解决这一问题,在测量中引入了大地基准,并据此定义了大地坐标系。大地基准指的是用于定义地球参考椭球的一系列参数,包括如下常量: 2.1椭球的大小和形状

2.2椭球的短半轴的指向:通常与地球的平自转轴平息。 2.3椭球中心的位置:根据需要确定。若为地心椭球,则其中心位于地球质心。 2.4本初子午线:通过固定平极和经度原点的天文子午线,通常为格林尼治子午线。 以大地基准为基础建立的坐标系被称为大地坐标系。由于大地基准又以参考椭球为基准,因此,大地坐标系又被称为椭球坐标系。大地坐标系是参心坐标系,其坐标原点位于参考椭球中心,以参考椭球面为基准面,用大地经度L、纬度B 和大地高H表示地面点位置。过地面点P的子午面与起始子午面间的夹角叫P 点的大地经度。由起始子午面起算,向东为正,叫东经(0°~180°),向西为负,叫西经(0°~-180°)。过P点的椭球法线与赤道面的夹角叫P点的大地纬度。由赤道面起算,向北为正,叫北纬(0°~90°),向南为负,叫南纬(0°~-90°)。从地面点P沿椭球法线到椭球面的距离叫大地高。大地坐标坐标系中,P点的位置用L,B表示。如果点不在椭球面上,表示点的位置除L,B外,还要附加另一参数——大地高H。 空间大地坐标系 3.空间直角坐标与大地坐标间的转换 3.1大地坐标转换为空间直角坐标

基于matlab的大地坐标与直角坐标间的转换精编版

测量程序设计 实验报告 实验名称:大地坐标与空间直角坐标的 换算

实验四 大地坐标与空间直角坐标的换算 一、实验目的 编写大地坐标与空间直角坐标相互转换的程序,并对格式化文件数据进 行计算,验证程序。 二、实验内容: 1、大地坐标向空间直角坐标换算 转换公式: B h e N z L B h N y L B h N x sin ])1([sin cos )(cos cos )(2+-=+=+= (1) 其中:L 为经度,B 为纬度,h 为大地高,B e a N 22sin 1-=为卯酉圈曲率半径, a b a e 2 2-=为第一偏心率,a 为旋转椭球长半轴,b 为短半轴。 WGS84椭球参数:长半轴 a = 6378137 扁率 f = 1/298.257223563 根据上式创建以geo 2xyz 命名的函数,函数输入输出格式为 [x, y, z] = geo 2xyz (L, B, h) 2、空间直角坐标向大地坐标换算 根据式(1)推导大地坐标向空间直角坐标转换公式: N B y x h y x B Ne z B x y L -+=++==cos )sin arctan() /arctan(2 2222 注意计算纬度时需要用到迭代,可用)arctan(22y x b az B +=作为初始值。 创建以xyz2geo 命名的函数,函数输入输出格式为 [L, B, h] = xyz 2geo (x, y, z)

三、实验步骤 1、大地坐标向空间直角坐标换算 主程序: %%大地坐标向空间直角坐标换算 %函数的输入输出格式为[x,y,z]=geo2xyz(L,B,h) [filename,pathname] = uigetfile('*.txt','请选择打开的数据文件'); file = [pathname, filename]; data = importdata(file); L=data.data(:,1); B=data.data(:,2); h=data.data(:,3); [x,y,z]=geo2xyz(L,B,h); A=[x,y,z]; A=A'; [filename_out,pathname_out] = uiputfile('*.txt','请选择要输出数据文件'); fileout = [pathname_out, filename_out]; fid = fopen(fileout,'wt'); fprintf(fid,' x y z\n'); fprintf(fid,'%15.7f %15.7f %15.7f\n',A); close('all'); 函数: function [x,y,z]=geo2xyz(L,B,h) %大地坐标经纬度转换成空间直角坐标 B=dms2rad(B); L=dms2rad(L); a=6378137; %a是长半轴 f=1/298.257223563; %f是扁率 b=a-a*f; e=sqrt(a^2-b^2)/a; N=a./(sqrt(1-e^2.*(sin(B)).^2)); %N为卯酉圈半径率,e为第一偏心率 x=(N+h).*cos(B).*cos(L); y=(N+h).*cos(B).*sin(L); z=(N*(1-e^2)+h).*sin(B); end function rad=dms2rad(jiaodu) %度分秒->弧度(rad) degree = fix(jiaodu); mimute = fix((jiaodu-degree)*100);

大地坐标与直角空间坐标转换计算公式

大地坐标与直角空间坐标转换计算公式 一、参心大地坐标与参心空间直角坐标转换 1名词解释: A :参心空间直角坐标系:a)以参心0为坐标原点; b)Z 轴与参考椭球的短轴(旋转轴)相重合;c)X 轴与起始子午面和赤道的交线重合; d)Y 轴在赤道面上与X 轴垂直.构成右手直角坐标系0-XYZ ;e) 地面点P 的点位用(X.Y.Z )表示; B :参心大地坐标系:a)以参考椭球的中心为坐标原点.椭球的短轴与参考椭球旋转轴重合;b)大地纬度B :以过地面点的椭球法线与椭球赤道面的夹角为大地纬度B ;c)大地经度L :以过地面点的椭球子午面与起始子午面之间的夹角为大地经度L ;d)大地高H :地面点沿椭球法线至椭球面的距离为大地高H ;e) 地面点的点位用(B.L.H )表示。 2 参心大地坐标转换为参心空间直角坐标: ?? ? ?? +-=+=+=B H e N Z L B H N Y L B H N X sin *])1(*[sin *cos *)(cos *cos *)(2公式中.N 为椭球面卯酉圈的曲率半径.e 为椭球的第一偏心率.a 、b 椭球的长短半径.f 椭球扁率.W 为第一辅助系数 或 a b a e 2 2-= f f e 1 *2-=W a N B W e = -=22 sin *1(西安80椭球参数: 长半轴a=6378140±5(m )

短半轴b=6356755.2882m 扁 率α=1/298.257 3 参心空间直角坐标转换参心大地坐标 [ ] N B Y X H H e N Y X H N Z B X Y L -+= +-++==cos ) )1(**)() (*arctan(arctan(2 22 2 2 二 高斯投影及高斯直角坐标系 1、高斯投影概述 高斯-克吕格投影的条件:1. 是正形投影;2. 中央子午线不变形 高斯投影的性质:1. 投影后角度不变;2. 长度比与点位有关.与方向无关; 3. 离中央子午线越远变形越大 为控制投影后的长度变形.采用分带投影的方法。常用3度带或6度带分带.城市或工程控制网坐标可采用不按3度带中央子午线的任意带。 2、高斯投影正算公式: 52224253 2236 425442232)5814185(cos 120 )1(cos 6 cos )5861(cos sin 720 495(cos sin 24cos sin 2l t t t B N l t B N Bl N y l t t B B N l t B B N Bl B N X x ηηηηη-++-++-+=+-+++-++ =)3、高斯投影反算公式:

大地坐标和经纬度之间的换算

MAPGIS应用——大地坐标和经纬度之间的换算(2009-04-20 15:57:08) 标签:杂谈分类:学海无涯 地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,我写一下一般的过程,希望对大家有点帮助. 大地座标-----→经纬度(地理坐标) 1,输入大地坐标数据,格式为 Y空格X,输入到文本就行 如下,原始的大地坐标由一8位的Y和一个7位的X组成, 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y(6位),X(7位)如下图:

保存这个TXT的文本文件。 2,打开MAPGIS,启动坐标投影变形程序 接下来选择投影转换——>用户文件投影转换

点打开文件,打开刚才的大地坐标的文本文件,

设置输入数据的格式,点击用户投影参数,并完成设置。 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米。

填好了以后设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置: 我们输出的经纬度的单位应该是DDDMMMSS.SS注意点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀

下面是计算出的结果文件 XP为经度,1234234.357就是123度42分34.357秒, YP为纬度,403950.225就是40度39分50.255秒(纬度没有最多90,所以没有三位数) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 经纬度——→大地座标 输入文件格式如下, 这里面的数据前面的为经度,格式为DDDMMSS,后面的为纬度,格式为DDMMSS 接下来的转换过程和大地坐标转换一样,只要将刚才的用户转换参数和结果转换参数交换即可。 要注意分带号的确定,如果你不知道分带号,就应该先计算分带号,算法是: 经度/3得到的整数为三度带的分带号

MATLAB程序北京54转换为WGS84坐标(GPS)

%北京54转换为WGS84坐标(GPS) %X=3459174.0300 Y=36503163.4500 X=3459181.0255; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%输入X值 Y=36503206.2860; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%输入X值 x=X; y=Y-fix(Y/1000000)*1000000-500000; b=x*3600*180/pi/6367558.4969; T=(cos(b*pi/180/3600))^2; Bf=b+(50221746+(293622+(2350+22*T)*T)*T)*sin(b*pi/180/3600)*cos(b*pi/180/3600)*3600* 180/pi/10^10; Q=(cos(Bf*pi/180/3600))^2; Nf=6399698.902-[21562.267-(108.973-0.612*Q)*Q]*Q; Z=y/(Nf*cos(Bf*pi/180/3600)); b2=(0.5+0.003369*Q)*sin(Bf*pi/180/3600)*cos(Bf*pi/180/3600); b3=0.333333-(0.166667-0.001123*Q)*Q; b4=0.25+(0.16161+0.00562*Q)*Q; b5=0.2-(0.1667-0.0088*Q)*Q; B=Bf-[1-(b4-0.12*Z^2)*Z^2]*Z^2*b2*180*3600/pi; L=[1-(b3-b5*Z^2)*Z^2]*Z*180*3600/pi; B1=fix(B/3600); B2=fix((B-B1*3600)/60); B3=B-B1*3600-B2*60; L1=fix(L/3600); L2=fix((L-L1*3600)/60); L3=L-L1*3600-L2*60; L4=fix(Y/1000000)*3+L1; fprintf('\n\n') fprintf('p点的WGS84坐标:%f\t%f\t%f\t\n',B1,B2,B3) fprintf('p点的WGS84坐标:%f\t%f\t%f\t\n',L4,L2,L3)

相关主题
文本预览
相关文档 最新文档