ArcGIS座标系之惑: 从基本概念到常用操作

介绍GIS(地理信息系统)中的座标系的想法由来已久,因为工作中我发现有不少GIS专业的学生在博士毕业后仍然在座标系的概念理解和实际操作等方面不太清楚,而保证数据座标系的正确与合理是数据分析的前提。今年有幸辅助国科大地图学与地理信息系统教研室《GIS应用实践》的教学工作,借此机会完成此想法。ArcGIS无疑是应用最广的GIS软件,因此以ArcGIS为工具介绍座标系的基本概念和常用操作。我想,对于GIS专业人员、尤其对于GIS大牛来说,这是很小菜的。如有错误或不当之处,不吝指出。

(一)两种座标系

座标系(Coordinate System)的概念为:“In geometry, a coordinate system is a system which uses one or morenumbers, or coordinates, to uniquely determine the position of a point or othergeometric element on a manifold such as Euclidean space”(https://en.wikipedia.org/wiki/Coordinate_system)。简单的说,有了座标系,我们才能够用一个或多个“座标值”来表达和确定空间位置。没有座标系,座标值就无从谈起,也就无法描述空间位置。

在ArcGIS中,或者说在GIS中,我们遇到的座标系一般有两种:

1)地理座标系(Geographic Coordinate System);  

2)投影座标系(Projected Coordinate System)。  

地理座标系进行地图投影后就变成了投影座标系。地图投影是按照一定的数学法则将地球椭球面上点的经维度座标转换到平面上的直角座标。地图投影的理论知识请参考其他资料,此处不做叙述。需要说明的是,也有将“座标系”称为“空间参考(Spatial Reference)”的情况,例如在ArcGIS中栅格数据的属性里面。

重要的事情说三遍:

这里要讲的不是“投影(Projection)”而是“座标系(Coordinate System)”!

这里要讲的不是“投影(Projection)”而是“座标系(Coordinate System)”!

这里要讲的不是“投影(Projection)”而是“座标系(Coordinate System)”!

尽管投影是介绍座标系的一个绕不开的重要内容。但是,首先,此文是围绕座标系展开的。其次,说三遍是为了强调投影和座标系的本质区别。座标系是数据或地图的属性,而投影是座标系的属性。一个数据或一张地图一定有座标系,而一个座标系可以有投影也可以没投影。只有投影座标系才有投影,地理座标系是没有投影的。因此,一个数据或一张地图亦是可以有投影也可以没投影的。当然,非要较真,把具有地理座标系的数据显示在平面地图上肯定也有一个投影的过程。严格来讲:我们只能说“数据或地图的座标系”和“座标系的投影”,而不能说“数据或地图的投影”。也许是大家平时都比较随意,尽管都是知道二者的区别的,但是却在很多想说座标系的时候就随口说成了投影。因此,当你说“数据的投影”和“投影转换”时,可以考虑下你是不是想说“数据的座标系”和“座标系转换”。

先擡出重要的总结:地理座标系经过投影后变成投影座标系,投影座标系因此由地理座标系和投影组成,投影座标系必然包括有一个地理座标系。图1概括了两种座标系的联系:

图1 ArcGIS 中“地理座标系(GCS)”与“投影座标系(PCS)”的联系

下面以一个具体示例来初识ArcGIS中的座标系,其全部参数拷贝在下面。这一示例是一个“投影座标系(Projected Coordinate System)”,其名称是“WGS_1984_UTM_Zone_50N”。“WKID”是该座标系的编号,“ESPG”是“European Petroleum Survey Group”的缩写,表示其由“欧洲石油调查组织”发布。可知,“WGS_1984_UTM_Zone_50N”这个投影座标系由两部分组成:名为“Transverse_Mercator”的“投影(Projection)”和名为“GCS_WGS_1984”的“地理座标系(GeographicCoordinate System)”。

WGS_1984_UTM_Zone_50N

WKID:32650 Authority: EPSG

Projection:Transverse_Mercator

False_Easting:500000.0

False_Northing:0.0

Central_Meridian:117.0

Scale_Factor:0.9996

Latitude_Of_Origin:0.0

LinearUnit: Meter (1.0)

GeographicCoordinate System: GCS_WGS_1984

AngularUnit: Degree (0.0174532925199433)

PrimeMeridian: Greenwich (0.0)

Datum: D_WGS_1984

Spheroid:WGS_1984

Semimajor Axis: 6378137.0

Semiminor Axis: 6356752.314245179

Inverse Flattening:298.257223563

