宰春旭 朱兰艳 王晗

摘  要: 为了使大地坐标系满足卫星和航天器以及大地控制点的需要,本文通过QT软件编制出一种能将CGCS2000坐标系与地心参心坐标系相互转换的程序。首先将CGCS2000大地坐标系转化为空间直角坐标系,再通过七参数转换将空间直角坐标系转化为目标坐标系的空间直角坐标系,最后将目标的空间直角坐标系转化为目标的大地坐标系。运用程序进行批量计算与检验,精度满足要求并提高了坐标系的转换效率。

关键词: 地心坐标系;参心坐标系;七参数转换;中国2000坐标系

中图分类号: TP311.52    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.08.037

本文著录格式:宰春旭,朱兰艳,王晗,等. 中国2000坐标系与地心参心坐标系转换实现[J]. 软件,2020,41(08):136-139

【Abstract】: To make the geodetic coordinate system meet the needs of satellites and spacecraft as well as geodetic control points, this paper designs a program which can transform the CGCS2000 coordinate system with the geocentric coordinate system by QT software. First, the CGCS2000 geodetic coordinate system is transformed into the spatial rectangular coordinate system, then the spatial rectangular coordinate system is transformed into the spatial rectangular coordinate system of the target coordinate system by seven parameter transformation, and finally the spatial rectangular coordinate system of the target is transformed into the geodetic coordinate system of the target. The program is used for batch calculation and inspection, the accuracy meets the requirements and the conversion efficiency of coordinate system is improved.

【Key words】: Geocentric coordinate system; reference coordinate system; seven parameter conversion; China 2000 coordinate system

0  引言

這些年我国航天技术发展和经济的发展很快,我们现在所用的参心坐标系已经不能满足卫星和航天器的需要,因为航天器绕地心旋转,不管是轨道监测还是计算机都需要地心坐标,而目前参心坐标系是我们所采用的。从各个方面领域来讲,我们都迫切的需要中国建立新的坐标系。在这样的需求下我们国家组织研究部门和学者对大地坐标系进行新的建立并进行实践,建立了2000国家坐标系CGC2000.但是我国现在以测绘图纸及工程测量以及其他用途的大地控制点一般又都是基于北京54坐标系或1980西安坐标系,那么我们现在需要关系的问题就是参心坐标系和地心坐标系的互相转换[1-5]。

1  大地坐标基准

地球表面是一个复杂的曲面,他是高低起伏的,是地球的陆地和海洋相对大气层的分界面。这里我们要引用两个概念,第一个是铅垂线,铅垂线就是地球上某一点的引力与离心力的合力方向换就话说就是重力方向,他是可以实际测出来的,第二个就是水准面,水准面始终与铅垂线正交形成一个曲面。水准面的特点是一个连续闭合曲面,不同高度的点都有一个水准面,在相同的水准面下个点的重力位相等,所以也叫重力等位面。铅垂线和水准面是客观存在的,是可以实际操作的。

大地水准面是一个特定的水准面,是一个假象的与平均海水面重合并沿着大陆无限延伸包裹整个地球表面的一个特定等位面。因为地球上的水面积占的比例较大,所以大地水准面是在形状和大小上与地球最为密合的。大地水准面的特点就是在其上面任一点重力位都相等,并与其上的重力方向处处正交,所以大地水准面是一个以地球最为密切相关的物理面,是我们研究地球重力场和地球内部结构的重要依据,也是我们高程测量的起算面。

2  地球坐标系建立

2.1  地心坐标系

他的定义就是以地球质心为坐标系统的地球坐标系。我们日常用到的地心坐标系通常是地球协议坐标系。地心坐标系的地球椭球是从全球来考虑的,所以对于航天发射,航海航空,还有导弹的发射都具有巨大的作用[6-8]。

地心坐标系是z轴指向协议地级、x轴指向BIH经度零点,以地球质心为原点,从而x轴、y轴、z轴形成右手坐标系。但是我们实际要建立一个地心坐标系是十分麻烦的上面说的只是理论,想要建立地心坐标系是要考虑全球测量数据的。由于我们各国对地心坐标系都非常的需要一些国家开始去研究探讨并建立了一些地心坐标系,最为常见的就是美国的WGS-84地球协议坐标系。

