详细说下GIS坐标系的使用,以Arcgis为例
这两天的工作涉及到比较多的投影坐标系定义和互转,索性开一个贴,通俗地说一说地图制图中常用的坐标系(以常用的ArcGIS为应用范例)。
常用的水平坐标系(平面二维制图)主要分为三种类型:地理坐标系、投影坐标系或局部坐标系,而三维制图则还可能涉及到垂直坐标系,但我们一般在制图中也都是直接进行垂直夸张。
地理坐标系
也即测量学常说的“大地坐标系”或“大地基准”,是三维椭球面或球面坐标系,单位一般为度。地理坐标系是一切gis计算和制图的基准。拿常用的北京1954坐标系来说,其包含了本初子午线、基准面、参考椭球体、长半轴、短半轴、扁率几个主要参数,以规定地球的形状(椭球体),如下图。
我们需要选择地理坐标系来规定地球形状的原因是:由于地球的各处凹凸不平,各处的参数都可能有所不同,各个国家和组织提供了经过精密计算和测量的统一地理坐标系。
在实际应用中,基本只涉及到以下几个地理坐标系(某些工具中会标识一个前缀:GCS,Geographic Coordinate System):
- krasovsky 1940(古老的坐标系,有一些遗留数据是这坐标系,在最新版arcgis pro中以EPSG Geodetic Parameter Registry的code搜索已经没有这个预留坐标系了)
- Beijing 1954(老坐标系,用的少了,不过之前很多的图件存在着历史遗留问题)
- Xian 80(较老)
- CGCS2000(08年的坐标系较新,数据较少,只有它在Arcgis中是全名,China Geodetic Coordinate System 2000)。
- WGS 1984(全球适用)
**实际上,诸如此类的大地坐标系都属于测量学中的参心坐标系或者地心坐标系,涉及到很多复杂和繁琐的定义、计算,有兴趣研究的朋友可以去看武汉大学出版的《大地测量学基础》。
投影坐标系
将地理坐标系的角度大地坐标转换为平面投影坐标系的笛卡尔坐标,也就是把球面的坐标系展开(投影)到平面,单位为距离量度(m或km)。根据投影不同产生不同主要参数:偏移量(移动坐标原点),中央经线,标准纬线、比例因子。
这里不再赘述投影坐标系的类型,进一步可以去看汤国安老师的《地理信息系统教程》。
常用的投影坐标系有如下这些,一般仅根据美观性和侧重点进行选择:
全球
- Equidistant cylindrical等距圆柱投影:格网单元为矩形。
- 墨卡托投影(如经常见到的前端的大范围世界尺度投影坐标系Web墨卡托)
- Natural Earth投影
- 兰勃特等角圆锥投影
- 局部/正射投影
我国
(国家提供的基本比例尺地形图进一步还会涉及到比较繁琐的分幅)
- 1:100w:Lambert。我国大部分省份地图及大多数这一比例尺的地图也多采用兰勃特投影和属于同一投影系统的阿伯斯(Albers)投影。中国地图的中央经线常位于东经105°,两条标准纬线分别为北纬27°和北纬45°,各省的参数须重新判定。
- 其他7种基本比例尺(1:5000、1:1万、1:2.5万、1:5万、1:10万、1:25(旧:20)万、1:50万、1:100万):高斯-克吕格投影。
为了控制变形,我国地形图采用分带的方法,每隔3或6°的经差划分为互不重叠的投影带。
- 1:2.5万至1:50万的地形图采用6分带,共分60个,我国含11个 (13~23带)。
- 1:1万及更大比例尺地图采用 3°分带方案,共分120个,我国含22个(24~45带)。
**在下面讲述的地理配准和空间校正中,我们可能会碰到根据坐标信息和大概位置需要指定数据、图像(通常为地形图)丢失的坐标系,并且需要判断六/三度分带和带号。
地理坐标系、投影坐标系之间的互换
存在三种情况:地理坐标系<->对应的投影坐标系;相同地理坐标系的投影坐标系互转;涉及到不同地理坐标系之间转换的地理/投影坐标系互转。
第二种情况,即涉及地理坐标系之间互换的场景较少,只有在硬性规定必须以某某坐标系作为最终输出,数据源坐标系又不一致的情况下,才可能会应用。
在Arcgis中,我们一般会用到 【投影】 工具进行坐标系的转换(这里的“投影”和gis学习中的“地图投影”略有不同,软件逻辑指的是从一种坐标系到另一种坐标系的转换,并未限制是从地理坐标系转换到平面坐标系)。
注意:当数据没有自带坐标系(即为unknown的时候,应先为其定义一个推测出的其坐标点的坐标系,而非你最终想要转换的坐标系,下面在定义投影和地理配准讲到)。
这里的地理坐标变换我们以两个例子来讲述:从NAD_1983_UTM_Zone_12N 投影到 NAD 1983 BLM Zone 1N(US Feet)(同一地理坐标系对应的投影坐标系之间互转)时不需要地理变换,因为输入坐标系和输出坐标系都具有 NAD_1983 基准面。
但是,从 GCS_Beijing_1954投影到 GCS_Xian_1980 时则需要地理变换,因为输入坐标系和输出坐标系使用的基准面不同,同理,其投影坐标系之间互转也是一样。若此时不选用转换,会产生影响程度不等的误差。
可以自定义地理坐标系转换(需要参数),即使用 【创建自定义地理坐标(转换)】 工具定义后,在这里就可以下拉使用了。
也可以使用arcgis预留的转换(较少),如:
定义投影、地理配准和空间校正
定义投影
给没有任何空间坐标系的数据一个坐标,这样其才能参与空间计算和制图。比如你有一个点数据,你需要判定这个点的原始坐标系是什么,并进行定义,才能让这个点显示到正确的位置。
推断地形图的位置坐标系
- 当Y坐标为8位数时,前两位是带号,此时判断为几度分带:在我国陆地范围,带号小于等于23的肯定是6度带,大于等于24的肯定是3度带。
- 但是实际上也有地形图Y坐标不带带号的,不为8位数,此时可以根据公式计算中央经线来判定带号:
- 六度带:范围内任意一处经度/6=N;中央经线L=6 * N (带号);(ps:当没有除尽,N有余数时,中央经线L=6*N – 3)
- 三度带:当地经度/3=N;中央经线L=3 X N
- 或者直接查询判断带号:根据你数据的实际范围看arcgis预定投影坐标系的中央经线
- 实际情况可能比较复杂,需要综合上述方法进行判断,但最重要的是判断带号,然后找到相应的几号分带。当然,坐标中不含代号的话,是最为棘手的,只能多试几次进行判断了。
举个例子,我有一张地形图,基于Beijing 1954地理坐标系,现在需要找到它的投影坐标系,目前我已经得知其地理范围在哪块,于是我可能面临以下选择:- Beijing 1954 3 Degree GK CM XX 3度分带无带号
- Beijing 1954 3 Degree GK Zone XX 3度分带有带号
- Beijing 1954 GK Zone XX 6度分带有带号
- Beijing 1954 GK Zone XX N 6度分带无带号
分析地形图上经纬度网格数据:2151000,为七位数不含带号,于是我在不含带号的坐标系中寻找,只能一个一个试了。最后试出是Beijing 1954 GK Zone XX N。
地理配准
当你的地形图是随手一拍,或者非矢量/扫描件,存在着拉伸变形的问题,通常还伴随着坐标系不明的弊病,那么通过上述方式判断坐标系后,还要进行地理配准。
- 容易忽略的一点就是设置当前图件的原始坐标系,即:否则arcgis会自动默认为当前地图坐标系进行配准,并且你的图像还是没有坐标系的状态。
- 设置好后,就是肉眼来添加控制点,在当前图件添加链接原点指向正确位置或添加后右击输入正确坐标都是可以的。
当你的图件只存在仿射变形(旋转、平移、比例缩放),此时最好使用一阶多项式(仿射)的方式进行配准,不然会过拟合影响精度哦。
空间校正
在pro中变成了这个工具 原理和上面地理配准一样,不再赘述。
参考资料:
- 《地理信息系统教程》汤国安
- 《大地测量学基础》武汉大学出版社
- ArcGIS官方文档