当前位置:网站首页>RTKLIB 2.4.3源码笔记

RTKLIB 2.4.3源码笔记

2022-04-23 16:46:00 haoming Hu

最后更新时间:2022-04-20

数据结构

prcopt_t 处理选项

参数 解释 默认设置
int mode 定位模式 PMODE_STATIC
int soltype 解决方案类型 (0:向前,1:向后,2:组合) 0
int nf 频率数 (1:L1,2:L1+L2,3:L1+L2+L5) 2
int navsys 导航系统,多个的话直接将系统的宏定义进行|运算 SYS_CMP | SYS_GPS
double elmin 仰角遮罩角 7.0*D2R
snrmask_t snrmask 信噪比掩码 { { 0,0 } },
int sateph 卫星星历/时钟(EPHOPT_???) 0
int modear AR 模式0:off,1:continuous,2:instantaneous,3:fix and hold,4:ppp-ar) 3
int glomodear GLONASS AR mode (0:off,1:on,2:auto cal,3:ext cal) 0
int bdsmodear BeiDou AR mode (0:off,1:on) 1
int maxout obs 中断计数以重置偏差 5
int minlock 最小锁定计数以修复歧义 0
int minfix 最小修复计数以保持歧义 10
int armaxiter 最大迭代以解决歧义 1
int ionoopt 电离层选项(IONOOPT_???) 0
int tropopt 对流层选项(TROPOPT_???) */ 0
int dynamics 动力学模型(0:none,1:velociy,2:accel) */ 0
int tidecorr 地球潮汐校正(0:off,1:solid,2:solid+otl+pole) 0
int niter 过滤器迭代次数 1
int codesmooth 代码平滑窗口大小 (0:none) 0
int intpref 插入参考 obs(用于后期任务) 0
int sbascorr SBAS 校正选项 0
int sbassatsel SBAS 卫星选择(0:all) 0
int rovpos 固定模式下的流动站位置 0
int refpos 相对模式的基本位置0:pos in prcopt, 1:average of single pos 2:read from file, 3:rinex header, 4:rtcm pos) 4
double eratio[NFREQ] 码/相位误差率 {100.0,100.0}
double err[5] 测量误差因子 [0]: 保留 [1-3]: 相位 (m) 的误差因子 a/b/c [4]: 多普勒频率 (hz) { 100.0,0.003,0.003,0.0,1.0 }
double std[3] 初始状态 [0]bias,[1]iono [2]trop { 30.0,0.03,0.3 }
double prn[6] 过程噪声 std [0]bias,[1]iono [2]trop [3]acch [4]accv [5] pos */ { 1E-4,1E-3,1E-4,1E-1,1E-2,0.0 }
double sclkstab 卫星时钟稳定性(秒/秒) 5E-12
double thresar[8] AR 验证阈值 { 5.0,0.9999,0.25,0.1,0.05 }
double elmaskar 上升卫星的 AR 仰角掩码 (deg) 0.0
double elmaskhold 高度掩码以保持模糊度(deg) 0.0
double thresslip 无几何相滑移阈值 (m) 0.05
double maxtdiff 最大时间差(秒) 30.0
double maxinno 拒绝创新阈值 (m) 30.0
double maxgdop 拒绝 gdop 的阈值 30.0
double baseline[2] 基线长度约束 {const,sigma} (m) { 0 }
double ru[3] 固定模式 {x,y,z} (ecef) (m) 的流动站位置 { 0 }
double rb[3] 相对模式 {x,y,z} (ecef) (m) 的基本位置 { 2005046.4452 ,5411158.3826 ,2707856.6022 }
char anttype[2][MAXANT] 天线类型 {rover,base} { “”,“” }
double antdel[2][3] 天线增量{ {rov_e,rov_n,rov_u},{ref_e,ref_n,ref_u}} { { 0 } }
pcv_t pcvr[2] 接收机天线参数{rov,base} */ { { 0 } }
unsigned char exsats[MAXSAT] 排除的卫星(1:excluded,2:included) */ { 0 }
int maxaveep 最大平均周期
int initrst 通过重启初始化
int outsingle 通过 dgps/float/fix/ppp 中断输出单个
char rnxopt[2][256] rinex 选项 {rover,base} */
int posopt[6] 定位选项
int syncsol 解决方案同步模式
double odisp[2][6*11] 海潮加载参数 {rov,base} */{rov,base} */
exterr_t exterr 扩展接收器错误模型
int freqopt 禁用 L2-AR
char pppopt[256] ppp 选项