那么建立地心坐标系主要有两种方法--第一类是重力测量方法,它是利用重力测量资料,在根据天文坐标系,托克斯公式和全球积分得出大地原点的大地坐标。但是因为重力测量资料很不均与,这个方法的精度大约为10米之内。第二类是卫星大地测量方法,这又可分为卫星定位法卫星动力法和卫星定位法。卫星动力法是是利用人造卫星的测量数据和地面进行的大地测量数据,按动力法原理同时解算出全球分布的若干地面跟踪站的地心坐标和地球重力场模型。这两种模型地心坐标的精度约为1~5米。卫星定位法是用接收机接受卫星发射来的信息,直接计算接收机的大地坐标系。

2.2  参心坐标系

在进行测量工作是需要计算点位坐标,测绘地图等需要建立一个适合在当地测量的大地坐标系。通常建立需要选用一个大小和形状与地球相近的椭球作为基本的参考系,选择一个参考点作为大地测量起算点,把参考点成为大地原点。通过大地原点的天文测量成果,格林尼治起始子午面与椭球起始子午面相平行,按地球自转轴与椭球短轴相平行根据当地的条件把椭球的位置方向确定下来,这就是利用椭球的双平行条件来进行定向和定位。那么定向定位的方法有一点法和多点定位法主要有这两种[9-10]。

(1)一点定位:在大地原点K处,大地水准面和椭球面相切,椭球的铅垂线方向和法线方向重合。这种方法的密合性不是很好,所以存在偏差。

(2)多点定位:在天文大地测量工作基本完成后,运用已知的参数和一些已知经度,纬度和方位角的大地点,按照广义弧度测量方程,通过计算,左后得到一组新的定向和定位,由此建立了新的参心大地坐标系。这种不是以地球质心为椭球中心而是以大地原点为椭球中心的椭球叫做参考椭球。

总的来说建立一个大地坐标系(以80西安坐标系为例),首先确定的是大地原点的确定,还有就是参考椭球体的建立。一般在我国的中部来确定大地原点,西安的泾阳县永乐镇。几何参数的确定是建立参考椭球是很必要的,80西安坐标系选用的是75 IUGG的几何参数;其次就是定位。定位是由大地原点的位置所决定的。80西安坐标系中西安的那一点并不与参考椭球相切,因为80西安坐标系是多点定位,而是和我国的国土比较相近。再次就是定向,由椭球定向的基本要求决定。

我们用高斯投影将国家地区进行投影,投影在确定的参考椭球上,再根据大地原点的位置得到其他各点的坐标,随即建立国家大地坐标系[11-12]。

3  坐标系转换程序设计

3.1  程序相关函数设计

3.1.1  角度函数设计

(1)角度转化为弧度:因为在C++程序语言中,三角函数的计算都是以弧度为单位,但是我们在输入数据或者是导入数据时都是以度,分秒为数据的单位,所以我们需要把原始的数据在计算之前要进行单位的换算,将角度转化为弧度[13]。所用到的函数为double tohudu(double c),同时还需要涉及一个c++语言库中的一个modf()函数,具体的函数如下:

double tohudu(double c)

{

double d,m,s,a,r;

a=modf(c,&d);

a=modf(a*100,&m);

s=a*100;

r = (d+m/60+s/3600)*PI/180.0;

return r;

}

(2)弧度转化为度、分、秒:当程序的函数计算完成后,那么所计算出來的结果也是弧度,虽然弧度可以通过简单的计算可以转化为角度,在本文中的计算函数内部已经将弧度转化为角度,但是我们所要的结果并不是只有以度为单位的数据,而是可以精度到秒的以度、分、秒为单位的成果数据。完成这一功能的有三个函数,它们三个返回的值分别为度、分、秒。函数如下:

double d_d(double angle)

{

//函数体

return d;

}

double d_m(double angle)

{

//函数体

return m;

}

double d_s(double angle)

{

//函数体

return s;

}

3.1.2  坐标系转换函数

(1)CGCS2000大地坐标转换为空间直角坐标

