sunybbt
路人甲
路人甲
  • 注册日期2004-11-13
  • 发帖数24
  • QQ
  • 铜币165枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:9488回复:27

详细解释Mapinfo中的数据投影转换问题!

楼主#
更多 发布于:2004-12-21 22:14
<P>偶尔发现这个论坛,觉得是GIS网站中做的较好的一个了,但是发现专业人士太少,大部分网友的问题得不到回答,而有相当一部分做GIS的网友又并非测绘类专业出生,因而投影问题困扰了很多人,在此我谈谈我个人的一些认识及经验,供各位参考,也希望相关方面的专业人士能给予纠正及补充。</P>
<P>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个椭球体参数如下:</P>
<P>    椭球体     Mapinfo中代号  年代   长半轴          短半轴          1/扁率 </P>
<P>    Krassovsky        3           1940     6378245         6356863         298.3
    IAG 75              31          1975    6378140         6356755         298.25722101
    WGS 84            28          1984     6378137.000   6356752.314  298.257223563</P>
<P>    椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。</P>
<P>    地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京54坐标值为X=4231898,Y=21655933,实际上指的是北京54基准面下的投影坐标,也就是北京54基准面下的经纬度坐标在直角平面坐标上的投影结果。</P>
<P>2. GIS中基准面的定义与转换</P>
<P>    虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(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的旋转角;最后是比例校正因子,用于调整椭球大小。</P>
<P>    MapX中基准面定义方法如下:
  
   Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian) </P>
<P>其中参数: Ellipsoid为基准面采用的椭球体;
           ShiftX, ShiftY, ShiftZ为平移参数;
           RotateX, RotateY, RotateZ为旋转参数;
           ScaleAdjust为比例校正因子,以百万分之一计;
           PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。</P>
<P>    美国国家测绘局(National Imagery and Mapping Agency)公布了世界大多数国家的当地基准面至WGS1984基准面的转换3参数(平移参数),可从 <a href="http://164.214.2.59/GandG/wgs84dt/dtp.html" target="_blank" >http://164.214.2.59/GandG/wgs84dt/dtp.html</A> 下载,其中包括有香港Hong Kong 1963基准面、台湾 Hu-Tzu-Shan 基准面的转换3参数,但是没有中国大陆的参数。</P>
<P>    实际工作中一般都根据工作区内已知的北京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(<a href="http://www.mapinfo.com.cn/download" target="_blank" >http://www.mapinfo.com.cn/download</A>)可下载到包含北京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的基准面定义肯定是不对的。因此,当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。</P>
<P>3. GIS中地图投影的定义
    
    我国的基本比例尺地形图(1:5千,1:1万,1:2.5万,1:5万,1:10万,1:25万,1:50万,1:100万)中,大于等于50万的均采用高斯-克吕格投影(Gauss-Kruger),又叫横轴墨卡托投影(Transverse Mercator);小于50万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(Lambert Conformal Conic);海上小于50万的地形图多用正轴等角园柱投影,又叫墨卡托投影(Mercator),我国的GIS系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。  </P>
<P>    在MapX中坐标系定义由基准面、投影两部分参数组成,方法如下:
  
    CoordSys.Set(Type, [Datum], [Units], [OriginLongitude], [OriginLatitude],
                  [StandardParallelOne], [StandardParallelTwo], [Azimuth], [ScaleFactor],
                  [FalseEasting], [FalseNorthing], [Range], [Bounds], [AffineTransform])  </P>
<P>其中参数:Type表示投影类型,Type为1时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数;
          Datum为大地基准面对象,如果采用非地球坐标(NonEarth)无需定义该参数;
          Units为坐标单位,如Units为7表示以米为单位;
          OriginLongitude、OriginLatitude分别为原点经度和纬度;
          StandardParallelOne、StandardParallelTwo为第一、第二标准纬线;
          Azimuth为方位角,斜轴投影需要定义该参数;
          ScaleFactor为比例系数;
          FalseEasting, FalseNorthing为东伪偏移、北伪偏移值;
          Range为地图可见纬度范围;
          Bounds为地图坐标范围,是一矩形对象,非地球坐标(NonEarth)必须定义该参数;      
          AffineTransform为坐标系变换对象。</P>
<P>     相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下:</P>
<P>     高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit),
                  中央经度(OriginLongitude),原点纬度(OriginLatitude),
                  比例系数(ScaleFactor),
                  东伪偏移(FalseEasting),北纬偏移(FalseNorthing)</P>
