GIS入门——说说坐标系的事儿

坐标系可谓是GIS的重中之重。但是反复学了好几遍总是记不住或者没有理解到位。这次结合自己实践的体会,同时参考网上的一些材料,写了这篇介绍坐标系的文章。

其实在阅读某些技术规范中对于坐标系的要求时,就可以大致摸清楚坐标系知识的一个框架。下面展示一段要求,以此来引出坐标系问题。(暂且先不谈高程的问题)

工作底图平面坐标系应采用国家大地坐标系 CGCS2000(或相当精度的 WGS84 坐标系),投影方式采用高斯-克吕格投影,高程基准采用 1985 国家高程基准。

通过这段话,我们可以获得几个关键词:平面坐标系、国家大地坐标系CGCS2000、投影方式、高斯-克吕格投影。

那么这几个关键词都有什么含义呢?往下读就知道啦。

首先,我们需要了解到坐标系分为地理坐标系、投影坐标系(以及垂直坐标系)。关于前两个坐标系,网上的介绍非常详细,建议可以先自行阅读一遍,在这里希望能给出一个更通俗易懂的解释。

 

  • 地理坐标系(Geographic Coordinate System

地理坐标系其实是用了一个规则的球面代表地球表面。在球面上画一张经纬网,球面上的一点就有了它的经纬度,这也就是地球上每一点的坐标。因此,地理坐标系中的坐标是以经纬度来表示的。

 

那么这个规则球面是怎么构造出来的呢?了解这个构造的过程对于理解GIS中的投影变换有很大帮助。

整个构造过程循序渐进,一步步将模型逼近地球表面,直到可以比较准确地代表地球表面。

(1)我们知道,地球表面有高原、有盆地,是起伏不平的,并不是一个规则的球面,当我们要进行一些数学计算会很不方便。所以一开始,人们就提出一个假想:地球表面上全是水,水覆盖了整个地球,并且保持静止的状态,这样形成了一个连续封闭的曲面。这个曲面就叫做水准面。这个水的深度可没有确定,所以水准面可高可低,但是人们把能与平均海水面吻合的那个水准面,叫做大地水准面

(2)这个大地水准面可以代表地球表面来用作计算了吗?还不能。因为水受重力的影响,而地球上每处重力有所差异(地球内部质量分布不均匀),所以这个大地水准面其实不是规则的,它是有一定起伏的,无法用数学公式精确表达。因此,为了方便计算,人们引入了参考椭球体,它在形体上和大地水准面非常接近,并且是一个可以用数学公式来表述的几何形体。

由于每个地区或国家地形地貌情况不一致,因此每个地区或国家会假设一个更贴合当地实际的大地水准面,这样一来也就有了针对各自情况的参考椭球体模型。比如我国常用的两个坐标系,北京54和西安80应用的椭球模型就分别是克拉索夫斯基椭球和1975年国际椭球体。

(3)参考椭球有了,这个构造过程要讲完了吧?还差那么一点点。

参考椭球是考虑整个地球表面的形状,为了均衡,对于任一块区域的表面必定不是百分百尽全力的贴合。那么想像一下,我们可以让这个椭球移动或缩放一下,要使之能尽量地贴合某一区域的表面,为此人们引入了大地基准面的概念。大地基准面通过前面提到的要让椭球怎样移动或缩放的一些参数来定义,通过某一区域的大地基准面来“微调”参考椭球,就可以使之更加贴合当地的实际情况,这样在测量计算中也更加接近实际。因此,大地基准面是在参考椭球的基础上建立的。并且同一个椭球体,可以有很多个大地基准面

那么也就可以知道,为什么北京54坐标系不叫克拉索夫斯基椭球坐标系呢?因为北京54就是在这个参考椭球上引入符合我国情况的大地基准面而产生的。

 

ArcGIS自带各种各样不同的地理坐标系。比如下图是我国比较常用的两个地理坐标系,CGCS2000以及西安80。红框选中的是他们的名称。GCS即地理坐标系Geographic Coordinate System的缩写。红框下方是对其参考椭球的一些描述。如果一个数据没有坐标信息,以经纬度形式呈现,先获取它坐标系归属的信息,再在ArcGIS中使用定义投影(define projection)工具,给数据加上正确的坐标系。

GIS入门——说说坐标系的事儿

GIS入门——说说坐标系的事儿

要注意的是,定义投影这个工具仅更新了数据的坐标信息,但没有改变数据真正的坐标系。如果你定义的是正确的坐标系,那么这很棒很吻合;如果你定义错了,数据的坐标系还是原来那个它自身的坐标系,并不会因为你定义了另一个坐标系而改变。就像是你不知道香蕉的名字,把它命名成了苹果,但事实上它还是根香蕉,不会变成苹果。

要想把香蕉变成苹果,真正改变数据的坐标系,需要用到投影变换工具(project)。对于两个地理坐标系或基准面之间(如西安80转CGCS2000)的转换,需要先建立自定义地理变换(create custom geographic transformation),通过填写相关参数进行变换。另外,虽然这两个工具的名字都包含project,但是它们是为全部坐标系服务的,包括地理坐标系。

 

  • 投影坐标系(Projected Coordinate System

生活中用到的地图是平面的,在实际施工中,施工图纸也是平面的,但我们的地理坐标系是球面坐标,怎么将球面上的坐标转移在一张平面的纸上呢?这就引入了投影的概念。将球面坐标转化为平面坐标的过程称为投影。因此投影坐标系的实质是平面坐标系统,坐标单位通常为

GIS入门——说说坐标系的事儿
看到投影就想起这个图。可以想象有一束xx光直射到画着经纬网的球体上,把外边的圆筒展开铺平得到投影后的结果。(高斯投影)

 

 总结上面这段话,重点就是:投影坐标系=地理坐标系+投影方式

清楚投影坐标系和地理坐标系之间的关系非常重要,因为在GIS中很多操作与文件的坐标系统有关,比如在做定量计算时,用的都是投影坐标系。一定要分清楚两个坐标系。简单的区分可以用数据坐标的表现形式来区分,比如用经纬度的是地理坐标系,用做单位的是投影坐标系。但是在ArcGIS中由于有动态投影的功能(即在数据框data frame的坐标系下,数据框下的所有数据都会临时投影变换成数据框的坐标系。),有时在界面右下角见到的坐标并不一定是数据坐标真正的表现形式。

至于我们现在使用的投影方式,如高斯-克吕格投影、Lambert投影、Mercator投影,这得感谢历史上各位聪明人。当然,投影方式是人们自己创造的,如果有需要、有能力,也可以自己创造一个投影方式来使用。

 

下面说一说高斯 - 克吕格投影

我国大中比例尺地图多采用高斯 - 克吕格投影。城建项目一般都采用这个投影。

投影后建立的高斯平面坐标系,指的是以*子午线与赤道的交点作为坐标原点,以*子午线的投影为纵坐标轴X,规定X轴向北为正,以赤道的投影为横坐标轴Y,Y轴向东为正,形成的坐标系。

数学上的坐标系,X代表横坐标,Y代表纵坐标。可以发现,高斯平面坐标系中的X、Y和数学坐标系中的X、Y是颠倒过来的。

工程图纸中的X、Y分别代表纵坐标与横坐标,是高斯平面坐标系,与数学上的X、Y颠倒。但是将点坐标导入GIS中时需要按数学坐标系的表示方式,比如将点坐标输进ArcGIS中,需要将图纸坐标X、Y颠倒一下,在ArcGIS中,X代表横坐标,Y代表纵坐标。

投影会造成一定变形。为了控制投影后的长度变形,通常是按6度和3度分带投影,度指的是经度。有一些工程项目,也有按照1.5度分带投影的,或者是其他度数分带的。

具体分带法是:

6度分带从本初子午线开始,按经差6为一个投影带自西向东划分,全球共分60个投影带,带号分别为1603度投影带是从东经130秒经线开始,按经差3度为一个投影带自西向东划分,全球共分120个投影带

地球分东西半球,所以按6度分带,一个半球有30个投影带;按3度分带,一个半球有60个投影带。我国经度范围西起73°,东至135°,横跨11个六度带,13带到23带,3度带数量多一倍,从 24带到45带。

GIS入门——说说坐标系的事儿

知道东半球上各个投影带*经线的经度,也就知道西半球上的了,反之亦然。知道各个投影带*经线的经度(可以百度三度带、六度带对照表),知道数据的经纬度范围,我们就知道这个数据的投影带号,知道它属于哪一个投影带。要注意的是,同一个带的投影坐标系分加带号不加带号两种。

 

下面通过一个实例来看怎么为一个数据(这里用矢量数据)选择正确的投影坐标系,更加深入认识投影坐标系。

假设这个矢量数据(范围在中国)已知坐标系是CGCS2000,已知一连串的坐标,此处X、Y已颠倒过:(41569821,4590855),(x,y)……单位为米。

(1)由于坐标单位为米(平面坐标),这个数据的坐标系肯定是一个投影坐标系。下一步判断用的是三度分带还是六度分带,以及属于的投影带。

(2)根据横坐标(有8位数字,前两位一定是带号)可以知道这个数据位于41带上,由于我国横跨的三度带为24到45带,横跨的六度带为13到23带,因此可以判断这个数据的坐标系是CGCS2000三度分带下的41带投影。如果坐标没有带号,则根据该数据的经纬度范围来确定是哪个投影带。

(3)在ArcGIS中使用定义投影工具,为该数据定义正确的投影坐标系。

 

同时,我们需要知道投影坐标系名称的含义,才能准确地选择我们想要的那个坐标系。比如CGCS2000坐标系中有

CGCS2000_3_degree_GK_CM123E——————三度分带下的41带投影(横坐标没有带号)
CGCS2000_3_degree_GK_Zone_41——————三度分带下的41带投影(横坐标有带号)
CGCS2000_GK_CM_123E—————————— 六度分带下的21带投影(横坐标没有带号)
CGCS2000_GK_Zone_
21———————————六度分带下的21带投影(横坐标有带号)

前两者带有3°的就是三度分带下的投影,后两个则是六度分带下投影。123E表示*经线的经度是123°,并且横坐标没有带号。另外两个则是坐标加带号的投影坐标系。(西安80、北京54的写法与之又有不同之处。)

而关于三度带和六度带投影的转换,实质上是在同一基准面下的投影变换,因此不需要建立上面提到的自定义地理变换,不需参数,直接转换就可以了。具体步骤可以看我的另一篇文章:https://blog.csdn.net/weixin_42724716/article/details/81206218

 

返回到最上面的那段要求,发现还有最后一个问题没解决:CGCS2000为什么可以用相当精度的WGS84代替?(它俩确实相差不大。)

想知道这个答案可以移步这篇文章,作者介绍了两个坐标系的区别,写的非常详细:http://www.qkt.beiyangeav.com/yc/2015/543774.html

 

欢迎留言与我交流!大家共同进步!~