坐标系统和投影变换在桌面产品中的应用

来源:互联网 发布:ubuntu mkdir 编辑:程序博客网 时间:2024/04/28 00:10

坐标系统和投影变换在桌面产品中的应用


   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椭球体的参数可以参考常见的地球椭球体数据表。
椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面。

三、投影坐标系统(Projected Coordinate Systems )
地球椭球体表面也是个曲面,而我们日常生活中的地图及量测空间通常是二维平面,因此在地图制图和线性量测时首先要考虑把曲面转化成平面。由于球面上任何一点的位置是用地理坐标(λ,φ)表示的,而平面上的点的位置是用直角坐标(χ,у)或极坐标(r, )表示的,所以要想将地球表面上的点转移到平面上,必须采用一定的方法来确定地理坐标与平面直角坐标或极坐标之间的关系。这种在球面和平面之间建立点与点之间函数关系的数学方法,就是地图投影方法。


       接下来首先让我们来看看ArcGIS产品中对于北京54投影坐标系统的定义参数:

Projection: Gauss_Kruger
Parameters:
False_Easting: 500000.000000
False_Northing: 0.000000
Central_Meridian: 117.000000
Scale_Factor: 1.000000
Latitude_Of_Origin: 0.000000
Linear Unit: Meter (1.000000)
Geographic Coordinate System:
Name: GCS_Beijing_1954
Alias:
Abbreviation:
Remarks:
Angular Unit: Degree (0.017453292519943299)
Prime Meridian: Greenwich (0.000000000000000000)
Datum: D_Beijing_1954
Spheroid: Krasovsky_1940
Semimajor Axis: 6378245.000000000000000000
Semiminor Axis: 6356863.018773047300000000
Inverse Flattening: 298.300000000000010000

从参数中可以看出,每一个投影坐标系统都必定会有Geographic Coordinate System(地理坐标系统)。那么我们从这一角度上解释一下投影和投影所需要的必要条件:将球面坐标转化为平面坐标的过程便是投影过程;投影所需要的必要条件是:第一、任何一种投影都必须基于一个椭球(地球椭球体),第二、将球面坐标转换为平面坐标的过程(投影算法)。简单的说投影坐标系是地理坐标系+投影过程。

让我们从透视法(地图投影方法的一种)角度来直观的理解投影。

几何透视法是利用透视的关系,将地球体面上的点投影到投影面(借助的几何面)上的一种投影方法。如假设地球按比例缩小成一个透明的地球仪般的球体,在其球心或球面、球外安置一个光源,将球面上的经纬线投影到球外的一个投影平面上。

 

