GIS中基准面的定义与转换
虽然现有GIS平台中都预有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。
GIS系统中的基准面通过当地基准面向WGS—84的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第76至86页。假设Xg、Yg、Zg表示WGS—84地心坐标系的三坐标轴,Xt、Yt、Zt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。
MapX中基准面定义方法如下:
Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust,PrimeMeridian)
其中参数: Ellipsoid为基准面采用的椭球体;
ShiftX, ShiftY, ShiftZ为平移参数;
RotateX, RotateY, RotateZ为旋转参数;
ScaleAdjust为比例校正因子,以百万分之一计;
PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。
实际工作中一般都根据工作区内已知的北京54坐标控制点计算转换参数,如果工作区内有足够多的已知北京54与WGS—84坐标控制点,可直接计算坐标转换的 7参数或3参数;当工作区内有3个已知北京54与WGS—84坐标控制点时,可用下式计算WGS—84到北京54系坐标的转换参数(A、B、C、D、E、 F):x54 = AX84 + BY84 + C,y54 = DX84 + EY84 + F,多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京54坐标与WGS—84坐标之差作为平移参数,当工作区范围不大时精度也足够了。当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。
2 GIS中地图投影的定义
我国的基本比例尺地形图(1:5千,1:1万,1:2.5万,1:5万,1:10万,1:25 万,1:50万,1:100万)中,大于等于50万的均采用高斯-克吕格投影(Gauss-Kruger),又叫横轴墨卡托投影(Transverse Mercator);小于50万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(Lambert Conformal Conic);海上小于50万的地形图多用正轴等角园柱投影,又叫墨卡托投影(Mercator),我国的GIS系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。
相应高斯-克吕格投影、墨卡托投影需要定义的坐标系参数序列如下:
高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit),
中央经度(OriginLongitude),原点纬度(OriginLatitude),
比例系数(ScaleFactor),
东纬偏移(FalseEasting),北纬偏移(FalseNorthing)
墨卡托: 投影代号(Type),基准面(Datum),单位(Unit),
原点经度(OriginLongitude),原点纬度(OriginLatitude),
标准纬度(StandardParallelOne)
在城市GIS系统中均采用6度或3度分带的高斯-克吕格投影,因为一般城建坐标采用的是6度或3度分带的高斯-克吕格投影坐标。高斯-克吕格投影以6度或3 度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为X轴(纵轴,纬度方向),赤道投影后为Y轴(横轴,经度方向),为了防止经度方向的坐标出现负值,规定每带的中央经线西移500公里,即东伪偏移值为500公里,由于高斯-克吕格投影中每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(4231898,21655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。
假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用Pulkovo 1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。
那么当精度要求较高,实测数据为WGS—84坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择WGS— 84(Mapinfo中代
号104)作为基准面,当只有一个已知控制点时(见第2部分),根据平移参数调整东伪偏移、北纬偏移值实现WGS—84到北京 54坐标系统的转换,如: (8,104,7,123,0,1,21500200,-200),也可利用 AffineTransform坐标系变换对象,此时的转换系数(A、B、C、D、E、F)中A、B、D、E为0,只有X、Y方向的平移值C、F;当有3 个已知控制点时,可利用得到的转换系数(A、B、C、D、E、F)定义 AffineTransform坐标系变换对象,实现坐标系的转换,如:(8,104,7,123,0,1,21500000,0,map.AffineTransform),其中AffineTransform定义为 AffineTransform.set(7,A、B、C、D、E、F)(7表示单位米);当然有足够多已知控制点时,直接求定7参数自定义基准面就行了。
3 地理坐标系与投影坐标系的区别
1、地理坐标系(Geographic coordinate system),是以经纬度为地图的存储单位。Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的,具有长半轴,短半轴,偏心率。以下几行便是 Krasovsky_1940椭球及其相应参数。
Spheroid: Krasovsky_1940
Semimajor Axis: 6378245.000000000000000000
Semiminor Axis: 6356863.018773047300000000
Inverse Flattening(扁率): 298.300000000000010000
然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中,可以看到有这么一行:
Datum: D_Beijing_1954表示,大地基准面是D_Beijing_1954。
--------------------------------------------------------------------------------
有了Spheroid和Datum两个基本条件,地理坐标系统便可以使用。
完整参数:
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
2、接下来便是Projection coordinate system(投影坐标系统),首先看看投影坐标系统中的一些参数。
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。
投影坐标系统,实质上便是平面坐标系统,其地图单位通常为米。
那么为什么投影坐标系统中要存在坐标系统的参数呢?
这时候,又要说明一下投影的意义:将球面坐标转化为平面坐标的过程便称为投影。
好了,投影的条件就出来了:
a、球面坐标
b、转化过程(也就是算法)
也就是说,要得到投影坐标就必须得有一个“拿来”投影的球面坐标,然后才能使用算法去投影!
即每一个投影坐标系统都必须要求有Geographic Coordinate System参数。
3、我们现在看到的很多教材上的对坐标系统的称呼很多,都可以归结为上述两种投影。其中包括我们常见的“非地球投影坐标系统”。
大地坐标(Geodetic Coordinate):大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。
方里网:是由平行于投影坐标轴的两组平行线所构成的方格网。因为是每隔整公里绘出坐标纵线和坐标横线,所以称之为方里网,由于方里线同时又是平行于直角坐标轴的坐标网线,故又称直角坐标网。
在 1:1万——1:20万比例尺的地形图上,经纬线只以图廓线的形式直接表现出来,并在图角处注出相应度数。为了在用图时加密成网,在内外图廓间还绘有加密经纬网的加密分划短线(图式中称“分度带”),必要时对应短线相连就可以构成加密的经纬线网。1:25万地形图上,除内图廓上绘有经纬网的加密分划外,图内还有加密用的十字线。
我国的1:50万——1:100万地形图,在图面上直接绘出经纬线网,内图廓上也有供加密经纬线网的加密分划短线。
直角坐标网的坐标系以中央经线投影后的直线为X轴,以赤道投影后的直线为Y轴,它们的交点为坐标原点。这样,坐标系中就出现了四个象限。纵坐标从赤道算起向北为正、向南为负;横坐标从中央经线算起,向东为正、向西为负。
虽然我们可以认为方里网是直角坐标,大地坐标就是球面坐标。但是我们在一幅地形图上经常见到方里网和经纬度网,我们很习惯的称经纬度网为大地坐标,这个时候的大地坐标不是球面坐标,她与方里网的投影是一样的(一般为高斯),也是平面坐标—高斯克吕格坐标系中国部分定义(54北京坐标系和80西安坐标系)加到坐标系文件中就可以了。
常用地图投影转换公式
1.约定
本文中所列的转换公式都基于椭球体
a -- 椭球体长半轴
b -- 椭球体短半轴
f -- 扁率(a-b)/a
e -- 第一偏心率
e′ -- 第二偏心率
N -- 卯酉圈曲率半径
R -- 子午圈曲率半径
B -- 纬度,L -- 经度,单位弧度(RAD)
XN -- 纵直角坐标,YE -- 横直角坐标,单位米(M)
2.椭球体参数
我国常用的3个椭球体参数如下(源自“全球定位系统测量规范18314-2001”):
椭球体
长半轴 a(米)
短半轴b(米)
Krassovsky (北京54采用)
GB/T
6378245
6356863.0188
IAG 75(西安80采用)
6378140
6356755.2882
WGS 84
6378137
6356752.3142
需要说明的是,在“海洋地质制图常用地图投影系列小程序”中,程序界面上的所谓“北京1954”、“西安1980”及“WGS 84”在实际计算中只涉及了相应的椭球体参数。
3 墨卡托(Mercator)投影
3.1 墨卡托投影坐标系
取零子午线或自定义原点经线(L0)与赤道交点的投影为原点,零子午线或自定义原点经线的投影为纵坐标X轴,赤道的投影为横坐标Y轴,构成墨卡托平面直角坐标系。
3.2 墨卡托投影正反解公式
墨卡托投影正解公式:(B,L)→(X,Y),标准纬度B0,原点纬度0,原点经度L0
墨卡托投影反解公式:(X,Y) →(B,L),标准纬度B0,原点纬度0,原点经度L0
公式中EXP为自然对数底,纬度B通过迭代计算很快就收敛了。
4 高斯-克吕格(Gauss-Kruger)投影和UTM(Universal Transverse Mercator)投影
4.1 高斯-克吕格投影与UTM投影异同
高斯-克吕格(Gauss-Kruger)投影与UTM投影(Universal Transverse Mercator,通用横轴墨卡托投影)都是横轴墨卡托投影的变种,目前一些国外的软件或国外进口仪器的配套软件往往不支持高斯-克吕格投影,但支持 UTM投影,因此常有把UTM投影当作高斯-克吕格投影的现象。从投影几何方式看,高斯-克吕格投影是“等角横切圆柱投影”,投影后中央经线保持长度不变,即比例系数为1;UTM投影是“等角横轴割圆柱投影”,圆柱割地球于南纬80度、北纬84度两条等高圈,投影后两条割线上没有变形,中央经线上长度比 0.9996。从计算结果看,两者主要差别在比例因子上,高斯-克吕格投影中央经线上的比例系数为1, UTM投影为0.9996,高斯-克吕格投影与UTM投影可近似采用 X[UTM]=0.9996 * X[高斯],Y[UTM]=0.9996 * Y[高斯],进行坐标转换(注意:如坐标纵轴西移了500000米,转换时必须将Y值减去500000乘上比例因子后再加500000)。从分带方式看,两者的分带起点不同,高斯-克吕格投影自0度子午线起每隔经差6度自西向东分带,第1带的中央经度为3°;UTM投影自西经180°起每隔经差6度自西向东分带,
第1带的中央经度为-177°,因此高斯-克吕格投影的第1带是UTM的第31带。此外,两投影的东伪偏移都是500公里,高斯-克吕格投影北伪偏移为零,UTM北半球投影北伪偏移为零,南半球则为10000公里。我国的卫星影像资料常采用UTM投影。
4.2 高斯-克吕格投影与UTM投影坐标系
高斯-克吕格投影与UTM投影是按分带方法各自进行投影,故各带坐标成独立系统。以中央经线(L0)投影为纵轴X,赤道投影为横轴Y,两轴交点即为各带的坐标原点。为了避免横坐标出现负值,高斯-克吕格投影与UTM北半球投影中规定将坐标纵轴西移500公里当作起始轴,而UTM南半球投影除了将纵轴西移500公里外,横轴南移10000公里。由于高斯-克吕格投影与UTM投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,为了区别某一坐标系统属于哪一带,通常在横轴坐标前加上带号,如(4231898m,21655933m),其中21即为带号。
4.3 高斯-克吕格投影与UTM投影正反解公式
高斯-克吕格投影和UTM投影公式从目前公开出版的教材、文献及网上我看到好几种版本,可归结为下列两组,我把原来教科书及国内文献上常见的一套公式列作高斯-克吕格投影公式,POSC(国际石油技术软件开放公司)及国外文献上见到的另一套公式列作UTM投影公式。常常能看到两套投影公式混用的文献资料,文中谈论的是UTM投影,但列出的公式却是国内教材上的高斯-克吕格投影公式,让我很困惑。为此,我设定比例因子都为1,用下列两组公式分别进行了同点的投影计算,计算结果在中高纬度时两套公式差异很小,小数后6位都是一致的;在低纬度时,投影结果差异拉大,横轴在小数第三位开始出现差异。假如精确到厘米级,上述试验说明两套公式混用应该没问题。不过,有可能会有其它极端的情况,毕竟是不同的投影公式。
高斯-克吕格投影正解公式:(B,L)→(X,Y),原点纬度0,中央经度L0
上面公式中东纬偏移FE = 500000米 + 带号 * 1000000;
高斯-克吕格投影比例因子k0 = 1
UTM投影正解公式:(B,L)→(X,Y),原点纬度0,中央经度L0
上面公式中东纬偏移 FE= 500000米;北纬偏移 FN北半球= 0,FN南半球= 10000000米;
UTM投影比例因子k0 = 0.9996,其它参数同高斯-克吕格投影正解公式
高斯-克吕格投影反解公式:(X,Y) →(B,L),原点纬度0,中央经度L0
UTM投影反解公式:(X,Y) →(B,L),原点纬度0,中央经度L0
式中参数同高斯-克吕格投影反解公式。
因篇幅问题不能全部显示,请点此查看更多更全内容