经纬高坐标系-ECEF坐标系-ENU坐标系

2023-05-16

无人机搭载的RTK获得的经纬高坐标要转换为东北天坐标,才能用于局部的导航和定位。为了这个目的,查阅资料,越查越懵逼,竟然这么多的坐标系,略懂之后,将学到的信息记录如下,很多跟我的目的:”RTK的LBH坐标转换为东北天坐标“有点远,但是把周边知识搞的清楚了,还是有意义的。所以记录在下,最终的经纬高坐标系-ECEF坐标系-ENU坐标系的公式和原理在另一个博客里https://blog.csdn.net/j_____j/article/details/102636211有精简介绍。

RTK获得LBH坐标,LBH坐标系给出的坐标是(Ψ,λ,h)、(longitude,latitude,height),LBH坐标系(LBH坐标洗、经纬高坐标西、大地坐标系、地理坐标系),国际常用的是WGS-84坐标(坐标系的原点位于地球质心,z轴指向(国际时间局)BIH1984.0定义的协议地球极(CTP)方向,x轴指向BIH1984.0的零度子午面和CTP赤道的交点,y轴通过右手规则确定。),我国采用的是“2000国家大地坐标系”,经纬高坐标转换为ECEF坐标(ECEF坐标系、earth centered eath fixed、地心地固坐标系)(该坐标系以地球质心为原点,Z轴向北沿地球自转轴方向,X轴指向经纬度的(0,0)位置,右手系Y轴指向90度经线。该系与地球一同转动。因此地固坐标系是非惯性系),ECEF坐标系转换为站心地平直角坐标,站心地平直角坐标系(北东地坐标系、ENU坐标系)。

与ECEF坐标系比较相关的,有个ECI坐标系(ECI坐标系、earth centered inertial,地心惯性坐标系)(坐标原点取在地心,X轴指向春分点,Z轴指向北极,Y轴与前者构成右手系。该系不与地球一同转动,因此可以应用牛顿定律。是惯性系)

LBH坐标(WGS_84)→ ECEF坐标→ENU坐标系坐标转换公式,参考:https://wenku.baidu.com/view/e6e4b4c533d4b14e85246886.html,https://wenku.baidu.com/view/22239a0a763231126edb11ea.html

LBH坐标(WGS_84)→ ECEF坐标,

,其中,,因为扁率,所以也可以是

为经度(-180°-180°),为纬度(-90°-90°),N为寅卯圈半径,h为大地高,e为椭球偏心率(与地球长半径、短半径有关),a为椭球长半径,b为椭球短半径。在这个公式里,要提供给程序椭球长半径a和椭球短半径b。

WGS_84的参数:a=6378137.0,f=1/298.257223563。

ECEF坐标 → ENU坐标

其中(X0,Y0,Z0)为站心(第一个ECEF坐标点),LB为站心的经纬。

另外,ECEF坐标→ LBH坐标(WGS_84)

因为h的计算包含有待求解的,而的计算反过来又含有待求解的h,所以一般借助迭代法来逐次逼近。 迭代法一般计算过程如下:先假设的值等于0,分别计算出N,h和,然后再将刚得到的重新代入方程,再一次更新N,h和的值,如此循环。上述三式的迭代运算通常收敛的很快,一般经过3~4次的循环迭代就可结束运算。

LBH坐标(WGS84),RTK给的高度是大地高h(大地高)(地面点沿参考椭球面法线到参考椭球面的距离
),但是RTK设备可以计算输出海拔高。

此处要区分的是海拔高H(正高)(地面点沿重力线(铅垂线)到大地水准面的距离)(在中国,可以将似大地水准面的高程近似为海拔高)。

因此这里有个转换公式,RTK的高程数据(大地高)- 高程异常 = 海拔高(正高) 。

大地高和海拔高的区别在于,有椭球面和水准面,水准面是这样的(受地球自传、地球密度不均匀、引力等作用,所以是不规则的)

大地水准面 geoid
由静止海水面并向大陆延伸所形成的不规则的封闭曲面。它是重力等位面,即物体沿该面运动时,重力不做功(如水在这个面上是不会流动的)。大地水准面是指与全球平均海平面(或静止海水面)相重合的水准面。大地水准面是描述地球形状的一个重要物理参考面,也是海拔高程系统的起算面。大地水准面的确定是通过确定它与参考椭球面的间距-大地水准面差距(对于似大地水准面而言,则称为高程异常)来实现的。