投影既然是一种数学变换方法,那么任何一种投影都存在一定的变形,因此可以按照变形性质将投影方法如下分类:等角投影(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°,或三度带二十二个。
    我国大于等于50万的大中比例尺地形图多采用六度带高斯—克吕格投影,三度带高斯—克吕格投影多用于大比例尺1:1万测图,如城建坐标多采用三度带的高斯—克吕格投影。高斯—克吕格投影按分带方法各自进行投影,故各带坐标成独立系统。以中央经线(L0)投影为纵轴X, 赤道投影为横轴Y,两轴交点即为各带的坐标原点。为了避免横坐标出现负值,高斯—克吕格投影北半球投影中规定将坐标纵轴西移500公里当作起始轴。由于高斯—克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,为了区别某一坐标系统属于哪一带,通常在横轴坐标前加上带号,如(4231898m,21655933m),其中21即为带号。


    我们再来看看ArcGIS中对我们国家经常采用北京54和西安80坐标系统是怎么样描述的,在ArcMap或是ArcCatalog中选择系统预定义的北京54和西安80坐标系统。
在${ArcGISHome}/Coordinate Systems/Coordinate Systems/Projected Coordinate Systems/Gauss Kruger/Beijing 1954目录中,我们可以看到四种不同的命名方式:
Beijing 1954 3 Degree GK CM 75E.prj
    Beijing 1954 3 Degree GK Zone 25.prj
    Beijing 1954 GK Zone 13.prj
    Beijing 1954 GK Zone 13N.prj
对它们的说明分别如下:
三度分带法的北京54坐标系,中央经线在东75度的分带坐标,横坐标前不加带号
三度分带法的北京54坐标系,中央经线在东75度的分带坐标,横坐标前加带号
六度分带法的北京54坐标系,分带号为13,横坐标前加带号
六度分带法的北京54坐标系,分带号为13,横坐标前不加带号
在Coordinate Systems/Projected Coordinate Systems/Gauss Kruger/Xian 1980目录中,文件命名方式又有所变化:
Xian 1980 3 Degree GK CM 75E.prj
    Xian 1980 3 Degree GK Zone 25.prj
    Xian 1980 GK CM 75E.prj
    Xian 1980 GK Zone 13.prj
西安80坐标文件的命名方式、含义和北京54前两个坐标相同,但没有出现“带号+N”这种形式,为什么没有采用统一的命名方式?让人看了的确有些费解,大家在应用过程中需要特别注意一下。


四、坐标系统和投影变换在桌面产品中的应用详解

  在我们了解了坐标系统和投影的定义和其内在的联系后,本文着重总结一下坐标系统和投影变换在桌面产品(版本9.2)中的应用(分ArcMap、ArcCatalog、ArcToolBox三大主要应用模块)。
1、动态投影(ArcMap)
     所谓动态投影指:改变ArcMap中的Data Frame(工作区)的空间参考或是对后加入到ArcMap工作区中数据的投影变换。ArcMap的Data
Frame(工作区)的坐标系统默认为第一个加载到当前Data
Frame(工作区)的那个文件的坐标系统,后加入的数据,如果和当前工作区坐标系统不同,则ArcMap会自动做投影变换,把后加入的数据投影变换到当前坐标系统下显示,但此时数据文件所存储的实际数据坐标值并没有改变,只是显示形态上的变化!因此叫动态投影。表现这一点最明显的例子就是在Export Data时,用户可以选择是按this layer's source data(数据源的坐标系统导出),还是按照the Data Frame(当前工作区的坐标系统)导出数据。


可以非常明显的看到ArcMap对WGS84数据做完动态投影后的数据几何形态上的改变,并且此时从ArcMap右下角的状态栏上也可以看到当前Data Frame(工作空间)的坐标系统为北京54平面投影坐标系统。

2、坐标系统描述(ArcCatalog)

大家都知道在ArcCatalog中可以给数据定义坐标系统描述!即在数据上鼠标右键->Properties->XY Coordinate System选项卡,这里可以通过New、Modify、Select、Import方式来为数据定义坐标系统描述。但有许多用户都认为在这里定义了数据的坐标系统信息后,其数据本身就发生了投影变换。其实不然,这里定义的数据坐标系统信息都对应到与该数据同名而后缀名为.prj的文件当中!如果把该文件删除,在ArcCatalog中重新查看(要在该数据的上层节点上Refresh刷新一下)该文件的坐标信息时,一样会显示为Unknown,并且数据的坐标值并没有发生实质上的投影变换,这里改的仅仅是对数据坐标系统信息的一个描述而已,这就好比我们每个人的基本信息登记卡,更改了登记信息,但并没有改变你这个人本身。因此数据文件中所存储数据的坐标值并没有真正的投影变换到你想要更改到的坐标系统下。


但对数据坐标系统的这个描述也是非常重要的,如果我们拿到一份数据,从ArcMap下所显示的坐标来看,像是投影坐标系统下的平面坐标,但不知道是基于哪个椭球体的什么投影方法,因此就无法再对数据做进一步的处理,如:投影变换、量测等操作。因为我们无法得知从什么坐标系统下开始变换,以及该坐标系统下的量测单位是什么。


因此大家一定要更正对ArcCatalog中数据属性中关于坐标系统描述的认识。

3、投影变换(ArcToolBox)


上面说了这么多,可能有人要问:“要真正的改变数据的坐标值该怎么办?”也就是做真正的投影变换。在ArcToolBox->Data Management Tools->Projections and Transformations中提供了如下工具:
      在这个工具集下有这么几个工具最为常用:

1、Define Projection
2、Feature->Project
3、Raster->Project Raster

4、Create Custom Geographic Transformation
当数据在没有任何空间参考信息时,在ArcCatalog的坐标系统描述(XY

Coordinate System)选项卡中会显示为Unknown!这时如果要对数据进行投影变换就要先利用Define Projection工具来给数据定义一个Coordinate System,然后再利用Feature->Project或Raster->Project Raster工具来对数据进行投影变换!


由于我们国家经常使用的坐标系统为北京54和西安80。这两个坐标系统变换到其他坐标系统下时,通常需要提供一个Geographic Transformation,因为不同投影所基于的椭球体及Datum不同!关键是Datum不同,也就是说当两个投影基于不同的Datum时就需要制定参数做Geographic Transformation。这里就用到我们前面所说的转换3参数、转换7参数了(三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小),而我们国家的转换参数是保密的,因此可以自己计算或在购买数据时向国家测绘部门索要。

实际工作中一般都根据工作区内已知的北京54坐标控制点计算转换参数,如果工作区内有足够多的已知北京54与WGS84坐标控制点,可直接计算坐标转换所需的7参数或3参数;当工作区内有3个已知北京54与WGS84坐标控制点时,可用下式计算WGS84到北京54坐标的转换参数(A、B、C、D、E、F):

x54 = AX84 + BY84 + C

y54 = DX84 + EY84 + F

多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京54与WGS84坐标之差作为平移参数,当工作区范围不大时精度也足够了。

那么当精度要求较高,实测数据为WGS1984坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择WGS 1984作为基准面,当只有一个已知控制点时,根据平移参数调整东伪偏移、北纬偏移值实现WGS84到北京54的转换,此时的转换系数(A、B、C、D、E、F)中A、B、D、E为0,只有X、Y方向的平移值C、F ;当有3个已知控制点时,可利用得到的转换系数(A、B、C、D、E、F)定义 AffineTransform坐标系变换对象,实现坐标系的转换,当然有足够多已知控制点时,直接求定7参数自定义基准面就行了。


Geographic Transformation通常需要指定变换方向的,如果没有指定变换的方向,ArcMap会自动正确应用变换方法如从WGS 1984到 NAD1927,我们就可以选择NAD_1927_to_WGS_1984_3这种变换方法,ArcMap会自动判定转换方向从而正确实现数据的投影变换。有些变换方法是先把地理坐标系(经纬度)变换到地心坐标系(X Y Z),然后再将地心坐标系坐标(X Y Z),变换到地理坐标系统,图13。Geocentric Transformation(3参数)、Coordinate Frame(7参数)、Molodensky-Badekas(10参数,是7参数变换方法的一种变体,多了定义XYZ旋转轴的起始位置)都是这样的方法。
Molodensky(3参数)和Abridged Molodensky(3参数是Molodensky方法的一种变体)变化方法则是直接在不同的地理坐标系统下进行变换无需借助地心坐标系进行转换。那么上述的这些方法的精度取决与用于定义转换参数的控制点的质量个数及选择的变换方法,精度相差可从厘米到米。
美国国家大地测量局用一种基于格网的变换方法(NADCON和HARN)在NAD1927和NAD1983及其他地理坐标系统下做变换,彼此相临的州的精度可达0.15米,阿拉斯加州及周边岛屿的精度可达0.5米,夏威夷地区精度可达0.2米等等,精度取决于计算栅格大小时测量数据的质量。随着卫星测距和测量技术的改善,美国在更新了测量控制网后,推出了这种High Accuracy Reference Network (HARN)方法或说是栅格格网,其精度可达0.05米。
加拿大采用同NADCON类似的基于格网的方法(NTV2)在NAD 1927 和 NAD 1983之间做变换,这种方法采用了双线性内插的方法来计算点的坐标。关于这两种方法本文不做更多描述,详细信息可参考ArcGIS帮助。


知道转换参数后,可以利用Create Custom Geographic Transformation工具来定义一个Geographic Transformation方法,变换方法可以根据已知的转换参数个数选择变换方法,这就完成了对数据的投影变换,数据本身坐标值就发生了变化。当然这种投影变换工作也可以在ArcMap中通过改变Data Frame的Coordinate System来实现,只是要在做完之后按照Data Frame的坐标系统导出数据即可,即为做“动态投影变换”。

相关的实验可选用ArcTutor(ArcDesktop中的练习数据)中的WGS84和NAD1927或NAD1983数据进行试验。

摘自:ESRI中国社区-GIS大讲堂

原创粉丝点击