ArcGIS实现铁路坐标转换方法及精度研究

(整期优先)网络出版时间:2023-07-31
/ 4

ArcGIS实现铁路坐标转换方法及精度研究

孙越乔

中铁二院工程集团有限责任公司610036

摘要:铁路勘测设计需要对大量地理信息数据进行坐标转换而工程项目常用转换软件仅支持点格式的坐标转换。本文研究了ArcGIS实现不同铁路工程独立坐标系之间的坐标转换方法,转换结果符合铁路工程精度要求。基于此结果,利用Python编写转换工具,简化了操作步骤,提高了转换效率,降低了作业技术门槛。

关键词:工程独立坐标系;坐标转换;ArcGISpython

Research on the method and accuracy of coordinate conversion for railway engineering in ArcGIS

Abstract: Coordinates of multiple formats of geographic information data need to be converted frequently for railway survey and design, but the common conversion tools for engineering projects only support coordinate conversion of point data. This paper studies the method to realize multiple engineering independent coordinate conversions in ArcGIS, and the conversion results meet the requirements of railway engineering accuracy. On the basis of this result, a conversion tool is programmed in Python, which streamlines the operation steps and improves the conversion efficiency, so that the operator can master the coordinate conversion with less training.

Key words: engineering independent coordinate; coordinate conversion; ArcGIS; python

1 概述

在铁路勘测设计阶段,需要收集大量基础测绘地理信息数据、国土资源数据及其他地质、物化探等数据作为设计依据。这些数据大多基于ArcGIS建立[1],采用ArcGIS格式的数据库(如gdb)进行入库、更新和维护。这些数据通常采用高斯投影计算得到的6度带或3度带,即国家统一坐标系统[2],需要转换到不同的工程独立坐标系方便铁路勘测设计使用。常用坐标转换软件如CODPAS、LGO、TGO、国家坐标系三维坐标转换软件包[3]8等只支持点坐标的转换,适用范围窄,而ArcGIS可对多种矢量(点、线、面)和栅格(*.tif、*.jpg等)数据做坐标转换,能满足铁路勘测设计中对多源异构数据坐标转换的需求。本文研究了ArcGIS实现铁路工程独立坐标转换方法及精度,并利用Python和Arctoolbox编写自定义坐标系统转换工具,简化了转换步骤,提高了转换效率,降低了作业技术门槛。

2 铁路工程独立坐标系

2.1 铁路工程独立坐标系建立方法

铁路工程测区位置往往跨越不同标准投影分带,特别是高速铁路长大干线,可能跨越两个甚至三个标准投影分带。当测区高程与参考椭球面高程差异较大,或者测区位于标准投影分带边缘时,其投影长度的变形值可能会超过铁路工程测量的规定值。为了控制长度变形值不超限,需要根据测区情况建立铁路工程独立坐标系[4]

工程独立坐标系通常通过椭球膨胀法、椭球平移法、椭球变形法建立,三种方法投影变形的尺度近似[5],又各有优点:椭球平移法变形相对均匀[6];椭球变形法保持经纬度不变,利于与国家坐标衔接[7];而建立铁路工程独立坐标系通常采用椭球膨胀法,因其在非标准椭球下的高斯投影正反算最为简洁[8]。椭球膨胀法即保持参考椭球中心位置、椭球定向、椭球其他元素不变的前提下仅改变椭球长半轴,形成一个新的工程椭球。设工程独立坐标系选择的投影面大地高为,新的工程椭球长半轴为,椭球长半轴变化量为,有关系如下:

确定的常用方法有[9-10]

(1)方法一:直接设

(2)方法二:为原投影面沿法线方向膨胀到新投影面的长半轴增加量。

式中为测区中心卯酉圈曲率半径,为测区平均纬度,为原椭球的第一偏心率。

(2.2)代入(2.3)得:

即:

(3)方法三:为平均曲率半径改变后的长半轴改变量。

式中为测区平均纬度,

为测区该纬度点的平均曲率半径,为原椭球的第一偏心率。

(2.7)代入(2.6)得:

即:

