📄 refraction_delay.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 + -