利用EXCEL电子表格进行高斯投影换算GPS坐标的方法
作为尖端技术GPS,能方便快捷性地测定出点位坐标,无论是操作上还是精度上,比全站仪等其他常规测量设备有明显的优越性。随着我国各地GPS差分台站的不断建立以及美国SA政策的取消,使得单机定位的精度大大提高,有的已经达到了亚米级精度,能够满足国土资源调查、土地利用更新、遥感监测、海域使用权清查等工作的应用。在一般情况下,我们使用的是1954年北京坐标系或1980年西安坐标系(以下分别简称54系和80系),而GPS测定的坐标是WGS-84坐标系坐标,需要进行坐标系转换。对于非测量专业的工作人员来说,虽然GPS定位操作非常容易,但坐标转换则难以掌握,EXCEL是比较普及的电子表格软件,能够处理较复杂的数学运算,用它来进行GPS坐标转换、面积计算会非常轻松自如。要进行坐标系转换,离不开高斯投影换算,下面分别介绍用EXCEL进行换算的方法和GPS坐标转换方法。
一、用EXCEL进行高斯投影换算
从经纬度BL换算到高斯平面直角坐标XY(高斯投影正算),或从XY换算成BL(高斯投影反算),一般需要专用计算机软件完成,在目前流行的换算软件中,存在一个共同的不足之处,就是灵活性较差,大都需要一个点一个点地进行,不能成批量地完成,给实际工作带来许多不便。笔者发现,用EXCEL可以很直观、方便地完成坐标换算工作,不需要编制任何软件,只需要在EXCEL的相应单元格中输入相应的公式即可。下面以54系为例,介绍具体的计算方法。
完成经纬度BL到平面直角坐标XY的换算,在EXCEL中大约需要占用21列,当然读者可以通过简化计算公式或考虑直观性,适当增加或减少所占列数。在EXCEL中,输入公式的起始单元格不同,则反映出来的公式不同,以公式从第2行第1列(A2格)为起始单元格为例,各单元格的公式如下:
单元格
单元格内容
说明
A2
输入中央子午线,以度.分秒形式输入,如115度30分则输入115.30
起算数据L0
B2
=INT(A2)+(INT(A2*100)-INT(A2)*100)/60+(A2*10000-INT(A2*100)*100)/3600
把L0化成度
C2
以度小数形式输入纬度值,如38°14′20″则输入38.1420
起算数据B
D2
以度小数形式输入经度值
起算数据L
E2
=INT(C2)+(INT(C2*100)-INT(C2)*100)/60+(C2*10000-INT(C2*100)*100)/3600
把B化成度
F2
=INT(D2)+(INT(D2*100)-INT(D2)*100)/60+(D2*10000-INT(D2*100)*100)/3600
把L化成度
G2
=F2-B2
L-L0
H2
=G2/57.2957795130823
化作弧度
I2
=TAN(RADIANS(E2))
Tan(B)
J2
=COS(RADIANS(E2))
COS(B)
K2
=0.006738525415*J2*J2
L2
=I2*I2
M2
=1+K2
N2
=6399698.9018/SQRT(M2)
O2
=H2*H2*J2*J2
P2
=I2*J2
Q2
=P2*P2
R2
=(32005.78006+Q2*(133.92133+Q2*0.7031))
S2
=6367558.49686*E2/57.29577951308-P2*J2*R2+((((L2-58)*L2+61)*
O2/30+(4*K2+5)*M2-L2)*O2/12+1)*N2*I2*O2/2
计算结果X
T2
=((((L2-18)*L2-(58*L2-14)*K2+5)*O2/20+M2-L2)*O2/6+1)*N2*(H2*J2)
计算结果Y
表中公式的来源及EXCEL软件的操作方法,请参阅有关资料,这里不再赘述。按上面表格中的公式输入到相应单元格后,就可方便地由经纬度求得平面直角坐标。当输入完所有的经纬度后,用鼠标下拉即可得到所有的计算结果。表中的许多单元格公式为中间过程,可以用EXCEL的列隐藏功能把这些没有必要显示的列隐藏起来,表面上形成标准的计算报表,使整个计算表简单明了。从理论上讲,可计算的数据量是无限的,当第一次输入公式后,相当于自己完成了一软件的编制,可另存起来供今后重复使用,一劳永逸。
二、GPS坐标转换方法与面积计算
GPS所采用的坐标系是美国国防部1984世界坐标系,简称WGS-84,它是一个协议地球参考系,坐标系原点在地球质心。GPS的测量结果与我国的54系或80系坐标相差几十米至一百多米,随区域不同,差别也不同,经粗落统计,我国西部相差70米左右,东北部140米左右,南部75米左右,中部45米左右。由此可见,必须将WGS-84坐标进行坐标系转换才能供标图使用。坐标系之间的转换一般采用七参数法或三参数法,其中七参数为X平移、Y平移、Z平移、X旋转、Y旋转、Z旋转以及尺度比参数,若忽略旋转参数和尺度比参数则为三参数方法,三参数法为七参数法的特例。这里的Z、Y、Z是空间大地直角坐标系坐标,为转换过程的中间值。在实际工作中我们常用的是平面直角坐标,是否可以跳过空间直角坐标系,省略复杂的运算,进行简单转换呢?为此,笔者进行了长期的实践,证明是可行的。其在原理是:不把GPS所测定的WGS-84坐标当作WGS-84坐标,而是当作具有一定系统性误差的54系坐标值,然后通过国家已知点纠正,消除该系统误差。我们暂把该方法称作坐标改正法,下面以WGS-84坐标转换成54系坐标为例,介绍数据处理方法:
首先,在测区附近选择一国家已知点,在该已知点上用GPS测定WGPS-84坐标系经纬度B和L,把此坐标视为有误差的54系坐标,利用54系EXCEL将经纬度BL转换成平面直角坐标X’Y’,然后与已知坐标比较则可计算出偏移量:
△X=X-X’
△Y=Y-Y’
式中的X、Y为国家控制点的已知坐标,X’、Y’为测定坐标,△X和△Y为偏移量。
求得偏移量后,就可以用此偏移量纠正测区内的其他测量点了。把其他GPS测量点的经纬度测量值,转换成平面坐标X’Y’,在此XY坐标值上直接加上偏移值就得到了转换后的54系坐标:
X=X’+△X
Y=Y’+△Y
在上述EXCEL计算表的最后两列,附加上求得的改正数并分别与计算出来的XY相加后,即得到转换结果。若测量路线是一闭合区域的话,可把计算结果按路线顺序排列起来,再输入相应的计算公式,即可计算出该区域的面积。有关用坐标计算面积的原理与公式,这里不再叙述,读者可参阅有关资料。需要说明的是,面积的计算精度基本上不受坐标转换精度的影响,若只需要求算面积的话,可不进行坐标系转换这一步,只需要把BL化成XY就行了。
就1:1万比例尺成图而言,在一般的县行政区范围内(如40Km×40Km),用此简单的坐标改正法进行转换与较复杂的七参数法没有多大差别。能否满足1:1万比例尺变更调查的要求,主要取决于GPS接收机本身的精度,与转换方法的选择关系不大。当面积较大时,使用该方法可能会使误差增大,这时可考虑分区域转换。
西安80坐标系与北京54坐标系其实是一种椭球参数的转换作为这种转换在同一个椭球里的转换都是严密的,而在不同的椭球之间的转换是不严密,因此不存在一套转换参数可以全国通用的,在每个地方会不一样,因为它们是两个不同的椭球基准。那么,两个椭球间的坐标转换,一般而言比较严密的是用七参数布尔莎模型,即 X 平移, Y 平移, Z 平移, X 旋转(WX), Y 旋转(WY), Z 旋转(WZ),尺度变化(DM )。要求得七参数就需要在一个地区需要 3 个以上的已知点。如果区域范围不大,
最远点间的距离不大于 30Km(
经验值
)
,这可以用三参数,即 X 平移, Y 平移, Z 平移,而将 X 旋转, Y 旋转, Z 旋转,尺度变化面DM视为 0 。
方法如下(MAPGIS平台中):
第一步:向地方测绘局(或其它地方)找本区域三个公共点坐标对(即54坐标x,y,z和80坐标x,y,z);
第二步:将三个点的坐标对全部转换以弧度为单位。(菜单:投影转换/输入单点投影转换,计算出这三个点的弧度值并记录下来)
第三步:求公共点求操作系数(菜单:投影转换/坐标系转换)。如果求出转换系数后,记录下来。
第四步:编辑坐标转换系数。(菜单:投影转换/编辑坐标转换系数。)最后进行投影变换,“当前投影”输入80坐标系参数,“目的投影”输入54坐标系参数。进行转换时系统会自动调用曾编辑过的坐标转换系数。
请讨论高精度gps测点如何转换到54/80坐标系上
我想知道大家都是怎么做的。 __________________
欢迎就gis问题讨论! |
goodman
|
说白了就是WGS-84到54或者80的转换问题,关键是转换的参数,国内参数来源的途径不清楚,可能当地测绘部门有吧。
从2000年GPS接收到数据已经没有人为地误差,再加上电子基准点和平差的处理,最高可以到达厘米级的精度。
不知道哪位朋友给介绍一下国内的具体情况。 |
fuzt
|
tong,你好!
有关WGS84与BJ54的坐标转换问题,Goodman的说法有些道理,即参数转换的问题。具体过程:
1、(B,L)84——(X,Y,Z)84,空间大地坐标到空间直角坐标的转换。
2、(X,Y,Z)84——(X,Y,Z)54,坐标基准的转换,即Datum转换。
通常有三种转换方法:Bursa–Wolf七参数、简化三参数、Molodensky
3、(X,Y,Z)54——(B,L)54,空间直角坐标到空间大地坐标的转换。
4、(B,L)54——(x,y)54, Gauss投影正算。
一般的GPS数据处理软件都是采用上述步骤进行计算的,其中只有第2步涉及转换参数。鉴于我国曾使用不同的坐标基准(BJ54、State80、 Correct54),各地的重力值又有很大差异,所以很难确定一套适合全国且精度较好的转换参数。通行的做法是:在工作区内找三个以上的已知点,利用已
知坐标和所测Wgs84坐标,求解七参数。若多选几个已知点,通过平差的方法可以获得较好的精度。
有关理论问题,可以参考ArcGIS的文档——Understanding Map Projections(by ESRI.),有关实践过程的演示,可参考GPS数据处理软件TGO1.5(by Trimble Inc.)或Mstar(by Magellon Inc.)
以上的文档和软件我都有,若需要,可以给你上传。 |
goodman
|
关键就是第二步的转换参数,我这里三参数都是公开的,所以转换起来没有什么难度,其他都是现成的公式。另外,还有现成的电子基准点可以Downlaod。
再有我看到的现成的公式的展开项数都不够,估计教科书也好不到哪里去,所以高精度的话,第三步和第四步公式展开项数要足够,如果利用AO的话,直接使用即可,精度完全满足要求,可以根本不关心公式的问题。 |
tong
|
谢谢goodman与fuzt兄,
如goodman兄所言,正是第二步的转换参数问题。fuzt兄的方法不错,我也见有些书上说过,而且也可以保证精度,但要找出三个以上已知点,还是得求助于测绘部门,呵
goodman高斯的展开式有书上已经做到8项,一般书本上做到5项(?是不是5项,突然记不清了),精度已经达到0.0005弧度秒。所以做到8项对厘米级的精度也够了。如果需要更高精度可以用数学软件展开,如mathcad等,也挺容易的。
我之所以问这个问题,是因为我看到有人进行不同椭球体转换时仅在投影parameters后加长短半轴来做(arcinfo|project|parameters),然后写文章说变形如何如何,我怀疑它的精度根本不能保证变形是不是由投影误差造成的。
再次谢谢! |
goodman
|
由这个问题顺便带出来一个问题。我看到大多数GIS软件中没有中国使用的基准面(Datum),自然就是使用自定义基准面,而绝大多数自定义实际上还是上面第二步参数的问题,即与WGS84转换参数的问题。
把这个问题反过来,是不是GIS中已定义的基准面,其转换参数应该是已知的。大多数国家的参数都可以在美国国家测绘局主页上查到,偏偏没有中国的。我知道 ArcGIS中有北京54基准面,它的参数如何取得的,具体应该是什么,有什么方法取到?一般应该是Bursa–Wolf七参数的。
MapInfo主页上的那个大家好像一直怀疑,不知道是否有人确认过? |
zzhzj
|
楼上大侠搞的太复杂了。
地理座标(B,L)向大地坐标(X,Y,Z)转换,当然要选椭球体的参数,投影中央经线和投影区内任一点的纬度。比例尺为1,地理坐标单为为度,大地坐标单位为米。
地理座标向平面直角坐标转换,选椭球体的参数,投影中央经线和投影区内任一点的纬度。要有适当的比例尺,地理坐标单为为度,平面直角坐标单位为mm(根据比例尺不同而定)。
平面直角坐标之间的转换(84-54,or 54-84),只是椭球体不一样而已。 |
huxl
|
对于GPS数据WGS-84转B54或C80等等都是坐标变换与坐标转换的问题
1、地心大地坐标系向地心直角坐标系的坐标变换
2、地心直角坐标系向B54或C80等其它参心直角坐标系的转换
3、参心直角坐标系向区域大地坐标系变换
4、OK |
heroaming
|
[转帖]
坐标转换问题的详细了解对于测量很重要,那么请和我一起来讨论这个问题。
首先,我们要弄清楚几种坐标表示方法。大致有三种坐标表示方法:经纬度和高程,空间直角坐标,平面坐标和高程。
我们通常说的WGS-84坐标是经纬度和高程这一种,北京54坐标是平面坐标和高程着一种。
现在,再搞清楚转换的严密性问题,在同一个椭球里的转换都是严密的,而在不同的椭球之间的转换这时不严密的。举个例子,在WGS-84坐标和北京54坐标之间是不存在一套转换参数可以全国通用的,在每个地方会不一样,因为它们是两个不同的椭球基准。
那么,两个椭球间的坐标转换应该是怎样的呢?一般而言比较严密的是用七参数法,即X平移,Y平移,Z平移,X旋转,Y旋转,Z旋转,尺度变化K。要求得七
参数就需要在一个地区需要3个以上的已知点,如果区域范围不大,最远点间的距离不大于30Km(经验值),这可以用三参数,即X平移,Y平移,Z平移,而
将X旋转,Y旋转,Z旋转,尺度变化K视为0,所以三参数只是七参数的一种特例。在本软件中提供了计算三参数、七参数的功能。
在一个椭球的不同坐标系中转换需要用到四参数转换,举个例子,在深圳既有北京54坐标又有深圳坐标,在这两种坐标之间转换就用到四参数,计算四参数需要两个已知点。本软件提供计算四参数的功能。 |