当前位置:网站首页>GPS从入门到放弃(十七) 、对流层延时
GPS从入门到放弃(十七) 、对流层延时
2022-07-06 13:46:00 【追捕的风】
一、对流层概念
对流层(Troposphere)地球大气层靠近地面的一层。它同时是地球大气层里密度最高的一层,它蕴含了整个大气层约75%的质量,以及几乎所有的水蒸气及气溶胶。
- 对流层的下界与地面相接,上界高度随地理纬度和季节而变化,在低纬度地区平均高度为 17 ~ 18 公里,在中纬度地区平均为 10 ~ 12 公里,在高维度地区平均为 8 ~ 9 公里,并且夏季高于冬季。
- 卫星导航领域所说的对流层与严格的大气科学中的对流层定义有所区别。卫星导航领域中需要考虑对流层延时,所以把从地球表面到电离层之间的区域都认为是对流层,即从0km到约50km的大气层区域。
- 云、雾、雨、雪等众多天气现象都发生在对流层。
- 对流层中主要的传播方式或效应有:大气折射、波导传播、对流层散射、多径传播、大气吸收,以及水汽凝结体和其他大气微粒的吸收和散射。
二、对流层对卫星导航的影响
因为卫星都处于大气层外,卫星信号传播到地球上必须要经过大气层中的对流层,于是必然要受到对流层的影响。对流层是非弥散性介质,即介质的介电常数与频率无关,所以在对流层中,不同频率的电磁波具有相同的传播速度。因此在电离层延时一文中用到的利用双频接收机消除电离层延时的方法对对流层就无法使用了。这使得我们在实际中一般采用数学模型来估计对流层延时。当然,对于有基站的情况,也可以通过差分的方式来消除对流层延时(可参考文章差分GPS)。
三、对流层模型
可能是由于对流层模型太多,准确度并不是那么高,在GPS的接口说明文档中并没有给出官方的参考对流层模型。这里我们以 RTKLIB 中用到的 Saastamoinen 模型说一下。
标准大气层模型可以表示为:
下面摘录了 RTKLIB 中用 Saastamoinen 模型计算对流层延时的函数代码,可以跟以上公式进行一一对应。需要注意的是计算时的单位换算,azel[0], azel[1]分别是方位角和仰角,pos[0], pos[1]分别是接收机纬度和经度,它们的单位都是弧度,pos[2]为接收机高度,单位为米。
/* troposphere model -----------------------------------------------------------
* compute tropospheric delay by standard atmosphere and saastamoinen model
* args : gtime_t time I time
* double *pos I receiver position {lat,lon,h} (rad,m)
* double *azel I azimuth/elevation angle {az,el} (rad)
* double humi I relative humidity
* return : tropospheric delay (m)
*-----------------------------------------------------------------------------*/
extern double tropmodel(gtime_t time, const double *pos, const double *azel,
double humi)
{
const double temp0=15.0; /* temparature at sea level */
double hgt,pres,temp,e,z,trph,trpw;
if (pos[2]<-100.0||1E4<pos[2]||azel[1]<=0) return 0.0;
/* standard atmosphere */
hgt=pos[2]<0.0?0.0:pos[2];
pres=1013.25*pow(1.0-2.2557E-5*hgt,5.2568);
temp=temp0-6.5E-3*hgt+273.16;
e=6.108*humi*exp((17.15*temp-4684.0)/(temp-38.45));
/* saastamoninen model */
z=PI/2.0-azel[1];
trph=0.0022768*pres/(1.0-0.00266*cos(2.0*pos[0])-0.00028*hgt/1E3)/cos(z);
trpw=0.002277*(1255.0/temp+0.05)*e/cos(z);
return trph+trpw;
}
边栏推荐
- 在Pi和Jetson nano上运行深度网络,程序被Killed
- Basic introduction of figure
- 袁小林:安全不只是标准,更是沃尔沃不变的信仰和追求
- [Li Kou brush questions] 32 Longest valid bracket
- 记一次清理挖矿病毒的过程
- Unity3D学习笔记6——GPU实例化(1)
- Leetcode learning records (starting from the novice village, you can't kill out of the novice Village) ---1
- MySQL - transaction details
- string的底层实现
- LeetCode:1189. The maximum number of "balloons" -- simple
猜你喜欢
Leetcode topic [array] -118 Yang Hui triangle
20 large visual screens that are highly praised by the boss, with source code templates!
一行代码可以做些什么?
Sparkshuffle process and Mr shuffle process
MPLS experiment
Absolute primes (C language)
Why does MySQL index fail? When do I use indexes?
Shake Sound poussera l'application indépendante de plantation d'herbe "louable", les octets ne peuvent pas oublier le petit livre rouge?
numpy 下载安装
JS method to stop foreach
随机推荐
MySQL - 事务(Transaction)详解
Redistemplate common collection instructions opsforset (V)
Fastjson parses JSON strings (deserialized to list, map)
PostgreSQL 修改数据库用户的密码
Yyds dry goods inventory C language recursive implementation of Hanoi Tower
jvm:大对象在老年代的分配
numpy 下载安装
JPEG2000-Matlab源码实现
11、 Service introduction and port
数字化转型挂帅复产复工,线上线下全融合重建商业逻辑
JPEG2000 matlab source code implementation
Quick access to video links at station B
[go][转载]vscode配置完go跑个helloworld例子
Aggregate function with key in spark
[Yu Yue education] reference materials for surgical skills teaching in Tongji University
抖音將推獨立種草App“可頌”,字節忘不掉小紅書?
R3live notes: image processing section
C language char, wchar_ t, char16_ t, char32_ Relationship between T and character set
Run the deep network on PI and Jetson nano, and the program is killed
Mysql相关术语