admin管理员组

文章数量:1567542

2023年12月31日发(作者:)

1.椭球体、基准面及地图投影

GIS中的坐标系定义是GIS系统的基础,正确定义GIS系统的坐标系非常重要。GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。

基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之间的转换可查阅国家测绘局公布的对照表。 WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多以WGS1984为基准。

上述3个椭球体参数如下:

椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。

地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京54坐标值为X=4231898,Y=21655933,实际上指的是北京54基准面下的投影坐标,也就是北京54基准面下的经纬度坐标在直角平面坐标上的投影结果。

2. GIS中基准面的定义与转换

虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。

GIS系统中的基准面通过当地基准面向WGS1984的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第76至86页。假设Xg、Yg、Zg表示WGS84地心坐标系

的三坐标轴,Xt、Yt、Zt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。

美国国家测绘局(National Imagery and Mapping Agency)公布了世界大多数国家的当地基准面至WGS1984基准面的转换3参数(平移参数),可从

164.214.2.59/GandG/wgs84dt/ 下载,其中包括有香港Hong

Kong 1963基准面、台湾 Hu-Tzu-Shan 基准面的转换3参数,但是没有中国大陆的参数。

实际工作中一般都根据工作区内已知的北京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坐标之差作为平移参数,当工作区范围不大时精度也足够了。

从Mapinfo中国的URL(/download)可下载到包含北京54、西安80坐标系定义的文件,其中定义的北京54基准面参数为:(3,24,-123,-94,-0.02,0.25,0.13,1.1,0),西安80基准面参数为:(31,24,-123,-94,-0.02,0.25,0.13,1.1,0),文件中没有注明其参数的来源,我发现它们与Mapinfo参考手册附录G"定义自定义基准面"中的一个例子所列参数相同,因此其可靠性值得怀疑,尤其从西安80与北京54采用相同的7参数来看,至少西安80的基准面定义肯定是不对的。因此,当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。

3. 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系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。

在MapX中坐标系定义由基准面、投影两部分参数组成,方法如下:

(Type,[Datum],[Units],[OriginLongitude],[OriginLatitude],

[StandardParallelOne],[StandardParallelTwo], [Azimuth], [ScaleFactor],

[FalseEasting], [FalseNorthing], [Range], [Bounds], [AffineTransform])

其中参数:Type表示投影类型,Type为1时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数;Datum为大地基准面对象,如果采用非地球坐标(NonEarth)无需定义该参数;Units为坐标单位,如Units为7表示以米为单位;OriginLongitude、OriginLatitude分别为原点经度和纬度;StandardParallelOne、StandardParallelTwo为第一、第二标准纬线;Azimuth为方位角,斜轴投影需要定义该参数;ScaleFactor为比例系数; FalseEasting,

FalseNorthing为东伪偏移、北伪偏移值;Range为地图可见纬度范围;Bounds为地图坐标范围,是一矩形对象,非地球坐标(NonEarth)必须定义该参数;AffineTransform为坐标系变换对象。

相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下: 高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit),中央经度(OriginLongitude),原点纬度(OriginLatitude),比例系数(ScaleFactor),东伪偏移(FalseEasting),北纬偏移(FalseNorthing);兰勃特: 投影代号(Type),基准面(Datum),单位(Unit),中央经度(OriginLongitude),原点纬度(OriginLatitude),标准纬度1(StandardParallelOne),标准纬度2(StandardParallelTwo),东伪偏移(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)。

那么当精度要求较高,实测数据为WGS1984坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择WGS

1984(Mapinfo中代号104)作为基准面,当只有一个已知控制点时(见第2部分),根据平移参数调整东伪偏移、北纬偏移值实现WGS84到北京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,Transform),其中AffineTransform定义为(7,A、B、C、D、E、F)(7表示单位米);当然有足够多已知控制点时,直接求定7参数自定义基准面就行了。

ENVI中自定义坐标系说明——以北京54和西安80为例

1 地理投影的基本原理

常用到的地图坐标系有2种,即地理坐标系和投影坐标系。地理坐标系是以经纬度为单位的地球坐标系统,地理坐标系中有2个重要部分,即地球椭球体(spheroid)和大地基准面(datum)。由于地球表面的不规则性,它不能用数学公式来表达,也就无法实施运算,所以必须找一个形状和大小都很接近地球的椭球体来代替地球,这个椭球体被称为地球椭球体,我国常用的椭球体如下:

表1 我国常用椭球体

椭球体名称

WGS84

年代

1984

长半轴(米)

6378137.0

6378245.0

6378140.0

短半轴(米)

6356752.3

6356863.0

6356755.3