区别于大地水准面,有个似大地水准面,从地面点沿正常重力线量取正常高所得端点构成的封闭曲面。似大地水准面严格说不是水准面,但接近于水准面,只是用于计算的辅助面。它与大地水准面不完全吻合,差值为正常高与正高之差。但在海洋面上时,似大地水准面与大地水准面重合。

关于水准面,我国规定采用的高程系统是正常高系统。如果不是进行科学研究,只是一般使用,正常高系 统结果在国内也可以称为海拔高度。正常高系统和正高系统是有区别的,主要是由于重力场的影响不同,重力线就会产生一些偏移。

美国人研发的全球定位系统GPS对空间坐标的描述,仍然采用WGS1984大地坐标系,他的高程为目标地物距离WGS84椭球体表面的法线距离。我国的地形图上的高程,标定的是目标地物距离大地水准面的铅锤距离

似大地水准面是前苏联地球物理学家、测量学家莫洛金斯基研究地球形状理论时,为避免大地水准面无法精确确定而引进的辅助面,为一与大地水准面十分接近、在海洋上两者完全重合、而在大陆上有2~4米的微小差异的曲面。由于正高与大地水准面的确定涉及到地球内部密度的假定,在理论上存在着不严密性,莫洛金斯理论作为现代大地测量里程碑,可以应用地面测量数据直接确定地球表面形状而不需要对地球密度作任何假设。似大地水准面只是通过一定的数学关系对应于地面的一个几何曲面,它既不是具有物理意义的水准面,也不是对于所有空间各点都为唯一的高程起算面。

我理解就是大地水准面是以海平面算出来的,似大地水准面是以陆地上的重力算出来的。

将水准面拟合成椭球面(将地球拟合成椭球体),拟合标准不同,则有了各种拟合的椭球面,比如克拉索夫斯基椭球体、1975年IUGG推荐的椭球体、美国WGS84椭球体,则有了不同标准下的大地高,但是因为各个拟合的椭球体有固定的旋转和偏移,因此是很容易就相互转换的。科研和国际常用的是WGS84定义的椭球体,美国规定的WGS84大地坐标系,力图让其WGS84椭球体在全球范围内整体拟合最优。中国规定的大地坐标系(如现行的2000国家大地坐标系),则尽量让椭球体对我国大陆地区地表拟合最优,因为我们国家陆地区域起伏太大。

我国现在用的是“2000国家大地坐标系”(其原点为包括海洋和大气的整个地球的质量中心。Z轴指向BIH1984.0定义的协议极地方向(BIH国际时间局),X轴指向BIH1984.0定义的零子午面与协议赤道的交点),我国的最佳拟合点,也称为大地原点,位于陕西省西安市泾阳县永乐镇

2000国家大地坐标系与WGS84坐标系都是大地坐标系

在定义上,CGCS2000和WGS84是一致的,坐标原点、尺度、定向及定向演变的定义都是相同的,两个坐标系使用的参考椭球也是非常相近的,在坐标系定义和实现上的比较,我们可以认为,WGS84和CGC2000是相容的,在坐标系的实现精度范围内,

WGS84和CGC2000的坐标是一致的。

 

北京54,西安80是参心坐标系,已经被淘汰,现在国内用2000国家大地坐标系,是地心坐标系。WGS84是地心坐标系。

大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系。地面点的位置用大地经度、大地纬度和大地高度表示:(L, B, H)。

空间直角坐标系是以参考椭球中心为原点,以原点到0度经线与赤道交点的射线为x轴,原点到90度经线与赤道交点的射线为y轴,以地球旋转轴向北为z轴:(x, y, z)

共同点:显然,这两种坐标系都必须基于一个参考椭球。

不同点:大地坐标系以面为基准,所以还需要确定一个标准海平面。而空间直角坐标系则以一个点为基准,所以还需要确定一个中心点。

只要确定了椭球基本参数,则大地坐标系和空间直角坐标系就相对确定了,只是两种不同的表达而矣,这两个坐标系的点是一一对应的。

 

h54为1954年北京系大地高;h84为GPS WGS-84系大地高;H2为正常高;ε54为1954年北京系高程异常;ε84为WGS-84系高程异常;H1为正高;N54为大地水准面差异;N84为WGS-84系大地水准面差距。

由图,有以下关系式成立:

