免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 12340|回复: 1
收起左侧

[资料] gis坐标转换:GIS中的坐标系定义与转换

[复制链接]

66

主题

1364

铜板

7

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
584
发表于 2017-5-18 16:24 | 显示全部楼层 |阅读模式
虽然现有GIS平台中都预有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。

  GIS系统中的基准面通过当地基准面向WGS—84的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第7686页。假设XgYgZg表示WGS—84地心坐标系的三坐标轴,XtYtZt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数ΔXΔYΔZ表示两坐标原点的平移值;三个旋转参数εxεyεz表示当地坐标系旋转至与地心坐标系平行时,分别绕XtYtZt的旋转角;最后是比例校正因子,用于调整椭球大小。

  MapX中基准面定义方法如下:
  Datum.SetEllipsoidShiftXShiftYShiftZRotateXRotateYRotateZScaleAdjustPrimeMeridian
  其中参数: Ellipsoid为基准面采用的椭球体;
  ShiftXShiftYShiftZ为平移参数;
  RotateXRotateYRotateZ为旋转参数;
  ScaleAdjust为比例校正因子,以百万分之一计;
  PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。
  实际工作中一般都根据工作区内已知的北京54坐标控制点计算转换参数,如果工作区内有足够多的已知北京54WGS—84坐标控制点,可直接计算坐标转换的 7参数或3参数;当工作区内有3个已知北京54WGS—84坐标控制点时,可用下式计算WGS—84到北京54系坐标的转换参数(ABCDEF):x54 = AX84 + BY84 + Cy54 = DX84 + EY84 + F,多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京54坐标与WGS—84坐标之差作为平移参数,当工作区范围不大时精度也足够了。当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。

  GIS中地图投影的定义
  我国的基本比例尺地形图(15千,11万,12.5万,15万,110万,125 万,150万,1100万)中,大于等于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公里,由于高斯-克吕格投影中每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(423189821655933)其中21即为带号,同样所定义的东伪偏移值也需要加上带号,如21带的东伪偏移值为21500000米。
  假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用Pulkovo 1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(81001712301215000000)。
  那么当精度要求较高,实测数据为WGS—84坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择WGS— 84Mapinfo中代号104)作为基准面,当只有一个已知控制点时(见第2部分),根据平移参数调整东伪偏移、北纬偏移值实现WGS—84到北京 54坐标系统的转换,如: (810471230121500200-200),也可利用 AffineTransform坐标系变换对象,此时的转换系数(ABCDEF)中ABDE0,只有XY方向的平移值CF;当有3 个已知控制点时,可利用得到的转换系数(ABCDEF)定义 AffineTransform坐标系变换对象,实现坐标系的转换,如:(8104712301215000000map.AffineTransform),其中AffineTransform定义为 AffineTransform.set7ABCDEF)(7表示单位米);当然有足够多已知控制点时,直接求定7参数自定义基准面就行了。

  地理坐标系与投影坐标系的区别
  1、地理坐标系(Geographic coordinate system),是以经纬度为地图的存储单位。Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的,具有长半轴,短半轴,偏心率。以下几行便是 Krasovsky_1940椭球及其相应参数。
  SpheroidKrasovsky_1940
  Semimajor Axis6378245.000000000000000000
  Semiminor Axis6356863.018773047300000000
  Inverse Flattening(扁率): 298.300000000000010000
  然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中,可以看到有这么一行:
  DatumD_Beijing_1954表示,大地基准面是D_Beijing_1954
  --------------------------------------------------------------------------------
  有了SpheroidDatum两个基本条件,地理坐标系统便可以使用。
  完整参数:
  Alias
  Abbreviation
  Remarks
  Angular UnitDegree 0.017453292519943299
  Prime Meridian(起始经度): Greenwich 0.000000000000000000
  Datum(大地基准面): D_Beijing_1954
  Spheroid(参考椭球体): Krasovsky_1940
  Semimajor Axis6378245.000000000000000000
  Semiminor Axis6356863.018773047300000000
  Inverse Flattening298.300000000000010000

  2、接下来便是Projection coordinate system(投影坐标系统),首先看看投影坐标系统中的一些参数。
  ProjectionGauss_Kruger
  Parameters
  False_Easting500000.000000
  False_Northing0.000000
  Central_Meridian117.000000
  Scale_Factor1.000000
  Latitude_Of_Origin0.000000
  Linear UnitMeter 1.000000
  Geographic Coordinate System
  NameGCS_Beijing_1954
  Alias
  Abbreviation
  Remarks
  Angular UnitDegree 0.017453292519943299
  Prime MeridianGreenwich 0.000000000000000000
  DatumD_Beijing_1954
  SpheroidKrasovsky_1940
  Semimajor Axis6378245.000000000000000000
  Semiminor Axis6356863.018773047300000000
  Inverse Flattening298.300000000000010000
  从参数中可以看出,每一个投影坐标系统都必定会有Geographic Coordinate System
  投影坐标系统,实质上便是平面坐标系统,其地图单位通常为米。
  那么为什么投影坐标系统中要存在坐标系统的参数呢?
  这时候,又要说明一下投影的意义:将球面坐标转化为平面坐标的过程便称为投影。
  好了,投影的条件就出来了:
  a、球面坐标
  b、转化过程(也就是算法)
  也就是说,要得到投影坐标就必须得有一个拿来投影的球面坐标,然后才能使用算法去投影!
  即每一个投影坐标系统都必须要求有Geographic Coordinate System参数。

  3、我们现在看到的很多教材上的对坐标系统的称呼很多,都可以归结为上述两种投影。其中包括我们常见的非地球投影坐标系统
  大地坐标(Geodetic Coordinate):大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。
  方里网:是由平行于投影坐标轴的两组平行线所构成的方格网。因为是每隔整公里绘出坐标纵线和坐标横线,所以称之为方里网,由于方里线同时又是平行于直角坐标轴的坐标网线,故又称直角坐标网。
  在 11——120万比例尺的地形图上,经纬线只以图廓线的形式直接表现出来,并在图角处注出相应度数。为了在用图时加密成网,在内外图廓间还绘有加密经纬网的加密分划短线(图式中称分度带),必要时对应短线相连就可以构成加密的经纬线网。125万地形图上,除内图廓上绘有经纬网的加密分划外,图内还有加密用的十字线。
  我国的150——1100万地形图,在图面上直接绘出经纬线网,内图廓上也有供加密经纬线网的加密分划短线。
  直角坐标网的坐标系以中央经线投影后的直线为X轴,以赤道投影后的直线为Y轴,它们的交点为坐标原点。这样,坐标系中就出现了四个象限。纵坐标从赤道算起向北为正、向南为负;横坐标从中央经线算起,向东为正、向西为负。
  虽然我们可以认为方里网是直角坐标,大地坐标就是球面坐标。但是我们在一幅地形图上经常见到方里网和经纬度网,我们很习惯的称经纬度网为大地坐标,这个时候的大地坐标不是球面坐标,她与方里网的投影是一样的(一般为高斯),也是平面坐标高斯克吕格坐标系中国部分定义(54北京坐标系和80西安坐标系)加到坐标系文件中就可以了。

  常用地图投影转换公式
  1.约定
  本文中所列的转换公式都基于椭球体
  a -- 椭球体长半轴
  b -- 椭球体短半轴
  f -- 扁率(a-b/a
  e -- 第一偏心率
  e′ -- 第二偏心率
  N --  卯酉圈曲率半径
  R -- 子午圈曲率半径
  B -- 纬度,L -- 经度,单位弧度(RAD
  XN -- 纵直角坐标,YE -- 横直角坐标,单位米(M
  2.椭球体参数
  我国常用的3个椭球体参数如下(源自全球定位系统测量规范 GB/T 18314-2001”):

椭球体
长半轴 a(米)
短半轴b(米)

Krassovsky (北京54采用)
6378245
6356863.0188

IAG 75(西安80采用)
6378140
6356755.2882

WGS 84
6378137
6356752.3142


  需要说明的是,在海洋地质制图常用地图投影系列小程序中,程序界面上的所谓北京1954”西安1980”“WGS 84”在实际计算中只涉及了相应的椭球体参数。

  墨卡托(Mercator)投影
  3.1 墨卡托投影坐标系
  取零子午线或自定义原点经线(L0)与赤道交点的投影为原点,零子午线或自定义原点经线的投影为纵坐标X轴,赤道的投影为横坐标Y轴,构成墨卡托平面直角坐标系。
  3.2 墨卡托投影正反解公式
  墨卡托投影正解公式:(BLXY),标准纬度B0,原点纬度0,原点经度L0
  
  墨卡托投影反解公式:(XYBL),标准纬度B0,原点纬度0,原点经度L0
  
  公式中EXP为自然对数底,纬度B通过迭代计算很快就收敛了。

  高斯-克吕格(Gauss-Kruger)投影和UTMUniversal Transverse Mercator)投影
  4.1 高斯-克吕格投影与UTM投影异同
  高斯-克吕格(Gauss-Kruger)投影与UTM投影(Universal Transverse Mercator,通用横轴墨卡托投影)都是横轴墨卡托投影的变种,目前一些国外的软件或国外进口仪器的配套软件往往不支持高斯-克吕格投影,但支持 UTM投影,因此常有把UTM投影当作高斯-克吕格投影的现象。从投影几何方式看,高斯-克吕格投影是等角横切圆柱投影,投影后中央经线保持长度不变,即比例系数为1UTM投影是等角横轴割圆柱投影,圆柱割地球于南纬80度、北纬84度两条等高圈,投影后两条割线上没有变形,中央经线上长度比 0.9996。从计算结果看,两者主要差别在比例因子上,高斯-克吕格投影中央经线上的比例系数为1UTM投影为0.9996,高斯-克吕格投影与UTM投影可近似采用 X[UTM]=0.9996 * X[高斯Y[UTM]=0.9996 * Y[高斯,进行坐标转换(注意:如坐标纵轴西移了500000米,转换时必须将Y值减去500000乘上比例因子后再加500000)。从分带方式看,两者的分带起点不同,高斯-克吕格投影自0度子午线起每隔经差6度自西向东分带,第1带的中央经度为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投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,为了区别某一坐标系统属于哪一带,通常在横轴坐标前加上带号,如(4231898m21655933m),其中21即为带号。
  4.3 高斯-克吕格投影与UTM投影正反解公式
  高斯-克吕格投影和UTM投影公式从目前公开出版的教材、文献及网上我看到好几种版本,可归结为下列两组,我把原来教科书及国内文献上常见的一套公式列作高斯-克吕格投影公式,POSC(国际石油技术软件开放公司)及国外文献上见到的另一套公式列作UTM投影公式。常常能看到两套投影公式混用的文献资料,文中谈论的是UTM投影,但列出的公式却是国内教材上的高斯-克吕格投影公式,让我很困惑。为此,我设定比例因子都为1,用下列两组公式分别进行了同点的投影计算,计算结果在中高纬度时两套公式差异很小,小数后6位都是一致的;在低纬度时,投影结果差异拉大,横轴在小数第三位开始出现差异。假如精确到厘米级,上述试验说明两套公式混用应该没问题。不过,有可能会有其它极端的情况,毕竟是不同的投影公式。

  高斯-克吕格投影正解公式:(BLXY),原点纬度0,中央经度L0
  上面公式中东纬偏移FE = 500000+ 带号 * 1000000
  高斯-克吕格投影比例因子k0 = 1
  UTM投影正解公式:(BLXY),原点纬度0,中央经度L0
  上面公式中东纬偏移 FE= 500000米;北纬偏移 FN北半球= 0FN南半球= 10000000米;
  UTM投影比例因子k0 = 0.9996,其它参数同高斯-克吕格投影正解公式
  高斯-克吕格投影反解公式:(XYBL),原点纬度0,中央经度L0   
  UTM投影反解公式:(XYBL),原点纬度0,中央经度L0
  式中参数同高斯-克吕格投影反解公式。

0

主题

3161

铜板

6

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2496
发表于 2021-6-2 16:14 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表