扁率

1:298.257

1:298.3

1:298.257

克拉索夫斯基1940

(Krasovsky)

IAG-75 1975

大地基准面指目前参考椭球与WGS84参考椭球间的相对位置关系(3个平移,3个旋转,1个缩放),可以用其中3个、4个或者7个参数来描述它们之间的关系,每个椭球体都对应一个或多个大地基准面。

投影坐标系是利用一定的数学法则把地球表面上的经纬线网表示到平面上,属于平面坐标系。数学法则指的是投影类型,目前我国普遍采用的是高斯——克吕格投影,在英美国家称为横轴墨卡托投影(Transverse Mercator)。高斯克吕格投影的中央经线和赤道为互相垂直,分带标准分为3度带和6度带。美国编制世界各地军用地图和地球资源卫星像片所采用的全球横轴墨卡托投影(UTM)是横轴墨卡托投影的一种变型。高斯克吕格投影的中央经线长度比等于1,UTM投影规定中央经线长度比为0.9996。

我国规定1:1万、1:2.5万、1:5万、1:10万、1:25万、1:50万比例尺地形图,均采用高斯克吕格投影。1:2.5至1:50万比例尺地形图采用经差6度分带,1:1和1:2.5万比例尺地形图采用经差3度分带。

2 .北京54与西安80坐标系

大地坐标,在地面上建立一系列相连接的三角形,量取一段精确的距离作为起算边,在这个边的两端点,采用天文观测的方法确定其点位(经度、纬度和方位角),用精密测角仪器测定各三角形的角值,根据起算边的边长和点位,就可以推算出其他各点的坐标。这样推算出的坐标,称为大地坐标。

我国1954年在北京设立了大地坐标原点,由此计算出来的各大地控制点的坐标,称为1954年北京坐标系。为了适应大地测量的发展,我国于1978年采用国际大地测量协会推荐的IAG-75地球椭球体建立了我国新的大地坐标系,并在1986年宣布在陕西省泾阳县设立了新的大地坐标原点,由此计算出来的各大地控制点坐标,称为1980年大地坐标系。

我们经常给影像投影时用到的北京54或者西安80坐标系是投影直角坐标系,如下表所示为北京54和西安80坐标系采用的主要参数:

表2 我国常用坐标系参数列表

坐标名称

北京54

西安80

投影类型

Gauss Kruger(Transverse Mercator)

Gauss Kruger(Transverse Mercator)

椭球体

Krasovsky

IAG75

基准面

北京54

西安80

从中可以看到我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。

3. 参数的获取

对于地理坐标,只需要确定两个参数,即椭球体和大地基准面。对于投影坐标,投影类型为Gauss Kruger(Transverse Mercator),除了确定椭球体和大地基准面外,还需要确定中央经线。

大地基准面的确定关键是确定7个参数(或者其中几个参数),北京54基准面可以用三个平移参数来确定,即“-12,-113,-41,0,0,0,0”,很多软件近似为Krasovsky(0,0,0,0,0,0,0)基准面;西安80的7参数比较特殊,各个区域不一样。一般有两个途径:一是直接从测绘部门获取;二是根据三个以上具有西安80坐标系与其他坐标系的同名点坐标值,利用软件来推算,有一些绿色软件具有这个功能,如Coord MG。

中央经线获取可有以下两种方法,第一种根据已知带号计算,6度带用6*N-3,3度带用3*N;第二种方法是根据经度从图1中查找。

图1高斯——克吕格投影的分带

如何实现从wgs-84到beijing54的坐标转换

一:3参数(七参数)转换法

从本质上来说,转换的步骤应该大致遵循这样的规则:

首先,将84的经纬度坐标(B84,L84,H84)转换为以地心为中心点的大地坐标(X84,Y84,Z84);

然后根据七参数法(或3参数法)将其转换为54下的地心坐标(X54,Y54,Z54);

然后根据54下的椭球参数,将第二步得到的地心坐标转换为大地坐标(B54,L54,H54);

最后根据工程需要以及各种投影(如高斯克吕格)规则进行投影得到对应的投影坐标。

其实如果在公司或者做项目的时候,当对这起个参数要求的很急的时候,我们可以从政府部门或者通过坐标转换软件求出这七个参数或者三个参数,这个可以大大提高效率,节省时间。这些坐标转换软件有:坐标转换大师(这个不错),(一般),(这个不错)。

一旦求出了七个参数,可以进行坐标转换。除了上述这些小软件可以进行转换外,一些比较

有名的GIS开发软件或者开发平台都提供了利用七个参数转换整个数据的功能或者提供了转换单个点的功能,这些在ARCGIS,superMap,mapGis中都有。