GPS测定的是大地高,要求解正常高必须先知道高程异常。在局部GPS网中巳知一些点 的高程异常(它由GPS水准算得), 考虑地球重力场模型,利用多面函数拟合法求定其它点的高程异常和正常高

 

即便我们忽略法线距离与铅锤距离的差异(即忽略垂线偏差角度),我们也会看到,这两个距离的起算基准可能不是同一个面。

GPS测出来的高程是大地高,地图上标的高程是正高或者正常高,这就是为什么同一个位置,我们用GPS测出来的高程与地形图上读出来的高程数值可能(通常)不一致。

但是我们一般忽略垂线偏差就角度,而将关系近似为如下:

大地水准面、似大地水准面、椭球面,示意图:

H大=H正+N

H大=H常+ξ

实践上,现在野外工作多采用GPS测定高度。GPS直接测定的是大地高,非海拔高。而一般的GPS似乎不能很理想地转化为海拔高,除非用控制点和已知参数做差分测量。那么,显然,用“高度”比用“海拔”更合适。当然,从效用的角度看,局部高度的变化,在大地高和海拔高的数值上,可能是相同的规律。

 

 

参考资料:

https://blog.csdn.net/weixin_33857230/article/details/86010321

https://blog.csdn.net/liuguobo/article/details/47093629

https://wenku.baidu.com/view/572e2a70b14e852459fb57a5.html

https://zhuanlan.zhihu.com/p/59743409
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

经纬高坐标系-ECEF坐标系-ENU坐标系 的相关文章

  • printf格式化字符串漏洞原理解析

    读任意地址 printf 34 x 34 只给格式化字符串 xff0c 而不给参数 xff0c 会导致内存泄漏从而读到内存中其他地址的数据 N x参数可以以16进制方式打印第N个参数的内容 xff0c 通过修改N xff0c 我们可以遍历栈
  • 教程丨利用微软官方工具制作U盘安装Win10系统

    一 制作Win10安装U盘 1 登录网站 https www microsoft com zh cn software download windows10 下载 MediaCreationTool 工具 xff0c 这里我们直接点击 立即
  • Linux常用命令大全

    发布jar包 nohup java jar xxxx jar gt dev null 2 gt amp 1 amp 修改nginx conf 后刷新配置 usr local nginx sbin nginx t 测试配置文件修改是否正常 u
  • Zab协议详解

    什么是Zab协议 xff1f Zab协议 的全称是 Zookeeper Atomic Broadcast xff08 Zookeeper原子广播 xff09 Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性 Zab协议是
  • 谷歌浏览器安装json格式化插件

    实际开发工作中经常用到json数据 xff0c 那么就会有这样一个需求 xff1a 在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来 比如 xff0c 在谷歌浏览器中访问 xff1a http jsonview c
  • Seata详解(一)

    分布式事务 事务是数据库的概念 xff0c 数据库事务 xff08 ACID xff1a 原子性 一致性 隔离性和持久性 xff09 xff1b 分布式事务的产生 xff0c 是由于数据库的拆分和分布式架构 微服务 带来的 xff0c 在常
  • RocketMQ的事务消息和改造

    什么是 rmq分布式事务消息 xff1f Apache RocketMQ在4 3 0版中已经支持分布式事务消息 xff0c 这里RocketMQ采用了2PC的思想来实现了提交事务消息 xff0c 同时增加一个补偿逻辑来处理二阶段超时或者失败
  • session和token区别

    一 session的状态保持及弊端 xff08 1 xff09 当用户第1次通过浏览器使用用户名和密码访问服务器时 xff0c 服务器对用户名和密码进行验证 xff08 2 xff09 验证成功后 xff0c 在服务器端生成并保存sessi
  • 关于阿里云对RocketMQ的topic,tag,consumer关系的理解

    什么是订阅关系一致 消息队列RocketMQ版 阿里云帮助中心 RocketMQ 中Topic Tag GroupName基本概念介绍 Young丶的博客 CSDN博客 rocketmq topic和group的区别 转载
  • MySql Workbench 8.0汉化插件分享

    打开workbench的安装数据目录 xff0c 路径是 xff1a C Program Files MySQL MySQL Workbench 8 0 CE data 打开以后 xff0c 可以看到下面有一堆的xml结尾的文件 xff0c
  • Java-Jdk12版本下载后没有Jre的解决方案以及配置环境变量

    新本Jdk12版本下载后不像以前的版本会自动生成Jre文件夹 xff0c 通过dos命令行可以解决 1 下载jdk12 网址 xff1a https www oracle com technetwork java javase downlo
  • android--性能优化1--首屏优化&启动速度与执行效率检测

    文章目录 实战篇traceview 工具使用操作步骤操作步骤2 systrace 工具使用操作步骤 AOP 工具 hugo 的使用使用方法效果 BlockCanary 使用AOP 工具使用 AspectJ操作步骤 优化方案 异步线程优化 针
  • error Failed connect to github.com 443原因 Github更换认证方式

    Github更换认证方式 github近期调整了认证方式 xff0c 不再允许第三方工具基于账号密码来访问和管理项目了 除非使用github DeskTop 自带的客户端 好坑啊 我一直再用android studio 自带的提交工具很方便
  • AppCompatRatingBar备份用 下次拷贝直接用自定义图片背景

    控件 lt androidx appcompat widget AppCompatRatingBar android id 61 34 64 43 id rating bar 34 style 61 34 64 style myRating
  • 备份Edittext编辑框字数限制ui以及逻辑

    ui布局 etContent addTextChangedListener new TextWatcher 记录输入的字数 private CharSequence enterWords private int selectionStart
  • android—性能优化2—内存优化

    文章目录 性能优化 工具 memory profilerLeakCanaryarthookepic 库 java内存管理机制java 内存回收机制Android内存管理机制Dalvik与 Art区别Low Memory Killer 内存抖
  • glide4.11.0封装gfilib优化gif图片加载

    文章目录 具体步骤 下载giflib 和 framesequence导入并集成 giflib 和 framesequenceglide的配置gif使用giflib集成开始使用加载思路创建自定义GifDrawable 需求 目前项目中加载进度
  • java筑基.泛型,反射,注解-利用注解加反射练习

    文章目录 泛型 泛型类泛型方法泛型接口子类明确泛型类的类型参数变量子类不明确泛型类的类型参数变量 限定类型变量通配符泛型 注解元注解注解的应用场景 反射 注解 43 反射练习 泛型 把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特
  • android性能优化实践与总结(包含启动,内存优化)

    应用中性能优化实践与总结 精心总结 任何优化都需要进行检测 以数据说话 优化前和优化后有了怎样的提升 TOC 启动优化 检测启动时间 检测工具任选其一 hugo 插件 自己定义时间开始和结束手动计算时间 AOP 工具 AspectJ adb
  • android—性能优化3—网络优化

    文章目录 网络优化正确的认识流量消耗网络优化维度其他网络请求误区 网络优化工具选择Network Proifiler抓包工具stetho流量优化如何判断APP流量消耗偏高如何测试 测试方案 线上线下流量获取线上流量获取方案NetworkSt

