基于MATLAB的WGS84坐标向北京54坐标转换
WGS84座标与北京54坐标的转换(2003)

GARMIN GPS60所测WGS84坐标转换至北京54坐标或西安80坐标的方法一、坐标转换坐标表示方法有:经纬度和高程、空间直角坐标、平面坐标和高程等三种。
WGS-84坐标为经纬度和高程,北京54坐标是平面坐标和高程。
在同一个椭球里的坐标转换是严密的,而在不同的椭球之间的转换是不严密的。
WGS-84坐标和北京54坐标之间是不存在一套转换参数可以全国通用的,在每个地方会不一样,因为它们是两个不同的椭球基准。
两个椭球间的坐标转换:一般而言比较严密的是用七参数法(包括布尔莎模型,一步法模型,海尔曼特等),即X平移,Y平移,Z平移,X旋转,Y旋转,Z旋转,尺度变化K。
要求得七参数就需要在一个地区需要3个以上的已知点,如果区域范围不大,最远点间的距离不大于30Km(经验值),这可以用三参数(莫洛登斯基模型),即X平移,Y平移,Z 平移,而将X旋转,Y旋转,Z旋转,尺度变化K视为0,所以三参数只是七参数的一种特例。
在一个椭球的不同坐标系中转换可能会用到平面转换,现阶段一般分为四参数和平面网格拟合两种方法,以四参数法在国内用的较多。
另外,还有高程拟合的问题,大地水准面模型在国内用户中很少会用到,但在国际上已经是标准之一,本软件提供最常用的EGM96模型和Geoid99模型。
二、转换步骤1.采集WGS84坐标收集测区控制点坐标或明显地物标志点若干,用GARMIN GPS60测定测区的这些点的WGS84坐标。
2.计算GARMIN GPS60校正参数①打开COORD GM程序②新建坐标转换文件③根据所测测区的WGS84坐标设定地图投影参数,设定中央子午线④根据测区大小选定三参数法或七参数,并计算得到椭球转换参数⑤保存转换参数,下次使用时,打开文件调入既可3.将椭球转换参数输入GARMIN GPS60①MENU→设置→单位→位置格式选“自定义格式”,根据测区的经纬度坐标设定中央子午线,如: E 117°00.000′,其他用默认值②MENU→设置→坐标系统选“User”,DX,DY,DZ分别输入2、④中计算所得的X、Y、Z平移参数;DA,DF分别是两个坐标系椭球体半径和曲率的差值,WGS84转为北京54为:-108m,+0.00000050WGS84转为西安80为:-3m,0(待查)设定完毕后GARMIN GPS60所示坐标将与所用底图坐标系统完全统一。
基于MATLAB的七参数坐标系统转换问题分析(精)