可以看出方法二和三均需要确定一个平均纬度,但铁路工程呈带状延伸(特别是高速铁路长大干线,往往横跨多个纬度),不易确定平均纬度,故铁路工程独立坐标采用方法一建立,即参考椭球长半轴加上投影面大地高得到新椭球的长半轴,扁率和定向保持不变[3]7。此法可在ArcMap中通过新建地理坐标系实现,具体实现方法见第4节。

2.2 铁路工程独立坐标转换方法

当铁路工程横跨多个标准分带或高程起伏较大时,往往会变换多个中央经线位置与投影面高程以减小长度变形[11]。投影带与投影面的选择往往不是标准分带,对于相同工程椭球(椭球长半轴、扁率、投影面大地高一致)、不同投影带的坐标系之间的转换,可以通过高斯正反算实现严密无缝转换。

而对于不同椭球(椭球扁率一致、长半轴增量等于各自投影面大地高)的坐标转换,需要利用空间直角坐标作为过渡[12]。假设某控制点在工程椭球的独立坐标系下的平面坐标为,要转换到另一工程椭球的独立坐标,首先,基于工程椭球的参数,通过高斯反算得出其经纬度,将转换为空间直角坐标;由于采用了改变长半轴的膨胀法建立的工程椭球与国家参考椭球的空间直角坐标系是完全重合的,故该点在工程椭球下的空间直角坐标就等于国家参考椭球下的空间直角坐标,即;再基于工程椭球的参数,将转换为经纬度;最后通过工程椭球的参数高斯正算得出平面坐标

3 ArcGIS的坐标系统

3.1 ArcGIS常用坐标系类型

ArcGIS中常用的坐标系类型为地理坐标系和投影坐标系。地理坐标系使用经线和纬线的球面测量值定义了数据在地球表面模型的地理位置,而投影坐标系描述了如何将数据从地球表面模型转换到二维平面(如纸张、屏幕等)上。ArcGIS支持许多地理坐标系,例如WGS 1984坐标系、2000国家大地坐标系、国际地面参考框架(ITRF)等等。ArcGIS中投影坐标系囊括了常见投影方式,如高斯-克吕格3度带和6度带投影、UTM投影、兰伯特方位等积投影等等。在ArcGIS中,地理坐标系是投影坐标系的参考基准,一种投影方法可以基于不同的地理坐标系产生不同的投影坐标系。

3.2 ArcGIS中创建自定义坐标系的方法

标准坐标系均存储在ArcGIS软件自身的数据库中,而对于铁路工程独立坐标系,亦可在ArcGIS中自定义坐标系统供以使用。

(1)新建地理坐标系

坐标系、基准面和椭球体的名称都需要自定义,要同软件已定义的名称的区分开。此处采用椭球膨胀法,保持反扁率不变,以独立坐标投影面的大地高作为长半轴的变化量,即(见图3.1)。点击确定后,可右键坐标名称添加到收藏夹,以便后续使用。

图3.1 新建地理坐标系方法

(2)新建投影坐标系

坐标系名称需要自定义,投影名称可选择Transverse_Mercator或者Gauss_Kruger,在ArcGIS中二者是相同的。在参数框中输入需要的中央经线值和东偏值500000。当投影高为0时,选择软件自带的椭球,当投影高不为0时,可单击“更改…”,选择上一步已创建的自定义地理坐标系(见图3.2)。

3.2 投影高0的独立坐标(左),投影高不为0的独立坐标系(右)

4 ArcGIS坐标转换方法研究及精度评估

ArcGIS中同一个椭球下的地理坐标系和投影坐标系之间,以及不同椭球下任意投影坐标系可以相互转换。同一椭球(包括自定义的椭球)下的地理坐标系和投影坐标系之间的坐标转换有严密的转换公式,计算过程中不需要输入转换参数,而不同椭球下的坐标转换则需要输入转换参数。

ArcGIS中地理变换是针对地理坐标系的,往往发生在不同椭球之间。如果输入坐标系是平面坐标系(ArcGIS中称之为投影),在使用Project(投影)工具的过程中软件会自动进行相应的投影变换步骤,首先将坐标转换至地理坐标系下,然后进行地理变换,最后再将坐标转为用户选择的目标投影坐标系。