solopt_t

参数 解释 默认设置
int posf 解决方案格式 (SOLF_???)
int times 时间系统(TIMES_???)
int timef 时间格式 (0:sssss.s,1:yyyy/mm/dd hh:mm:ss.s)
int timeu 小数点后的时间数字
int degf 纬度/经度格式 (0:ddd.ddd,1:ddd mm ss)
int outhead 输出头(0:否,1:是)
int outopt 输出处理选项(0:否,1:是)
int outvel 输出速度选项(0:否,1:是)
int datum 数据(0:WGS84,1:东京)
int height 高度(0:椭球体,1:测地线)
int geoid 大地水准面模型(0:EGM96,1:JGD2000)
int solstatic 静态模式的解决方案 (0:all,1:single)
int sstat 解决方案统计级别(0:关闭,1:状态,2:残差)
int trace 调试跟踪级别(0:关闭,1-5:调试)
double nmeaintv[2] nmea 输出间隔 (<0:no,0:all) nmeaintv[0]:gprmc,gpgga,nmeaintv[1]:gpgsv
char sep[64] 字段分隔符
char prog[64] 程序名称
double maxsolstd 解决方案输出的最大标准偏差 (m) (0:all)

filopt_t

#define MAXSTRPATH 1024 /* max length of stream path */

char satantp [MAXSTRPATH] 卫星天线参数文件
char rcvantp [MAXSTRPATH] 接收机天线参数文件
char stapos [MAXSTRPATH] 站位文件
char geoid [MAXSTRPATH] 外部大地水准面数据文件
char iono [MAXSTRPATH] 电离层数据文件
char dcb [MAXSTRPATH] dcb 数据文件
char eop [MAXSTRPATH] eop 数据文件
char blq [MAXSTRPATH] 海潮加载 blq 文件
char tempdir [MAXSTRPATH] ftp/http 临时目录
char geexe [MAXSTRPATH] 谷歌地球执行文件
char solstat [MAXSTRPATH] 解决方案统计文件
char trace [MAXSTRPATH] 调试跟踪文件

事后定位:postpos

postpos函数原型:

extern int postpos(gtime_t ts, gtime_t te, double ti, double tu,

​ const prcopt_t *popt, const solopt_t *sopt,

​ const filopt_t *fopt, char **infile, int n, char *outfile,

​ const char *rov, const char *base)

gtime_t ts 处理开始时间,如果为0表示无限制
gtime_t te 处理结束时间,如果为0表示无限制
double ti 处理间隔 (s)
double tu 处理单位时间(s)
prcopt_t *popt 处理选项
solopt_t *sopt 解决方案选项
filopt_t *fopt 文件选项
char **infile 输入文件
int n 输入文件个数
char *outfile 输出文件
char *rov 移动站ID列表,用””分隔
char *base 基站ID列表,用””分隔

返回:状态 (0:ok,0>:error,1:aborted)

* 注意:输入文件应包含观测数据、导航数据、精确的

* 星历/时钟(可选),sbas日志文件(可选),ssr信息(可选)。

* 日志文件(可选)和泰克网格文件(可选)。

* 输入文件中的第一个观测数据文件被认为是流动站的数据。

* 输入文件的类型是由文件扩展名来识别的

* 输入文件的类型由文件的扩展名来识别,具体如下。

* .sp3, .SP3, .eph*, .EPH*:精确星历(sp3c)。

* .sbs,.SBS,.ems,.EMS : sbas消息记录文件(rtklib或ems)

* .lex,.LEX : qzss lex消息日志文件

* .rtcm3,.RTCM3 : ssr消息日志文件(rtcm3)

* .*i,.*I : tec网格文件(ionex)

* .FCB,.FCB : 卫星FCB

* 其他:Rinex观测点、导航、格网、希网、Q网或时钟

openses函数:预处理

static int openses(const prcopt_t *popt, const solopt_t *sopt,const filopt_t *fopt, nav_t *nav, pcvs_t *pcvs, pcvs_t *pcvr)

https://blog.csdn.net/wuwuku123/article/details/106068946

目的:通过读取filopt_t fopt中的参数,其中filopt_t结构体定义如下,实现对‘文件的读取’,读取子函数为openses!

execses_b

https://blog.csdn.net/wuwuku123/article/details/106068946

目的:通过读取filopt_t fopt中的参数,其中filopt_t结构体定义如下,实现对‘文件的读取’,读取子函数为openses!

execses_b

处理基站

版权声明
本文为[haoming Hu]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44296793/article/details/124308266