首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 专业论文 > GIS中的坐标系定义与转换(1)

GIS中的坐标系定义与转换(1)

北极星电力网技术频道    作者:佚名   2008/1/16 18:13:45   

 关键词:  GIS 坐标 转换

摘要:自“mapinfo上的gis系统开发”一文在计算机世界网上刊登后,有好几位读者向我询问坐标系定义与转换方面的问题,问题可归结为(1)地图在mapinfo上显示得很好,但在mapx中却显示不出来或显示得不对;(2)gps定位得到的wgs84坐标怎么往北京54坐标地图上转。这些问题也是曾经困惑我的问题,在此我谈谈我个人的一些认识及经验,供各位读者参考,也希望相关方面的专业人士能给予纠正及补充。

关键词:gis坐标系定义转换

  自“mapinfo上的gis系统开发”一文在计算机世界网上刊登后,有好几位读者向我询问坐标系定义与转换方面的问题,问题可归结为(1)地图在mapinfo上显示得很好,但在mapx中却显示不出来或显示得不对;(2)gps定位得到的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个椭球体参数如下:


  椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的pulkovo1942、非洲索马里的afgooye基准面都采用了krassovsky椭球体,但它们的基准面显然是不同的。
  地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京54坐标值为x=4231898,y=21655933,实际上指的是北京54基准面下的投影坐标,也就是北京54基准面下的经纬度坐标在直角平面坐标上的投影结果。

2.gis中基准面的定义与转换
  虽然现有gis平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的pulkovo1942基准面(mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等gis系统,则需要自定义基准面。
  gis系统中的基准面通过当地基准面向wgs1984的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第76至86页。假设xg、yg、zg表示wgs84地心坐标系的三坐标轴,xt、yt、zt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数δx、δy、δz表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕xt、yt、zt的旋转角;最后是比例校正因子,用于调整椭球大小。
  mapx中基准面定义方法如下:
datum.set(ellipsoid,shiftx,shifty,shiftz,rotatex,rotatey,rotatez,scaleadjust,primemeridian)

其中参数:ellipsoid为基准面采用的椭球体;
shiftx,shifty,shiftz为平移参数;
rotatex,rotatey,rotatez为旋转参数;
scaleadjust为比例校正因子,以百万分之一计;
primemeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。

  美国国家测绘局(nationalimageryandmappingagency)公布了世界大多数国家的当地基准面至wgs1984基准面的转换3参数(平移参数),可从http://164.214.2.59/gandg/wgs84dt/dtp.html下载,其中包括有香港hongkong1963基准面、台湾hu-tzu-shan基准面的转换3参数,但是没有中国大陆的参数。
  实际工作中一般都根据工作区内已知的北京54坐标控制点计算转换参数,如果工作区内有足够多的已知北京54与wgs84坐标控制点,可直接计算坐标转换的7参数或3参数;当工作区内有3个已知北京54与wgs84坐标控制点时,可用下式计算wgs84到北京54坐标的转换参数(a、b、c、d、e、f):x54=ax84 by84 c,y54=dx84 ey84 f,多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京54与wgs84坐标之差作为平移参数,当工作区范围不大时精度也足够了。
  从mapinfo中国的url(http://www.mapinfo.com.cn/download)可下载到包含北京54、西安80坐标系定义的mapinfow.prj文件,其中定义的北京54基准面参数为:(3,24,-123,-94,-0.02,0.25,0.13,1.1,0),西安80基准面参数为:(31,24,-123,-94,-0.02,0.25,0.13,1.1,0),文件中没有注明其参数的来源,我发现它们与mapinfo参考手册附录g"定义自定义基准面"中的一个例子所列参数相同,因此其可靠性值得怀疑,尤其从西安80与北京54采用相同的7参数来看,至少西安80的基准面定义肯定是不对的。因此,当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。

3.gis中地图投影的定义
  我国的基本比例尺地形图(1:5千,1:1万,1:2.5万,1:5万,1:10万,1:25万,1:50万,1:100万)中,大于等于50万的均采用高斯-克吕格投影(gauss-kruger),又叫横轴墨卡托投影(transversemercator);小于50万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(lambertconformalconic);海上小于50万的地形图多用正轴等角园柱投影,又叫墨卡托投影(mercator),我国的gis系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。
  在mapx中坐标系定义由基准面、投影两部分参数组成,方法如下:
coordsys.set(type,[datum],[units],[originlongitude],[originlatitude],
[standardparallelone],[standardparalleltwo],[azimuth],[scalefactor],
[falseeasting],[falsenorthing],[range],[bounds],[affinetransform])

其中参数:type表示投影类型,type为1时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数;
datum为大地基准面对象,如果采用非地球坐标(nonearth)无需定义该参数;
units为坐标单位,如units为7表示以米为单位;
originlongitude、originlatitude分别为原点经度和纬度;
standardparallelone、standardparalleltwo为第一、第二标准纬线;
azimuth为方位角,斜轴投影需要定义该参数;
scalefactor为比例系数;
falseeasting,falsenorthing为东伪偏移、北伪偏移值;
range为地图可见纬度范围;
bounds为地图坐标范围,是一矩形对象,非地球坐标(nonearth)必须定义该参数;
affinetransform为坐标系变换对象。

  相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下:
高斯-克吕格:投影代号(type),基准面(datum),单位(unit),
中央经度(originlongitude),原点纬度(originlatitude),
比例系数(scalefactor),
东伪偏移(falseeasting),北纬偏移(falsenorthing)

兰勃特:投影代号(type),基准面(datum),单位(unit),
中央经度(originlongitude),原点纬度(originlatitude),
标准纬度1(standardparallelone),标准纬度2(standardparalleltwo),
东伪偏移(falseeasting),北纬偏移(falsenorthing)

墨卡托:投影代号(type),基准面(datum),单位(unit),
原点经度(originlongitude),原点纬度(originlatitude),
标准纬度(standardparallelone)

  在城市gis系统中均采用6度或3度分带的高斯-克吕格投影,因为一般城建坐标采用的是6度或3度分带的高斯-克吕格投影坐标。高斯-克吕格投影以6度或3度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为x轴(纵轴,纬度方向),赤道投影后为y轴(横轴,经度方向),为了防止经度方向的坐标出现负值,规定每带的中央经线西移500公里,即东伪偏移值为500公里,由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。
  假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用pulkovo1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。
  那么当精度要求较高,实测数据为wgs1984坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择wgs1984(mapinfo中代号104)作为基准面,当只有一个已知控制点时(见第2部分),根据平移参数调整东伪偏移、北纬偏移值实现wgs84到北京54的转换,如:(8,104,7,123,0,1,21500200,-200),也可利用affinetransform坐标系变换对象,此时的转换系数(a、b、c、d、e、f)中a、b、d、e为0,只有x、y方向的平移值c、f;当有3个已知控制点时,可利用得到的转换系数(a、b、c、d、e、f)定义affinetransform坐标系变换对象,实现坐标系的转换,如:(8,104,7,123,0,1,21500000,0,map.affinetransform),其中affinetransform定义为affinetransform.set(7,a、b、c、d、e、f)(7表示单位米);当然有足够多已知控制点时,直接求定7参数自定义基准面就行了。

来源:找论文网
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有