CGCS2000下的大地坐标到CGCS2000下的空间直角坐标的转换所用到的理论与函数在第四章已经给出,所用到的算法主要是:

4  结论

通过对程序的运用进行了CGCS2000系与北京54系的转换、CGCS2000系对西安80系的转化以及CGCS2000系和WGS-84之间的转化,转换的功能有两种形式,一种是通过单点进行转换,另一种是通过文件进行批量转换。前者只能得到一个点的转换结果,效率是比较低的,而后者是对事先已经编写好了想要处理的*.TXT文本,这种方式可以一步计算出所有点的转换坐标。在转换的前要必须知道所要转换的七参数,把七参数输进程序后(如果三个旋转参数没有输入则为四参数计算),就可以开始计算了。

在进行了许多组的试验之后再通过对结果的比较发现精度达到要求,需要注意的是这个软件的输入格式是特定的,这也是我这个程序的优点,可以批量转化比较灵活,也存在缺点:在这个程序里面没有用到高斯正反算但是对于坐标系的转换影响不大。

参考文献

[1] 张洪文, 张明丽, 张亚峰. 参心坐标系向地心坐标系转换若干问题的分析[J]. 测绘与空间地理信息, 2011, 34(4): 164-166.

[2] 王志杰, 王庆, 毕飞超. 大范围区域内地心坐标系与参心坐标系的格网转换方法[J]. 测绘通报, 2013(10): 1-4.

[3] 戴友伟. 煤田地质勘查中常用参心坐标系转换为CGCS2000地心坐标系[J]. 矿山测量, 2013(3): 36-39.

[4] 陈俊英. 参心坐标系测绘成果向2000国家大地坐标系转换的研究[D]. 长安大学, 2013.

[5] 韩买侠, 王小华, 王夏莉, 等. 参心独立坐标系向地心独立坐标系转换地块面积变化分析和计算方法研究[J]. 测绘与空间地理信息, 2013, 36(2): 145-147.

[6] 王艋, 柳新强, 卢庆凯, 等. 2000国家大地坐标系转换研究[J]. 建筑工程技术与设计, 2015(24).

[7] 宋紫春. 澳大利亚GPS网的布设与地心坐标系的建立[J]. 全球定位系统, 2003, 28(5): 27-30.

[8] 徐治. Visual C++调用MATLAB 函数库的混合编程技术[J]. 软件, 2015, 36(2): 55-58.

[9] 焦华. 基础编程的思考方法[J]. 软件, 2018, 39(3): 57-62.

[10] 黄飞. 界面可编程的机车微机显示软件[J]. 软件, 2018, 39(3): 106-110.

[11] 焦华. 从最小二乘法建模引出数学建模的“套路”[J]. 软件, 2018, 39(12): 44-50.

[12] 何洪亮, 赵珂, 王子群, 等. 基于层次分析与多元曲线拟合法的众包任务定价模型研究[J]. 软件, 2018, 39(10): 139-144.

[13] 张岩,朱大明,申辽,等. 解析空三航带法区域网平差程序设计[J]. 软件,2020,41(06):112-11