4.1 数据准备

选取某既有铁路线项目的精测成果共248个控制点,已知其精确的CGCS2000国家坐标系大地坐标和CGCS2000高斯-克吕格投影3度分带的投影坐标值,包括中央经线110度、111度、112度、113度和114度带五个标准分带共两套成果。

4.2 定义坐标系

ArcGIS矢量数据分为点、线、面三种类型的数据,数据格式为shapfile,一般自带坐标系信息,如果缺失坐标系信息或者坐标系信息错误,则可在属性里重新定义坐标信息。此外,ArcGIS还支持带有坐标信息的栅格数据进行坐标转换。

对于其他格式的原始数据,如xlsx、csv和txt可在使用“添加XY数据”将坐标值导入数据框中,本次实验数据格式是csv,导入后的数据在数据框中以点要素的形式显示(见图4.1)。然后使用Define Projection(定义投影)工具定义它的坐标系。对于本文实验数据,坐标系应选择地理坐标系中的CGCS2000。对于CAD数据则需要先将其转为shapfile再做坐标转换。

4.1导入的数据

4.3 创建自定义地理变换

当原坐标系和目标坐标系的椭球相同时,本小节步骤可以省略,直接跳至4.4节。

当原坐标系和目标坐标系的椭球不相同时,需要使用到Create Custom Geo Transformation(创建自定义地理变换)工具。首先选择转换前后的两个椭球,如果是独立坐标系,则需要事先按照3.2节的步骤创建好自定义坐标系。然后选择转换方法,ArcGIS囊括了大部分常用的转换方法,例如三参数法和布尔莎模型等。

需要注意的是,虽然对于铁路工程独立坐标系(如CGCS2000的大地坐标系转化到基于CGCS2000椭球膨胀后建立的工程独立坐标系),其空间直角坐标系完全重合,但“自定义地理(坐标)变换”中的“方法”不能选择NULL,需要选择Geocentric_Translation,参数均填写0(见图4.2)。如果选择NULL,则转换结果精度不能满足铁路工程要求。

4.2创建自定义地理变换

4.4 投影变换

确保数据具有正确的坐标系信息后,使用Data Management Tools工具集中的Project(投影)工具进行坐标转换。本文实验使用CGCS2000国家大地坐标系的大地坐标数据,分别转换到投影高为0的CGCS2000高斯-克吕格投影110度、111度、112度、113度和114度带(见图4.3),以及中央经线111度、投影高从-3000米递增到3000米的6个独立坐标系。需要注意的是,当转换前后投影高不同时,需要事先依照3.3节的方法创建自定义地理变换,并在转换时选择自定义的变换名称。

4.3 投影变换

4.5 精度评估

完成坐标转换后,需要使用Data Management Tool工具集中的addXY_management(添加XY坐标)工具,将转换后的坐标值赋予每个要素。将ArcGIS的转换坐标值与已知坐标值对比(见表4.1和表4.2),结果可知转换误差满足制图要求。由表4.1可知相同椭球、不同中央经线的独立坐标系间的转换是严密的;由表4.2可知,投影面绝对高程越大,坐标转换的较差就越大,但都是毫米级,远低于转换误差限制,能满足各比例尺制图精度要求。

4.1 ArcGIS同椭球独立坐标转换误差表1(米)

目标坐标系

CGCS2000中央经线110°投影高H=0

CGCS2000中央经线111°投影高H=0

CGCS2000中央经线112°投影高H=0

CGCS2000中央经线113°投影高H=0

CGCS2000中央经线114°投影高H=0

Δx

Δy

Δx

Δy

Δx

Δy

Δx

Δy

Δx

Δy

中误差

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

最大误差值

0.0001

-0.0001

0.0001

-0.0001

0.0001

-0.0001

0.0001

0.0001

0.0001

0.0001

4.2 ArcGIS不同椭球独立坐标转换误差表2(米)

目标坐标系

CGCS2000中央经线111°投影高H=-3000

CGCS2000中央经线111°投影高H=-2000

