[来源于网络] 仅供个人参考学习
GIS处理的是空间信息,而所有对空间信息的量算都是基于某个坐标系统的,因此GIS中坐标系统的定义是GIS系统的基础,正确理解GIS中的坐标系统就变得尤为重要。坐标系统又可分为两大类:地理坐标系统、投影坐标系统。本文就对坐标系和投影及其在ArcGIS桌面产品中的应用做一些简单的论述。
GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。
地球椭球体(Ellipsoid)
众所周知我们的地球表面是一个凸凹不平的表面,而对于地球测量而言,地表是一个无法用数学公式表达的曲面,这样的曲面不能作为测量和制图的基准面。假想一个扁率极小的椭圆,绕大地球体短轴旋转所形成的规则椭球体称之为地球椭球体。地球椭球体表面是一个规则的数学表面,可以用数学公式表达,所以在测量和制图中就用它替代地球的自然表面。因此就有了地球椭球体的概念。
地球椭球体有长半径和短半径之分,长半径(a)即赤道半径,短半径(b)即极半径。f=(a-b)/a为椭球体的扁率,表示椭球体的扁平程度。由此可见,地球椭球体的形状和大小取决于a、b、f 。因此,a、b、f被称为地球椭球体的三要素。
对地球椭球体而言,其围绕旋转的轴叫地轴。地轴的北端称为地球的北极,南端称为南极;过地心与地轴垂直的平面与椭球面的交线是一个圆,这就是地球的赤道;过英国格林威治天文台旧址和地轴的平面与椭球面的交线称为本初子午线。以地球的北极、南极、赤道和本初子午线等作为基本要素,即可构成地球椭球面的地理坐标系统(A geographic coordinate system (GCS) uses a threedimensional spherical surface to define locations on the earth.A GCS includes an angular unit of measure, a prime meridian,
and a datum (based on a spheroid).)。可以看出地理坐标系统是球面坐标系统,以经度/维度(通常以十进制度或度分秒(DMS)的形式)来表示地面点位的位置。
地理坐标系统以本初子午线为基准(向东,向西各分了1800)之东为东经其值为正,之西为西经其值为负;以赤道为基准(向南、向北各分了900)之北为北纬其值为正,之南为南纬其值为负。
大地基准面(Geodetic datum)
大地基准面(Geodetic datum),设计用为最密合部份或全部大地水准面的数学模式。它由椭球体本身及椭球体和地表上一点视为原点间之关系来定义。此关系能以 6个量来定义,通常(但非必然)是大地纬度、大地经度、原点高度、原点垂线偏差之两分量及原点至某点的大地方位角。
让我们先抛开测绘学上这个晦涩难懂的概念,看看GIS系统中的基准面是如何定义的,GIS中的基准面通过当地基准面向WGS1984的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第76至86页。假设Xg、Yg、Zg表示WGS84地心坐标系的三坐标轴,Xt、Yt、Zt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。
那么现在让我们把地球椭球体和基准面结合起来看,在此我们把地球比做是“马铃薯”,表面凸凹不平,而地球椭球体就好比一个“鸭蛋”,那么按照我们前面的定义,基准面就定义了怎样拿这个“鸭蛋”去逼近“马铃薯”某一个区域的表面,X、Y、Z轴进行一定的偏移,并各自旋转一定的角度,大小不适当的时候就缩放一下“鸭蛋”,那么通过如上的处理必定可以达到很好的逼近地球某一区域的表面。
因此,从这一点上也可以很好的理解,每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体(IAG75)建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之间的转换可查阅国家测绘局公布的对照表。 WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多以WGS1984为基准。
克拉索夫斯基(Krassovsky)、1975地球椭球体(IAG75)、WGS1984椭球体的参数可以参考常见的地球椭球体数据表。
椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面。地球椭球体和基准面之间的关系以及基准面是如何结合地球椭球体从而实现来逼近地球表面的可以通过图2一目了然。
投影坐标系统(Projected Coordinate Systems ) 地球椭球体表面也是个曲面,而我们日常生活中的地图及量测空间通常是二维平面,因此在地图制图和线性量测时首先要考虑把曲面转化成平面。由于球面上任何一点的位置是用地理坐标(λ,φ)表示的,而平面上的点的位置是用直角坐标(χ,у)或极坐标(r, )表示的,所以要想将地球表面上的点转移到平面上,必须采用一定的方法来确定地理坐标与平面直角坐标或极坐标之间的关系。这种在球面和平面之间建立点与点之间函数关系的数学方法,就是地图投影方法。
接下来首先让我们来看看ArcGIS产品中对于北京54投影坐标系统的定义参数:
Projection: Gauss_Kruger
从参数中可以看出,每一个投影坐标系统都必定会有Geographic Coordinate System(地理坐标系统)。那么我们从这一角度上解释一下投影和投影所需要的必要条件:将球面坐标转化为平面坐标的过程便是投影过程;投影所需要的必要条件是:第一、任何一种投影都必须基于一个椭球(地球椭球体),第二、将球面坐标转换为平面坐标的过程(投影算法)。简单的说投影坐标系是地理坐标系+投影过程。
让我们从透视法(地图投影方法的一种)角度来直观的理解投影,图2。
几何透视法是利用透视的关系,将地球体面上的点投影到投影面(借助的几何面)上的一种投影方法。如假设地球按比例缩小成一个透明的地球仪般的球体,在其球心或球面、球外安置一个光源,将球面上的经纬线投影到球外的一个投影平面上。
投影既然是一种数学变换方法,那么任何一种投影都存在一定的变形,因此可以按照变形性质将投影方法如下分类:等角投影(Conformal Projection) 、 等积投影(Equal Area Projection)、等距投影(Equidistant Projection)、等方位投影(True-direction Projection)四种。每种投影根据其名称就可以知道其方法保证了数据的那些几何属性,在实际应用过程中应根据需求来选取某种投影。
如果按照投影的构成方法分类又可分为方位、圆柱、圆锥投影三种,在上述三种投影中由于几何面与球面的关系位置不同,又分为正轴、横轴和斜轴三种。 接下来我们来看看我们国家通常采用的投影——高斯—克吕格(Gauss-Kruger)投影,是一种“等角横切圆柱投影”。德国数学家、物理学家、天文学家高斯(Carl Friedrich Gauss,1777一 1855)于十九世纪二十年代拟定,后经德国大地测量学家克吕格(Johannes Kruger,1857~1928)于 1912年对投影公式加以补充,故名。设想用一个圆柱横切于球面上投影带的中央经线,按照投影带中央经线投影为直线且长度不变和赤道投影为直线的条件,将中央经线两侧一定经差范围内的球面正形投影于圆柱面。然后将圆柱面沿过南北极的母线剪开展平,即获高斯-克吕格投影平面。高斯—克吕格投影后,除中央经线和赤道为直线外,其他经线均为对称于中央经线的曲线。高斯—克吕格投影没有角度变形,在长度和面积上变形也很小,中央经线无变形,自中央经线向投影带边缘,变形逐渐增加,变形最大处在投影带内赤道的两端。按一定经差将地球椭球面划分成若干投影带,这是高斯投影中限制长度变形的最有效方法。
分带时既要控制长度变形使其不大于测图误差,又要使带数不致过多以减少换带计算工作,据此原则将地球椭球面沿子午线划分成经差相等的瓜瓣形地带,以便分带投影。通常按经差6度或3度分为六度带或三度带。六度带自 0度子午线起每隔经差6度自西向东分带,带号依次编为第 1、2…60带。三度带是在六度带的基础上分成的,它的中央子午线与六度带的中央子午线和分带子午线重合,即自 1.5度子午线起每隔经差3度自西向东分带,带号依次编为三度带第 1、2…120带。我国的经度范围西起 73°东至135°,可分成六度带十一个,各带中央经线依次为75°、81°、87°、……、117°、123°、129°、135°,或三度带二十二个。
我们再来看看ArcGIS中对我们国家经常采用北京54和西安80坐标系统是怎么样描述的,在ArcMap或是ArcCatalog中选择系统预定义的北京54和西安80坐标系统。
2、坐标系统描述(ArcCatalog)
大家都知道在ArcCatalog中可以给数据定义坐标系统描述!即在数据上鼠标右键->Properties->XY Coordinate System选项卡,这里可以通过New、Modify、Select、Import方式来为数据定义坐标系统描述。但有许多用户都认为在这里定义了数据的坐标系统信息后,其数据本身就发生了投影变换。其实不然,这里定义的数据坐标系统信息都对应到与该数据同名而后缀名为.prj的文件当中!如果把该文件删除,在ArcCatalog中重新查看(要在该数据的上层节点上Refresh刷新一下)该文件的坐标信息时,一样会显示为Unknown,并且数据的坐标值并没有发生实质上的投影变换,这里改的仅仅是对数据坐标系统信息的一个描述而已,这就好比我们每个人的基本信息登记卡,更改了登记信息,但并没有改变你这个人本身。因此数据文件中所存储数据的坐标值并没有真正的投影变换到你想要更改到的坐标系统下。
我们同样拿上述的两个数据做一下实验,在ArcCatalog中更改world30.shp的坐标系统描述,在world30.shp文件上鼠标右键->Properties->XY Coordinate System选项卡中,通过Import方式导入乡镇.shp文件的Krasovsky_1940_Transverse_Mercator投影坐标系统描述,之后看一下结果图12。
从上述示例我们可以很明显的看到更改数据的坐标系统描述并不能使数据做投影变换,从而使数据投影到平面上来,但该数据的prj文件已经记录了更改后的坐标系统描述,PROJCS["Krasovsky_1940_Transverse_Mercator",GEOGCS["GCS_Krasovsky_1940",DATUM["D_Krasovsky_1940",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]
Prj文件记录了该投影坐标系的详细参数。
系统下的量测单位是什么。
因此大家一定要更正对ArcCatalog中数据属性中关于坐标系统描述的认识。
3、投影变换(ArcToolBox)
上面说了这么多,可能有人要问:“要真正的改变数据的坐标值该怎么办?”也就是做真正的投影变换。在ArcToolBox->Data Management Tools->Projections and Transformations中提供了如下工具:
1、Define Projection
4、Create Custom Geographic Transformation
Coordinate System)选项卡中会显示为Unknown!这时如果要对数据进行投影变换就要先利用Define Projection工具来给数据定义一个Coordinate System,然后再利用Feature->Project或Raster->Project Raster工具来对数据进行投影变换!
|