MATLAB程序北京54转换为WGS84坐标(GPS)
WGS84座标与北京54坐标的转换(2003)
![WGS84座标与北京54坐标的转换(2003)](https://img.taocdn.com/s3/m/6cfa87e8f8c75fbfc77db2e8.png)
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的七参数坐标系统转换问题分析(精)](https://img.taocdn.com/s3/m/f5cc13698e9951e79b8927db.png)
基于 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坐标转换源程序
![WGS84和BJ54坐标转换源程序](https://img.taocdn.com/s3/m/1d56186aa45177232f60a285.png)
WGS84和BJ54坐标转换源程序两个坐标系转换一般需要平移,旋转,缩放共七参数。
Y=(1+k)*M(x,y,z)*X+dX;X,Y为3*1矩阵,M(x,y,z)为3*3的旋转矩阵.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;}}{get{return values[2,0]; }set{values[2,0]=value; }}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; }}{get{return values[6,0];}set{values[6,0]=value;}}}理论部分可以参考本站"高精度gps测点到54/80坐标系的转换问题"矩阵计算程序public class MatrixTool{public static double[,] Init(int m,int n){double[,] M=new double[m,n];for(int i=0;i<m;i++)for(int j=0;j<n;j++)M[i,j]=0;return M;}public static double[,] Ident(int rank){double[,] m=new double[rank,rank];for(int i=0;i<rank;i++)for(int j=0;j<rank;j++){if (i==j)m[i,j]=1.0;elsem[i,j]=0;}return m;}public static void MutliConst(ref double[,] m1,double c){for(int i=0;i<m1.GetLength(0);i++)for(int j=0;j<m1.GetLength(1);j++){m1[i,j]*=c;}}public static void Copy(double[,] m1,ref double[,] m2){for(int i=0;i<m1.GetLength(0);i++)for(int j=0;j<m1.GetLength(1);j++){m2[i,j]=m1[i,j];}}public static void CopySub(double[,] m1,int rowStart,int colStart,int rowNum,int colNum,ref double[,] m2,int rowStart2,int colStart2){for(int i1=rowStart,i2=rowStart2;i1<rowStart+rowNum;i1++,i2++)for(int j1=colStart,j2=colStart2;j1<colStart+colNum;j1++,j2++){m2[i2,j2]=m1[i1,j1];}}public static void Multi(double[,] m1,double [,] m2,ref double [,] mout){int m1x,m1y,m2x,m2y,moutx,mouty;if (m1.Rank!=2 || m2.Rank!=2||mout.Rank!=2)throw new Exception("Multi 输入错误!");m1x=m1.GetLength(0);m1y=m1.GetLength(1);m2x=m2.GetLength(0);m2y=m2.GetLength(1);moutx=mout.GetLength(0);mouty=mout.GetLength(1);if (m1y!=m2x||m1x!=moutx||m2y!=mouty)throw new Exception("Multi 输入错误!");double[,] mtemp=new double[moutx,mouty];for(int i=0;i<m1x;i++)for(int j=0;j<m2y;j++){mtemp[i,j]=0;for (int k=0;k<m1y;k++)mtemp[i,j]+=m1[i,k]*m2[k,j];}Copy(mtemp,ref mout);}public static void Add(double[,] m1,double [,] m2,ref double [,] mout) {int m1x,m1y,m2x,m2y;if (m1.Rank!=2 || m2.Rank!=2||mout.Rank!=2)throw new Exception("Matrix.Add 输入错误!");m1x=m1.GetLength(0);m1y=m1.GetLength(1);m2x=m2.GetLength(0);m2y=m2.GetLength(1);if (m1x!=m2x||m1y!=m2y)throw new Exception("Matrix.Add 输入错误!");if (mout.GetLength(0)!=m1x||mout.GetLength(1)!=m2y)throw new Exception("Matrix.Add 输入错误!");//mout=new double[m1x,m2y];for(int i=0;i<m1x;i++)for(int j=0;j<m2y;j++)mout[i,j]=m1[i,j]+m2[i,j];}public static void Sub(double[,] m1,double [,] m2,ref double [,] mout) {int m1x,m1y,m2x,m2y;if (m1.Rank!=2 || m2.Rank!=2||mout.Rank!=2)throw new Exception("Matrix.Sub 输入错误!");m1x=m1.GetLength(0);m1y=m1.GetLength(1);m2x=m2.GetLength(0);m2y=m2.GetLength(1);if (m1x!=m2x||m1y!=m2y)throw new Exception("Matrix.Sub 输入错误!");if (mout.GetLength(0)!=m1x||mout.GetLength(1)!=m2y)throw new Exception("Matrix.Sub 输入错误!");//mout=new double[m1x,m2y];for(int i=0;i<m1x;i++)for(int j=0;j<m2y;j++)mout[i,j]=m1[i,j]-m2[i,j];}public static void AT(double[,] m1,ref double [,] mout){for(int i=0;i<m1.GetLength(0);i++)for(int j=0;j<m1.GetLength(1);j++){mout[j,i]=m1[i,j];}}public static void ATBA(double[,] m1,double [,] m2,ref double [,] mout) {int M,N;M=m1.GetLength(0);N=m1.GetLength(1);if (mout.GetLength(0)!=mout.GetLength(1)||mout.GetLength(0)!=M) throw new Exception("ATBA 输入错误!");for(int i=0;i<N;i++)for(int j=0;j<N;j++){mout[i,j]=0;for (int r=0;r<M;r++)for(int k=0;k<M;k++)mout[i,j]=mout[i,j]+m1[k,i]*m2[k,r]*m1[r,j];}}public static void ABAT(double[,] m1,double [,] m2,ref double [,] mout) {int M,N;M=m1.GetLength(0);N=m1.GetLength(1);if (mout.GetLength(0)!=mout.GetLength(1)||mout.GetLength(0)!=M) throw new Exception("ATBA 输入错误!");for(int i=0;i<M;i++)for(int j=0;j<M;j++){mout[i,j]=0;for (int r=0;r<N;r++)for(int k=0;k<N;k++)mout[i,j]=mout[i,j]+m1[i,k]*m2[k,r]*m1[j,r];}}public static void Inv(double[,] c) {double temp=0;int i,j,k,N=c.GetLength(0);//debugfor(i=1;i<N;i++)for(j=0;j<i;j++)c[i,j]=0;for(i=0;i<N;i++){for(j=i;j<N;j++){temp=c[i,j];for(k=0;k<i;k++)temp=temp-c[k,i]*c[k,j]/c[k,k]; if (j==i)c[i,j]=1/temp;elsec[i,j]=temp*c[i,i];}}for(i=0;i<N-1;i++){for(j=i+1;j<N;j++){temp=-c[i,j];for(k=i+1;k<j;k++){temp=temp-c[i,k]*c[k,j];}c[i,j]=temp;}}for(i=0;i<N-1;i++){for(j=i;j<N;j++){if(j==i)temp=c[i,j];elsetemp=c[i,j]*c[j,j];for(k=j+1;k<N;k++)temp=temp+c[i,k]*c[j,k]*c[k,k];c[i,j]=temp;}}for(i=1;i<N;i++)for(j=0;j<i;j++)c[i,j]=c[j,i];}public static void DEBUG_DUMP(double[,] m1){int M,N;string buf;M=m1.GetLength(0);N=m1.GetLength(1);Debug.WriteLine("****************debug matrix****************"); for(int i=0;i<M;i++){buf="";for(int j=0;j<N;j++){buf+=m1[i,j].ToString("0.000000");buf+=",";}Debug.WriteLine(buf);}Debug.WriteLine("**************** end ****************");}}。
大地测量学课程设计matlab编程
![大地测量学课程设计matlab编程](https://img.taocdn.com/s3/m/4d7f6e380b4c2e3f5727636a.png)
大地测量学课程设计坐标系转换与局部坐标选择学院:矿业工程专业班级:测绘工程12-02学生姓名:***指导教师: 1 2前言:大地测量学是测绘学的一个分支。
研究和测定地球形状、大小和地球重力场,以及测定地面点几何位置的学科。
它的基本任务是研究全球,建立与时相依的地球参考坐标框架,研究地球形状及其外部重力场的理论与方法,研究描述极移固体潮及地壳运动等地球动力学问题,研究高精度定位理论与方法。
大地坐标系是大地测量的基本坐标系。
大地坐标系中点的位置是以其大地坐标表示的,大地坐标均以椭球面的法线来定义。
其中,过某点的椭球面法线与椭球赤道面的交角为大地纬度;包含该法线和大地子午面与起始大地子午面的二面角为该点的大地经度;沿法线至椭球面的距离为该点的大地高。
大地纬度、大地经度和大地高分别用大写英文字母B、L、H表示。
椭球面大地测量学研究的主要问题是:椭球面上大地线和法截线的性质;椭球面三角形的解算;大地测量主题的解算;椭球面投影到平面上的问题,以便将大地坐标换算为平面坐标;一椭球面同另一椭球面的关系,以实现不同大地坐标系的换算。
本文主要研究坐标转换及其投影问题的分析和结算。
目录摘要 (3)1.设计要素 (5)1.1设计目的 (5)1.2设计任务及要求 (5)1.3设计安排 (6)1.4设计概要 (6)2理论基础 (7)2.1四参数转换 (7)2.2坐标系统54与80转换 (7)2.3高斯坐标正反算 (9)2.4局部坐标与系统坐标转换 (9)2.5 matlab简述 (14)3内容成果及整理 (15)3.1原始数据 (15)3.2求解参数 (15)3.3求出54与80坐标 (16)3.4计算54与80坐标经纬度坐标 (17)3.5测区中心范围确定及相关数值和综合变形 (18)3.6局部坐标系统选择 (19)3.7局部坐标结果 (19)4课程设计收获与体会 (21)5附录 (22)5.1求解参数源代码 (22)5.2坐标转化源代码 (23)正算 (23)反算 (24)直角坐标相互转换 (25)直角坐标转经纬度 (26)5.3 散点图确定局部坐标系统源代码 (27)5.4中央子午线源代码 (27)5.5求抵偿面高程源代码 (28)5.6长度综合变形源代码 (29)5.7求局部坐标源代码 (29)6参考文献 (31)摘要:大地坐标系是大地测量的基本坐标系。
浅谈WGS84与北京54之间的转换
![浅谈WGS84与北京54之间的转换](https://img.taocdn.com/s3/m/db67fa21b90d6c85ec3ac682.png)
浅谈WGS84与北京54之间的转换摘要:GPS测量得到的是WGS84坐标系下的坐标,而实际应用中较多使用的是北京54坐标,如何实现WGS84坐标与北京54坐标系的转换,一直是GPS 应用中关心的热点。
本文详细介绍了GPS定位结果转换至北京54平面坐标系的两种坐标转换模型,并对实验结果进行了分析比较。
关键词:GPS;平面转换;空间转换Abstract: GPS measured is WGS84coordinate system of coordinates, but in the practical application are widely used in Beijing 54Coordinate, how to realize the WGS84 coordinates with Beijing 54coordinate system conversion, has been a hotspot in GPS application. This paper describes the results of GPS positioning to switch to Beijing 54 plane coordinates of the two coordinate transformation model, and the experimental results are analyzed and compared.Key words: GPS; plane conversion; conversion of space1前言测绘信息网随着GPS技术的快速发展,GPS定位精度的不断提高,使得GPS技术在测量中的应用也越来越广泛。
由于GPS卫星星历表示在WGS-84坐标系中,因此算得的GPS定位结果也直接表示在WGS84全球坐标系中。
而我国测绘成果大多表示在北京54坐标系中,它以克拉索夫斯基椭球为参考椭球,投影方式为高斯克吕格投影,以3度或者6度带划分整个中国区域。
matlab坐标转换四参数法
![matlab坐标转换四参数法](https://img.taocdn.com/s3/m/146ff908777f5acfa1c7aa00b52acfc789eb9f91.png)
matlab坐标转换四参数法1.引言1.1 概述在地理信息系统和测绘学中,坐标转换是一项重要的任务。
由于不同的坐标系统具有不同的基准和投影方式,因此需要进行坐标转换才能将一个点的坐标从一个坐标系统转换到另一个坐标系统。
本文将介绍一种常用的坐标转换方法——四参数法。
四参数法是一种简单而有效的坐标转换方法,通过使用四个参数进行坐标的平移和旋转,实现坐标的转换。
本文的目的是为读者介绍四参数法的原理、应用和优势。
通过深入理解四参数法的原理,读者将能够准确地将坐标在不同的坐标系统之间进行转换。
本文的结构如下:首先,将介绍坐标转换的背景,包括不同坐标系统的特点和应用领域。
其次,将详细介绍四参数法的原理,包括参数的意义和计算方法。
最后,将探讨四参数法在坐标转换中的应用,并对整个文章的内容进行总结。
通过阅读本文,读者将能够全面了解四参数法在坐标转换中的作用,掌握使用四参数法进行坐标转换的基本技巧和要点。
希望本文能够对地理信息系统和测绘学领域的专业人士和学生提供有益的参考和借鉴。
1.2文章结构文章结构部分的内容如下:1.2 文章结构本文分为引言、正文和结论三部分。
每个部分都包含了多个章节,以便清晰地呈现出Matlab坐标转换四参数法的相关内容。
在正文部分,我们将首先介绍坐标转换的背景,包括为什么需要进行坐标转换以及坐标转换的重要性。
然后,我们将详细解释四参数法的原理,包括如何使用四个参数来进行坐标转换,并且说明其适用性和局限性。
在结论部分,我们将探讨四参数法在坐标转换中的实际应用,包括它在地理信息系统和测量等领域中的重要性和实用性。
最后,我们将对整篇文章进行总结,并提出一些展望和未来的研究方向。
通过这种结构,读者将能够系统地了解Matlab坐标转换四参数法的相关知识和应用,同时也可以深入研究并拓展该方法的更多可能性。
1.3 目的本文的目的是介绍和讨论在Matlab中使用四参数法进行坐标转换的方法。
坐标转换是在地理信息系统(GIS)和测量工程中常用的技术,用于在不同的坐标系统或参考框架之间转换地理位置信息。
北京54坐标转换至WGS-84坐标的方法
![北京54坐标转换至WGS-84坐标的方法](https://img.taocdn.com/s3/m/d627f04d001ca300a6c30c22590102020740f26a.png)
北京54坐标转换至WGS-84坐标的方法
蔡昌盛;高井祥;郑南山;张华海
【期刊名称】《测绘》
【年(卷),期】2005(028)003
【摘要】本文首先阐述了北京54坐标转换至WGS-84坐标的意义,介绍了北京54坐标转换至WGS-84坐标的实现过程及其方法.最后通过计算江苏省北京54坐标数据和C级GPS网数据对两种坐标转换方法进行了比较分析,并得出了有益的结论.
【总页数】4页(P125-127,134)
【作者】蔡昌盛;高井祥;郑南山;张华海
【作者单位】中国矿业大学环境与测绘学院,江苏,徐州,221008;中国矿业大学环境与测绘学院,江苏,徐州,221008;中国矿业大学环境与测绘学院,江苏,徐州,221008;中国矿业大学环境与测绘学院,江苏,徐州,221008
【正文语种】中文
【中图分类】P226+.3
【相关文献】
1.WGS-84坐标与 BJ-54坐标之间的坐标转换问题 [J], 杨玉华;郭圣权
2.WGS-84到北京54坐标转换精简模型修正方案的研究 [J], 滕志军;李喆;朱瑞杰;何平
3.WGS-84至BJ-54坐标转换方法的探讨 [J], 范震
4.WGS-84坐标与BJ-54坐标转换的方法及应用 [J], 李宇廷
5.将WGS-84坐标转为北京54坐标的一种实用方法 [J], 高艳芳;戚树军;李晓昌因版权原因,仅展示原文概要,查看原文内容请购买。
北京54坐标与GPS坐标的转化RT
![北京54坐标与GPS坐标的转化RT](https://img.taocdn.com/s3/m/08fffbd1b14e852458fb5736.png)
WGS 一84坐标系与BJ 一54坐标系转换方法摘要 GPS 测量得到的是WGS-84中的地心空间直角坐标,而工程施工中通常使用地方独立坐标系,要求得到地方平面坐标。
如何实现两者的转换,一直是工程施工中关心的热点问题。
介绍了从GPS 定位结果至平面坐标的两种转换模型。
平面转换模型原理简单,数值稳定可靠,但只适用于小范围的GPS 测量;空间转换模型可用于大范围GPS 测量,按实际情况又分为7参数转换和3参数转换两种。
鉴于54坐标点的大地高通常不能精确得知,对这两种转换方法得到的平面坐标的精度进行了比较,得出大地高精度主要表现为对高程的影响,对平面坐标影响较小的结论。
此外,还讨论了7参数与3参数模型对转换结果的影响。
关键词 坐标系 GPS 平面转换 空间转换前言随着GPS 定位精度的不断提高,GPS 技术在测量中的应用也越来越广泛。
由于GPS 卫星星历表示于WGS-84坐标系中,算得的GPS 定位结果也直接表示在WGS-84全球坐标系中。
而我国测绘成果普遍表示在北京54坐标系中,它以克拉索夫斯基椭球为参考椭球,投影方式为Gauss 投影,以3。
或6。
带划分整个中国所在区域。
由于我国北京54坐标系是20世纪50年代建立的,受当时观测和计算手段的限制,精度不是很高,我国大部分城市为了避免Gauss 投影变形带来的不便,而采用地方独立坐标系。
地方独立坐标系的建立仍采用克拉索夫斯基椭球,中央子午线定在城市中央,投影面定为城市平均高度。
这些原因使得我国的平面坐标较为复杂。
本文针对这些问题,详细介绍将GPS 定位结果转换为平面坐标的算法,并进行精度对比,得出了一些有利于工程施工应用的结论和建议。
平面转换模型假设北京54椭球的中心和坐标轴方向与WGS-84椭球相一致,可通过平面转换模型,将GPS 定位得到的大地经纬度和大地高,通过以下过程转换成平面坐标()848484,,TB L h ,通过以下过程转换成平面坐标(),Tg g x y :(1) 由WGS-84的椭球参数,即椭球长半径和扁率,将()848484,,TB L h 换算至空间直角坐标(),,TX Y Z 的公式为:2()cos cos ()cos sin [(1)]sin X N h B L Y N h B L Z N e h B ⎧⎫=+⎪⎪=+⎨⎬⎪⎪=-+⎩⎭-----------------------(1)其中a N =(2) 由北京’&椭球的椭球参数,将(),,TX Y Z 换算至大地坐标形式()545454,,TB L h 的公式为:2arctan(/)arctan[(sin )/L Y X B Z N e B H B N=⎧⎫⎪⎪⎪⎪=+⎨⎬⎪⎪=-⎪⎪⎩⎭--------------------------(2)(3) 根据工程需要,确定中央子午线、投影面高程及北向、东向平移量,将5454(,)T B L 投影为Gauss 坐标''(,)Tg g x y 的高斯投影公式为: '2322445242226'3223242225sin cos sin cos 224(594)sin cos 74(6158270330)cos cos (1)cos 6120(5181458)g g N N x X B Bl B B N t l B B t t t l N N y N Bl B t l Bt t t l ηηηηηηηη⎧⎫=++∙⎪⎪⎪⎪⎪⎪-+++∙⎪⎪⎪⎪-++-+⎨⎬⎪⎪⎪⎪=+-++∙⎪⎪⎪⎪-++-+⎪⎪⎩⎭------------------------(3)以上步骤是在假定54椭球与WGS-84椭球的中心与坐标轴相同的前提下进行的,但实际应用中还应考虑旋转平移缩放的问题。
北京54坐标与WGS84坐标转换说明
![北京54坐标与WGS84坐标转换说明](https://img.taocdn.com/s3/m/fdc9aaf40975f46527d3e170.png)
坐标转换程序说明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坐标系之间的转换](https://img.taocdn.com/s3/m/1998764304a1b0717ed5dd37.png)
第一章绪论1.1概述坐标转化并不是一个新的课题,随着测绘事业的发展,全球一体化的形成,越来越要求全球测绘资料的统一。
尤其是在坐标系统的统一方面.原始的大地测量工作主要是依靠光学仪器进行,这样不免受到近地面大气的影响,同时受地球曲率的影响很大,在通视条件上受到很大的限制,从而对全球测绘资料的一体化产生巨大的约束性。
另外由于每一个国家的大地坐标系的建立和发展具有一定的历史特性,仅常用的大地坐标系就有150余个。
在同一个国家,在不同的历史时期由于习惯的改变或经济的发展变化也会采用不同的坐标系统。
例如:在我国建国之后,为了尽快搞好基础建设,我国采用了应用克氏椭球与我国实际相结合的北京54坐标系;随着经济的发展北京54坐标系的缺陷也随之被表露的越来越明显,特别是对我国经济较发达的东南沿海地区的影响表现得更为明显,进而我国开始研究并使用国家80坐标系。
在实际生活中,在一些地区由于国家建设的急需,来不及布设国家统一的大地控制网,而建立局部的独立坐标系。
而后,再将其转换到国家统一的大地控制网中,这些坐标系的变换都离不开坐标值的转化.在国际上,随着1964年美国海军武器实验室对第一代卫星导航系统─NNSS的研制成功,为测绘资料的全球一体化提供了可能。
到1972年,经过美国国防部的批准,开始了第二代卫星导航系统的开发研究工作,即为现在所说的GPS。
此套卫星导航系统满足了全球范围、全天候、连续实时以及三维导航和定位的要求.正是由于GPS卫星的这些特性,这种技术就很快被广大测绘工作者接受。
是由于坐标系统的不同,对GPS技术的推广使用造成了一定的障碍。
这样坐标转换的问题再一次被提到了重要的位置。
为了描述卫星运动,处理观测数据和表示测站位置,需要建立与之相应的坐标系统。
在GPS测量中,通常采用两种坐标系统,即协议天球坐标系和协议地球坐标系。
其中协议地球坐标系采用的是1984年世界大地坐标系(Word Geodetic System 1984─WGS-84)其主要参数为:长半轴 a=6378137; 扁率 f=1:298.257223563.而我国采用的坐标系并不是WGS-84坐标系而是BJ-54坐标系,这个坐标系是与前苏联的1942年普耳科沃坐标系有关的,其主要参数为: 长半轴 a=6378245; 扁率 f=1:298.3.这就使得同一点在不同的坐标系下有不同的坐标值,这样使测绘资料的使用范围受到很大的限制,并且对GPS系统在我国的广泛使用造成了一定的约束性,对我国的测绘事业的发展不利。
WGS84与北京54坐标系之间的转换
![WGS84与北京54坐标系之间的转换](https://img.taocdn.com/s3/m/483351bf65ce050876321357.png)
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的WGS84坐标向北京54坐标转换
![基于MATLAB的WGS84坐标向北京54坐标转换](https://img.taocdn.com/s3/m/f3aec7f6910ef12d2af9e730.png)
的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
WGS84坐标与北京54坐标转换
![WGS84坐标与北京54坐标转换](https://img.taocdn.com/s3/m/3f4b1f2bcfc789eb172dc848.png)
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平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。
BJ54坐标到WGS84坐标的转换
![BJ54坐标到WGS84坐标的转换](https://img.taocdn.com/s3/m/5951d6cb0c22590102029d5f.png)
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)坐标](https://img.taocdn.com/s3/m/37421e7fbf23482fb4daa58da0116c175f0e1e91.png)
经纬度转(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);。
北京54坐标与WGS84坐标转换说明
![北京54坐标与WGS84坐标转换说明](https://img.taocdn.com/s3/m/fdc9aaf40975f46527d3e170.png)
坐标转换程序说明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坐标系之间的转换](https://img.taocdn.com/s3/m/b820fadc76a20029bd642db5.png)
第一章绪论1.1 概述坐标转化并不是一个新的课题随着测绘事业的发展全球一体化的形成越来越要求全球测绘资料的统一。
尤其是在坐标系统的统一方面.原始的大地测量工作主要是依靠光学仪器进行这样不免受到近地面大气的影响同时受地球曲率的影响很大在通视条件上受到很大的限制从而对全球测绘资料的一体化产生巨大的约束性。
另外由于每一个国家的大地坐标系的建立和发展具有一定的历史特性仅常用的大地坐标系就有 150 余个。
在同一个国家在不同的历史时期由于习惯的改变或经济的发展变化也会采用不同的坐标系统。
例如:在我国建国之后为了尽快搞好基础建设我国采用了应用克氏椭球与我国实际相结合的北京 54 坐标系随着经济的发展北京 54 坐标系的缺陷也随之被表露的越来越明显特别是对我国经济较发达的东南沿海地区的影响表现得更为明显进而我国开始研究并使用国家 80 坐标系。
在实际生活中在一些地区由于国家建设的急需来不及布设国家统一的大地控制网而建立局部的独立坐标系。
而后再将其转换到国家统一的大地控制网中这些坐标系的变换都离不开坐标值的转化. 在国际上随着 1964 年美国海军武器实验室对第一代卫星导航系统—到NNSS 的研制成功为测绘资料的全球一体化提供了可能。
1972 年经过美国国防部的批准开始了第二代卫星导航系统的开发研究工作即为现在所说的 GPS。
此套卫星导航系统满足了全球范围、全天候、连续实时以及三维导航和定位的要求.正是由于 GPS 卫星的这些特性这种技术就很快被广大测绘工作者接受。
是由于坐标系统的不同对 GPS 技术的推广使用造成了一定的障碍。
这样坐标转换的问题再一次被提到了重要的位置。
为了描述卫星运动处理观测数据和表示测站位置需要建立与之相应的坐标系统。
在 GPS 测量中通常采用两种坐标系统即协议天球坐标系和协议地球坐标系。
其中协议地球坐标系采用的是 1984 年世界大地坐标系Word Geodetic System 1984—WGS-84其主要参数为: 长半轴 a6378137 扁率 f1:298.257223563. 而我国采用的坐标系并不是 WGS-84 坐标系而是 BJ-54 坐标系这个坐标系是与前苏联的 1942 年普耳科沃坐标系有关的其主要参数为: 长半轴 a6378245 扁率f1:298.3. 这就使得同一点在不同的坐标系下有不同的坐标值这样使测绘资料的使用范围受到很大的限制并且对 GPS 系统在我国的广泛使用造成了一定的约束性对我国的测绘事业的发展不利。
WGS_84和BJ54坐标转换问题的分析
![WGS_84和BJ54坐标转换问题的分析](https://img.taocdn.com/s3/m/de777f3467ec102de2bd8929.png)
收稿日期:2008-04-16作者简介:张灿(1974-),男,安徽六安人,毕业于同济大学,硕士,工程师。
0引言随着GPS定位精度的发展,GPS技术在测量中的应用也越来越广泛。
但是GPS定位的结果是位于WGS-84坐标系统中,WGS-84坐标是一个协议地球参考系,其坐标原点位于地球的质心上。
而我国测绘成果普遍表示在BJ54和1980年国家大地坐标系下,它是参心坐标系,BJ54生标系是以克拉索夫斯基椭球为参考椭球,采用高斯投影方式进行投影。
因此,需要将GPS测量得到的位于WGS-84坐标系的成果转换到BJ54坐标系下。
在进行WGS-84坐标系和BJ54坐标系转换时有两种转换思想和模型,即平面转换模型和空间转换模型。
1平面转换模型假设BJ54椭球的中心和坐标轴与WGS-84椭球一致,可通过平面转换模型,将GPS定位得到的大地经纬度和大地高通过以下过程转换为平面坐标。
①在WGS-84椭球参数约束下将WGS-84大地坐标转换为WGS-84空间直角坐标;X=(N+H)cosBcosLY=(N+H)cosBsinLZ=[N(1-e2)+H]sin!###"###$B(1)②将WGS-84空间直角坐标等同于BJ54坐标系下的空间直角坐标,将其在BJ54椭球参数约束下转换为假定的大地坐标;L=arctan(YX)B=arctan[(Z+Ne2sinB)/X2+Y2%]H=X2+Y2%secB-!#####"#####$N(2)③取当地中央子午线,将假定的地方大地坐标通过高斯投影转换成假定地方平面坐标;④通过平面转换模型将假定的地方平面坐标转换成地方平面坐标。
平面转换模型见式(3)。
xgyg&’=x0y0&(+(1+r)R(ψ)x'gy'g&((3)其中:(x'g.y'g)T为假定的地方平面坐标;(xg,yg)T为地方平面坐标;(x0,y0)T为坐标平移量;r为缩放尺度;R(ψ)=cos(ψ)sin(ψ)-sin(ψ)cos(ψ&()为旋转矩阵;ψ为旋转角。