【坐标转换】lla转换成enu坐标(无损版)

该博客介绍了如何实现lla坐标到enu坐标的无损转换,通过使用旋转矩阵结合lla到ecef的转换,确保转换过程的准确性。
摘要由CSDN通过智能技术生成
import numpy as np  
import smpy.utils as smpy_utils
import ditu.topbind as tb
from scipy.spatial.transform import Rotation as R
import o3d_hdmap.open3d as o3d
geojson_path = '/data/mpcv_lspo_download_data/prod/PLEF35196-2021-11-10-17-48-39/mapping_results/ground_pole_geojson_LC.json'
geojson_data = smpy_utils.read_json(geojson_path)
anchor_lla_ = tb.utils.ecef2lla( np.array(geojson_data['extrinsics'][0]['center']))
lla = [111.64994725780178,30.73907846113732,131.25631082151085]
enu = tb.utils.lla2enu_cheap([lla], anchor_lla=anchor_lla_)
print(enu)
[[  966.10732692 -5813.22954404   -59.09057418]]

上述方法操作简单,但是lla2enu_cheap函数存在损失,导致结果不够准确。需要无损的lla2enu转换,则使用如下方法进行
坐标转换:通过旋转矩阵乘以(lla2ecef - 锚点(ecef))的方式,将lla转换成enu坐标

import numpy as np  
import smpy.utils as smpy_utils
import ditu.topbind as tb
from scipy.spatial.transform import Rot
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在地理信息系统(GIS)和导航领域,LLA坐标系统(Local-Leveling or Local-Level Coordinates)通常用于描述地面点的三维位置,它包含了经度(Latitude)、纬度(Longitude)和海拔(Height)信息。而ENU(East-North-Up)坐标系是地面上的一个局部坐标系,通常用于航空、卫星定位和导航中,以东向(East)、北向(North)和向上(Up)作为坐标轴。 从LLA坐标系到ENU坐标系的转换涉及到几个步骤: 1. **地理坐标转换**: 首先,需要将LLA坐标(经纬度和海拔)转换为大地坐标系统(如WGS84),这可能涉及地球曲率和投影变换。 2. **大地坐标系到ENU**: 由于ENU坐标系是地面上的局部坐标,你已经在一个水平平面上,所以通常不需要处理经度和纬度。只需将海拔高度加上可能的地面参考点高度(如果需要考虑地面起伏)。 3. **海拔调整**: 如果有海拔变化(例如,地形坡度或建筑物的影响),可能需要对ENU的垂直坐标进行调整。 具体转换公式可能会依赖于使用的库或软件工具,它们通常包含预计算的转换矩阵或函数。如果你没有这些工具,手动计算可能涉及到三角函数(如正弦和余弦)和球面三角学的知识。 如果你需要编程实现这个转换,以下是一个简化的示例步骤: ```python deflla_to_enu(lat, lon, alt, ellipsoid_ht, ground_ref_ht): # 地球半径(平均) r = 6371000 # 从WGS84到ENU(假设在地球表面) east = r * math.cos(lat) * (lon - ellipsoid_ht['longitude']) north = r * math.sin(lat) * (ellipsoid_ht['latitude'] - lat) up = alt + ground_ref_ht return east, north, up # 注意,这只是一个简化的示例,实际转换可能更复杂,包括使用适当的地球模型和高度修正 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值