随机推荐

  • java 实现死锁

    资源抢占 导致死锁 public static void main String args final Object a 61 new Object final Object b 61 new Object Thread threadA 6
  • cameraX视频录制 拷贝直接用

    文章目录 效果图activity代码项目地址 最下面是GIT 地址 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img 3i0EaImv 1637722081187 https liudao01 github io
  • android studio maven 拉取代码出现 bad gateway 502

    一般都是gradle 配置的maven的仓库 问题 我这里是因为使用了 repositories google jcenter mavenCentral 新增 maven url 39 https www jitpack io 39 mav
  • android studio使用 maven push 插件上传私有maven - 已成功使用到项目中

    gradle 任务 下面是放在gradle 配置里面 比如 我的项目model 是 apm 那么 就把下面的代码放到 apm的 gradle 下面 plugins id 39 com android library 39 id 39 kot
  • 工作的三个层次,什么样的工作堪称自由

    工作的三个层次 xff0c 什么样的工作堪称自由 先说结论 只有工作的技艺人才是自由的 前段时间经常喜欢看建造类的视频 一个澳洲小哥 只用最原始的器械徒手打造东西 比如空手打造石斧 空手打造钻木取火套装等等 这类视频很有意思 我就特别爱看
  • android 创建Model 解决无法依赖传递问题 , 实现 sdk 依赖关系的传递

    介绍 我现在创建了一个应用A 一个库工程 B B 远程依赖了库工程C A远程依赖B工程 B 是通过Maven 发布成远程依赖库 B 作为一个通用的库工程 发布到了Maven上 就可以比较简单的被各个项目引入 如下图 问题 目前存在一个问题
  • 2021总结. 2022展望

    2021 收获了许多 技能上 学习了多个技能 自由泳自由倒立复刻拳王梅威瑟的跳绳训练单板滑雪 总结 技能上尽量是身体力行的 自从看过 囚徒健身 后 被作者的自传所影响 希望成为想他那样的人 认知上 认知上也有了提升 读了许多书 今年比较喜欢
  • 仿照爱时间app写的时钟 自定义view

    MyClockView MyClockView 仿照 爱时间app 写的自定义时间控件 爱时间的 控件 我写的控件 可以看到我写的在指针 刻度上面 是比他要精细一些的 后面的点击事件 还有中间文字的绘制 都是一些套路 我的时间也不够多 就不
  • dagger2简单使用与理解笔记

    文章目录 使用dagger2好处具体案例查看github 1 使用dagger2注入基本使用流程概念 2 dagger2中各种注解基本使用引入dagger20 写两个对象 用来实际操作的1 写module类 注解Module Provide
  • electron调用dll文件

    Electron 对系统层能力的使用可能比较弱 xff0c 此时需要求助 Python C 43 43 C 等语言 xff0c 通过 ffi napi 库可以让 Node js 使用 C 43 43 dll xff0c 通过 electro
  • 动态库和静态库的区别

    什么是库文件 一般来说 一个程序 通常都会包含目标文件和若干个库文件 经过汇编得到的目标文件再经过和库文件的链接 就能构成可执行文件 库文件像是一个代码仓库或代码组件的集合 为目标文件提供可直接使用的变量 函数 类等 库文件包含了静态链接库
  • reactor/proactor模型简介

    Reactor和preactor都是IO多路复用模式 xff0c 一般地 I O多路复用机制都依赖于一个事件多路分离器 Event Demultiplexer 分离器对象可将来自事件源的I O事件分离出来 xff0c 并分发到对应的read
  • c语言中的带参宏定义

    C语言允许宏带有参数 在宏定义中的参数称为形式参数 xff0c 在宏调用中的参数称为实际参数 xff0c 这点和函数有些类似 对带参数的宏 xff0c 宏展开和用实参替代形参 xff0c 发生在预处理阶段 示例1 xff1a define
  • ZCU102 Zynq MPSoC IP设置与说明

    目录 1 前言2 设置与说明2 1 PS UltraScale 43 Block Design2 2 I O Configuration2 2 1 Bank0 3电压 xff1a 2 2 2 Low SpeedQSPISD卡CANI2CPM
  • ROS下使用激光雷达RPLIDAR-A2进行SLAM完成地图的构建

    想要进行一个完整的地图建立离不开以下几个模块 xff1a 1 坐标 2 激光数据 3 绘图算法 ROS工程可以从我的GitHub上面下载 xff1a https github com LJianlin ROS SLAM Gmapping 下
  • C 语言Socket 实现http 带参数的POST请求

    本文叙述C语言中结合socket 如何实现http POST请求 xff0c 对于http协议相关内容可以查看HTTP协议详解 对于不带参数的post请求 xff0c 只需要按照http格式发送即可 下面以带参数的POST请求为例 1 C
  • 【学习C++】1.开始学习C++

    从今天开始学习C 43 43 xff0c 争取一年之内把 C 43 43 Primer Plus 看上两遍 xff0c 平均一周看一章 xff0c 并做课后对应习题 今天把 C 43 43 Primer Plus 的第二章看完了 xff0c
  • Ubuntu下安装make

    方法一 xff1a xff08 自动安装 xff09 1 进入root权限 xff1a su root 2 更新安装列表 xff1a apt get update 3 安装make xff1a apt get install ubuntu
  • nginx源码分析之http解码实现

    分析nginx是如何解析并且存储http请求的 对非法甚至恶意请求的识别能力和处理方式 可以发现nginx采用状态机来解析http协议 xff0c 有一定容错能力 xff0c 但并不全面 相关配置 跟解码有关的配置 merge slashe
  • 经纬高坐标系-ECEF坐标系-ENU坐标系

    无人机搭载的RTK获得的经纬高坐标要转换为东北天坐标 xff0c 才能用于局部的导航和定位 为了这个目的 xff0c 查阅资料 xff0c 越查越懵逼 xff0c 竟然这么多的坐标系 xff0c 略懂之后 xff0c 将学到的信息记录如下