本项目为GNSS伪距单点定位python面向对象的版本
- 如果代码有问题的地方或者有疑问的地方,欢迎联系我,我的github主页有联系方式。
- 代码我还会继续完善,后面会把代码里面的变量命名以及代码注释都写得非常规范。
- 后续我还会在这个代码里面加入一些有趣的东西,敬请期待。
git clone https://github.com/luohongk/PseudorangeSPP.git
cd PseudorangeSPP
python main.py
文件名 |
文件功能 |
main.py |
主函数,函数入口 |
readfile.py |
文件读取类,读与存数据 |
satelite.py |
卫星类,用于计算位置位置 |
position.py |
定位类,用于进行观测值的匹配以及地面坐标解算 |
如果通过广播星历以及观测值文件进行单点定位比较困难,需要熟系观测值文件格式以及卫星位置计算的一些算法。可以再加电离层,对流层延迟。
$$
R=\sqrt{\left( x_s-x_r \right) ^2+\left( y_s-y_r \right) ^2+\left( z_s-z_r \right) ^2}=f\left( x_r,y_r,z_r \right)
$$
$$
R^0+V=\sqrt{\left( x_s-x_{r}^{0} \right) ^2+\left( y_s-y_{r}^{0} \right) ^2+\left( z_s-z_{r}^{0} \right) ^2}+\frac{\partial f}{\partial x_r}\varDelta x_r+\frac{\partial f}{\partial y_r}\varDelta y_r+\frac{\partial f}{\partial z_r}\varDelta z_r
$$
![L](https://camo.githubusercontent.com/7e71711fa175739959e1ede5f4617cc4f4705d996dcac257541c5ac33ac0475e/68747470733a2f2f6c617465782e636f6465636f67732e636f6d2f7376672e696d6167653f4c3d632535437369676d612673706163653b5f25374274732537442b52253545302d25354372686f2673706163653b5f302d44656c6179)
有:
![P0](https://camo.githubusercontent.com/eb08a0d856acabe43c4d00bc3a223e686df0883857b9f66dd4cb8f8d6586e09d/68747470733a2f2f6c617465782e636f6465636f67732e636f6d2f7376672e696d6167653f25354372686f2532305f303d253543737172742537422535436c65667428785f732d785f2537427225374425354525374230253744253543726967687429253545322b2535436c65667428795f732d795f2537427225374425354525374230253744253543726967687429253545322b2535436c656674287a5f732d7a5f253742722537442535452537423025374425354372696768742925354532253744)
$$
V=Bx-L
$$
$$
x=\left( B^TB \right) ^{-1}\left( B^TL \right)
$$
$$
\left{ \begin{array}{l}
x_r=x_r+\varDelta x_r\\
y_r=y_r+\varDelta y_r\\
z_r=z_r+\varDelta z_r\\
\end{array} \right.
$$