⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getposition.h

📁 读取GPS的Rinex观测文件
💻 H
字号:
#ifndef _GETPOSITION_H
#define _GETPOSITION_H

#include "Time.h"
#include "Coordinate.h"
#include "Rinex.h"
#include <list>

using namespace std;
const double _DAY_IN_SECOND=86400;
const double _HOUR_IN_SECOND=3600;
const double _MINUTE_IN_SECOND=60;
const double c=2.99792458e+08;//光速
const double GM=3.986005e+14;//重力常数
const double we=7.2921151467e-05;//地球自转角速度
const double F=-4.442807633e-10;
const double f1=1575.42e+6;



typedef struct tagUtilParam 
{
	double n;//平均角速度
	double E;//偏近点角
	double u0;
	double vk;//真近点角
	double uk;//经过改正的升交角距
	double r;//经过改正的向径
	double i;//经过改正的轨道倾角
	double L;//改正后的升交点经度	
} UtilParam;
typedef UtilParam *PUtilParam;



typedef struct tagSatVelocity //卫星速度
{         
	double xv;
	double yv;
	double zv;
} SatVel;
typedef SatVel	*PSatVel;

//得到最靠近所给时刻的历元单位
list<PGMNREC>::iterator GetBestGMNREC(list<GMNREC>& navRecord,
				   int& nPRN,PCOMMONTIME pctEpoch);

//得到有关计算卫星空间位置,发射时刻改正,卫星速度有关的参数
//避免代码重复
void GetUtilParameter(list<PGMNREC>& navRecord,int& nPRN,PCOMMONTIME pctEpoch,
					  PUtilParam pParam);

//计算卫星在笛卡尔坐标系中的位置
void GetOrbNClk(list<PGMNREC>& navRecord,int& nPRN,PCOMMONTIME pctEpoch, 
				PCRDCARTESIAN pcrdOrb/*,double* pdSVClkBias*/);


//计算卫星C/A码信号发射时刻的改正
void GetSVClkBias(list<PGMNREC>& navRecord,int& nPRN,PCOMMONTIME pctEpoch,
				  double* pdSVClkBias,double *detj);

//计算卫星的速度
void GetSatVelocity(list<PGMNREC>& navRecord,int& nPRN,PCOMMONTIME pctEpoch,
					PSatVel psatv);




typedef struct tagSITEV    //测站速度
{
	double xv;
	double yv;
	double zv;
}SITEV;
typedef SITEV *PSITEV;


typedef struct tagPPONERESULT{
	COMMONTIME        epoch;//历元时刻
	int               sat_num;//参与解算的卫星数
	CRDCARTESIAN      crd;  /////////////             /////////////                  ///////////     测站坐标
	double            clk_bias;//接收机钟差
	double            PDOP;

	SITEV             m_sitev;//测站速度
	int               flag;//是否能进行速度解算,0代表不能,1代表能
}PPONERESULT;

typedef PPONERESULT *PPPONERESULT;

  

void PPOne(GMOHDR& gmoh,/*观测值头文件*/
		   list<PGMOREC>::iterator pgmor,/*某一历元观测值 数据记录*/

		   list<PGMNREC>&  navRecord,/*导航电文文件*/
		   PPPONERESULT presult);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -