周锋老师的GAMP是一款非常优秀的PPP定位开源程序,将rtklib中某些多余的函数、代码简洁化。
学习配置文件
配置文件可以设置我们解算的模式、参数处理,相当于我们窗口信息用文本存储下来obs
# GNSS data Analysis software for Multi-constellation and multi-frequency Precise positioning (GAMP) options
obs file/folder = 0 %(0:file 1:folder)
= D:\2017244\cut02440.17o
obs file/folder = 1 %(0:file 1:folder)
= D:\2017244\test
obs file可以以文件形式、也可以用文件夹形式进行打开 1、代表文件夹形式打开,所有定位需要的文件可以存储在1下设定的test文件夹。0、代表打开单一的文件,需要具体的文件名。
start_time = 0 2017/01/01 00:00:00.0 %(0:from obs 1:from inp)
end_time = 0 2017/01/01 23:59:30.0 %(0:from obs 1:from inp)
start_time = 1 2017/01/01 03:00:00.0 %(0:from obs 1:from inp)
end_time = 1 2017/01/01 23:59:30.0 %(0:from obs 1:from inp)
start_time、end_time:启止时间 0、代表从观测文件中直接读取,1、代表从配置文件中读取比如从三点到下午十一点,时间可以自己设置。
posmode = 6 %(0:spp 6:ppp_kinematic 7:ppp_static)
posmode表示以什么形式进行定位 0、表示标准单点定位 6、精密单点定位(动态处理模式)7、精密单点定位(静态处理模式)6与7的区别:如果我们的测站静止,变形监测,控制点我们就可以选7,用很多数据结算一个xyz,精度高。6代表载体是动态的,比如车载、船载。
soltype = 0 %(0:forward 1:backward 2:combined-bf 3:combined-fb)
soltype:0、表示前向滤波,1、表示后向滤波,2、表示先后向再前向,3、表示先前向再后向
0可以当作实时处理,拿到一个数据就处理一个数据,不会用到往后数据。比如我们有0点到24点的数据文件,但是解算到1点,只会用到0点到1点的数据,不会用到1点01秒的数据。
后处理可以选择2、3这种平滑的方法、为了提高精度,刚开始其实对于精密单点不是太准确的,前一个小时或者半个小时,数据不是太精确,实际使用会出现问题,如果用2或3这样结合的方法,可以使整个时间段数据变好。一般不需要事后处理0就可以了。
navsys = 4 %(1:gps 4:glo 5:gps+glo 8:gal 16:qzs 32:bds)
navsys:导航系统 1、GPS 4、glo 如果需要处理多个数据加起来就可以。比如1+4就是gps glo 如果要处理所有系统就是 1+4+8+16+32
gnsisb = 1 %(0:off 1:time constant 2:piece-wise constant 3:random walk process 4:white noise process)
gnsisb;系统偏差 处理两个系统,他们的时间系统是不统一的,还需要估计系统间偏差。0、表示不估计1、表示随机常数 2、分段线性常数。比如0到1点是常数,3点到4点是常数,将每个时段内看成常数 3、随机游走 4、白噪声。选择的时候其实可以参看周峰老师在《gps solution》上的一篇论文。需要和精密星历产生的方式对应上,与相关的机构有关,但是差异不是特别大。
gloicb = 0 %(0:off 1:linear function of frequency number 2:quadratic polynomial function of frequency number
% 3:isb+icb every sat 4:isb+icb every frq)
gloicb:卫星钟偏差,只有处理多频的时候会用到、三频及以上。双频和单频都遇不到,因为我们的精密钟差用得是双频、两个特定频率,如果用3、4频数据会多出频率,兼容性会有一点影响,偏差无法模型化。
minelev = 7.0 %satellite cut-off elevation (deg)
minelev:这个是卫星高度角,7度就可以了
maxout = 3
maxout:代表如果连续三个历元不能搜索到,代表断开了,重新在断开的位置初始化
sampleprc = 0 %(sec)
sampleprc = 30 %(sec)
sampleprc:设置数据采样长度。比如我是1秒1秒的数据,如果设置为30秒,则会在每三十秒上采样进行计算,这个数据文件就会变得稀疏。如果文件是每三秒的采样,你设置为1秒,程序依旧会按照文件的30秒采样进行计算。
inpfrq = 2 % the number of processing frequencies
inpfrp :代表双频率,如果是三频就设置为3频
ionoopt = 5 %(0:off 1:brdc 2:IF1 3:IF12 4:UC1 5:UC12 6:ion-tec)
ionoopt:电离层参数选项,选择电离层参数是如何处理的。0、关掉不估计 1、广播星历计算电离层3、无电离层组合 4、UC估计电离层、单频估计电离层参数5、双频非差非组合形式,估计电离层参数 6、精密电离层改正产品去做,电离层格网。 在rtklib里面没有非差非组合,周峰老师在gamp里加入了非差非组合。 如果这里选择非差非组合,在下面选择了电离层白噪声估计其实就是等于无电离层组合的效果。
ionopnoise = 1 %(0: static 1: random walk 2: random walk (new) 3:white noise)
ionopnpise: 如何估计0\静态 12、随机游走 3、白噪声
ionconstraint = 0 %(0:off 1:on)
ionconstraint:电离层约束,如果我们对电离层进行估计,但是拥有一个很好的电离层数据就可以对其进行优化,相当于最优估计中的条件优化。有外部电离层新息进来,提高解的精度和PPP收敛时间。
tropopt = 3 %(0:off 1:saas 3:ztd-est 4:ztdgrad-est)
tropopt:对流层处理方法 0、关掉不估计 1、saas方法 干延迟、spp需要 2、天顶对流层延迟 4、对流层梯度 相当于对流层的变化率
tropmf = 1 %(0:nmf 1:gmf)
tropmf:投影函数,卫星到接收机路径相当于倾斜的,估计对流层是垂直方向,投影到倾斜方向
tidecorr = 7 %(0:off 1:stl 2:otl 4:ptl 7:stl+otl+ptl)
tidecorr:潮汐改正 stl固体潮 otl海洋潮汐 ptl 极潮 一般选7全部加在一起,如果没有相应的文件,程序会自动省略。
cycleslip_GF = 1 0.00 %threshold values for geometry-free (GF) cycle-slip detection (m)
cycleslip_MW = 1 0.00 %threshold values for Melbourne-W��bbena (MW) cycle-slip detection (c)
cycleslip_GF:周跳探测,一般就是GF、MW两种方法进行周跳探测 1、代表打开,0.00代表可以自设一个预值
errratio(P/L GPS) = 100.0 %measurement error ratio between pseudorange and carrier phase observations
errratio(P/L GLO) = 100.0
errratio(P/L BDS) = 500.0
errratio(P/L GAL) = 100.0
errratio(P/L QZS) = 100.0
代表伪距和相位的载噪比,系统间也要比较,程序这里认为北斗精度比其他低,也可以设为100
errmeas(L) = 0.003 %the precision of carrier phase observations (m)
相位观测值精度为三个毫米
prcNoise(AMB) = 1.0e-07 %process noise for ambiguity parameters (m/sqrt(s))
prcNoise(ZTD) = 1.0e-04 %process noise for tropospheric zenith total delay (ZTD) parameters (m/sqrt(s))
prcNoise(ION) = 4.0e-02 %process noise of random walk for slant ionospheric delay parameters (m/sqrt(s))
prcNoise(ION_GF) = 1.0e-03 %process noise of random walk (new) for slant ionospheric delay parameters (m/sqrt(s))
参数过程噪声 AMB模糊度接近0 ZTD频率普密度 ION电离层 ION_GF新随机游走方式
其实没有规定哪种效果好,要根据自己的需求设置。
outdir = result
output = 21 %(sum),0:off,1:on
pos = 1
debug = 1
pdop = 1
elev = 0
dtrp = 0
ifamb = 0
wlamb_no = 0
wlamb_yes = 0
gf = 0
amb_cs = 0
resc1 = 0
resp1 = 0
resc2 = 0
resp2 = 0
resc3 = 0
resp3 = 0
stec = 0
isb = 0
ibm = 0
ifb = 0
ippp = 0
结果输出 result 文件 读取21行的文件 1代表打开 0代表关闭