地理座标系由三个参数来定义:角度单位(Angular Unit)、本初子午线(Prime Meridian)和大地测量系统(Datum)。地理座标系“GCS_WGS_1984”使用的角度单位为“度(Degree)”,0.0174532925199433这个数字等于“π/180”,使用的本初子午线为0.0度经线,即格林威治皇家天文台(Greenwich)所在位置的经线,使用的大地测量系统则为“D_WGS_1984”。

地理座标系的最重要的参数是“大地测量系统(Datum)”,而大地测量系统的最重要的参数是“椭球(Spheroid)”。椭球相同,大地测量系统不一定相同,因为原点(origin)和方位(orientation)可以不同。想象一下,同一个椭球,首先可以固定在三维空间中的任意一个点,并且在固定于某点后还能以三个自由度任意地旋转其方位(朝向)。当然,具体国家或地区在选择大地测量系统时,总是选择与这一国家或地区的地面最吻合的大地测量系统,而不是拍脑袋随便选的。我们拿到的境内的许多数据使用的都是“D_Xian_1980”大地测量系统,因为“D_Xian_1980”是我们依据我国疆域的地面自己定义出来的,因而较“D_WGS_1984”与我国疆域的地面更吻合。“D_WGS_1984”大地测量系统使用的椭球为“WGS_1984”,而“WGS_1984”椭球的“长半轴(Semimajor Axis)”和“短半轴(Semiminor Axis)”分别为6378137.0和6356752.314245179,其“反扁率(Inverse Flattening)”为298.257223563,等于Semimajor Axis/( Semimajor Axis - Semiminor Axis)。

投影的参数对不同的投影方法有一定差别,在此也不详述各投影的具体参数。投影座标系“WGS_1984_UTM_Zone_50N”使用的“投影(Projection)”名为“横轴墨卡托(Transverse_Mercator)”,然而这个名称并不能完全准确概括其投影。事实上,投影座标系“WGS_1984_UTM_Zone_50N”这个名称中的“WGS_1984”指出了其地理座标系为“GCS_WGS_1984”,

而“UTM_Zone_50N”则指出了其投影。“UTM_Zone_50N”这个名称指出,其投影方法是“通用横轴墨卡托(Universal Transverse Mercator,UTM)”,其投影带为北半球第50带,这个“Zone_50N”的“中央经线(Central Meridian)”正是117.0度,在“Transverse_Mercator”的参数中得到了体现。举一反三,“Xian_1980_GK_CM_117E”这个座标系使用的地理座标系为“GCS_Xian_1980”,而投影名称“GK_CM_117E”指出其使用以东经117度为中央经线的“高斯-克吕格(Gauss-Kruger,GK)”投影。投影的另一个重要参数是“东偏(False Easting)”。有些投影会在X座标值前加上投影带号,比如:“Xian_1980_GK_Zone_20”的“false_easting”参数为20500000.0,其中20为投影带号,

而“Xian_1980_GK_CM_117E”的“false_easting”参数为500000.0,尽管它们的中央经线都为东经117度。

(二)三个半概念

在ArcGIS中,有三个概念容易混淆(另外半个最后揭晓),需要特别进行区分:

1)数据的真实座标系,简称为“真实座标系”;

2)数据属性所标称的座标系,简称为“属性座标系”;

3)ArcMap/ArcScene中Layers的座标系,简称为“地图座标系”。  

数据的真实座标系是指数据记录本身所对应的座标系。比如,国科大雁栖湖校区图书馆在地理座标系

“GCS_WGS_1984”下的经纬座标大概为(116.679267°E,40.408265°N),在投影座标系“WGS_1984_UTM_Zone_50N”下的平面座标为(472786.066803m,4473121.59882m)。假如用一个Point Shapefile数据来记录国科大雁栖湖校区图书馆的位置。如果使用经纬座标(116.679267,40.408265)来记录此位置,那么数据的真实座标系就是地理座标系GCS_WGS_1984,如果使用平面座标(472786.066803,4473121.59882)来记录此位置,那么数据的真实座标系就是投影座标系WGS_1984_UTM_Zone_50N。

数据的真实座标系是什么,可以通过以下方式进行验证。在ArcMap中加载这一个Point Shapefile数据,打开其属性表(Attribute Table),右击任意已有或新建的数值类型为Double(或Float)的Filed进行“Calculate Geometry”运算,如果数据的真实座标系为地理座标系GCS_WGS_1984,那么计算的“X Coordinate of Point”就为116.679267(图2),如果数据的真实座标系为投影座标系WGS_1984_UTM_Zone_50N,那么X座标值就为472786.066803。  

图2 使用“Calculate Geometry”检查Point Shapefile 数据的“真实座标系”