CGCS2000中央经线111°投影高H=-1000

CGCS2000中央经线111°投影高H=0

CGCS2000中央经线111°投影高H=1000

CGCS2000中央经线111°投影高H=2000

CGCS2000中央经线°投影高111H=3000

Δx

Δy

Δx

Δy

Δx

Δy

Δx

Δy

Δx

Δy

Δx

Δy

Δx

Δy

中误差

0.0085

0.0001

0.0056

0.0000

0.0028

0.0000

0.0000

0.0000

0.0028

0.0000

0.0056

0.0001

0.0084

0.0001

最大误差值

0.0086

-0.0002

0.0058

-0.0002

0.0030

-0.0002

0.0001

-0.0001

-0.0029

0.0001

-0.0057

0.0002

-0.0085

0.0002

5 利用Python编写坐标转换工具

通过研究,笔者总结出了一套ArcGIS坐标转换的流程,并绘制出流程图(图5.1)。按照前节研究,换带流程中涉及到至少3种工具、至少7个手工输入的参数(图中带P的参数),人工干预步骤很多,生产效率不高。

5.1 ArcGIS坐标转换流程图

因此,笔者利用面向ArcGIS的Python脚本编程技术,编写了自定义坐标转换工具,根据图4.4.1制定了自定义脚本工具的编写思路,将所有步骤集合到一个脚本里。作业人员无需掌握所有步骤,只需要定义输入和输出要素路径、原坐标系和目标坐标系的中央经线和投影高即可获得转换成果(见图5.2)。

5.2 自定义工具箱界面示例

ArcGIS自定义工具箱中选择添加脚本,然后设定需要输入和输出的参数名称和属性,如图5.3所示。

5.3 设置自定义脚本参数

将写好的.py文件导入脚本,保存后在自定义的路径下找到脚本,双击运行即可。值得注意的是,如果脚本保存在非默认目录,需要在工具箱窗口中添加一次脚本。其他用户只要安装了ArcGIS,都可以导入并使用此脚本进行坐标转换。脚本代码节选WGS84投影坐标系和独立坐标系的相互转换为例,见图5.4。

图5.4 代码示例

6 结束语

ArcGIS能够对多种格式矢量、栅格数据定义坐标系和坐标转换,且具有较高的精度,能够满足铁路工程要求,其中:

(1)相同椭球、不同中央经线的独立坐标系间的转换是严密的;

(2)独立坐标系投影面绝对高程越大,坐标转换的较差就越大,但都是毫米级。

利用Python编写的ArcGIS自定义工具可将多个步骤集合至一个工具,大大提高了转换效率,降低了作业员掌握坐标转换的技术门槛。

参考文献

[1]郭海泉.ArcGIS在国土资源数据2000国家大地坐标系转换中的应用[J].测绘与空间地理信息,2019,42(10):3.

[2]孔祥元,梅是义.控制测量学[M].武汉:武汉大学出版社,2006.

[3]梅熙,王国祥.高速铁路坐标转换方法探讨[J].高速铁路技术,2012,3(004):6-10.

[4] TB 101012018,铁路工程测量规范[S]

[5]海清.通过椭球变换建立区域独立坐标系的方法[J].科技信息,2007.

[6]李世安,刘经南,施闯.应用GPS建立区域独立坐标系中椭球变换的研究[J].武汉大学学报:信息科学版,2005,30(10):4.

[7]丁士俊,畅开蛳,高琐义.独立网椭球变换与坐标转换的研究[J].测绘通报, 2008(8):4.

[8]邓兴升,汤仲安,花向红,等.椭球变换后的高斯投影正反算算法[J].大地测量与地球动力学,2010(2):4.

[9]施一民.现代大地控制测量[M].北京:测绘出版社,2008.

[10]施一民.适用于独立网的区域性椭球的确定方法及论证[J].解放军测绘学院学报,1994(002):011.

[11]于亚杰,赵英志,张月华.基于椭球膨胀法实现独立坐标系统的建立[J].测绘通报,2011(12):4.

[12]方杨.任意带任意投影面的平面坐标转换方法研究[J].铁道勘察,2011,37(3):3.