坐标系统是GIS图形显示、数据组织分析的基础,所以建立完善的坐标投影系统对于GIS应用来说是非常重要的,不过由于搞清楚那么多的投影类型、坐标系统是一件很麻烦的事情。上大学那会儿没有好好学地图学(好好学了估计也不会考虑那么多,嘿嘿。),所以现在不得不补补了~~(PS:下周就能回家了,昨天刚买好了火车票,正高兴着呢。。 都差不多一年没回家了。。好了,言归正传,下面整理了些东西,搞搞清楚GIS的坐标投影系统,目的呢就是开发一个实现坐标投影转换的小模块--这是后话,先把基础的东西搞清楚..)
GIS的坐标系统呢大致有三种(本人认为的国外国内做GIS最好的ESRI和Supermap都是这么分的):Plannar Coordinate System(平面坐标系统,或者Custom用户自定义坐标系统)、Geographic Coordinate System(地理坐标系统)、Projection Coordinate System(投影坐标系统)。这三者并不是完全独立的,而且各自都有各自的应用特点。如平面坐标系统常常在小范围内不需要投影或坐标变换的情况下使用,在Arcgis中,默认打开数据不知道坐标系统信息的情况下都当作Custom CS处理,也就是平面坐标系统。而地理坐标系统和投影坐标系统又是相互联系的,地理坐标系统是投影坐标系统的基础之一,二者的区别联系在下文详述,下面先搞清楚几个基本的概念(参考自Jetz大侠的博客:http://jetz.cnblogs.com/category/24847.html):
1、椭球面(Ellipsoid)
地图坐标系由大地基准面和地图投影确定,大地基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的大地基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的IAG 75地球椭球体建立了我国新的大地坐标系--西安80坐标系, 目前GPS定位所得出的结果都属于WGS84坐标系统,WGS84基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心的坐标系。因此相对同一地理位置,不同的大地基准面,它们的经纬度坐标是有差异的。 采用的3个椭球体参数如下(源自“全球定位系统测量规范 GB/T 18314-2001”):
椭球体 | 长半轴 | 短半轴 |
Krassovsky | 6378245 | 6356863.0188 |
IAG 75 | 6378140 | 6356755.2882 |
WGS 84 | 6378137 | 6356752.3142 |
理解:椭球面是用来逼近地球的,应该是一个立的椭圆旋转而成的。
2、大地基准面(Datum)
椭球体与大地基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的大地基准面显然是不同的。在目前的GIS商用软件中,大地基准面都通过当地基准面向WGS84的转换7参数来定义,即三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。北京54、西安80相对WGS84的转换参数至今没有公开,实际工作中可利用工作区内已知的北京54或西安80坐标控制点进行与WGS84坐标值的转换,在只有一个已知控制点的情况下(往往如此),用已知点的北京54与WGS84坐标之差作为平移参数,当工作区范围不大时,如青岛市,精度也足够了。
以(32°,121°)的高斯-克吕格投影结果为例,北京54及WGS84基准面,两者投影结果在南北方向差距约63米(见下表),对于几十或几百万的地图来说,这一误差无足轻重,但在工程地图中还是应该加以考虑的。
| 输入坐标(度) | 北京54 高斯投影(米) | WGS84 高斯投影(米) |
纬度值(X) | 32 | 3543664 | 3543601 |
经度值(Y) | 121 | 21310994 | 21310997 |
理解:椭球面和地球肯定不是完全贴合的,因而,即使用同一个椭球面,不同的地区由于关心的位置不同,需要最大限度的贴合自己的那一部分,因而大地基准面就会不同。
3、高斯投影(Gauss Projection)
(1)高斯-克吕格投影性质
高斯-克吕格(Gauss-Kruger)投影简称“高斯投影”,又名"等角横切椭圆柱投影”,地球椭球面和平面间正形投影的一种。德国数学家、物理学家、天文学家高斯(Carl FriedrichGauss,1777一 1855)于十九世纪二十年代拟定,后经德国大地测量学家克吕格(Johannes Kruger,1857~1928)于 1912年对投影公式加以补充,故名。该投影按照投影带中央子午线投影为直线且长度不变和赤道投影为直线的条件,确定函数的形式,从而得到高斯一克吕格投影公式。投影后,除中央子午线和赤道为直线外, 其他子午线均为对称于中央子午线的曲线。设想用一个椭圆柱横切于椭球面上投影带的中央子午线,按上述投影条件,将中央子午线两侧一定经差范围内的椭球面正形投影于椭圆柱面。将椭圆柱面沿过南北极的母线剪开展平,即为高斯投影平面。取中央子午线与赤道交点的投影为原点,中央子午线的投影为纵坐标x轴,赤道的投影为横坐标y轴,构成高斯克吕格平面直角坐标系。
高斯-克吕格投影在长度和面积上变形很小,中央经线无变形,自中央经线向投影带边缘,变形逐渐增加,变形最大之处在投影带内赤道的两端。由于其投影精度高,变形小,而且计算简便(各投影带坐标一致,只要算出一个带的数据,其他各带都能应用),因此在大比例尺地形图中应用,可以满足军事上各种需要,能在图上进行精确的量测计算。
(2)高斯-克吕格投影分带
按一定经差将地球椭球面划分成若干投影带,这是高斯投影中限制长度变形的最有效方法。分带时既要控制长度变形使其不大于测图误差,又要使带数不致过多以减少换带计算工作,据此原则将地球椭球面沿子午线划分成经差相等的瓜瓣形地带,以便分带投影。通常按经差6度或3度分为六度带或三度带。六度带自0度子午线起每隔经差6度自西向东分带,带号依次编为第 1、2…60带。三度带是在六度带的基础上分成的,它的中央子午线与六度带的中央子午线和分带子午线重合,即自 1.5度子午线起每隔经差3度自西向东分带,带号依次编为三度带第 1、2…120带。我国的经度范围西起 73°东至135°,可分成六度带十一个,各带中央经线依次为75°、81°、87°、……、117°、123°、129°、135°,或三度带二十二个。六度带可用于中小比例尺(如 1:250000)测图,三度带可用于大比例尺(如 1:10000)测图,城建坐标多采用三度带的高斯投影。
(3)高斯-克吕格投影坐标
高斯- 克吕格投影是按分带方法各自进行投影,故各带坐标成独立系统。以中央经线投影为纵轴(x), 赤道投影为横轴(y),两轴交点即为各带的坐标原点。纵坐标以赤道为零起算,赤道以北为正,以南为负。我国位于北半球,纵坐标均为正值。横坐标如以中央经线为零起算,中央经线以东为正,以西为负,横坐标出现负值,使用不便,故规定将坐标纵轴西移500公里当作起始轴,凡是带内的横坐标值均加 500公里。由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,为了区别某一坐标系统属于哪一带,在横轴坐标前加上带号,如(4231898m,21655933m),其中21即为带号。
(4)高斯-克吕格投影与UTM投影
某些国外的软件如ARC/INFO或国外仪器的配套软件如多波束的数据处理软件等,往往不支持高斯-克吕格投影,但支持UTM投影,因此常有把UTM投影坐标当作高斯-克吕格投影坐标提交的现象。
UTM投影全称为“通用横轴墨卡托投影”,是等角横轴割圆柱投影(高斯-克吕格为等角横轴切圆柱投影),圆柱割地球于南纬80度、北纬84度两条等高圈,该投影将地球划分为60个投影带,每带经差为6度,已被许多国家作为地形图的数学基础。UTM投影与高斯投影的主要区别在南北格网线的比例系数上,高斯-克吕格投影的中央经线投影后保持长度不变,即比例系数为1,而UTM投影的比例系数为0.9996。UTM投影沿每一条南北格网线比例系数为常数,在东西方向则为变数,中心格网线的比例系数为0.9996,在南北纵行最宽部分的边缘上距离中心点大约 363公里,比例系数为 1.00158。 高斯-克吕格投影与UTM投影可近似采用 Xutm=0.9996 * X高斯,Yutm=0.9996 * Y高斯进行坐标转换。以下举例说明(基准面为WGS84):
| 输入坐标(度) | 高斯投影(米) | UTM投影(米) | Xutm=0.9996 * X高斯, Yutm=0.9996 * Y高斯 |
纬度值(X) | 32 | 3543600.9 | 3542183.5 | 3543600.9*0.9996 ≈ 3542183.5 |
经度值(Y) | 121 | 21310996.8 | 311072.4 | (310996.8-500000)*0.9996+500000 ≈ 311072.4 |
注:坐标点(32,121)位于高斯投影的21带,高斯投影Y值21310996.8中前两位“21”为带号;坐标点(32,121)位于UTM投影的51带,上表中UTM投影的Y值没加带号。因坐标纵轴西移了500000米,转换时必须将Y值减去500000乘上比例因子后再加500000。
理解:高斯投影的方法就是保持赤道和中央经线不变形,把球面摊平。方法:用一个椭圆柱套住椭球,把它投影到椭圆柱上,然后打开椭圆柱即可。
4、其他
WGS 84 是常用的经纬度的椭球面,也是一个公开的基准面。
正转换:经纬度-->高斯投影坐标。
大地基准面用于高斯投影,或者高斯分带投影,无论是54,80,还是wgs84,都有可能。
在不同的基准面下,同一个点的经纬度不同,投影坐标也不同。
地理坐标网(经纬网)
为了制作和使用地图的方便,高斯-克吕格投影的地图上绘有两种坐标网:地理坐标网和直角坐标网。
在我国1:1万-1:10万地形图上,经纬线只以图廓的形式表现,经纬度数值注记在内图廓的四角,在内外图廓间,绘有黑白相间或仅用短线表示经差、纬差1’的分度带,需要时将对应点相连接,就构成很密的经纬网。在1:20万-1:100万地形图上,直接绘出经纬网,有时还绘有供加密经纬网的加密分割线。纬度注记在东西内外图廓间,经度注记在南北内外图廓间。
直角坐标网(方里网)
直角坐标网是以每一投影带的中央经线作为纵轴(X轴),赤道作为横轴(Y轴)。纵坐标以赤道我0起算,赤道以北为正,以南为负。我国位于北半球,纵坐标都是正值。横坐标本应以中央经线为0起算,以东为正,以南为负,但因坐标值有正有负,不便于使用,所以又规定凡横坐标值均加500公里,即等于将纵坐标轴向西移500公里。横坐标从此纵轴起算,则都成正值。然后,以公里为单位,按相等的间距作平行于纵、横轴的若干直线,便构成了图面上的平面直角坐标网,又叫方里网。
5
Geographic Coordinate System和Projection Coordinate System的区别和联系: 地理坐标系统(Geographic Coordinate System) 1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求 我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短半轴,偏心率。以下几行便是Krasovsky_1940椭球及其相应参数。 Spheroid: Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening(扁率): 298.300000000000010000 然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中,可以看到有这么一行: Datum: D_Beijing_1954 表示,大地基准面是D_Beijing_1954。 -------------------------------------------------------------------------------- 有了Spheroid和Datum两个基本条件,地理坐标系统便可以使用。 完整参数: Alias: Abbreviation: Remarks: Angular Unit: Degree (0.017453292519943299) Prime Meridian(起始经度): Greenwich (0.000000000000000000) Datum(大地基准面): D_Beijing_1954 Spheroid(参考椭球体): Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening: 298.300000000000010000
投影坐标系统(Projection Coordinate System) 2、接下来便是Projection coordinate system(投影坐标系统),首先看看投影坐标系统中的一些参数。 Projection: Gauss_Kruger Parameters: False_Easting: 500000.000000 False_Northing: 0.000000 Central_Meridian: 117.000000 Scale_Factor: 1.000000 Latitude_Of_Origin: 0.000000 Linear Unit: Meter (1.000000) Geographic Coordinate System: Name: GCS_Beijing_1954 Alias: Abbreviation: Remarks: Angular Unit: Degree (0.017453292519943299) Prime Meridian: Greenwich (0.000000000000000000) Datum: D_Beijing_1954 Spheroid: Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening: 298.300000000000010000 从参数中可以看出,每一个投影坐标系统都必定会有Geographic Coordinate System。投影坐标系统,实质上便是平面坐标系统,其地图单位通常为米。 那么为什么投影坐标系统中要存在坐标系统的参数呢? 这时候,又要说明一下投影的意义:将球面坐标转化为平面坐标的过程便称为投影。好了,投影的条件就出来了: a、球面坐标 b、转化过程(也就是算法) 也就是说,要得到投影坐标就必须得有一个“拿来”投影的球面坐标,然后才能使用算法去投影! 即每一个投影坐标系统都必须要求有Geographic Coordinate System参数。 3、我们现在看到的很多教材上的对坐标系统的称呼很多,都可以归结为上述两种投影。其中包括我们常见的“非地球投影坐标系统”。 __________________ 大地坐标(Geodetic Coordinate) 大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。 方里网:是由平行于投影坐标轴的两组平行线所构成的方格网。因为是每隔整公里绘出坐标纵线和坐标横线,所以称之为方里网,由于方里线同时又是平行于直角坐标轴的坐标网线,故又称直角坐标网。 在1:1万——1:20万比例尺的地形图上,经纬线只以图廓线的形式直接表现出来,并在图角处注出相应度数。为了在用图时加密成网,在内外图廓间还绘有加密经纬网的加密分划短线(图式中称“分度带”),必要时对应短线相连就可以构成加密的经纬线网。1:2 5万地形图上,除内图廓上绘有经纬网的加密分划外,图内还有加密用的十字线。 我国的1:50万——1:100万地形图,在图面上直接绘出经纬线网,内图廓上也有供加密经纬线网的加密分划短线。 直角坐标网的坐标系以中央经线投影后的直线为X轴,以赤道投影后的直线为Y轴,它们的交点为坐标原点。这样,坐标系中就出现了四个象限。纵坐标从赤道算起向北为正、向南为负;横坐标从中央经线算起,向东为正、向西为负。 虽然我们可以认为方里网是直角坐标,大地坐标就是球面坐标。但是我们在一副地形图上经常见到方里网和经纬度网,我们很习惯的称经纬度网为大地坐标,这个时候的大地坐标不是球面坐标,她与方里网的投影是一样的(一般为高斯),也是平面坐标。
GIS中空间坐标系详解在AO开发中,经常会碰到空间坐标系统方面的问题,理清楚概念对于我们开发者来说是相当重要的,收集整理了相关的资料,进行了总结,以飨各位。GIS中坐标系定义是GIS系统的基础,GIS中的坐标系由基准面(Datum)和地图投影(Projection)两组参数确定。 地球椭球体地球是一个表面很复杂的球体,人们以假想的平均静止的海水面形成的“大地体”为参照,推求出近似的椭球体,理论和实践证明,该椭球体近似一个以地球短轴为轴的椭园而旋转的椭球面,这个椭球面可用数学公式表达,将自然表面上的点归化到这个椭球面上,就可以计算了。 常用的一些椭球及参数 海福特椭球(1910) 我国52年以前基准椭球 a=6378388m b=6356911.9461279m α=0.33670033670 克拉索夫斯基椭球(1940 Krassovsky) 北京54坐标系基准椭球 a=6378245m b=6356863.018773m α=0.33523298692 1975年I.U.G.G推荐椭球(国际大地测量协会1975) 西安80坐标系基准椭球 a=6378140m b=6356755.2881575m α=0.0033528131778 WGS-84椭球(GPS全球定位系统椭球、17届国际大地测量协会) WGS-84 GPS 基准椭球 a=6378137m b=6356752.3142451m α=0.00335281006247
Krasovsky_1940椭球及其相应参数 Alias: Abbreviation: Remarks: Angular Unit: Degree (0.017453292519943299) Prime Meridian(起始经度): Greenwich (0.000000000000000000) Datum(大地基准面): D_Beijing_1954 Spheroid(参考椭球体): Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening: 298.300000000000010000
地球椭球面上任一点的位置,可由该点的纬度(B)和精度(L)确定,即地面点的地理坐标值,由经线和纬线构成两组互相正交的曲线坐标网叫地理坐标网。由经纬度构成的地理坐标系统又叫地理坐标系。地理坐标分为天文地理坐标和大地地理坐标。天文地理坐标是用天文测量方法确定的,大地地理坐标是用大地测量方法确定的。我们在地球椭球面上所用的地理坐标系属于大地地理坐标系,简称大地坐标系。 确定椭球的大小后,还要进行椭球定向,即把旋转椭球面套在地球的一个适当的位置,这一位置就是该地理坐标系的“坐标原点”,是全部大地坐标计算的起算点,俗称“大地原点”。 基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之间的转换可查阅国家测绘局公布的对照表。椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。 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系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。
Projection: Gauss_Kruger Parameters: False_Easting: 500000.000000 False_Northing: 0.000000 Central_Meridian: 117.000000 Scale_Factor: 1.000000 Latitude_Of_Origin: 0.000000 Linear Unit: Meter (1.000000) Geographic Coordinate System: Name: GCS_Beijing_1954 Alias: Abbreviation: Remarks: Angular Unit: Degree (0.017453292519943299) Prime Meridian: Greenwich (0.000000000000000000) Datum: D_Beijing_1954 Spheroid: Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening: 298.300000000000010000
高斯-克吕格直角坐标高斯-克吕格投影是设想用一个椭圆柱横套在地球椭球的外面,并与设定的中央经线相切。 高斯-克吕格投影分带规定:该投影是国家基本比例尺地形图的数学基础,为控制变形,采用分带投影的方法,在比例尺 1:2.5万-1:50万图上采用6°分带,对比例尺为 1:1万及大于1:1万的图采用3°分带。 6°分带法:从格林威治零度经线起,每6°分为一个投影带,全球共分为60个投影带,东半球从东经0°-6°为第一带,中央经线为3°,依此类推,投影带号为1-30。其投影代号n和中央经线经度L0的计算公式为:L0=(6n-3)°;西半球投影带从180°回算到0°,编号为31-60,投影代号n和中央经线经度L0的计算公式为L0=360-(6n-3)°。 3°分带法:从东经1°30′起,每3°为一带,将全球划分为120个投影带,东经1°30′-4°30′,...178°30′-西经178°30′,...1°30′-东经1°30′。 东半球有60个投影带,编号1-60,各带中央经线计算公式:L0=3°n ,中央经线为3°、6°...180°。 西半球有60个投影带,编号1-60,各带中央经线计算公式:L0=360°-3°n ,中央经线为西经177°、...3°、0°。 我国规定将各带纵坐标轴西移500公里,即将所有y值加上500公里,坐标值前再加各带带号以18带为例,原坐标值为y=243353.5m,西移后为y=743353.5,加带号通用坐标为y=18743353.5 大地坐标(Geodetic Coordinate):大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。 |