大地坐标及直角空间坐标转换计算公式_第1页
大地坐标及直角空间坐标转换计算公式_第2页
大地坐标及直角空间坐标转换计算公式_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. -. . word.zl-大地坐标与直角空间坐标转换计算公式一、参心大地坐标与参心空间直角坐标转换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:地

2、面点沿椭球法线至椭球面的距离为大地高h;e)地面点的点位用b.l.h表示。2 参心大地坐标转换为参心空间直角坐标:bhenzlbhnylbhnxsin*)1 (*sin*cos*)(cos*cos*)(2公式中 .n 为椭球面卯酉圈的曲率半径.e为椭球的第一偏心率.a、b 椭球的长短半径.f 椭球扁率 .w 为第一辅助系数abae22或ffe1*2wanbwe22sin*1(80 椭球参数:长半轴 a=6378140 5m. -. . word.zl-短半轴 b=6356755.2882m 扁 率 =1/298.2573 参心空间直角坐标转换参心大地坐标nbyxhhenyxhnzbxylcos

3、)1 (*)()(*arctan()arctan(22222二 高斯投影及高斯直角坐标系1、高斯投影概述高斯 -克吕格投影的条件:1. 是正形投影;2. 中央子午线不变形高 斯 投 影 的 性 质 : 1. 投 影 后 角 度 不 变 ; 2. 长 度 比 与 点 位 有 关 .与 方 向 无 关 ;3. 离中央子午线越远变形越大为控制投影后的长度变形.采用分带投影的方法。常用3 度带或 6 度带分带 .城市或工程控制网坐标可采用不按3 度带中央子午线的任意带。2、高斯投影正算公式:522242532236425442232)5814185(cos120)1(cos6cos)5861(coss

4、in720495(cossin24cossin2ltttbnltbnblnylttbbnltbbnblbnxx)3、高斯投影反算公式:. -. . word.zl-4422222242224222245906136019351211286242851201)21(611cos1fffffffffffffffffffffffnyttnyttnyymtbbnytttnytnybl1 坐标转换简介坐标系统之间的坐标转换既包括不同的参心坐标之间的转换.或者不同的地心坐标系之间的转换 .也包括参心坐标系与地心坐标系之间的转换以及一样坐标系的直角坐标与大地坐标之间的坐标转换.还有大地坐标与高斯平面坐标之间

5、的转换。在两个空间角直坐标系中.假设其分别为o-xyz和 o-xyz. 如果两个坐标系的原点一样.通过三次旋转 .就可以使两个坐标系重合;如果两个直角坐标系的原点不在同一个位置.通过坐标轴的平移和旋转可以取得一致;如果两个坐标系的尺度也不尽一致.就需要再增加一个尺度变化参数;而对于大地坐标和高斯投影平面坐标之间的转换.那么需要通过高斯投影正算和高斯投影反算.通过使用中央子午线的经度和不同的参考椭球以及不同的投影面的选择来实现坐标的转换。如何使用 arcgis 实现 wgs84 经纬度坐标到bj54高斯投影坐标的转换?这是很多从事gis 工作或者测绘工作者普遍遇到的问题。本文目的在于帮助用户解决

6、这个问题。我们通常说的wgs-84 坐标是指经纬度这种坐标表示方法.54 坐标通常是指经过高斯投影的平面直角坐标这种坐标表示方法。为什么要进展坐标转换?我们先来看两组参数.如表 1所示:表 1 bj54与 wgs84 基准参数参考椭球体长半轴短半轴扁率bj54基准参数krasovsky_194063782456356863.0188298.3wgs84 基准参数wgs 8463781376356752.3142298.257224很显然 .wgs84与 bj54是两种不同的大地基准面.不同的参考椭球体.因而两种地图下.同一个点的坐标是不同的.无论是三度带六度带坐标还是经纬度坐标都是不同的。当要

7、把gps接收到的点 wgs84 坐标系统的叠加到bj54坐标系统的底图上.那就会发现这些gps 点不能准确的在它该在的地方.即“与实际地点发生了偏移。这就要求把这些gps 点从 wgs84的坐标系统转换成bj54的坐标系统了。有关 wgs84与 bj54的坐标转换问题.实质是 wgs-84 椭球体到 bj54椭球体的转换问题。如果我们是需要把wgs84 的经纬度坐标转换成bj54的高斯投影坐标.那就还会涉及到投影变换问题。因此.这个转换过程 .一般的 gps 数据处理软件都是采用下述步骤进展的:1 b.l84 x.y.z 84.空间大地坐标到空间直角坐标的转换。. -. . word.zl-2

8、x.y.z 84x.y.z 54.坐标基准的转换.即 datum 转换。 通常有三种转换方法:七参数、简化三参数、molodensky。3 x.y.z 54 b.l54.空间直角坐标到空间大地坐标的转换。4 b.l54 x.y54. 高斯投影正算。从以上步骤不难看出.转换的关键是第二步.转换的参数。鉴于我国曾使用不同的坐标基准bj54、state80 、correct54.各地的重力值又有很大差异.所以很难确定一套适合全国且精度较好的转换参数。在wgs-84 坐标和 54坐标之间是不存在一套转换参数可以全国通用的.在每个地方会不一样。必须了解 .在不同的椭球之间的转换是不严密的。那么.两个椭球

9、间的坐标转换应该是怎样的呢?一般而言比拟严密的是用七参数法.即 3 个平移因子 x 平移 .y 平移 .z 平移 .3个旋转因子 x 旋转 .y 旋转 .z 旋转 .一个比例因子也叫尺度变化k。国参数来源的途径不多 .一般当地测绘部门会有。通行的做法是: 在工作区找三个以上的点.利用点的bj54坐标和所测 wgs84 坐标 .通过一定的数学模型.求解七参数。假设多项选择几个点.通过平差的方法可以获得较好的精度。如果区域围不大.最远点间的距离不大于30km经历值 .这可以用三参数 .即只考虑3 个平移因子x 平移 .y 平移 .z 平移 .而将旋转因子及比例因子x 旋转.y 旋转 .z 旋转 .

10、尺度变化k 都视为 0.所以三参数只是七参数的一种特例。54 和 80也是两种不同的大地基准面.不同的参考椭球体.他们之间的转换也是同理。在 arcgis 中提供了三参数、七参数转换法。而在同一个椭球里的转换都是严密的.在同一个椭球的不同坐标系中转换需要用到四参数转换.举个例子 .在既有 54 坐标又有坐标.在这两种坐标之间转换就用到四参数 .计算四参数需要两个点2 arcgis 坐标转换例子2.1 应注意问题使用 arcgis 如何实现wgs84 经纬度坐标到bj54高斯投影坐标的转换呢?在arcgis中.这个坐标转换步骤简化了.用户只需要两个步骤就能够直接从最初的wgs84 经纬度坐标转换

11、到 bj54高斯投影坐标。这就是arcgis 的强大之处。接下来 .我们做一个例子。假设我们已经知道了7 参数 .应该如何操作呢?在具体的操作前.请大家一定注意以下三点:wgs84的经纬度坐标值是用度来表示.而不能是度分秒表示七参数的平移因子单位是米.旋转因子单位是秒.比例因子单位是百万。在 arcgis 中.7参数法的名字是coordinate_frame 方法。有人在用 arcgis 进展不同椭球体间的坐标转换时.转换出来的结果不对.然后就写文章说变形如何如何.很可能是由于他们没有注意上面这三个关键的问题造成的。2.2 转换步骤a、定义 7 参数的地理转换create custom geo

12、graphic transformation在 arctool 中翻开 create custom geographic transformation 工具 .如图 1 所示:. -. . word.zl-在弹出的窗口中.输入一个转换的名字.如 wgs84tobj54 。在定义地理转换方法下面.在method 中选择适宜的转换方法如coordinate_frame.然后输入平移参数、旋转角度和比例因子 .如图 2 所示:. -. . word.zl-b、投影变换翻开工具箱下的projections and transformationsfeatureproject.在弹出的窗口中输入要转换的数

13、据以及output coordinate system.然后输入第一步自定义的地理坐标系如wgs84tobj54. 开场投影变换 .如图 3 所示:点击“确定.完成坐标转换。3完毕语我国现已启用新的坐标系统2000大地坐标系 .2000大地坐标系与现行大地坐标系转换、衔接的过渡期仍需一段较长时期.在实际工作、工程中还遇到不同坐标系之间转换.本文针对在生产中从事测绘工作遇到的坐标转换问题提供解决方法和经历.希望对同行有所参考。【参考文献】 1 孔祥元、郭际明、宗泉.?大地测量学根底?.大学 .第一版 .2001年 9 月2 征航、黄劲松.?gps测量与数据处理?.大学 .第一版 .2005年 3

14、 月3 mapgis 使用教程大地坐标空间直角坐标转换(2009-10-22 21:12:41)标签:杂谈程序计算大地坐标与空间直角坐标转换#include #include #define pi 3.795 . -. . word.zl-double a,b,c,b,l,n,e,x,y,z,w,h; int choice; double b1=0.0,b2=0.0; double delta=0.0; int main() printf(please insert long r an); scanf(%f,&a); printf(please insert short r bn );

15、 scanf(%f,&b); e=sqrt(a*a-b*b)/a; c=a*a/b; printf(1kongzhitodadin2daditokongzhi0exit); scanf(%d,&choice); while(choice!=0) if(choice=2) printf(jingdul); scanf(%f,&l); printf(weidub); scanf(%f,&b); printf(gaoduh); scanf(%f,&h); w=sqrt(1-e*e*sin(b)*sin(b); n=a/w; x=(n+h)*cos(b)*cos

16、(l); y=(n+h)*cos(b)*sin(l); z=(n*(1-e*e)+h)*sin(b); printf(x=%f,y=%f,z=%f,x,y,z); if(choice=1) printf(zuobiao:nx=); scanf(%f,&x); printf(zuobiao:ny=); scanf(%f,&y); printf(zuobiao:nz=); scanf(%f,&z); l=atan(y/x); / double pp2=z; b1=atan(z/sqrt(x*x+y*y); delta=pi/(*60*60*1000.0); . -. . w

17、ord.zl- while(b1-b2)=delta) b2=b1; b1=atan(z+n*e*e*sin(b1)/sqrt(x*x+y*y); b=b1; h=z/sin(b)-n*(1-e*e); printf(l=%f,b=%f,h=%f); else printf(enter error,please enter again); printf(1kongzhitodadin2daditokongzhi0exit); scanf(%d,&choice); return 0; / 高斯投影正、反算 / 高斯投影正、反算/6度带宽54 年坐标系/ 高斯投影由经纬度 (unit:dd

18、)反算大地坐标 (含带号 .unit:metres) void gaussprojcal(double longitude, double latitude, double *x, double *y) int projno=0; int zonewide; /带宽 double longitude1,latitude1, longitude0,latitude0, x0,y0, xval,yval; double a,f, e2,ee, nn, t,c,a, m, ipi; ipi = 0.99433; /3.98/.0; zonewide = 6; /6度带宽 a=6378245.0; f

19、=1.0/298.3; /54 年坐标系参数. -. . word.zl- /a=6378140.0; f=1/298.257; /80 年坐标系参数 projno = (int)(longitude / zonewide) ; longitude0 = projno * zonewide + zonewide / 2; longitude0 = longitude0 * ipi ; latitude0=0; longitude1 = longitude * ipi ; / 经度转换为弧度 latitude1 = latitude * ipi ; / 纬度转换为弧度 e2=2*f-f*f; e

20、e=e2*(1.0-e2); nn=a/sqrt(1.0-e2*sin(latitude1)*sin(latitude1); t=tan(latitude1)*tan(latitude1); c=ee*cos(latitude1)*cos(latitude1); a=(longitude1-longitude0)*cos(latitude1); m=a*(1-e2/4-3*e2*e2/64-5*e2*e2*e2/256)*latitude1-(3*e2/8+3*e2*e2/32+45*e2*e2*e2/1024)*sin(2*latitude1) +(15*e2*e2/256+45*e2*e2

21、*e2/1024)*sin(4*latitude1)-(35*e2*e2*e2/3072)*sin(6*latitude1); xval = nn*(a+(1-t+c)*a*a*a/6+(5-18*t+t*t+72*c-58*ee)*a*a*a*a*a/120); yval = m+nn*tan(latitude1)*(a*a/2+(5-t+9*c+4*c*c)*a*a*a*a/24 +(61-58*t+t*t+600*c-330*ee)*a*a*a*a*a*a/720); x0 = 1000000l*(projno+1)+500000l; y0 = 0; . -. . word.zl- xv

22、al = xval+x0; yval = yval+y0; *x = xval; *y = yval; / 高斯投影由大地坐标 (unit:metres) 反算经纬度 (unit:dd) void gaussprojinvcal(double x, double y, double *longitude, double *latitude) int projno; int zonewide; /带宽 double longitude1,latitude1, longitude0,latitude0, x0,y0, xval,yval; double e1,e2,f,a, ee, nn, t,c

23、, m, d,r,u,fai, ipi; ipi = 0.99433; /3.98/.0; a = 6378245.0; f = 1.0/298.3; /54 年坐标系参数 /a=6378140.0; f=1/298.257; /80 年坐标系参数 zonewide = 6; /6度带宽 projno = (int)(x/1000000l) ; / 查找带号 longitude0 = (projno-1) * zonewide + zonewide / 2; longitude0 = longitude0 * ipi ; / 中央经线 x0 = projno*1000000l+500000l; y0 = 0; xval = x-x0; yval = y-y0; / 带大地坐标 e2 = 2*f-f*f; . -. . word.zl- e1 = (1.0-sqrt(1-e2)/(1.0+sqrt(1-e2); ee = e2/(1-e2); m = yval; u = m/(a*(1-e2/4-3*e2*e2/64-5*e2*e2*e2/256); fai = u+(3*e1/2-27*e1*e1*e1/32)*sin(2*u)+(21*e1*e1/16-55*e1*e1*e1*e1/32)*sin(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论