论文部分内容阅读
摘要:基于布尔莎坐标转换模型,利用Python编程方法,建立某地区的1954北京坐标系统、1980西安坐标系统向CGCS2000坐标系统的转换模型,实现输入北京54坐标、西安80坐标就可以直接输出CGCS2000坐标以及转换参数的功能;以及对公共点选择、转换精度进行验算。
关键词:Python;布尔莎模型;坐标转换;1954北京坐标系;1980西安坐标系;CGCS2000坐标系
1 引言
随着CGCS2000坐标系的推广使用,目前的项目越来越多的从1954北京坐标系和1980西安坐标系过渡到CGCS2000坐标系;因此在实际工作中,不免需要使用到一些以前的资料,在这种情况下,就需要将其转换为CGCS2000坐标系进行使用。
一般情况下,我们需要相同控制点的两套坐标成果才能进行转换,但由于一些旧成果的控制资料缺失,这为坐标转换建立了难度。
鉴于此,我们同一整理了某地区的坐标转换数据,基于布尔莎坐标转换模型,利用Python编程方法,建立了该地区的1954北京坐标系统、1980 西安坐标系统向CGCS2000坐标系统成果转换的模型,实现了旧坐标系统直接向CGCS2000坐标系统转换的程序功能。
2 三种坐标系统的比较
1954北京坐标系是采用苏联克拉索夫斯基椭圆体,在1954年完成测定工作的坐标系统,其原点不在北京,而是在前苏联的普尔科沃。基本参数如下:长半轴a=6378245m,短半轴b=6356 863.0188m,扁率f=1/298.257223563。
1980西安坐标系是为了进行全国天文大地网整体平差而建立的。相比于1954北京坐标系,其采用的椭球参数精度更高,坐标原点在陕西省西安市泾阳县的永乐镇。基本参数如下:长半轴a=6378140,短半轴b=6356755.2882m,扁率f=1/298.2570。
CGCS2000坐标系是全球地心坐标系在我国的具体体现,其原点为包括海洋和大气的整个地球的质量中心。基本参数如下:长半轴a=6378137m,短半轴b=6356752.31414m,扁率f=1/298.257222101[1]。
3 坐标转换原理与方法
3.1 模型选择
坐标转换的实质是不同坐标系的椭球之间的转换问题。基本思路是将各种不同坐标转换成对应椭球的空间直角坐标,然后利用相互之间空间直角坐标的转换方法进行转换。
常用的空间直角坐标系统转换模型有:布尔莎模型、莫洛琴斯基模型和范氏模型,从最终的转换结果和精度来看,它们都是近似的,因此都被称作七参数转换模型,包括三个平移参数(X0,Y0,Z0)、三个旋转参数(εx,εy,εz)和一个尺度参数m。本文采用的坐标转换方法是布尔莎七参数法实现1954北京坐标系和1980西安坐标系向CGCS2000坐标系的转换。
布尔莎的七参数公式如下:
上式中,(X0,Y0,Z0)为三个平移参数,(εx,εy,εz)为三个旋转参数,m为尺度参数[2]。
3.2 算法设计
本次坐标转换模型是基于布尔莎模型,对区域内已有公共点数据,进行七参数求解,从而建立区域内对1954北京坐标系、1980西安坐標系向CGCS2000转换的转换模型。具体步骤为:首先,将公共点的1954北京坐标(1980西安坐标)转换成1954北京坐标(1980西安坐标)的空间直角坐标。同时,将公共点的CGCS2000坐标转换成CGCS2000的空间直角坐标。然后,求出该区域1954北京坐标(1980西安坐标)空间直角坐标与CGCS2000空间直角坐标的转换七参数。
将待转换的1954北京坐标(1980西安坐标)转换成1954北京坐标(1980西安坐标)空间直角坐标,利用已求得的区域七参数计算获得其对应的CGCS2000空间直角坐标。然后,将计算获得的CGCS2000空间直角坐标转换成CGCS2000的高斯坐标。即完成了1954北京坐标(1980西安坐标)向CGCS2000坐标系的坐标转换[3]。
3.3 程序设计
本次程序利用Python编程语言,结合Django框架,打造一个在线坐标转换功能网站。实现输入1954北京坐标(1980西安坐标),即可输出CGCS2000坐标的功能。
基本构造函数如下:
(1)数据预处理函数
数据预处理函数将输入的坐标统一成计算机可读取的数据格式;
本次程序设计的统一输入格式为:点号,北坐标y,东坐标x,高程h。
(2)数据处理函数
数据处理函数将待转换的坐标定位到区域坐标网中,选取覆盖待转换的点的四个坐标角点,获取角点坐标的1954北京坐标(1980西安坐标)和CGCS2000坐标。
利用定位到的角点坐标进行空间直角坐标转换、七参数求取,获取小范围的数据转换模型。然后将待处理坐标数据进行空间直角坐标转换,利用七参数转换模型,得到CGCS2000的空间直角坐标,然后将CGCS2000空间直角坐标转换成CGCS2000高斯坐标。
3.3.3 数据输出函数
数据输出函数将坐标转换结果进行数据输出。
4 坐标转换精度测试
选取区域范围内的点进行坐标转换精度测试,已知这些点的1954北京坐标、1980西安坐标和CGCS2000坐标,分别将1954北京坐标和1980西安坐标通过程序计算获得CGCS2000坐标,比对其转换精度。得数据比对表如下表:
由上表可以看到,通过本次设计的程序获得的CGCS2000坐标成果与实际坐标成果误差在毫米级,符合坐标转换的精度预期。
5 结论
本次1954北京坐标、1980西安坐标向CGCS2000坐标系进行坐标转换程序的实现,是基于区域内已知点的各个坐标系坐标成果,利用其坐标之间的关系建立布尔莎模型。根据程序的方法,实现坐标系统的快速计算和转换。其精度满足测图精度要求。
参考文献:
[1]黎舒,胡圣武.80西安坐标系到2000国家坐标系转换的研究[J].测绘科学,2009,34,51-53.
[2]何林,柳林涛,许超铃,等。常见平面坐标系之间的相互转换的方法研究[J].测绘通报,2014,9,6-11.
[3]CH/T2014-2016.大地测量控制点坐标转换技术规范[S].
(作者单位:浙江省水利水电勘测设计院)
关键词:Python;布尔莎模型;坐标转换;1954北京坐标系;1980西安坐标系;CGCS2000坐标系
1 引言
随着CGCS2000坐标系的推广使用,目前的项目越来越多的从1954北京坐标系和1980西安坐标系过渡到CGCS2000坐标系;因此在实际工作中,不免需要使用到一些以前的资料,在这种情况下,就需要将其转换为CGCS2000坐标系进行使用。
一般情况下,我们需要相同控制点的两套坐标成果才能进行转换,但由于一些旧成果的控制资料缺失,这为坐标转换建立了难度。
鉴于此,我们同一整理了某地区的坐标转换数据,基于布尔莎坐标转换模型,利用Python编程方法,建立了该地区的1954北京坐标系统、1980 西安坐标系统向CGCS2000坐标系统成果转换的模型,实现了旧坐标系统直接向CGCS2000坐标系统转换的程序功能。
2 三种坐标系统的比较
1954北京坐标系是采用苏联克拉索夫斯基椭圆体,在1954年完成测定工作的坐标系统,其原点不在北京,而是在前苏联的普尔科沃。基本参数如下:长半轴a=6378245m,短半轴b=6356 863.0188m,扁率f=1/298.257223563。
1980西安坐标系是为了进行全国天文大地网整体平差而建立的。相比于1954北京坐标系,其采用的椭球参数精度更高,坐标原点在陕西省西安市泾阳县的永乐镇。基本参数如下:长半轴a=6378140,短半轴b=6356755.2882m,扁率f=1/298.2570。
CGCS2000坐标系是全球地心坐标系在我国的具体体现,其原点为包括海洋和大气的整个地球的质量中心。基本参数如下:长半轴a=6378137m,短半轴b=6356752.31414m,扁率f=1/298.257222101[1]。
3 坐标转换原理与方法
3.1 模型选择
坐标转换的实质是不同坐标系的椭球之间的转换问题。基本思路是将各种不同坐标转换成对应椭球的空间直角坐标,然后利用相互之间空间直角坐标的转换方法进行转换。
常用的空间直角坐标系统转换模型有:布尔莎模型、莫洛琴斯基模型和范氏模型,从最终的转换结果和精度来看,它们都是近似的,因此都被称作七参数转换模型,包括三个平移参数(X0,Y0,Z0)、三个旋转参数(εx,εy,εz)和一个尺度参数m。本文采用的坐标转换方法是布尔莎七参数法实现1954北京坐标系和1980西安坐标系向CGCS2000坐标系的转换。
布尔莎的七参数公式如下:
上式中,(X0,Y0,Z0)为三个平移参数,(εx,εy,εz)为三个旋转参数,m为尺度参数[2]。
3.2 算法设计
本次坐标转换模型是基于布尔莎模型,对区域内已有公共点数据,进行七参数求解,从而建立区域内对1954北京坐标系、1980西安坐標系向CGCS2000转换的转换模型。具体步骤为:首先,将公共点的1954北京坐标(1980西安坐标)转换成1954北京坐标(1980西安坐标)的空间直角坐标。同时,将公共点的CGCS2000坐标转换成CGCS2000的空间直角坐标。然后,求出该区域1954北京坐标(1980西安坐标)空间直角坐标与CGCS2000空间直角坐标的转换七参数。
将待转换的1954北京坐标(1980西安坐标)转换成1954北京坐标(1980西安坐标)空间直角坐标,利用已求得的区域七参数计算获得其对应的CGCS2000空间直角坐标。然后,将计算获得的CGCS2000空间直角坐标转换成CGCS2000的高斯坐标。即完成了1954北京坐标(1980西安坐标)向CGCS2000坐标系的坐标转换[3]。
3.3 程序设计
本次程序利用Python编程语言,结合Django框架,打造一个在线坐标转换功能网站。实现输入1954北京坐标(1980西安坐标),即可输出CGCS2000坐标的功能。
基本构造函数如下:
(1)数据预处理函数
数据预处理函数将输入的坐标统一成计算机可读取的数据格式;
本次程序设计的统一输入格式为:点号,北坐标y,东坐标x,高程h。
(2)数据处理函数
数据处理函数将待转换的坐标定位到区域坐标网中,选取覆盖待转换的点的四个坐标角点,获取角点坐标的1954北京坐标(1980西安坐标)和CGCS2000坐标。
利用定位到的角点坐标进行空间直角坐标转换、七参数求取,获取小范围的数据转换模型。然后将待处理坐标数据进行空间直角坐标转换,利用七参数转换模型,得到CGCS2000的空间直角坐标,然后将CGCS2000空间直角坐标转换成CGCS2000高斯坐标。
3.3.3 数据输出函数
数据输出函数将坐标转换结果进行数据输出。
4 坐标转换精度测试
选取区域范围内的点进行坐标转换精度测试,已知这些点的1954北京坐标、1980西安坐标和CGCS2000坐标,分别将1954北京坐标和1980西安坐标通过程序计算获得CGCS2000坐标,比对其转换精度。得数据比对表如下表:
由上表可以看到,通过本次设计的程序获得的CGCS2000坐标成果与实际坐标成果误差在毫米级,符合坐标转换的精度预期。
5 结论
本次1954北京坐标、1980西安坐标向CGCS2000坐标系进行坐标转换程序的实现,是基于区域内已知点的各个坐标系坐标成果,利用其坐标之间的关系建立布尔莎模型。根据程序的方法,实现坐标系统的快速计算和转换。其精度满足测图精度要求。
参考文献:
[1]黎舒,胡圣武.80西安坐标系到2000国家坐标系转换的研究[J].测绘科学,2009,34,51-53.
[2]何林,柳林涛,许超铃,等。常见平面坐标系之间的相互转换的方法研究[J].测绘通报,2014,9,6-11.
[3]CH/T2014-2016.大地测量控制点坐标转换技术规范[S].
(作者单位:浙江省水利水电勘测设计院)