c语言地心坐标转当地水平坐标,中国2000坐标系与地心参心坐标系转换实现相关推荐

  1. 除了性生活就是打麻将:中国 2000 多个县城生活实录

    点击上方"蓝色字体",选择"设为星标" 做积极向上的前端人! 来源:袋鼠深度精选(ID:wwwdaishu) 每年春节,很多人都会回到家乡体验几天县城生活. 有 ...

  2. 资源-1.中国2000个城市名和对应的拼音

    中国2000个城市名和对应的拼音 ​ 最近需要做搜集1000个城市的气象数据,但是网上只有600多个市级城市的名称和拼音,没办法,就自己写了代码去爬取了2000个城市名(其实没有2000个,我把名字长 ...

  3. c蔚语言艺术,晚唐张乔诗歌的语言艺术与美学风格-中国社会科学网.PDF

    晚唐张乔诗歌的语言艺术与美学风格-中国社会科学网 2017年第 4期 阜阳师范学院学报 (社会科学版) 总第 178期 NO.4.2017 JournalofFuyangNormalUniversit ...

  4. 自学c语言多久能赚钱,我这样学C语言,一个月赚了2000元?

    我这样学C语言,一个月赚了2000元? 点击上方"C语言入门到精通",选择置顶 第一时间关注程序猿身边的故事 作者 闫小林 白天搬砖,晚上做梦.我有故事,你有酒么? 读者:在么,我 ...

  5. 从中国质造到淘宝心选:CBM赋能“数造”新品牌

    CBM 是指 C2B2M 的商业模式, C是消费者,M是制造商(生产者),通过平台直接连接生产者和消费者,形成消费者需求驱动生产供给的这样一种模式.过去一年多,淘宝在CBM这种模式上进行了深入的探索和 ...

  6. 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”

    原标题:中国科技人,那些"芳心纵火犯" 说到浪漫,你会想到什么? 是一句"我爱你" 还是一句"我陪你" 是一份妙不可言的烛光晚餐 还是一次仅 ...

  7. 导航坐标系:地心惯性坐标系、地心地固坐标系、当地水平坐标系、载体/机体坐标系

    导航中的几种常用坐标系 地心惯性坐标系(ECI) 地心地固坐标系(ECEF) 当地水平坐标系(LLF).东北天坐标系ENU 地平坐标系 载体/机体坐标系 机动目标跟踪/室内定位/导航/优化技术探讨:W ...

  8. 无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况

    (C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况,已在VS2019和Ubuntu 20.04.4版本中运行 ...

  9. 中国海洋大学c语言题库,2014级中国海洋大学C语言上机题库与答案.docx

    2014级中国海洋大学C语言上机题库与答案 2014中国海洋大学C语言上机考试题库以及答案(20套)编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构 ...

  10. C语言项目实战:《中国象棋》零基础项目,210 行源代码示例

    这篇文章主要为大家详细介绍了C语言实现--<中国象棋项目>,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下! 游戏介绍: 中国象棋是由两人轮流走子,在战法上遵 ...

最新文章

  1. 转帖:硬盘生产全过程(图)
  2. 自己写的程序密码功能 ------数字功能
  3. java内存泄露分析方案
  4. java选填,java选择填空 - osc_ug2wy0bi的个人空间 - OSCHINA - 中文开源技术交流社区
  5. Adobe air 安装软件解析
  6. Nodejs之http模块详解
  7. html5中的FileReader对象
  8. HBASE学习笔记--概述
  9. vue打开二级或者三级页面传输对象,再刷新浏览器数据丢失问题解决(vue使用router传递数据)
  10. 【实验分享】备份IOS文件
  11. 2020届IC企业校招部分笔试题
  12. 2021年美赛MCM赛题C题翻译
  13. php inpo,优化PHP in_array()函数,效率提高50倍
  14. 拼多多发布“双打行动”说明:已下架商品近430万件
  15. js中 数组的操作 push(),pop(),shift(),unshift() 简介
  16. dojo引用html模板,深入浅出dojo/request-本地HTML文件 带参数方案-遮罩层《一》_169IT.COM...
  17. NCQ与TCQ的区别及测试比较
  18. 达内python 资源_Python学习资源整理,优质Python学习资源推荐
  19. Yahoo Programming Contest 2019 D - Ears
  20. js实现点击按钮图片自动切换_☆往事随風☆的博客

热门文章

  1. 交通流预测爬坑记(三):使用pytorch实现LSTM预测交通流
  2. 可以插卡的ipad_平板电脑可以插手机卡吗,终于能插卡了!苹果iPad 2018蜂窝网络版上架国内官网...
  3. theano java_Theano:调用Theano函数的论据
  4. 【踩坑】XML转JSON中如何把单个元素转成数组
  5. 广义线性模型 matlab,基于Matlab的广义线性模型建模
  6. sr650安装linux网卡驱动,SR650安装Windows2016添加RAID卡驱动
  7. 如何将谷歌地图叠加到MapGIS三维地球场景
  8. 3d胆码计算机方法,3D百十个位定胆技巧准确率95
  9. 【Python-tkinter】拼音输入方法——小学拼音练习题
  10. 巧用变量代换求极限 高数