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

📄 refraction_delay.cpp

📁 读取GPS的Rinex观测文件
💻 CPP
字号:
#include "refraction_delay.h"
#include "math.h"
#include "GetPosition.h"

double GetTropDelay     (PCRDCARTESIAN pcrdSite,PCRDCARTESIAN pcrdSat)
//返回值:对流层延迟量
                           //pcrdSite:测站坐标
                                                 //pcrdSat:卫星坐标
{
	CRDGEODETIC crdSite;
	CartesianToGeodetic (&crdSite, pcrdSite,a,flattening);//  笛卡尔坐标 大地坐标  (测站)

	double H=crdSite.height;

	CRDTOPOCENTRIC  pct;

	CartesianToTopocentric (&pct,pcrdSat,pcrdSite,a,flattening);//  笛卡尔坐标 站心地平坐标   (卫星)
    
	CRDTOPOCENTRICPOLAR site;
    TopocentricToTopocentricPolar (&site,&pct);

	double E=site.elevation;
	double delta=0;

	if(fabs(H)<40000)   //  40000米高度以下考虑对流层延迟
	{
	
	double T=T0-0.0065*(H-H0)+273.16;
	double P=P0*pow((1-0.0000226*(H-H0)),5.225);
	double RH=RH0*exp(-0.0006396*(H-H0));

	double e=RH*exp(-37.2465+0.213166*T-0.000256908*T*T);
	double hw=11000;
	double hd=40136+148.72*(T-273.16);

	double Kw=(155.2e-7*4810*e*(hw-H))/(T*T);
	double Kd=(155.2e-7*P*(hd-H))/T;
	 delta=Kd/(sin(sqrt(E*E+6.25)))+Kw/(sin(sqrt(E*E+2.25)));

	}
	else
     delta=0;
	return delta;
}

⌨️ 快捷键说明

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