首页 > 检索购买 > 新闻资讯 > 详情

ArcGIS中WGS84转为西安80

date:20190419 | 作者:TenHui | 点击:1193

在ArcGIS中,如果想要把一种坐标系统的矢量数据转换为另一个坐标系统,通常应当使用ArcToolbox中的Project工具。但是我使用这个工具的时候遇到了一个问题。

    我拿到的数据是一个点图层,经纬度坐标。给我这个图层的人说这些点是从Google Earth上取出来的,应该是WGS84坐标。但是项目中使用的是西安80坐标系统,于是就需要把WGS坐标系统转为西安80。使用Project做投影转换的时候遇到了一个问题,如图

GIS笔记——ArcGIS中WGS84转为西安80
本来是可选参数的Geographic Transformation变成了必选参数。而且在下拉列表里找不到WGS84与西安80间的转换选项。

-----分割线-----

在ESRI中国社区里发现了一些关于这个问题的帖子。帖子没有直接给出这个问题的解决方法,但是参考那些帖子的内容,我尝试了下面这个方法,并取得了初步的成功。这个方法的基本思路是,既然必须填Geographic Transformation,但是下拉列表里没有,那么就自定义一个。

1、首先,使用Creat Custom Geographic Transformation工具,定义一个Geographic Transformation。如图

GIS笔记——ArcGIS中WGS84转为西安80
2、完成定义后,再使用Project工具,就会发现Geographic Transformation下拉列表里出现了刚才自定义的那个Geographic Transformation,如图

GIS笔记——ArcGIS中WGS84转为西安80
绿点消失了,可以运行了。这里有件事需要说明,第三幅图里的Geographic Transformation与第二幅图里的Geographic Transformation本来应该是相同的。但是我刚开始做这个操作的时候没有截图,图都是后来截取的,所以图里它们两个不同名。这只是个示意而已。

-----分割线-----

这个方法有两个隐患

1、图2,Method参数我是根据网上一个例子填的,不知道是什么意思;

2、图2,Parameters似乎是投影转换的“七参数”,七个参数都是0,看起来似乎不妥。我做过检查,把转换前的数据和转换后的数据都加载到ArcMap里,发现它们是重合的。但是由于转换前后的数据属于不同的坐标系统,加载数据的时候ArcMap肯定对其中一个做过转换。所以即使它们是重合的,也不能完全确定这个方法是正确的。

-----分割线-----



ArcGIS中的北京54和西安80投影坐标系详解

1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为
地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate syst
em
是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作

呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求
我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短
半轴,偏心率。以下几行便是Krasovsky_1940椭球及其相应参数。
Spheroid: Krasovsky_1940
Semimajor Axis: 6378245.000000000000000000
Semiminor Axis: 6356863.018773047300000000
Inverse Flattening
(扁率): 298.300000000000010000
然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描

述中,可以看到有这么一行:
Datum: D_Beijing_1954
表示,大地基准面是D_Beijing_1954
--------------------------------------------------------------------------------
有了SpheroidDatum两个基本条件,地理坐标系统便可以使用。
完整参数:
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、关于北京54和西安80是我们使用最多的坐标系
先简单介绍高斯-克吕格投影的基本知识,了解就直接跳过,我国大中比例尺地图均采用高斯-克吕格投影,其通常是按6度和3度分带投影,1:2.5万-1:50万比例尺地形图采用经差6度分带,1:1万比例尺的地形图采用经差3度分带。具体分带法是:6度分带从本初子午线开始,按经差6度为一个投影带自西向东划分,全球共分60个投影带,带号分别为1603度投影带是从东经130秒经线开始,按经差3度为一个投影带自西向东划分,全球共分120个投影带。为了便于地形图的测量作业,在高斯-克吕格投影带内布置了平面直角坐标系统,具体方法是,规定中央经线为X轴,赤道为Y轴,中央经线与赤道交点为坐标原点,x值在北半球为正,南半球为负,y值在中央经线以东为正,中央经线以西为负。由于我国疆域均在北半球,x值均为正值,为了避免y值出现负值,规定各投影带的坐标纵轴均西移500km,中央经线上原横坐标值由0变为500km。为了方便带间点位的区分,可以在每个点位横坐标y值的百千米位数前加上所在带号,如20带内A点的坐标可以表示为YA=20 745 921.8m

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”这种形式,为什么没有采用统一的命名方式?让人看了有些费解

ArcGIS中的西安80坐标系转北京54坐标系‍‍

一、数据说明

本次投影变换坐标的源数据采用的是采用1980西安的地理坐标系统,1985国家高程基准的150000 DLG数据。

二、投影变换基础知识准备

北京54坐标系和西安80坐标系之间的转换其实是两种不同的椭球参数之间的转换。

ArcGIS中定义了两套坐标系:地理坐标系(Geographic coordinate system)和投影坐标系(Projected coordinate system)。

1、地理坐标系,是以经纬度为地图的存储单位的,是球面坐标系统。地球是一个不规则的椭球,为了将数据信息以科学的方法放到椭球上,这就需要有一个可以量化计算的椭球体。具有长半轴,短半轴,偏心率。一下几行是GCS_Xian_1980椭球及其相应的参数。

Geographic Coordinate System: GCS_Xian_1980

Datum: D_Xian_1980

Prime Meridian: Greenwich

Angular Unit: Degree

每个椭球体都需要一个大地基准面将这个椭球定位,因此可以看到在坐标系统中有Datum: D_Xian_1980的描述,表示,大地基准面是D_Xian_1980

2、有了椭球体和基准面这两个基本条件,地理坐标系便可以定义投影坐标系统了。以下是已定义Beijing_1954坐标的投影坐标系统的参数:

Projected Coordinate System: Beijing_1954_GK_Zone_19

Projection: Gauss_Kruger

False_Easting: 19500000.00000000

False_Northing: 0.00000000

Central_Meridian: 111.00000000

Scale_Factor: 1.00000000

Latitude_Of_Origin: 0.00000000

Linear Unit: Meter

Geographic Coordinate System: GCS_Beijing_1954

Datum: D_Beijing_1954

Prime Meridian: Greenwich

Angular Unit: Degree

投影坐标系统,实质上是平面坐标系统,其地图单位是米。将球面坐标转化为平面坐标的过程便称为投影,即投影的条件一是有球面坐标,二是要有转化的算法。因此,从参数中可以看出,每一个投影坐标系统都必定会有Geographic Coordinate System

3、关于坐标偏移量的问题

1)偏移量的由来

不同国家由于采用的参考椭球及定位方法不同,因此同一地面点在不同坐标系中大地坐标值也不相同。北京1954坐标系的原点在原苏联西部的普尔科夫,采用的是克拉索夫斯基椭球体;西安1980坐标系选用的是1975年国际大地测量协会推荐的参考椭球,其坐标原点设在我国中部的西安市附近的泾阳县境内。

因此,通常情况下,直接转换过来的数据会有一定的误差存在,所以为了保证数据的精度,在转换的过程中通过设置横坐标和纵坐标的偏移量来修正转换后的坐标值。

由西安1980坐标系转换成北京1954坐标系,那么它们的偏移量就是北京1954坐标系相对于WGS84椭球体的偏移量减去西安1980坐标系相对于WGS84偏移量。

2)偏移量的计算方法

在测区附近选择一国家已知点(X1Y1),在该已知点上用GPS测定WGS84坐标经纬度,将此坐标视为有误的西安80坐标系,并将其转换为西安80的平面直角坐标XY,然后与已知坐标相比较则课计算出偏移量。

X1=X- X1

Y1= Y- Y1

同理可求得北京54坐标系相对于WGS84坐标的偏移量X2Y2,所以由西安80坐标转换成北京54坐标的偏移量即是:X=X2-X1Y=Y2-Y1

三、西安80坐标系北京54坐标系的操作步骤

1、启动ArcMAP,载入coverage数据层,加载arctoolbox工具箱,选择Data Management Tools—>projections and transformations—>feature—>project,打开project对话框,a、在Input Dataset or Feature Class中选择需要进行转换的数据,b、在Output Dataset or Feature Class中选择输出路径和输出的文件名,c、在Output Coordinate System中输入需要定义的地理坐标类型Xian 1980.prj

其中地理坐标系统在Geographic Coordinate Systems中定义,投影坐标系在Projected Coordinate Systems中选择。

2、上述的coverage数据在定义了西安1980的地理坐标后就转换成了.shp格式的文件,如同上述操作打开project对话框,选择此.shp格式的文件进行投影,投影类型选择Xian 1980 GK Zone 19.prj

为了区分不同带间的点位,在每个点位的横坐标前加上所在的带号,如Xian 1980 GK Zone 19.prj,即是表示六度分带法的西安80坐标系,分带号为19,横坐标前加带号。

3、为了将数据能够正确的转换为北京54坐标系,需要对以定义西安80坐标系的数据进行平移纠偏。

载入第二步的结果数据,加载Editor工具条,打开Editor—>start editing,让此数据处于编辑状态。加载Spatial Adjustment工具条,选择new displacement link图标,在图像上选择四个Link点,然后打开Link Tabel表修正坐标,纠正公式是X.destinationX.source66Y.destinationY.source536653是已经计算出来的坐标偏移量,若计算正确,则计算完后可以看到residual error全部变为零,关闭Link Tabel表,

4、已进行了平移纠偏的数据就可以直接转换成北京54坐标了,同样是在arctoolbox工具箱中选择Data Management Tools—>projections and transformations—>Define Projection,当数据量比较大时,可以用批处理操作,速度会快很多,在Samples工具中选择Data Management—>Projections—>Batch Define Coordinate System

上一篇下一篇