坐标系在我看来是GIS课程中最重要也是最难以掌握的点,结合以前讲过的GIS坐标系相关内容和同学们的反馈,我决定再次更新《GIS基础教程之坐标系》。
根据教学和软件技术发展情况,再次更新本文,主要是针对开源QGIS软件进行更新,进一步补充了QGIS中坐标系相关操作内容。
本教程从以下几个方面入手:
坐标系的基本概念
地理坐标系 投影坐标系
如何选择坐标系
根据研究区域大小 根据研究目的(等角?等面积?等距离?其他) 推荐一个在线坐标系选择网站
GIS坐标系几种情况
数据的坐标系 GIS显示坐标系 动态投影
GIS软件中如何定义坐标系
ArcGIS中坐标系的定义 QGIS中坐标系的定义
坐标系的转换
矢量数据的转换 栅格数据的转换
本次更新主要是以思维导图的形式,给大家缕清楚各种坐标系和转换方法之间的关系,帮助大家建立起坐标系的知识体系。有了知识体系,才能以不变应万变。
1. 坐标系的基本概念
在GIS中,要想准确的定义空间位置,需要先确定坐标系。在GIS中坐标系可以分为两种:
地理坐标系(Geographic Coordinate System, GCS) 投影坐标系(Projected Coordinate System, PCS)
1)地理坐标系
地理坐标系是用经纬度表示的,单位“度”,常用的地理坐标系有:
国际:WGS_1984 国内:CGCS2000 国家2000大地坐标系 在ArcGIS软件中可以查看图层属性,Source选项卡
在QGIS软件中可以查看图层属性,Information选项卡,Coordinate Reference System(CRS)部分内容的描述
2)投影坐标系
投影坐标系是在地理坐标系规定的椭球基础上使用一定的算法进行投影,将球面投影到平面上建立的坐标系。单位是“米”。
ArcGIS中的投影坐标系
QGIS中的投影坐标系
坐标系参数的几个概念
为了方便大家看懂ArcGIS空间参考(Spatial Reference)参数,给大家简介一下几个概念:
投影(Projection):坐标系的投影方式 东偏(False Easting):一般用于UTM或高斯克吕格投影,为了让坐标值均为正数,往往会设定一个偏移值。 北偏(North Easting):咱们作为北半球国家,没有这个问题 中央子午线(Central_Meridian):重要的投影参数,以下面两个图为例,我国出版的世界地图一般类似图2,中国居中,中央子午线是150°E,欧洲出版的世界地图一般是类似下图,欧洲居中,中央子午线就是本初子午线,格林尼治的0度经线。
标准纬线(Standard_Parallel):一般有2条,会影响地图的形状。 椭球(Datum):这个很重要! 地理坐标系和投影坐标系虽然不一样,但是它们可能会使用同一椭球!每个地理坐标系都会对地球形状进行描述,而这个椭球就是地球形状的描述模型!或者你可以将椭球理解为橘子,WGS84的椭球是蜜桔,CGCS2000的椭球是金桔,虽然品种不一样,但是他们都是橘子(地球形状的描述模型)投影就是剥橘子把橘子皮展开在桌子(地图)上的方法!
2. 如何选择坐标系
坐标系的选择需要结合研究区大小和用途来判断。由于地球是一个椭球,投影到平面上时,不可避免的会发生面积、角度或距离的变形,就需要根据自己的需要选择合适的投影。
根据研究区大小选择
全球尺度,一般选择WGS84或CGCS2000地理坐标系 中国区域:一般使用国内的坐标系,目前北京54和西安80理论上已经停用,全面使用CGCS2000坐标系。 北京54 西安80 CGCS2000 标准地图投影为Albers投影 小区域,经度横跨6度以内,一般可以使用UTM或者高斯克吕格投影
借助工具选择
推荐两个网站,通过这两个网站可以很方便的了解坐标系的使用和选择方法
https://projectionwizard.org/# 地图选取区域 Distortion Property,选取变形特征,等面积(Equal-area),正形(Confomal),等距离(Equidistant),折中(Compromise) 获取投影参数PROJ或者WKT
https://epsg.io/ 这个网站可以用于查看标准投影(带EPSG编号的)详细信息
ArcGIS的投影选择设置页面 这个一定要熟悉,毕竟ArcGIS作为行业标杆,坐标系设置和选择都离不开。
3. GIS坐标系几种情况
在GIS软件中,坐标系常见的几个情况如下:
数据坐标系,不论是矢量数据还是栅格数据,都带有坐标系信息,才能让GIS软件正确的读取和显示。当数据存储的坐标信息不是真实的坐标系信息时,就会发生显示错误。 显示坐标系,GIS软件成图显示的坐标系和数据坐标系不一定一致,显示坐标系就是我们看到的坐标系。
动态投影,GIS软件之所以能够让不同坐标系的数据叠加显示在一起,就是靠的GIS软件动态投影功能,自动识别数据坐标信息,转换为显示坐标系,保证数据显示正确。 动态投影计算量大,对于数据量比较大的矢量或者栅格、在线地图等会严重拖慢加载速度 动态投影可能计算结果不准确,例如这种情况:QGIS绘制的地球不圆怎么办?
4.GIS软件中如何定义坐标系
ArcGIS中坐标系的定义
数据坐标系的定义
在ArcGIS中对数据定义坐标系,可以使用Catalog的数据管理功能,也可以使用ArcToolbox的定义投影(Define Projection)工具。
注意,上面这两种方法都是直接修改数据的坐标系属性,适用条件是:数据坐标系信息缺失或坐标系信息错误,具体示例可以参考:如何走好GIS数据处理的第一步
显示坐标系的定义
显示坐标系会直接影响地图出图的形状。以中国地图为例,详细介绍看后面推文:专题要素到标准地图的整合——以中国5A级景区分布图为例
QGIS中坐标系的定义
在QGIS中坐标系的定义和管理工作个人感觉不如ArcGIS更直观和方便,主要需要使用WKT代码实现自定义坐标系。前面推荐的projectionwizard网站可以实现WKT代码的输出,从而实现在QGIS中进行坐标系的定义。详细介绍看下面推文:
5. 坐标系的转换
常用的GIS软件都可以实现数据的坐标系转换功能。下图为ArcGIS和QGIS中关于坐标系转换的功能介绍:
ArcGIS坐标系转换
定义投影(Define Projection) 矢量、栅格数据均适用 仅用于数据坐标系信息丢失或错误的情况,用于给数据定义正确的坐标系信息
投影(Project) 将矢量数据从一种坐标系转为另一种坐标系,例如,将地理坐标系转为投影坐标系
投影栅格(Project Raster) 将栅格数据从一种坐标系转为另一种坐标系。
QGIS坐标系转换
矢量数据坐标系转换Reproject Layer
栅格数据坐标系转换Warp(Reproject)
QGIS批量栅格坐标系转换操作方法,矢量数据操作类似,只要使用矢量数据坐标系转换的Run as Batch Process功能即可,表达式可以参照前面栅格批量转换中的代码。
总结
最后以一张大图总结一下知识体系。如果感觉不错还请分享、再看。