论文部分内容阅读
摘要: 在我们的日常测绘工作中经常涉及到不同坐标系坐标数据之间的转换,而常用的商业软件由于其软件设计的侧重点不同,不能针对实际情况选取合适的转换模型和算法实现任意两个坐标系之间的转换.针对这些软件的不足,并结合自身的需求,采用功能强大的可视化程序开发环境Visual C++ 6.0并选用布尔沙七参数转换模型,研制一款通用坐标转换软件,克服了平面坐标转换模型的局限性,并将其应用到某长输管道项目,实现了百公里跨度亚毫米级的坐标转换精度,取得了很好的实用效果.
关键词: 坐标系坐标转换Visual C++布尔沙模型
中图分类号:P226文献标识码: A
Design and Implementation of a Common Coordinate Transformation Software by the platform of Visual C++
JIANG Wei
(WUHAN DESIGN & RESEARCH INSTITUTE CO.,LTD OF CHINA COAL TECHNOLOGY & ENGINEERING GROUP,WUHAN, 430064, CHINA)
Abstract: We always needed to transfer coordinates between two different coordinate systems in our daily surveying and mapping jobs, some commercial software didn’t choose proper transformation model and arithmetic according to practical instance to implement coordinate transformation because of the different software design emphasis. Aiming at the shortages of the commercial software and our special needs, I programmed a common coordinate transformation software using the Bursa seven parameters model by the visual program platform Visual C++ 6.0.
My software overcame the shortages of plane coordinate transformation model and was used to a long pipe project, and the coordinate transformation accuracy was level sub-millimeter in the span of hundreds kilometer, the application result of the software was good.
Key Words: Coordinate SystemCoordinate TransformationVisual C++Bursa Model
1 概述
由于我们日常使用的测量资料涉及坐标系较多,测绘工作中经常需要对不同坐标系坐标数据(地图,控制点及测量点等)之间的换算,常用的主流商业软件,由于其软件设计的侧重点不同,都无法满足我们的需求.
如徕卡公司的LEICA Geo Office软件(简称LGO)虽然功能较多,但只能实现WGS84坐标至当地坐标之间的转换;天宝公司的TRIMBLE Business Center软件(简称TBC)只能实现小范围的GPS坐标校正;武汉大学的科傻软件(COSA)的能实现平面坐标的坐标转换功能,但由于平面坐标转换的适用范围很小,对于转换区域跨度较大时,转换精度基本上不能接受;中海达公司的HDS軟件虽然能实现任意坐标系之间的坐标转换,但由于软件设计不够完善,坐标换算功能还存在缺陷,对参与计算的数据的坐标格式混乱且无特别说明,操作且转换过程很复杂,可操作性较差.
纵观以上这些软件可知,都为GPS数据的处理软件,不能针对实际情况选取合适的转换模型与算法实现任意两个坐标系之间的转换,而我们经常需要实现不同坐标系之间的转换,因此,针对以上这些软件的功能不足,根据自身需求研制通用的坐标转换软件.采用的开发环境为Visual C++ 6.0,它是一个功能强大的可视化编程工具,具有很强的调试功能,是目前功能最为强大的程序开发平台之一[1][2],使用其开发的程序比起.NET平台来说,运行速度更快,程序的封装少,有助于开发人员理解程序的结构及运行原理等优点,因此,选择其作为本软件的开发平台.
2坐标转换软件的设计与实现
2.1 坐标转换模型的选择
为了克服平面坐标转换模型的使用局限性,同时满足大范围(如省级或国家级)坐标转换需要,选取布尔沙三维七参数模型[3]作为转换模型,关于此模型的具体细节可查阅相关资料,在此不做叙述.
2.2 软件的功能设计
结合我们的实际工作需求,功能设计如图1所示:
图1 坐标转换软件功能设计图
2.3 软件结构设计
本软件基本框架由三个主要的类模块组成:
1) CDlgCalParas类实现转换参数的解算界面、组织调取并显示公共点坐标数据、计算转换参数及转换精度的评定等功能;
2) CDialogRTran类实现软件的主要操作界面、管理椭球参数、输入与输出坐标类型切换、提取源坐标组织实施坐标转换及输出结果的存贮等功能;
3) CDialogRegister类负责软件注册管理.
上述的三个类模块是整个软件的框架结构,为实现相关的转换运算,还设计了以下几个功能类:
1) TMPrjPoint投影类,负责高斯投影正反算功能,解算椭球计算中常用的参数以及实现坐标在各坐标类型间的换算,如空间直角坐标、大地坐标及高斯平面坐标等;
2) CTrans坐标转换类,负责建立七参数坐标转换平差模型,实现坐标转换功能;
3) CMatrix矩阵运算类,实现各种矩阵运算,包括矩阵加、减、乘、求逆等运算;
4) CParameters转换参数类,负责管理转换参数;
5) CDMS角度单位换算类,负责将角度在度,度分秒以及弧度之间的换算.
2.4 软件流程设计
软件的设计以流程图的形式给出,如图2所示:
图2 软件坐标转换流程
软件设计的主要界面如图3所示:
图3 坐标转换软件主界面
2.5 高斯投影及坐标换带功能说明
我们知道高斯投影及坐标换带[3]计算都是同一坐标框架下进行的,并不涉及到椭球变换[4].因此,可将高斯投影正反算及坐标换带功能理解为将坐标转换参数全部设置为0,即在同一坐标系下的坐标转换,本软件即采用这种方法来实现高斯投影的正反算及坐标换带功能,以及同一坐标系下空间直角坐标、大地坐标及高斯坐标之间的换算功能,从而增加了软件的通用性,不必再单独开发相应的转换功能.另外,由于我们经常所接触到的换带计算并不是3度或6度标准分带,而是任意带分带.所以,本软件不区分3或6度带,统一采用投影带中央经线经度作为换带计算条件.标准3度或6度分带带号与投影带中央经线经度的换算公式很简单,自行换算即可.
3 转换实例
以某管道工程为例(管道长度约700km),在管道设计及测量的工作中使用的地形图为抵偿坐标系,但收集的部分资料、征地测量及沿线场站的设计及测量工作中采用的坐标系则为国家坐标系,因此涉及抵偿坐标系和国家坐标系这两个坐标系统,并且经常需要对管道中线及附属设施的坐标进行抵偿坐标系和国家坐标系之间转换.由于各种原因无法获得上述坐标系之间的转换参数或抵偿坐标计算的具体方法,而现有测量成果资料只有管道沿线控制点的抵偿坐标系和国家坐标系的两套坐标成果.在此,以管道工程中长度最长的第一抵偿系为例,测试本软件的使用效果,其中第一抵偿系跨度约为300km,涉及D级GPS控制点134个.
由于平面四参数(两个平移參数,一个旋转参数和一个比例系数)坐标转换模型[3]简单,首先我们采用平面坐标的转换方法,但通过试验发现,平面坐标转换的精度在线路跨度超过10km时,误差达到分米级,无法满足设计及测量的要求;并且,如果采用平面四参数坐标转换模型,需对第一抵偿系做分段处理,且分段数超过20个,坐标转换操作过程复杂且易出错,因此,不宜采用平面四参数坐标转换模型,而应采用三维七参数转换模型.
下面列出采用自研的通用坐标转换程序以两种组合方案实施坐标转换,并列出各组合方案的坐标转换精度指标.
方案1 全部134个控制点参与解算转换参数,对全部控制点进行坐标转换,转换后平面坐标x、y残差平均值都为0,其余精度指标如表1所示:
表1方案1坐标转换平面位置精度(单位:m)
方案2 隔一点取一个控制点,即取67个控制点用来解算转换参数,对上述67个控制点和未参与解算转换参数的67个控制点进行坐标转换,分别计算上述两组67个控制点转换后平面坐标x、y残差平均值也都0,精度指标如表2所示:
表2方案2坐标转换平面位置精度(单位:m)
通过以上两种方案的转换精度指标可以看出,获得了亚毫米级的转换精度.
4 结论与改进
当采用自研的通用坐标换算程序对整个第一抵偿系全部134个控制点坐标实施整体转换后,发现整体转换平面坐标精度能达到亚毫米级,取得了很好的效果.
通过此管道项目应用,用户反映软件的操作界面友好,操作简单,解算速度快,只需要提供符合格式要求的任意坐标类型的坐标数据文件,使用本软件可很好的实现了抵偿坐标与国家坐标系之间的转换,并且转换精度高.本软件很好的协助了设计人员及外业测量人员的工作,提高了精度和工作效率,减轻了作业的负担.
本软件现在实现了通用坐标转换软件基本功能,其功能可以进一步扩展,如加入参数的组合选择功能,能根据用户的需求以任意参数组合进行坐标转换;另外,还可对软件的适用范围进一步扩展,引入罗德里格矩阵[5][6][7]将其扩展到大欧拉角坐标转换[8]等方面.
参考文献:
[1] 陈建春. Visual C++开发GIS系统[M]. 北京:电子工业出版社,2000.
[2] 黄维通. Visual C++面向对象与可视化程序设计[M]. 北京:清华大学出版社,2003.
[3] 孔祥元,梅是义. 控制测量学[M]. 武汉:武汉大学出版社,2002.
[4] 邓兴升,汤仲安,花向红等. 椭球变换后的高斯投影正反算算法[J]. 大地测量与地球动力学,2010,30(02):49-52.
[5] 姚吉利,王艳. 基于罗德里格矩阵的平面坐标转换模型的建立[J]. 金属山,2005,353:40-42.
[6] 姚吉利,韩保民,杨元喜. 罗德里格矩阵在三维坐标转换严密解算中的应用[J]. 武汉大学学报信息科学版,2006,31(12):1094-1096.
[7] 原玉磊,蒋理兴,刘灵杰. 罗德里格矩阵在坐标系转换中的应用[J]. 测绘科学,2010,35(02):178-180.
[8] 胡亚江,杨晓梅,沙月进. 大欧拉角的空间直角坐标转换方法探讨[J]. 现代测绘,2006,29(6):10-12.
作者简介:
姜伟 (1981- ) 男 汉族 湖北武汉人 硕士研究生 工程师 现在中煤科工集团武汉设计研究院有限公司从事大地测量,变形监测及工程测量等方面的工作
关键词: 坐标系坐标转换Visual C++布尔沙模型
中图分类号:P226文献标识码: A
Design and Implementation of a Common Coordinate Transformation Software by the platform of Visual C++
JIANG Wei
(WUHAN DESIGN & RESEARCH INSTITUTE CO.,LTD OF CHINA COAL TECHNOLOGY & ENGINEERING GROUP,WUHAN, 430064, CHINA)
Abstract: We always needed to transfer coordinates between two different coordinate systems in our daily surveying and mapping jobs, some commercial software didn’t choose proper transformation model and arithmetic according to practical instance to implement coordinate transformation because of the different software design emphasis. Aiming at the shortages of the commercial software and our special needs, I programmed a common coordinate transformation software using the Bursa seven parameters model by the visual program platform Visual C++ 6.0.
My software overcame the shortages of plane coordinate transformation model and was used to a long pipe project, and the coordinate transformation accuracy was level sub-millimeter in the span of hundreds kilometer, the application result of the software was good.
Key Words: Coordinate SystemCoordinate TransformationVisual C++Bursa Model
1 概述
由于我们日常使用的测量资料涉及坐标系较多,测绘工作中经常需要对不同坐标系坐标数据(地图,控制点及测量点等)之间的换算,常用的主流商业软件,由于其软件设计的侧重点不同,都无法满足我们的需求.
如徕卡公司的LEICA Geo Office软件(简称LGO)虽然功能较多,但只能实现WGS84坐标至当地坐标之间的转换;天宝公司的TRIMBLE Business Center软件(简称TBC)只能实现小范围的GPS坐标校正;武汉大学的科傻软件(COSA)的能实现平面坐标的坐标转换功能,但由于平面坐标转换的适用范围很小,对于转换区域跨度较大时,转换精度基本上不能接受;中海达公司的HDS軟件虽然能实现任意坐标系之间的坐标转换,但由于软件设计不够完善,坐标换算功能还存在缺陷,对参与计算的数据的坐标格式混乱且无特别说明,操作且转换过程很复杂,可操作性较差.
纵观以上这些软件可知,都为GPS数据的处理软件,不能针对实际情况选取合适的转换模型与算法实现任意两个坐标系之间的转换,而我们经常需要实现不同坐标系之间的转换,因此,针对以上这些软件的功能不足,根据自身需求研制通用的坐标转换软件.采用的开发环境为Visual C++ 6.0,它是一个功能强大的可视化编程工具,具有很强的调试功能,是目前功能最为强大的程序开发平台之一[1][2],使用其开发的程序比起.NET平台来说,运行速度更快,程序的封装少,有助于开发人员理解程序的结构及运行原理等优点,因此,选择其作为本软件的开发平台.
2坐标转换软件的设计与实现
2.1 坐标转换模型的选择
为了克服平面坐标转换模型的使用局限性,同时满足大范围(如省级或国家级)坐标转换需要,选取布尔沙三维七参数模型[3]作为转换模型,关于此模型的具体细节可查阅相关资料,在此不做叙述.
2.2 软件的功能设计
结合我们的实际工作需求,功能设计如图1所示:
图1 坐标转换软件功能设计图
2.3 软件结构设计
本软件基本框架由三个主要的类模块组成:
1) CDlgCalParas类实现转换参数的解算界面、组织调取并显示公共点坐标数据、计算转换参数及转换精度的评定等功能;
2) CDialogRTran类实现软件的主要操作界面、管理椭球参数、输入与输出坐标类型切换、提取源坐标组织实施坐标转换及输出结果的存贮等功能;
3) CDialogRegister类负责软件注册管理.
上述的三个类模块是整个软件的框架结构,为实现相关的转换运算,还设计了以下几个功能类:
1) TMPrjPoint投影类,负责高斯投影正反算功能,解算椭球计算中常用的参数以及实现坐标在各坐标类型间的换算,如空间直角坐标、大地坐标及高斯平面坐标等;
2) CTrans坐标转换类,负责建立七参数坐标转换平差模型,实现坐标转换功能;
3) CMatrix矩阵运算类,实现各种矩阵运算,包括矩阵加、减、乘、求逆等运算;
4) CParameters转换参数类,负责管理转换参数;
5) CDMS角度单位换算类,负责将角度在度,度分秒以及弧度之间的换算.
2.4 软件流程设计
软件的设计以流程图的形式给出,如图2所示:
图2 软件坐标转换流程
软件设计的主要界面如图3所示:
图3 坐标转换软件主界面
2.5 高斯投影及坐标换带功能说明
我们知道高斯投影及坐标换带[3]计算都是同一坐标框架下进行的,并不涉及到椭球变换[4].因此,可将高斯投影正反算及坐标换带功能理解为将坐标转换参数全部设置为0,即在同一坐标系下的坐标转换,本软件即采用这种方法来实现高斯投影的正反算及坐标换带功能,以及同一坐标系下空间直角坐标、大地坐标及高斯坐标之间的换算功能,从而增加了软件的通用性,不必再单独开发相应的转换功能.另外,由于我们经常所接触到的换带计算并不是3度或6度标准分带,而是任意带分带.所以,本软件不区分3或6度带,统一采用投影带中央经线经度作为换带计算条件.标准3度或6度分带带号与投影带中央经线经度的换算公式很简单,自行换算即可.
3 转换实例
以某管道工程为例(管道长度约700km),在管道设计及测量的工作中使用的地形图为抵偿坐标系,但收集的部分资料、征地测量及沿线场站的设计及测量工作中采用的坐标系则为国家坐标系,因此涉及抵偿坐标系和国家坐标系这两个坐标系统,并且经常需要对管道中线及附属设施的坐标进行抵偿坐标系和国家坐标系之间转换.由于各种原因无法获得上述坐标系之间的转换参数或抵偿坐标计算的具体方法,而现有测量成果资料只有管道沿线控制点的抵偿坐标系和国家坐标系的两套坐标成果.在此,以管道工程中长度最长的第一抵偿系为例,测试本软件的使用效果,其中第一抵偿系跨度约为300km,涉及D级GPS控制点134个.
由于平面四参数(两个平移參数,一个旋转参数和一个比例系数)坐标转换模型[3]简单,首先我们采用平面坐标的转换方法,但通过试验发现,平面坐标转换的精度在线路跨度超过10km时,误差达到分米级,无法满足设计及测量的要求;并且,如果采用平面四参数坐标转换模型,需对第一抵偿系做分段处理,且分段数超过20个,坐标转换操作过程复杂且易出错,因此,不宜采用平面四参数坐标转换模型,而应采用三维七参数转换模型.
下面列出采用自研的通用坐标转换程序以两种组合方案实施坐标转换,并列出各组合方案的坐标转换精度指标.
方案1 全部134个控制点参与解算转换参数,对全部控制点进行坐标转换,转换后平面坐标x、y残差平均值都为0,其余精度指标如表1所示:
表1方案1坐标转换平面位置精度(单位:m)
方案2 隔一点取一个控制点,即取67个控制点用来解算转换参数,对上述67个控制点和未参与解算转换参数的67个控制点进行坐标转换,分别计算上述两组67个控制点转换后平面坐标x、y残差平均值也都0,精度指标如表2所示:
表2方案2坐标转换平面位置精度(单位:m)
通过以上两种方案的转换精度指标可以看出,获得了亚毫米级的转换精度.
4 结论与改进
当采用自研的通用坐标换算程序对整个第一抵偿系全部134个控制点坐标实施整体转换后,发现整体转换平面坐标精度能达到亚毫米级,取得了很好的效果.
通过此管道项目应用,用户反映软件的操作界面友好,操作简单,解算速度快,只需要提供符合格式要求的任意坐标类型的坐标数据文件,使用本软件可很好的实现了抵偿坐标与国家坐标系之间的转换,并且转换精度高.本软件很好的协助了设计人员及外业测量人员的工作,提高了精度和工作效率,减轻了作业的负担.
本软件现在实现了通用坐标转换软件基本功能,其功能可以进一步扩展,如加入参数的组合选择功能,能根据用户的需求以任意参数组合进行坐标转换;另外,还可对软件的适用范围进一步扩展,引入罗德里格矩阵[5][6][7]将其扩展到大欧拉角坐标转换[8]等方面.
参考文献:
[1] 陈建春. Visual C++开发GIS系统[M]. 北京:电子工业出版社,2000.
[2] 黄维通. Visual C++面向对象与可视化程序设计[M]. 北京:清华大学出版社,2003.
[3] 孔祥元,梅是义. 控制测量学[M]. 武汉:武汉大学出版社,2002.
[4] 邓兴升,汤仲安,花向红等. 椭球变换后的高斯投影正反算算法[J]. 大地测量与地球动力学,2010,30(02):49-52.
[5] 姚吉利,王艳. 基于罗德里格矩阵的平面坐标转换模型的建立[J]. 金属山,2005,353:40-42.
[6] 姚吉利,韩保民,杨元喜. 罗德里格矩阵在三维坐标转换严密解算中的应用[J]. 武汉大学学报信息科学版,2006,31(12):1094-1096.
[7] 原玉磊,蒋理兴,刘灵杰. 罗德里格矩阵在坐标系转换中的应用[J]. 测绘科学,2010,35(02):178-180.
[8] 胡亚江,杨晓梅,沙月进. 大欧拉角的空间直角坐标转换方法探讨[J]. 现代测绘,2006,29(6):10-12.
作者简介:
姜伟 (1981- ) 男 汉族 湖北武汉人 硕士研究生 工程师 现在中煤科工集团武汉设计研究院有限公司从事大地测量,变形监测及工程测量等方面的工作