<P>     兰勃特: 投影代号(Type),基准面(Datum),单位(Unit),
             中央经度(OriginLongitude),原点纬度(OriginLatitude),
             标准纬度1(StandardParallelOne),标准纬度2(StandardParallelTwo),
             东伪偏移(FalseEasting),北纬偏移(FalseNorthing)</P>
<P>     墨卡托: 投影代号(Type),基准面(Datum),单位(Unit),
             原点经度(OriginLongitude),原点纬度(OriginLatitude),
             标准纬度(StandardParallelOne)</P>
<P>     在城市GIS系统中均采用6度或3度分带的高斯-克吕格投影,因为一般城建坐标采用的是6度或3度分带的高斯-克吕格投影坐标。高斯-克吕格投影以6度或3度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为X轴(纵轴,纬度方向),赤道投影后为Y轴(横轴,经度方向),为了防止经度方向的坐标出现负值,规定每带的中央经线西移500公里,即东伪偏移值为500公里,由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。</P>
<P>    假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用Pulkovo 1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。</P>
<P>    那么当精度要求较高,实测数据为WGS1984坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择WGS 1984(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参数自定义基准面就行了。</P>
<P>谈到这里我想部分聪明的网友应该对Mapinfo的投影有了一个较为全面的了解了,这时候我们再来解决非地球坐标(NonEarth)如何转经纬度这个问题应该是轻而易举了。</P>
<P>首先此图的大致比例尺你应该可以估算,小于50万的地形图采用正轴等角割园锥投影,大于等于50万的均采用高斯-克吕格投影(Gauss-Kruger),这时投影你应该可以确定了,然后根据制图的年代,应该可以知道是54还是80坐标系,根据制图的区域,不难算出带号,或者第一、第二标准纬线,这时可用的投影组合缩小到有限的几种,一个个试吧,把投影赋给非地球坐标(NonEarth),然后用经纬度查看,如果正确的化,恭喜你成了,这时候你就可以把非地球坐标(NonEarth)转换成包括经纬度在内的任意投影的坐标了。</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-12-22 12:25
<P><FONT color=#ff3300>偶尔发现这个论坛,觉得是GIS网站中做的较好的一个了,但是发现专业人士太少,大部分网友的问题得不到回答,而有相当一部分做GIS的网友又并非测绘类专业出生,因而投影问题困扰了很多人,在此我谈谈我个人的一些认识及经验,供各位参考,也希望相关方面的专业人士能给予纠正及补充。</FONT></P><P><FONT color=#ff3300></FONT> </P><P><FONT color=#000000>多谢你的建议和你的资料,还希望大家多来支持,专业不专业,是看大家对问题的认真程度</FONT></P><P>:)</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
happyfjy
路人甲
路人甲
  • 注册日期2004-09-01
  • 发帖数112
  • QQ
  • 铜币426枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-01-10 19:38
<P>good and thank</P>
举报 回复(0) 喜欢(0)     评分
gwf506
路人甲
路人甲
  • 注册日期2003-08-25
  • 发帖数56
  • QQ
  • 铜币266枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-01-10 21:43
<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
caigui77
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数56
  • QQ
  • 铜币304枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-01-11 16:19
<img src="images/post/smile/dvbbs/em01.gif" />只要大家都发表一下自己的见解和经验都是好的
举报 回复(0) 喜欢(0)     评分
lsrh
金牌卧底
金牌卧底
  • 注册日期2004-09-08
  • 发帖数316
  • QQ
  • 铜币45枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
5楼#
发布于:2005-01-14 18:40
<img src="images/post/smile/dvbbs/em01.gif" />
我们来世不易,要不开心的生活,岂非有负此一生!我命由我不由天,事在人为,做一个生活强者! I LOVE GIS(INCLUE 3S SYSTEM) ,AND YOU?
举报 回复(0) 喜欢(0)     评分
红山玉龙
路人甲
路人甲
  • 注册日期2004-03-20
  • 发帖数103
  • QQ
  • 铜币501枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-01-18 18:13
谢谢这位老大,我正在找这方面的知识呢。
举报 回复(0) 喜欢(0)     评分
caigui77
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数56
  • QQ
  • 铜币304枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2005-01-29 20:26
<P>很有用的知识,看了对这方面的知识有比较深的认识了</P><img src="images/post/smile/dvbbs/em04.gif" />
举报 回复(0) 喜欢(0)     评分
unchained
路人甲
路人甲
  • 注册日期2005-01-19
  • 发帖数12
  • QQ
  • 铜币135枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2005-04-12 15:21
真的很有帮助,谢谢<img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
影子
路人甲
路人甲
  • 注册日期2005-03-17
  • 发帖数27
  • QQ
  • 铜币106枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-04-12 16:14
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em04.gif" />
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部