对于栅格数据,也有方法判断其真实座标系。通常,栅格分辨率数值很小的是地理座标系,栅格分辨率的数值很大则为投影座标系。以经常使用的SRTM DEM栅格数据为例。从网上下载的SRTM DEM数据是地理座标系,其分辨率数值为0.00083333333(图3),表示其每个栅格的长宽都为0.00083333333度。而0.00083333333度这个距离在国科大的纬度位置大致相当于地面距离81.4520173米。因此,如果使用投影座标系,让81.4520173这个数值作为这个纬度位置的SRTM DEM数据的分辨率是合理的选择。81.4520173是0.00083333333的接近10万倍(图3),因此分辨率(Cell Size)是判断栅格数据的座标系是地理座标系还是投影座标系的重要依据。当然,大尺度的全球栅格数据在地理座标系下其分辨率数值可以很大,比如1度,而小区域的栅格数据在投影座标系其分辨率数值也可以很小,比如1米。

图3 同一个栅格数据在“地理座标系”和“投影座标系”下的分辨率数值相差巨大

数据属性所标称的座标系是指数据文件的属性所标称的座标系。一般来说,我们有两个入口来查看数据属性所标称的座标系:一种是在Catalog里面右击该数据文件打开Properties,Shapefile文件可直接在Properties中查看或者修改“XY Coordinate System”,Raster文件可以通过Edit(编辑)“SpatialReference”来打开“XY Coordinate System”进行查看或者修改;另一入口是当把数据加载进ArcMap或ArcScene后,在此数据的Layer Properties的“Source”标签中查看。第二个入口只能查看而不能修改属性座标系。图4为分别在Shapefile Properties和Layer Properties中查看国科大雁栖湖校区图书馆PointShapefile数据的属性座标系。  

图4 在Shapefile Properties 和Layer Properties 中查看Point Shapefile 数据的“属性座标系”

这里要特别强调的是:数据的真实座标系和属性座标系可以不同,当二者不同时就出现错误。例如:

数据的真实座标系为地理座标系GCS_WGS_1984,而属性座标系为投影座标系WGS_1984_UTM_Zone_50N,

或真实座标系为投影座标系WGS_1984_UTM_Zone_50N,

而属性座标系为地理座标系GCS_WGS_1984,都是错误的。类似的,数据的真实座标系为地理座标系GCS_WGS_1984,而属性座标系为地理座标系GCS_Xian_1980,或真实座标系为投影座标系WGS_1984_UTM_Zone_50N,而属性座标系为投影座标系WGS_1984_UTM_Zone_49N,也都是错误的。只要二者不统一,就是错误的。在数据处理过程中,误将属性座标系改动,造成属性座标系与真实座标系不符合,是ArcGIS操作的常见错误。使数据的属性座标系和真实座标系吻合,是进行所有数据处理和分析的必要前提。

同样以国科大雁栖湖校区图书馆的Point Shapefile数据为示例说明真实座标系和属性座标系不吻合的情况。如果Point Shapefile数据的真实座标系为地理座标系GCS_WGS_1984,而将属性座标系设置为投影座标系WGS_1984_UTM_Zone_50N,图书馆点就会跑到赤道附近的印度尼西亚去(图5)。此时,系统会认为此点在投影座标系WGS_1984_UTM_Zone_50N中座标值为(116.679267,40.408265),而在投影座标系WGS_1984_UTM_Zone_50N中正确的座标值应为(472786.066803,4473121.59882)。相反,如果Point Shapefile数据的真实座标系为投影座标系WGS_1984_UTM_Zone_50N,而属性座标系为地理座标系GCS_WGS_1984,图书馆点则会“跑出地球”。因为系统会认为此点的经纬度为(472786.066803,4473121.59882),地球上的点的经纬度值最大为180度,最小为-180度,因而这两个经纬度值远远超过了180度的最大值。  

图5 数据的“属性座标系”与“真实座标系”不吻合导致的点位错误

为何在实际操作中我们一般都不必检查数据的属性座标系是否与真实座标系吻合呢?这是因为在大多数时候,我们拿到的数据不但有属性座标系并且还与真实座标系是吻合的。一般来说,有两个明显的迹象可以判断数据的属性座标系是不对的。一个是将数据加载到ArcMap里面后报错;另外一个是数据加载到ArcMap里面后尽管没报错,但是位置明显不对。比如上面的例子,位于国科大的点跑到印度尼西亚去了。

图6是将真实座标系为投影座标系“Asia_Lambert_Conformal_Conic”的数据的属性座标系改为地理座标系“GCS_WGS_1984”并加载到ArcMap里面后的报错信息。这个信息是说“数据的范围(extent)与其空间参考的信息不吻合”。

.......

更多精彩内容请关注我的微信公众号

一位更懂IT的GISER,一位更懂GIS的IT

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章