二:三参数坐标纠正法

本方法的使用范围为:大比例尺地形图比较适用,如县范围等。

具体方法:

1.从测区取出适量的坐标控制点,坐标控制点是些这样的点,他们拥有84下的经纬度坐标,同时也拥有54下的投影坐标;

2.取出后利用将经纬度坐标在esupermap平台中编写程序将其转成84下的高斯克吕格投影坐标(可以看成是一种虚假的投影);

3.由2步中得到的投影坐标和原54下的投影坐标相比较得到一个差值p1(x1,y1,z1),并将其保存起来;

4.重复第二步一直到把所有的点都计算完,计算完后将差值进行汇总并得到一个平均值p(x,y,z).

通过此方法得到的三个参数经过测试和验证,他的精度在厘米或者亚米级的进度,这个对于一般的定位来说已经足够了。总结:当然,如果要提高精度的话,最好还是用七参数法,他的定位精度基本上都在厘米或者毫米级。

54大地参数:

参考椭球体:Krasovsky_1940

长半轴:6378245

短半轴:6356863.0188

扁率:298.3

84大地参数:

参考椭球体:WGS 84

长半轴:6378137

短半轴:6356752.3142

扁率:298.257224

80大地参数:

参考椭球体:IAG 75

长半轴:6378140

短半轴:6356755.2882

扁率:298.257000

4 .ENVI中定义坐标

ENVI中的坐标定义文件存放在ENVI安装目录下EnviIDL63productsenvi43map_proj文件夹下,三个文件记录了坐标信息:

椭球体参数文件

基准面参数文件

map_ 坐标系参数文件

在ENVI中自定义坐标系分三步:定义椭球体、基准面和定义坐标参数。

第一步、添加椭球体

语法为 <椭球体名称>,<长半轴>,<短半轴>。这里将“Krasovsky,6378245.0,6356863.0”和“IAG-75,6378140.0,6356755.3”加入末端。

注:文件中已经有了克拉索夫斯基椭球,由于翻译原因,这里的英文名称是Krassovsky,为了让其他软件平台识别,这里新建一个Krasovsky椭球体。

第二步、添加基准面

语法为<基准面名称>,<椭球体名称>,<平移三参数>。这里将“Beijing-54, Krasovsky, -12,

-113, -41”和“Xi'an-80,IAG-75,0,0,0”加入末端。

注:有的时候为了与其他软件平台兼容,基准面的名称直接写成所用的椭球体名称。

第三步、定义坐标

在ENVI任何用到投影坐标的功能模块中都可以新建坐标系(在任何地图投影选择对话框中,点击“New”按钮。),这里我们选择Map->Customize Map Projection,如图1所示,将相应的参数添加,这里添加的参数如图1所示。

图1 新建坐标系

注:投影类型选择Transverse Mercator,Scale factor填写0.9996,与Gauss-Kruger等同。False easting中如果把带号,即39500000,得到的坐标就带有带号。

选择Projection->Add New Projection, 将投影添加到 ENVI 所用的投影列表中。选择 File >

Save Projections,存储新的或更改过的投影信息。这样一个新的投影坐标就新建完成。

打开map_,可以看到新建的坐标信息已经自动加入。

5 使用自定义坐标系

下面将利用自定义坐标系将一副北京54坐标系转化为西安80坐标系。

试验的栅格数据情况为:一幅北京坐标系的栅格数据,投影参数如下:

投影类型:Transverse Mercator

椭球:Krassovsky

基准面:Krassovsky(自定义)

中央经线:117

东向偏移:500000m

由于数据的投影信息不是国际标准或者说其参数名称不是标准的,所以在ENVI中有可能不能读取数据的投影信息(如图4),这个时候就需要重新设定投影信息。

图4查看坐标信息

打开数据文件,在Available Bands List中选择文件,点击右键打开Header Info,在Edit

Attributes中选择Map Info。选择Change Projection,将前面定义好的坐标选上。

图5添加坐标系

这样在影像的map info里面就可以看到投影信息了。

图6 更改坐标信息后的效果

选择Map->Convert Map Projection,进行西安80的坐标转换。

图7 转换参数

打开转换后的结果,如图8所示,可以看到Map Info中投影信息已经更新,起始点的坐标也不一样,有几米的差别,这也符合北京54和西安80存在百米范围内的系统误差。

图8 西安80坐标系

6 总结

由于国内坐标系的非国际标准,很多软件平台,特别是国外软需要自定义坐标系。从上可以看到,ENVI的坐标定义还是比较简单,也非常灵活。

本文标签: 坐标参数投影坐标系基准面