单点定位程序说明(优选.)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GPS单点定位程序文档说明
一程序说明
本程序的基本功能是利用测站接收机获取的观测文件(O文件),结合相应历元下的卫星导航文件(N文件)来计算测站点在WGS-84坐标系下的坐标。所用编程语言为C++,编程环境为VC++6.0。
二单历元卫星坐标计算流程图
三程序设计流程图
四程序模块说明
(一)对类的说明
1.PointPosition类
double GetDelta_t(CommonTime Toe,CommonTime Toc);
用于计算两个历元时刻的时间间隔
CoorCartesian ComputeSatCoor(double Tk,OneNavData oneNaveData);
利用导航数据计算卫星坐标
Bool GetPreciseSatCoor(CommonTimeObsTime,CoorCartesian&Sitecoor , CoorCartesian &Satcoor,OneNavData oneNavData,double SatClkBais);
通过迭代得到新号发送时刻的卫星坐标
double ComputeSatClkBias(double SendTime_Tk,OneNavData oneNavData);
计算卫星的钟差改正
Factor ComputeFactors(CoorCartesian &Sitecoor, CoorCartesian &Satcoor, double &satClkBias,double &Tr, double TropDelay, double ionDelay, double p1);
计算组建法方程需要的各个元素
double ComputeTropDelay(CoorCartesian SatCoor,CoorCartesian SitCoor);
计算对流层误差
double ComputeIonDelay(const double L1,const double L2);
计算电离层误差
2.ReadObsData类
ReadObsFile(const string& FileName);
ObsFileHeader ReadObsHeader(const string &FileName);
读取观测文件的头文件部分
EntirObsData ReadObsData(const string &FileName);
读取观测文件的数据部分
3.ReadNavData类
NavFileHeader ReadNavHeader(const string &FileName);
读取导航文件的头文件部分
AllNavData ReadNavData(const string &FileName);
读取导航文件的数据部分
OneNavData SelectEpochNavData(AllNavData allNavData,string SatPrn,CommonTime ObsTime)
查找并获取要计算的观测历元下的导航数据
(二)程序模块的连接关系
1.分别用文件流打开相应的观测数据文件和星历文件;
2.调用ReadObsFile.ReadObsHeader()读取观测文件头文件;
3.调用ReadObsFile.ReadObsData()按照观测历元读取观测数据;
4调用ReadNavFile.ReadNavHeader()读取导航文件的头文件部分;
5调用ReadNavFile.ReadNavData()读取导航文件的数据部分;
6 利用循环并调用ReadNavFile.SelectEpochNavData()获取观测历元的导航数据
7 调用puteSatCoor()计算卫星坐标
8利用puteFactor()计算法方程的各个元素
9迭代得到结果。
五程序的不足之处
1.程序较多的出现类调其他类中的方法,从而类的独立性较差。
2.在坐标系统中,只进行了空间直角坐标系和大地坐标系的转换,空间直角坐
标系和测站坐标系的转换,没有完全整理坐标转换。
3.计算的精度较低。
4.只利用GPS卫星的观测数据并没有利用Glonass卫星的观测数据,从而使数
据为得到充分利用。
最新文件---------------- 仅供参考--------------------已改成word文本--------------------- 方便更改