基于 MATLAB 的七参数法坐标系统转换问题分析 1张鲜妮 21, ,王磊 21,1、中国矿业大学环境与测绘学院,江苏徐州 (2210082、江苏省资源环境信息工程重点实验室,江苏徐州 (221008E-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[。
本文主要分析讨论是基于七参数转换模型, 分析工具是MATLAB 软件。
WGS84与BJ54坐标系转换代码

public class CoordTrans7Param{public double[,] values=new double[7,1];//{{dx},{dy},{dz},{rx},{ry},{rz},{k}};//public double dx,dy,dz,rx,ry,rz,k;public void Set4Param(double dx,double dy,double dz,double k){this.dx=dx;this.dy=dy;this.dz=dz;this.k=k;this.rx=this.ry=this.rz=0;}public void SetRotationParamRad(double rx,double ry,double rz){this.rx=rx;this.ry=ry;this.rz=rz;}public void SetRotationParamMM(double rx,double ry,double rz){SetRotationParamRad(rx*Math.PI/648000,ry*Math.PI/648000,rz*Math.PI/648000); }private double[,] GetMx(){double [,] Mx=new double[,]{{1,0,0},{0,Math.Cos(rx),Math.Sin(rx)},{0,-Math.Sin(rx),Math.Cos(rx)}};return Mx;}private double[,] GetMy(){double [,] My=new double[,]{{Math.Cos(ry),0,-Math.Sin(ry)},{0,1,0},{Math.Sin(ry),0,Math.Cos(ry)}};return My;}private double[,] GetMz(){double [,] Mz=new double[,]{{Math.Cos(rz),Math.Sin(rz),0},{-Math.Sin(rz),Math.Cos(rz),0},{0,0,1}};return Mz;}private double[,] GetM() //M=Mx*My*Mz? or M=Mz*My*Mx? {double [,] M=new double[3,3];MatrixTool.Multi(GetMz(),GetMy(),ref M);MatrixTool.Multi(M,GetMx(),ref M);return M;}private double[,] GetMdx(){double[,] mt = {{ 0, 0, 0 },{ 0, -Math.Sin(rx), Math.Cos(rx) },{ 0, -Math.Cos(rx), -Math.Sin(rx) }};double[,] m=new double[3,3];MatrixTool.Multi(GetMz(),GetMy(),ref m);MatrixTool.Multi(m,mt,ref m);return m;}private double[,] GetMdy(){double[,] mt = {{ -Math.Sin(ry), 0, -Math.Cos(ry) }, { 0, 0, 0 },{ Math.Cos(ry), 0, -Math.Sin(ry) }};double[,] m=new double[3,3];MatrixTool.Multi(GetMz(),mt,ref m);MatrixTool.Multi(m,GetMx(),ref m);return m;}private double[,] GetMdz(){double[,] mt = {{ -Math.Sin(rz), Math.Cos(rz), 0 }, { -Math.Cos(rz), -Math.Sin(rz), 0 },{ 0, 0, 0 }};double[,] m=new double[3,3];MatrixTool.Multi(mt,GetMy(),ref m);MatrixTool.Multi(m,GetMx(),ref m);return m;}private double[,] specialMulti(double[,] m,double[,] X){int rowNumM=m.GetLength(0);int colNumM=m.GetLength(1);int rowNumX=X.GetLength(0);int colNumX=X.GetLength(1);int lines=rowNumX/colNumM;double[,] mt=MatrixTool.Init(rowNumM,colNumX);double[,] subX=MatrixTool.Init(colNumM,colNumX);double[,] res=MatrixTool.Init(rowNumM*lines,colNumX);for(int i=0;i<lines;i++){MatrixTool.CopySub(X,i*colNumM,0,colNumM,colNumX,ref subX,0,0); MatrixTool.Multi(m,subX,ref mt);MatrixTool.CopySub(mt,0,0,rowNumM,colNumX,ref res,i*rowNumM,0); }return res;}private double[,] specialSub(double[,] m,double[,] X){int rowNumM=m.GetLength(0);int colNumM=m.GetLength(1);int rowNumX=X.GetLength(0);int colNumX=X.GetLength(1);int lines=rowNumX/rowNumM;double[,] subX=MatrixTool.Init(rowNumM,colNumX);double[,] res=MatrixTool.Init(rowNumX,colNumX);for(int i=0;i<rowNumX;i+=rowNumM){MatrixTool.CopySub(X,i,0,rowNumM,colNumX,ref subX,0,0); MatrixTool.Sub(m,subX,ref subX);MatrixTool.CopySub(subX,0,0,rowNumM,colNumX,ref res,i,0);}return res;}private double[,] GetF(double[,] X,double[,] Y)double[,] f0;double[,] qx=MatrixTool.Init(X.GetLength(0),1); double[,] K={{-dx},{-dy},{-dz}};double[,] S={{1+k}};MatrixTool.Multi(X,S,ref qx);double [,] M=GetM();qx=specialMulti(M,qx);MatrixTool.Sub(qx,Y,ref qx);f0=specialSub(K,qx);return f0;}private double[,] GetB(double[,] X){int rowNum=X.GetLength(0);double[,] B=MatrixTool.Init(rowNum,7);double[,] M=GetM();double[,] Mdx=GetMdx();double[,] Mdy=GetMdy();double[,] Mdz=GetMdz();double[,] mi=MatrixTool.Ident(3);double[,] MX,MY,MZ,MK;MK=specialMulti(M,X);MX=specialMulti(Mdx,X);MY=specialMulti(Mdy,X);MZ=specialMulti(Mdz,X);for(int i=0;i<rowNum;i+=3)MatrixTool.CopySub(mi,0,0,3,3,ref B,i,0); MatrixTool.CopySub(MX,0,0,rowNum,1,ref B,0,3); MatrixTool.CopySub(MY,0,0,rowNum,1,ref B,0,4); MatrixTool.CopySub(MZ,0,0,rowNum,1,ref B,0,5); MatrixTool.CopySub(MK,0,0,rowNum,1,ref B,0,6); return B;}private double[,] GetA(){double[,] M=GetM();double[,] I2=MatrixTool.Ident(3);double[,] A=MatrixTool.Init(3,6);MatrixTool.MutliConst(ref I2,-1);MatrixTool.MutliConst(ref M,(1+k));MatrixTool.CopySub(M,0,0,3,3,ref A,0,0);MatrixTool.CopySub(I2,0,0,3,3,ref A,0,3);return A;}private double[,] GetV(double[,] X,double[,] Y,CoordTrans7Param dpp) {int rowNum=X.GetLength(0);double[,] B,F,A,B2,B3,F2,V;double[,] AT=MatrixTool.Init(6,3);A=GetA();MatrixTool.AT(A,ref AT);MatrixTool.MutliConst(ref AT,1/(1+(1+k)*(1+k)));F=GetF(X,Y);B=GetB(X);B2=MatrixTool.Init(3,7);B3=MatrixTool.Init(3,1);F2=MatrixTool.Init(rowNum,1);for(int i=0;i<rowNum/3;i++){MatrixTool.CopySub(B,i*3,0,3,7,ref B2,0,0);MatrixTool.Multi(B2,dpp.values,ref B3);MatrixTool.CopySub(B3,0,0,3,1,ref F2,i*3,0);}MatrixTool.Sub(F,F2,ref F2);V=specialMulti(AT,F2);return V;}public double CalculateTrans7Param(double[,] X,double[,] Y){int PtNum=X.GetLength(0)/3;double[,] B;double[,] F;double[,] BT=MatrixTool.Init(7,3*PtNum);double[,] BTB=MatrixTool.Init(7,7);double[,] BTF=MatrixTool.Init(7,1);//init pararmCoordTrans7Param dpp=new CoordTrans7Param();Set4Param(0,0,0,0);this.SetRotationParamMM(0,0,0);//debug//this.TransCoord(X[0,0],X[1,0],X[2,0],out x2,out y2,out z2);int round=0;while(round++<20){F=GetF(X,Y);B=GetB(X);MatrixTool.AT(B,ref BT);MatrixTool.Multi(BT,B,ref BTB);MatrixTool.Inv(BTB);MatrixTool.Multi(BT,F,ref BTF);MatrixTool.Multi(BTB,BTF,ref dpp.values);if (dpp.isSmall())break;elseMatrixTool.Add(this.values,dpp.values,ref this.values);}//this.TransCoord(X[0,0],X[1,0],X[2,0],out x2,out y2,out z2);double[,] V=GetV(X,Y,dpp);double vMax=-1;for(int i=0;i<V.GetLength(0);i++){if (Math.Abs(V[i,0])>vMax)vMax=Math.Abs(V[i,0]);}return vMax;}private bool isSmall(){double s=0;for(int i=0;i<7;i++)s+=Math.Abs(values[i,0]);if (s<0.0000001)return true;elsereturn false;}public void TransCoord(double x1,double y1,double z1,out double x2,out double y2,out double z2) {double[,] Xi={{x1},{y1},{z1}}; double[,] DX={{dx},{dy},{dz}}; double[,] tY=new double[3,1]; double[,] K={{1+k}};double [,] M=GetM(); MatrixTool.Multi(Xi,K,ref tY); MatrixTool.Multi(M,tY,ref tY); MatrixTool.Add(tY,DX,ref tY); x2=tY[0,0];y2=tY[1,0];z2=tY[2,0];}public double dx{get{return values[0,0];}set{values[0,0]=value;}}public double dy{get{return values[1,0];}set{values[1,0]=value;}}public double dz{get{return values[2,0];}set{}}public double rx {get{return values[3,0]; }set{values[3,0]=value; }}public double ry {get{return values[4,0]; }set{values[4,0]=value; }}public double rz {get{return values[5,0]; }set{values[5,0]=value; }}public double k{get{return values[6,0]; }set{} } }。
wgs84和北京54坐标转换的一些参数

主要介绍的是:3参数(七参数)转换法,三参数坐标纠正法一:3参数(七参数)转换法从本质上来说,转换的步骤应该大致遵循这样的规则:首先,将84的经纬度坐标(b84,l84,h84)转换为以地心为中心点的大地坐标(x84,y84,z84);然后根据七参数法(或3参数法)将其转换为54下的地心坐标(x54,y54,z54);然后根据54下的椭球参数,将第二步得到的地心坐标转换为大地坐标(b54,l54,h54);最后根据工程需要以及各种投影(如高斯克吕格)规则进行投影得到对应的投影坐标。
只有在第二步的时候涉及到七个参数的计算,其他的步骤都有现成的公式可供计算,稍后我会将各种论文贴上来。
如果这里涉及到您的利益还请跟我联系,我将马上删除下载链接,我本意只是用于学习使用。
其实如果在公司或者做项目的时候,当对这起个参数要求的很急的时候,我们可以从政府部门或者通过坐标转换软件求出这七个参数或者三个参数,这个可以大大提高效率,节省时间。
这些坐标转换软件有:坐标转换大师(这个不错),coorconvert.exe(一般),coord.exe(这个不错)。
一旦求出了七个参数,可以进行坐标转换的软件除了上述这些小软件可以进行转换外,一些比较有名的gis开发软件或者开发平台都提供了利用七个参数转换整个数据的功能或者提供了转换单个点的功能,这些在arc gis,supermap,mapgis中都有。
二:三参数坐标纠正法这个方法是这次我在实践中得出来的。
因为求出七个参数太过麻烦,所以选用了本方法。
本方法的使用范围为:大比例尺地形图比较适用,如县范围等。
具体方法:1.从测区取出适量的坐标控制点,坐标控制点是些这样的点,他们拥有84下的经纬度坐标,同时也拥有54下的投影坐标;2.取出后利用将经纬度坐标在esupermap平台中编写程序将其转成84下的高斯克吕格投影坐标(可以看成是一种虚假的投影);3.由2步中得到的投影坐标和原54下的投影坐标相比较得到一个差值p1(x1,y1,z1),并将其保存起来;4.重复第二步一直到把所有的点都计算完,计算完后将差值进行汇总并得到一个平均值p(x,y,z).通过此方法得到的三个参数经过测试和验证,他的精度在厘米或者亚米级的进度,这个对于一般的定位来说已经足够了。
WGS-84至BJ-54坐标转换方法的探讨

・
34 ・ 5
2 8年 l 0 0 2月
山 西 建 筑
SHANXI ARCH1 TECTURE
Vo. 4 No. 4 13 3 De c. 2 H8 00
文章编号 :0 96 2 (0 8 3 340 10 —8 5 20 )405 —2
t e e a pl h e lz to ft e d gt lc d t a u v y h x m e t e r a ia i n o h iia a a r ls r e s
HUAN Ya -i ou - h n G n l Li u e
[] 周 铭, 3 贾永 华, 新 武, . 字化 地籍 测量 [] 科技 广 詹 等 数 J.
场 ,0 7 5 :4 —4 . 2 0 ( )2 42 5
成 图项 目, 每宗地的界址 点均为解 析坐标 , 原始数 据传输 及转换 过程中无人 工干 预 , 真实 可靠 , 手段 先进 合理 , 果符 合规 范要 成
3 取 当地 中央子 午线 , ) 将假定 的大地坐标通过高斯投影转换 4 通过平面转换模型将假定的平 面坐标转换成 B 一4平面坐 ) J5 标 。平 面转换模型见式( ) 3。
因此 , 要将 G S 量 得 到 的位 于 WG -4坐 标 系 统 的成 果 转换 成假定 的平 面坐标 ; 需 P 测 S8
c 3
其中 , ( , ) r为假定 的平 面坐标 ;X , ) g % B 一4平 r为 j 5 面坐 标 ; 0 Y ) ( , o 坐 标 平 移 量 ; r为 r为 缩 放 尺 度 ; )= R(
为反算式( ) 3 中的平移 、 缩放尺度 和旋转 参数 , 少需 要两个 至 S8 坐标和 B 一4坐标的点 , J 5 如多于两个点 , 可按最小二 ( ) 已知 WG -4 1 乘法求解 。 . 对所有 G S测定的点需经过以上 4 P 个过程求得平面坐标。而
WGS-84与北京54坐标的转换问题

WGS-84与北京54坐标的转换问题
王解先;王军;陆彩萍
【期刊名称】《大地测量与地球动力学》
【年(卷),期】2003(023)003
【摘要】GPS测量得到的是WGS-84中的地心空间直角坐标,而工程施工中通常使用地方独立坐标系,要求得到地方平面坐标.如何实现两者的转换,一直是工程施工中关心的热点问题.介绍了从GPS定位结果至平面坐标的两种转换模型.平面转换模型原理简单,数值稳定可靠,但只适用于小范围的GPS测量;空间转换模型可用于大范围GPS测量,按实际情况又分为7参数转换和3参数转换两种.鉴于54坐标点的大地高通常不能精确得知,对这两种转换方法得到的平面坐标的精度进行了比较,得出大地高精度主要表现为对高程的影响,对平面坐标影响较小的结论.此外,还讨论了7参数与3参数模型对转换结果的影响.
【总页数】4页(P70-73)
【作者】王解先;王军;陆彩萍
【作者单位】同济大学测量系,上海,200092;同济大学测量系,上海,200092;同济大学测量系,上海,200092
【正文语种】中文
【中图分类】P227
【相关文献】
1.WGS-84坐标与 BJ-54坐标之间的坐标转换问题 [J], 杨玉华;郭圣权
2.WGS-84和BJ54坐标转换问题的分析 [J], 张灿
3.WGS-84到北京54坐标转换精简模型修正方案的研究 [J], 滕志军;李喆;朱瑞杰;何平
4.关于利用七参数法进行WGS-84和BJ-54坐标转换问题的探讨 [J], 徐仕琪;张晓帆;周可法;赵同阳
5.北京54坐标转换至WGS-84坐标的方法 [J], 蔡昌盛;高井祥;郑南山;张华海因版权原因,仅展示原文概要,查看原文内容请购买。
北京54坐标与WGS84坐标转换说明

坐标转换程序说明COOD坐标转换4.2版,无需安装,直接运行即可使用,可以实现、空间直角坐标、大地坐标、平面坐标的七参数或四参数转换。
下面以北京1954坐标系(中央子午线经度123°)平面坐标转换为施工工程坐标系(GWS84椭球,中央子午线经度121-44-05,投影大地高40m)坐标为例,说明四参数平面坐标转换的具体步骤。
1、运行COOD坐标转换程序,程序界面如下图所示:2、计算转换参数单击“坐标转换”下拉菜单,单击“计算四参数”或者在键盘上直接输入字母“C”,进入参数计算,如图2所示:输入坐标转换重合点的源坐标和目标坐标,输入一个点的源坐标和目标坐标后,单击“增加”,然后依次输入下一个重合点的源坐标和目标坐标,一般四参数转换应输入至少3个重合点的坐标,以便对检核参数计算的正确性,也可提高转换精度,最后单击“计算”。
则显示计算结果如下图:随后弹出地方坐标转换参数,如下图:单击“确定”,此时四参数计算完成,软件自动将计算的参数作为当前值,并将参数计算结果保存在名为FourResult的文本文件中,查看COOD坐标转换程序的当前目录,找到FourResult文本文件查看转换误差,该例计算结果如下图:若转换后中误差过大,说明输入的重合点有误,或者重合点误差较大,应重新选择合适的重合点计算转换参数。
确认转换参数无误后,然后单击文件菜单,保存转换项目,例如保存为“54北京坐标系与84施工坐标系转换”。
2、坐标转换首先设置坐标类型和转换参数的类型,源坐标坐标类型为平面坐标,椭球基准为北京-54坐标系,目标坐标类型为平面坐标,椭球基准为WGS-84坐标系,坐标转换参数勾选“四参数转换”如下图所示:(1)单点坐标转换设置好坐标类型和转换参数的类型后,直接在对话框中输入一个控制点的源坐标,单击右侧的“转换坐标”按纽,则在右侧“输出目标坐标”框内显示转换后的坐标值,如下图所示:(2)文件转换对于少量的坐标可以通过单点转换来实现,但是对于批量坐标的转换就应采用文件转换实现比较方便。
WGS84坐标转换到BJ54坐标的方法的实验研究

第一章绪论随着GPS 定位精度的不断提高,GPS 技术在测量中的应用也越来越广泛。
但是由于GPS 卫星星历表示于WGS84 坐标系中,算得的GPS 定位结果只能表示在WGS84 全球坐标系中。
WGS84坐标系是一种质心坐标系统,其坐标原点位于地球的质心上。
而我国的国土测量成果和在进行工程施工时大都采用BJ54坐标系,它是一种参心坐标系,它以克拉索夫斯基椭球为参考椭球, 并采用高斯—克吕格投影(等角横切圆锥投影)方式进行投影, 如何实现WGS84地心空间直角坐标系与BJ54在平面直角坐标系的之间的转换,一直是各个部门关心的热点。
在进行WGS84坐标系和BJ54坐标系转换时有两种转换思想和模型,即平面转换模型和空间转换模型。
在平面转换模型中,首先要假定两种坐标系的中心和坐标轴的方向一致,所以只适合小范围内国土测量和工程设计使用,平面转换模型原理简单,数值稳定可靠。
要进行大范围的GPS测量,应该使用空间转换模型。
按实际情况又分为7 参数转换和3 参数转换两种。
鉴于54 坐标点的大地高通常不能精确得知,对这两种转换方法得到的平面坐标的精度进行了比较,得出大地高精度主要表现为对高程的影响,对平面坐标影响较小的结论。
此外,还讨论了7 参数与3 参数模型对转换结果的影响。
第二章坐标系统简介第一节坐标系统2.1坐标系统所谓的坐标系指的是描述空间位置的表达形式,即采用什么方法表示空间位置。
人们为了描述空间位置,采用了多种方法,从而产生了不同的坐标系。
在各种测量中,经常使用的坐标系有3种类型。
2.1.1 空间直角坐标系空间直角坐标系的原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向起始子午面与赤道的交点,Y轴位于赤道的平面上,且按右手系于X轴成90°夹角。
(见图2—1)图2—1空间直角坐标系2.1.2 空间大地坐标系空间大地坐标系是采用大地经度和大地高来描述空间位置的。
纬度(B)是空间的点与参考椭球面的法线与赤道面的夹角,经度(L)是空间中的点与参考椭球的自转轴所在的面与参考椭球的起始子午面的夹角,大地高(H)是空间点沿参考椭球的法线的方向到参考椭球面的距离。
WGS84与北京54坐标系之间的转换

GPS测量后序数据处理的目的即为:
1.提取GPS网的基线结果;
2.GPS基线网的独立平差;
3.GPS基线网测量成果到地面坐标系的转换。
1.1概述
坐标转化并不是一个新的课题,随着测绘事业的发展,全球一体化的形成,越来越要求全球测绘资料的统一。尤其是在坐标系统的统一方面.原始的大地测量工作主要是依靠光学仪器进行,这样不免受到近地面大气的影响,同时受地球曲率的影响很大,在通视条件上受到很大的限制,从而对全球测绘资料的一体化产生巨大的约束性。
第三章
3.1 WGS-84坐标系
WGS-84坐标系是美国国防部研制确定的大地坐标系,是一种协议地球坐标系。
WGS-84坐标系的几何定义是:
原点是地球的质心,空间直角坐标系的Z轴指向BIH(1984。0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。X轴指向BIH定义的零度子午面和CTP赤道的交点,Y轴和Z,X轴构成右手坐标系。WGS-84坐标系是对NSWC9Z-2(NNSS卫星多普勒定位系统的一个参考坐标系)的修正。
为了描述卫星运动,处理观测数据和表示测站位置,需要建立与之相应的坐标系统。在GPS测量中,通常采用两种坐标系统,即协议天球坐标系和协议地球坐标系。其中协议地球坐标系采用的是1984年世界大地坐标系(Word Geodetic System 1984─WGS-84)其主要参数为:
长半轴a=6378137;扁率f=1:298.257223563.
2.提取三维基线解并组成三维基线结果文件
基于MATLAB的WGS-84坐标到地方坐标的转换

基于MATLAB的WGS-84坐标到地方坐标的转换
金耀;陈桂红;方怡
【期刊名称】《地理信息世界》
【年(卷),期】2016(23)4
【摘要】在政务地理信息工程建设时,常会遇到把外业采集的WGS-84坐标数据转化为地方坐标数据的问题.本文研究在控制点坐标资料缺失的情况下,基于MATLAB 软件进行多项式拟合,把WGS-84坐标转化为地方坐标的方法.通过研究发现,该方法简单易行,解算精度可以满足一般政务地理信息工程的业务需求.
【总页数】5页(P101-105)
【作者】金耀;陈桂红;方怡
【作者单位】高德信息技术有限公司,北京100038;北京市信息资源管理中心,北京100101;中国地震局地壳应力研究所,北京100085
【正文语种】中文
【中图分类】P226+.3
【相关文献】
1.WGS-84坐标系到地方坐标系的转换方法及精度分析 [J], 林起忠
2.WGS-84坐标与地方独立坐标的转换 [J], 唐玉娟;史珂
3.地方独立坐标系与WGS-84坐标系转换方法及应用 [J], 蒋小军;宋占峰;吴清华
4.一种有效的WGS-84坐标系与地方坐标系转换方法 [J], 廖超明;姜卫平;覃允森
5.WGS-84坐标系统向地方坐标系统转换过程的研究 [J], 徐德伟;李海舰;曹城中
因版权原因,仅展示原文概要,查看原文内容请购买。
WGS84转化为BJ54

1 在excel 建立表格,并转化为下图所示文件类型。
2在arcview建立一个新的计划。
3 点击在上图Tables图标,点击add, 加入上述坐标文件。
4 点击在上图Views图标,在Views视窗内,找到add event theme.
5弹出下图,确定X与Y.上述点就被导入arcview.
6点击蓝色Convert to shapefile, 将文本文件转化为shapefile,并添加到view1。
7 点击下图arcview proj… ,出现step1.
若没有arcview proj。
,点击File-Extension-arcview proj打勾添加。
上图没有投影或地理坐标信息(unknown),需增加。
点击next.
在step2选择经纬度信息如上图所示。
点击next.会弹出询问框,点击Y.进入step3.
在step3选择北京信息如上图所示,具体信息可以点parameters看到,3个点在福州(119),最近的为117的中央经线。
点击next.会弹出询问框,点击N.进入step4.
找个地方存储一下新产生的文件,不要和原来重名BJ54。
点击next,点击finish, 完成转化。
会弹出一个对话框,点击no.
点击view创建一个新view2, 加入Bj54, 将longlat.avx拷贝到安装路径下的目录?:\ESRI\AV_GIS30\ARCVIEW\EXT32,并用extensions导入。
导入后图标见。
点击
点击ok
选择No, 点击ok
得到下图。
可以export table1到dbf文档。
BJ54坐标到WGS84坐标的转换

BJ54坐标到WGS84坐标的转换
第一步:控制点WGS84投影到平面
先将控制点的W GS84经纬度坐标转投影成三度带下的平面直角坐标。
打开南方PA,选择——工具——大地正反算(勾选正算):
保存转换后得到的WGS84高斯平面直角坐标。
第二步:求BJ54与WGS84的平面转换参数
根据控制点的BJ54平面直角坐标和步骤一中已经求得的WGS84平面直角坐标,通过平移,旋转,缩放求出转换参数。
使用南方PA——工具——坐标变换。
在公共点坐标中:导入已经编辑好的旧坐标(BJ54平面直角坐标)和新坐标(WGS84平面直角坐标)。
在转换点坐标中:导入需要由BJ54转成WGS84的待定点(像控点)平面直角坐标。
点击——转换,求得两者的转换参数和待转点从BJ54变为WGS84的坐标。
第三步:由高斯平面转到大地坐标(B,L)
将已经转换为WGS84坐标系统的待定点(像控点)坐标转换为WGS84坐标系统下的经纬度坐标。
使用南方PA——工具——大地正反算(勾选反算)。
中央子午线经度选择132即可!保存关闭。
第四步:待定点高程的转换
建立数学模型:N i=N+a1x i+a2y i;
根据两套坐标求得转换参数K=(N,a1,a2 )K=(139.06,-2.6448e-005,-8.646e-006)将其他的点依据转换参数计算得到WGS84中的高度。
经纬度转(WCG_84)换为北京54(BEIJING_54)坐标

经纬度转(WCG_84)换为北京54(BEIJING_54)坐标在论谈里有朋友问起这个问题,刚好我在这之前写过,所以贴出来...//从地理坐标系(经纬度)转换到北京54坐标系public static void ConvertJWDT oBeijing (ref double jd,ref double wd){//其中x,y为上经纬坐标,由用户自己输入;double m,n;//m,n分别代表全国54坐标double g=0.00669342162297;double x0 = 3458144.04,y0 = -146121.96,h = 1.000140682,f = 0.013930556;doublell,X,t,N,a=6378245.00,W,p=206265,z,l,b=6356863.01877,c=6399 689.90178,k;double x = wd;double y = jd;double DH = 41.0;double L = 123.0;//(DH - 0.5) * 3.;ll = x*PI/180;k = x*3600;l = (y - L)*PI/180;z = Math.Sqrt((0.00673852541468))*Math.Cos(ll);W = Math.Sqrt(1-g*Math.Pow(Math.Sin(ll),2));N = a/W;t = Math.Tan(ll);double mm1 =(Math.Pow(Math.Cos(ll),2)*(5-Math.Pow(t,2)+9*Math.Pow(z,2)+4*Math.Pow(z,4))*Math.Pow(l,2 ))/24;double mm2 =(Math.Pow(Math.Cos(ll),4)*(61-58*Math.Pow(t,2)+Math.Pow(t,4))*Math.Pow(l,4))/720;//克拉索夫斯基椭球的子午线弧长公式;X = 111134.861*x-(32005.7799*Math.Sin(ll)+133.9238*Math.Pow(Math.Sin(ll),3) +0.6973*Math.Pow(Math.Sin(ll),5)+0.0039*Math.Pow(Math. Sin(ll),7))*Math.Cos(ll);m = X + Math.Pow(Math.Cos(ll),2)*t*N*Math.Pow(l,2)*(0.5 + mm1 + mm2);n = Math.Cos(ll)*N*l*(1 + (Math.Pow(Math.Cos(ll),2)*(1-Math.Pow(t,2)+Math.Pow(z,2))*Math.Pow(l,2))/6+ (Math.Pow(Math.Cos(ll),4)*(5-18*Math.Pow(t,2)+Math.Pow(t,4)+14*Math.Pow(z,2)-58*Math.Pow(z,2)*Math.Pow(t,2))*jd = m;wd = n + 21000000 + 500000;}2))/24;.Pow(z,2)*Math.Pow(t,2))*Math.Pow(l,5))/120);。
WGS84坐标转换为北京54坐标流程

WGS84坐标转换为北京54坐标流程1.了解WGS84和北京54的坐标系统:WGS84是全球定位系统(GPS)所采用的经度、纬度坐标系,而北京54是中国国内所采用的大地坐标系。
2.收集WGS84坐标数据:获取到需要转换的WGS84坐标数据,可以通过GPS设备或者地图软件获取。
3.设置转换参数:根据具体的需求,选择相应的转换参数。
一般来说,可以选择7参数转换或者带变形参数转换,其中7参数转换一般误差较小,而带变形参数转换可以更加精确。
4.进行转换计算:利用所选的转换参数,将WGS84坐标数据转换为北京54坐标数据。
转换计算可以通过编程实现,也可以使用专门的坐标转换软件。
5.校验转换结果:将转换后的北京54坐标与其他已知的北京54坐标进行对比,检查转换结果的准确性。
可以利用已知的北京54坐标点进行验证。
6.保存和输出转换结果:将转换后的北京54坐标数据保存下来,并进行输出。
可以将结果输出为文本格式或者图形格式,便于后续的使用和处理。
需要注意的是,在进行坐标转换过程中,可能会出现一定的误差。
这是由于坐标系统的不同、地球椭球体的模型差异等原因所导致的。
因此,在进行坐标转换时,需要根据具体的应用场景和精度要求,选择适当的转换方法和参数。
此外,对于经纬度坐标的转换,还需要考虑一些特殊情况,比如跨越180度经线的坐标点,或者在地球极地区域的坐标点转换等。
在进行转换计算时,需要对这些特殊情况进行处理,以保证结果的准确性。
总的来说,将WGS84坐标转换为北京54坐标是一个常见的坐标转换过程,在实际操作中,可以根据具体的需求和精度要求,选择适当的转换方法和参数,以达到预期的转换效果。
WGS84坐标与北京54坐标转换

WGS84坐标与北京54坐标转换1. 椭球体、基准面及地图投影GIS中的坐标系定义是GIS系统的基础,正确定义GIS系统的坐标系非常重要。
GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。
基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。
我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之间的转换可查阅国家测绘局公布的对照表。
WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多以WGS1984为基准。
上述3个椭球体参数如下:椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye 基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。
地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京54坐标值为X=4231898,Y=21655933,实际上指的是北京54基准面下的投影坐标,也就是北京54基准面下的经纬度坐标在直角平面坐标上的投影结果。
2. GIS中基准面的定义与转换虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。
北京54坐标与WGS84坐标转换说明

坐标转换程序说明COOD坐标转换4.2版,无需安装,直接运行即可使用,可以实现、空间直角坐标、大地坐标、平面坐标的七参数或四参数转换。
下面以北京1954坐标系(中央子午线经度123°)平面坐标转换为施工工程坐标系(GWS84椭球,中央子午线经度121-44-05,投影大地高40m)坐标为例,说明四参数平面坐标转换的具体步骤。
1、运行COOD坐标转换程序,程序界面如下图所示:2、计算转换参数单击“坐标转换”下拉菜单,单击“计算四参数”或者在键盘上直接输入字母“C”,进入参数计算,如图2所示:输入坐标转换重合点的源坐标和目标坐标,输入一个点的源坐标和目标坐标后,单击“增加”,然后依次输入下一个重合点的源坐标和目标坐标,一般四参数转换应输入至少3个重合点的坐标,以便对检核参数计算的正确性,也可提高转换精度,最后单击“计算”。
则显示计算结果如下图:随后弹出地方坐标转换参数,如下图:单击“确定”,此时四参数计算完成,软件自动将计算的参数作为当前值,并将参数计算结果保存在名为FourResult的文本文件中,查看COOD坐标转换程序的当前目录,找到FourResult文本文件查看转换误差,该例计算结果如下图:若转换后中误差过大,说明输入的重合点有误,或者重合点误差较大,应重新选择合适的重合点计算转换参数。
确认转换参数无误后,然后单击文件菜单,保存转换项目,例如保存为“54北京坐标系与84施工坐标系转换”。
2、坐标转换首先设置坐标类型和转换参数的类型,源坐标坐标类型为平面坐标,椭球基准为北京-54坐标系,目标坐标类型为平面坐标,椭球基准为WGS-84坐标系,坐标转换参数勾选“四参数转换”如下图所示:(1)单点坐标转换设置好坐标类型和转换参数的类型后,直接在对话框中输入一个控制点的源坐标,单击右侧的“转换坐标”按纽,则在右侧“输出目标坐标”框内显示转换后的坐标值,如下图所示:(2)文件转换对于少量的坐标可以通过单点转换来实现,但是对于批量坐标的转换就应采用文件转换实现比较方便。
用七参数法实现WGS84到北京54的坐标转换

用七参数法实现WGS84到北京54的坐标转换七参数法是一种常用的坐标转换方法,可以将WGS84坐标转换为北京54坐标。
在进行坐标转换之前,我们需要了解七参数法的原理和步骤。
七参数法的原理是通过七个参数对坐标进行转换,这七个参数分别是平移参数(dx, dy, dz),旋转参数(rx, ry, rz)和缩放参数(s)。
平移参数表示两个坐标系之间的平移量,旋转参数表示两个坐标系之间的旋转角度,缩放参数表示两个坐标系之间的比例关系。
通过这七个参数可以实现坐标的精确转换。
下面是使用七参数法将WGS84坐标转换为北京54坐标的步骤:步骤1:确定七参数的值七参数的值可以通过大地测量和控制点的观测数据来确定。
通常情况下,我们可以使用大地测量仪器进行观测,并使用专业的数据处理软件计算出七参数的值。
步骤2:计算WGS84坐标系的平移矩阵T平移矩阵T可以通过平移参数(dx, dy, dz)来计算,其表达式如下:T = [[1, 0, 0, dx],[0, 1, 0, dy],[0, 0, 1, dz],[0,0,0,1]]步骤3:计算WGS84坐标系的旋转矩阵R旋转矩阵R可以通过旋转参数(rx, ry, rz)来计算,其表达式如下:Rx=[[1,0,0],[0, cos(rx), -sin(rx)],[0, sin(rx), cos(rx)]]Ry = [[cos(ry), 0, sin(ry)],[0,1,0],[-sin(ry), 0, cos(ry)]]Rz = [[cos(rz), -sin(rz), 0],[sin(rz), cos(rz), 0],[0,0,1]]R=Rz*Ry*Rx步骤4:计算WGS84坐标系到北京54坐标系的坐标转换矩阵M坐标转换矩阵M可以通过平移矩阵T、旋转矩阵R和缩放参数s来计算,其表达式如下:M=s*R*T步骤5:使用坐标转换矩阵M将WGS84坐标转换为北京54坐标给定一个WGS84坐标P(WGS84_x,WGS84_y,WGS84_z),其对应的北京54坐标P54可以通过矩阵运算计算得到:P54=M*P以上步骤描述了通过七参数法实现WGS84到北京54坐标转换的具体过程。
部分各地WGS84坐标系转换BJ54坐标系参数

部分各地WGS84坐标系转换BJ54坐标系参数WGS84坐标系(World Geodetic System 1984)是由美国国防部制定的一种全球地理坐标系。
它通过地球表面的经纬度来表示位置,被广泛用于全球定位系统(GPS)和地理信息系统(GIS)等领域。
BJ54坐标系(Beijing 1954)是中国国家标准的地理坐标系,主要用于中国大陆境内的测绘和地理信息应用。
它是基于1954年在北京进行的地球物理大地测量所建立的。
在进行WGS84坐标系到BJ54坐标系的转换时,需要使用一组坐标转换参数,以确保精确的转换结果。
以下是部分各地区的WGS84到BJ54坐标系的转换参数:
1.北京地区:
-平移参数:
-旋转参数:
-尺度参数:-2.4989×10^-6
2.上海地区:
-平移参数:
-X轴偏移:-235.0米
-Y轴偏移:-85.0米
-Z轴偏移:-47.0米
-旋转参数:
-绕X轴旋转:-11.0秒
-绕Y轴旋转:-2.0秒
-绕Z轴旋转:-9.0秒
-尺度参数:0.994
3.广州地区:
-平移参数:
-X轴偏移:-235.6318米
-Y轴偏移:-85.6829米
-Z轴偏移:-69.6162米
-旋转参数:
-尺度参数:0.998
以上是部分地区WGS84坐标系到BJ54坐标系的转换参数。
不同地区
的参数可能略有不同,具体的转换参数可根据需要进行查询和获取。
使用
这些参数,可以将WGS84坐标系的经纬度转换为BJ54坐标系的平面坐标,以满足特定测绘和地理信息应用的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的G S J P  ̄ 量成果转化 为北京5 坐标或西安‘唑 标 、 4 , I WG o 坐标 系是地心空 间直角坐 标系 ,坐标原 点位于地 球的质 S4 量 中心 , 轴指 rB H 9 4 J x u I 18 . 】 1 的协议子午面和C P T 赤道 的交点 , 轴与 Y z 、 轴垂直构成右手坐标 系,称 为 轴 X 18 年世界大地坐标系 其长半轴 为 94
6 7 1 70 3 8 3 .m,短 半 轴 为 6 5 7 23 4 m 3 6 5 .1 2
2;15 4 ; 33  ̄ :3 4 t, 8 4 2 224 3 “7 5 13
—
2 31 R +2 R  ̄g 7 2 2 2b ̄ t S SI , , l 3 2 55 ,65 3 s 2 7
足 工 程 测 量 的 需 要
关键词 Maa 七参数 tb l
最小二 乘法
坐标 系转换
Ⅵ ( 4坐标 系 t F 尘 直 自±
打
一
随着G S P 技术的发 展 ,G S ! P  ̄ 量在地 形 测绘 和各类工程测量 中 J f 的应用也越 来越广 ,各地 都有大量f GP i 量成果 而我国 目前的测 l SJ ( J l ! ] J
自 ± * 7
 ̄ w 93)1 5 2 t' 72 3 2 6, 4l 2 "2 t33 3 4u2 1 I t 4615' ' 4  ̄ 79Ⅲ 4 2 i-n f " t‘ ) " ・ ̄) 47 7 2 7 q3 46 9 64t 3 q4 H 4 ,0 t2 5 ̄1 l
。
始子午面 的二面角 为L( 大地 经度 ) 点的法线 P 与赤道面 的夹角 ,P N 为B ( 大地 纬度 ),H为大地 高即地 面上 一点到椭 球面的距离 我国 1 5 年在通过 对前苏联 14 年坐际 系的延 伸 ,大地原点在前苏联的普 94 92 尔科沃 ,北京5 坐标 是参心坐标系 ,坐标采用的椭球是克拉索夫斯基 4 椭球 。其长 半轴为6 7 2 5 3 8 4 m,短半轴 为6 5 8 3 1 73 4 3 3 66 . 8 7 0 7m,扁率 0
南 肛 科 技 2 1年第1 0 1 0
学 术 研 讨
基 于MA 的W GS8 坐 标 向 北 京 5 坐 标 转 换 TL B A 4 4
伍 霁 ② 曹 娜
( 武汉大学资源 与环境科学学院 ① ② 四 川 省 林 业 查规 划 院 ③ 中 国 石 油 集 工 程 发 汁有 限 责 任 公 司 西 南 分 公 一 ) J 摘 要 G' 坐标是 CWG 4 I S ] S 大地坐标 系为基础建 立的.而在我 国使 用最 多 15  ̄ 京坐标 系 因此,在 工程测量 中常常需要 将 , g 是 94L
北 尊
坐标
f空 立 琦
¥下立 丸
南生 拓 v
系下 空 直
角 生标 z
H }7 4 { 7t 2 : ¨ s1 H 44
32 4 ¨ 2 73 3 3 ‘5 I 4 24t812N 3 2 7 1 ; 3 44 j q R 3 " 653 31 J , 0 3 7 4 6 317t 1 3 5
G1 接 收 机 获得  ̄ W GS4 标 转 换 成 北 京5 坐 标 本 文 基 于 坐 标 转 换 的七 参数 模 型 和 三 参 数 模 型 ,利 用 MA AB 最 小 二 乘 法 求 解 出 】 s g坐 4 TL 和
了wG 8 坐标 向北京j 坐标转换的七参数和三参数 .并对七参数和三参数的坐标转换进行 了精度验证和比较 ,认为七参数能很好的满 s4 4
为 12 83 /9 . 。
%%
+
。
埘。
。 舢
一
sI .
“ l
‰ 。‰ 。‰
I ●
r
— I ・
Z
。 。
. Z
“ I
。
一
5l |
+
H:
H 2
O Z y
“
。
r●● ● 。 ● ● l %戤
误差达到最小 将式 (1 )转换 为:
● O
0 ●
扁率e /9 .52 36 ”,如图 l 为12 82 72 53 示 G S P 接收机接受 的信号经过处理 后得到的是大地经纬度 , 到的z 得 为
0
●
0
0
●
0
O
O
0
●
0
O
●
0
『 j
4,‘ 《 f l
4 _I
3 ̄ 5 9432 1 3 3 7 ” l 9 92 23j 4 33 ^ 1 7 ‘ H2
-
44 7 q 6 97 5 2 H4 4 j H { 65 ^ 5 7
ቤተ መጻሕፍቲ ባይዱ
-
表 1 已知公共点 已知 坐标
(】 J 七参数求解 对 于式 ( ) 1 ,当有3 个已知 大于3 个相应 两种 坐标 系下的公共 已知 点坐标 ,此 时存大于等于9 个方程 ,而参数 只有 7 ,属 于超定方程 ,求解超定 方程 采用最小二乘解求 参数 ,可 以使 个
Z ¥ 2 一Z 4
t2 4
0
I 4)
山于WGS 4 8 和北京 5 坐标定 义原点 、坐标轴 方向 、J 4 度不 同 , 此时 三维 坐标之 间 的转换 需要 个参 数 ,3 个平 移参 数 、 个旋转 参 3
大地高 。如图l 所示 , o为地球质量 中 心 ,A 点与椭球 旋转轴构 成的平 面与 椭球体 构成的面为起始 子午 面,椭球 上任一点P 点构成的子午面与起 与O
0
O
,
0
0
0
0
●
+
图1 s4 标系示意图 8坐 wG
当有3 个公共点 已知坐标且改为矩 阵形式 如下所 示
绘成果普遍表 示在北京5 坐标系或西安㈨坐标 系下。 此需要将大量 4
C  ̄ 打 i 4 N 不 F 间^
角 生 标 v
・ 7 1 q*44 2 4 .4 26t 5 了  ̄4  ̄ 23
w‘ ~ i 螗 北尊5 {±标 未 北 京 I 生 | 年T尘 立