【python自用函数】经纬度(地理坐标)-xyz笛卡尔三维坐标的相互转换

1.最终效果

  • 纬度 (lat) = 30.0°

  • 经度 (lon) = 120.0°

  • 高度 (alt) = 1000.0 米

  • z 3170873.735344176 p 5529122.664706394 lat_rad 0.5235987755982988
    (np.float64(-2764561.3323531956), np.float64(4788360.688276047), np.float64(3170873.735344176))
    z 3170873.735344176 p 5529122.664706394 lat_rad 0.5206956282667523
    (np.float64(29.833661910597716), np.float64(119.99999999999999), np.float64(33130.30484911706))
    -2764561.332348309 4788360.688267583 3170873.735383638
    (np.float64(29.999999999999996), np.float64(119.99999999999999), np.float64(1000.0000000001294))

    有一定的问题:原因是纬度不是纯粹的arccos(r/p)

2.理论和代码

2.1.将[经度,纬度,高度]转换为[x,y,z]

1. 转换步骤

a. 确定参考椭球体

地球是一个近似的椭球体,常用的参考椭球体是WGS-84(全球定位系统使用的标准)。椭球体的参数包括:

  • 长半轴 a:约 6378137 米(赤道半径)。

  • 短半轴 b:约 6356752.3142 米(极半径)。

  • 扁率 f:f=\frac{a}{a-b}

b. 从地理坐标转换到笛卡尔坐标

假设 [经度,纬度,高度] 是相对于WGS-84椭球体的坐标,转换公式如下:

1.计算曲率半径 N(ϕ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值