B.1 Positioning Solution File 定位结果文件
可以由RTKNAVI或RTKPOST得到,文件内部通过行、节进行分隔,共同构成整个文件。文件内部的格式如下所示:
1、文件头:
文件头中每行以“%”开始,每行包括相关的处理信息:
% program : RTKPOST ver.2.4.2 程序处理版本
% inp file : E:\专业资料\……\……\chdu1000.15o 输入文件路径
% inp file : E:\专业资料\……\……\joha1000.15o 输入文件路径
% inp file : E:\专业资料\……\……\brdc1000.15n 输入文件路径
% obs start : 2015/04/10 00:00:00.0 GPST (week1839 432000.0s) 观测数据开始时间/GPST
% obs end : 2015/04/10 23:59:30.0 GPST (week1839 518370.0s) 观测数据结束时间/GPST
% pos mode : dgps 定位/处理模式
% freqs : L1+L2 频率
% solution : forward 处理类型选型/前向、后向、前后向
% elev mask : 15.0 deg 截至高度角
% dynamics : off 接收机动态与否
% tidecorr : off 固体潮/地球潮改正
% ionos opt : off 电离层参数
% tropo opt : off 对流层参数
% ephemeris : broadcast 卫星星历
% antenna1 : ( 0.0000 0.0000 0.0000)
% antenna2 : ( 0.0000 0.0000 0.0000)
% ref pos :-25.940337336 27.930865820 1384.6866 基准站坐标/参考站坐标
2、分割行:
在文件头后,紧接着用“%”起一行,用来识别文件。
3、文件体:
包括以下几个部分:
(1)时间:是接收机收到信号的时间减去接收机钟差的时间;输出时间所属的时间系统,根据文件头里面标识而定。
两种表示方式:日历时间和周数、周内秒
示例:
(2) 接收机位置
(3)定位求解flag
flag=1为固定解;通过载波相位相对定位,且模糊度固定;
flag=2为浮点解;通过载波相位相对定位,模糊度未固定;
flag=3 预留;
flag=4为DGPS;通过码片差分或者单点定位加SBAS改正数求解;
flag=5为单点定位;通过单点定位求解;
4、有效卫星数:
求解位置时,有效的卫星数目
5、标准差:
根据先验的误差模型和定位模式选项,得到的定位结果的标准差。Sdn、Sde、Sdu为北、东、天向标准差,单位为米/m;sdne, sdeu or sdun(为NE, EU or UN方向)表示协方差矩阵中的均方根值,其中符号代表元素在协方差中的符号;用户可以根据协方差和标准差重新构建协方差矩阵。
6、差分龄期:
接收机和基准站之间,在接收机端得到的两个观测数据的时间差/历元差;
7、Ratio factor
"ratio-test"用来验证整周模糊度;该值表示具有第二最佳整数向量的残差与最佳整数向量的平方和之比。
示例如下:
B.2 SBAS Log File
SBAS数据通过接收机获得,具体的格式信息,如下:
1、GPS周数
2、周内秒
3、SBAS卫星的PRN号
4、信息类型/Message Type
5、分隔符“:”
6、SBAS信息:
示例:
B.3 Solution Status File
定位过程中的相关信息/log文件:输出的文件后缀为:.pos.stat;通过RTKNAVI或RTKPOST输出,输出状态主要为kalman滤波状态和残差;数据格式如下:
1、位置状态参数:
滤波中估计的接收机位置参数,记录格式如下:
$POS,2057,217041.000,2,-2605514.0543,4741967.0275,3365927.7986,0.0000,0.0000,0.0000
$POS,week,tow,stat,posx,posy,posz,posxf,posyf,poszf
week/tow : gps week no/time of week (s)
stat : solution status 定位结果求解状态
posx/posy/posz : position x/y/z ecef (m) float
posxf/posyf/poszf : position x/y/z ecef (m) fixed
2、速度、加速度状态参数:
滤波中估计的接收机速度、加速度参数,记录格式如下:
$VELACC,2057,217041.000,2,0.0021,0.0005,0.1093,0.00000,0.00000,0.00000,0.0000,0.0000,0.0000,0.00000,0.00000,0.00000
$VELACC,week,tow,stat,vele,veln,velu,acce,accn,accu,velef,velnf,veluf,accef,accnf,accuf
week/tow : gps week no/time of week (s)
stat : solution status
vele/veln/velu : velocity e/n/u (m/s) float
acce/accn/accu : acceleration e/n/u (m/s^2) float
velef/velnf/veluf : velocity e/n/u (m/s) fixed
accef/accnf/accuf : acceleration e/n/u (m/s^2) fixed
3、接收机钟差状态参数:
估计接收机钟差状态参数,记录格式如下:
$CLK,2057,217041.000,2,1,-0.000,0.000,0.000,37.523
$CLK,week,tow,stat,rcv,clk1,clk2,clk3,clk4
week/tow : gps week no/time of week (s)
stat : solution status
rcv : receiver (1:rover,2:base station)
clk1 : receiver clock bias GPS (ns)
clk2 : receiver clock bias GLONASS (ns)
clk3 : reserved
clk4 : reserved
4、电离层状态参数:
垂向L1频段电离层延迟参数:
$ION,week,tow,stat,sat,az,el,ion,ion‐fixed
week/tow : gps week no/time of week (s)
stat : solution status
sat : satellite id
az/el : azimuth/elevation angle(deg)
ion : vertical ionospheric delay L1 (m) float
ion‐fixed: vertical ionospheric delay L1 (m) fixed
5、对流层状态参数:
估计对流层延迟参数
$TROP,week,tow,stat,rcv,ztd,ztdf
week/tow : gps week no/time of week (s)
stat : solution status
rcv : receiver (1:rover,2:base station)
ztd : zenith total delay (m) float
ztdf : zenith total delay (m) fixed
6、Receiver H/W bias States:
Estimated GLONASS receiver H/W bias difference. The format of a record is as follows:
$HWBIAS,week,tow,stat,frq,bias,biasf
week/tow : gps week no/time of week (s)
stat : solution status
frq : frequency (1:L1,2:L2,3:L5,...)
bias : h/w bias coefficient (m/MHz) float
biasf : h/w bias coefficient (m/MHz) fixed
7、残差:
伪距和载波相位观测量的残差,记录格式如下:
$SAT,week,tow,sat,frq,az,el,resp,resc,vsat,snr,fix,slip,lock,outc,slipc,rejc
week/tow : gps week no/time of week (s)
sat/frq : satellite id/frequency (1:L1,2:L2,3:L5,...)
az/el : azimuth/elevation angle (deg)
resp : pseudorange residual (m)
resc : carrier‐phase residual (m)
vsat : valid data flag (0:invalid,1:valid)
snr : signal strength (dbHz)
fix : ambiguity flag (0:no data,1:float,2:fixed,3:hold)
slip : cycle‐slip flag (bit1:slip,bit2:parity unknown)
lock : carrier‐lock count
outc : data outage count
slipc : cycle‐slip count
rejc : data reject (outlier) count
$SAT,2057,217041.000,C01,1,144.5,45.1,0.6213,0.0003,1,43,0,0,1,0,0,0
$SAT,2057,217041.000,C03,1,195.4,52.1,0.3108,0.0002,1,45,0,0,1,0,0,0
$SAT,2057,217041.000,C04,1,121.4,32.1,-0.1342,0.0007,1,40,0,0,1,0,0,0
B.4 Configuration File/配置文件
配置文件包括求解选项/solution options、配置选项/processing options、文件选项/file options,适用于RTKNAVI、RTKPOST、RTKRCV、RNX2RTKP。
这是一个文本文件,其中包含关键字=值(表单记录指示各种选项)。 对于枚举值,可选值可以是数字(0,1,2,...)或枚举标签(off,on,...)。以#开头的行和#后面的文本被视为注释。 有关配置文件的内容,请参见3.5配置RTKNAVI和RTKPOST的定位选项。
示例如下:
RTKPOST Ver.2.4.2中配置如下:
rtk_demo.conf 如下:
# rtkpost options (2020/05/28 05:26:14, v.2.4.2)
pos1-posmode =kinematic # (0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static,8:ppp-fixed)
pos1-frequency =l1 # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l2+l5+l6,5:l1+l2+l5+l6+l7)
pos1-soltype =forward # (0:forward,1:backward,2:combined)
pos1-elmask =15 # (deg)
pos1-snrmask_r =on # (0:off,1:on)
pos1-snrmask_b =on # (0:off,1:on)
pos1-snrmask_L1 =0,0,0,0,0,0,0,0,0
pos1-snrmask_L2 =0,0,0,0,0,0,0,0,0
pos1-snrmask_L5 =0,0,0,0,0,0,0,0,0
pos1-dynamics =on # (0:off,1:on)
pos1-tidecorr =off # (0:off,1:on,2:otl)
pos1-ionoopt =off # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc,7:qzs-lex,8:vtec_sf,9:vtec_ef,10:gtec)
pos1-tropopt =off # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph =brdc # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-posopt1 =off # (0:off,1:on)
pos1-posopt2 =off # (0:off,1:on)
pos1-posopt3 =off # (0:off,1:on)
pos1-posopt4 =off # (0:off,1:on)
pos1-posopt5 =on # (0:off,1:on)
pos1-exclsats = # (prn ...)
pos1-navsys =63 # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:comp)
pos2-armode =continuous # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode =on # (0:off,1:on,2:autocal)
pos2-bdsarmode =on # (0:off,1:on)
pos2-arthres =3
pos2-arlockcnt =0
pos2-arelmask =0 # (deg)
pos2-arminfix =10
pos2-elmaskhold =0 # (deg)
pos2-aroutcnt =5
pos2-maxage =30 # (s)
pos2-syncsol =off # (0:off,1:on)
pos2-slipthres =0.05 # (m)
pos2-rejionno =30 # (m)
pos2-rejgdop =30
pos2-niter =1
pos2-baselen =0 # (m)
pos2-basesig =0 # (m)
out-solformat =llh # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead =on # (0:off,1:on)
out-outopt =on # (0:off,1:on)
out-timesys =gpst # (0:gpst,1:utc,2:jst)
out-timeform =hms # (0:tow,1:hms)
out-timendec =3
out-degform =deg # (0:deg,1:dms)
out-fieldsep =
out-height =ellipsoidal # (0:ellipsoidal,1:geodetic)
out-geoid =internal # (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
out-solstatic =all # (0:all,1:single)
out-nmeaintv1 =0 # (s)
out-nmeaintv2 =0 # (s)
out-outstat =residual # (0:off,1:state,2:residual)
stats-eratio1 =100
stats-eratio2 =100
stats-errphase =0.003 # (m)
stats-errphaseel =0.003 # (m)
stats-errphasebl =0 # (m/10km)
stats-errdoppler =10 # (Hz)
stats-stdbias =30 # (m)
stats-stdiono =0.03 # (m)
stats-stdtrop =0.3 # (m)
stats-prnaccelh =10 # (m/s^2)
stats-prnaccelv =10 # (m/s^2)
stats-prnbias =0.0001 # (m)
stats-prniono =0.001 # (m)
stats-prntrop =0.0001 # (m)
stats-clkstab =5e-12 # (s/s)
ant1-postype =llh # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant1-pos1 =90 # (deg|m)
ant1-pos2 =0 # (deg|m)
ant1-pos3 =-6335367.6285 # (m|m)
ant1-anttype =
ant1-antdele =0 # (m)
ant1-antdeln =0 # (m)
ant1-antdelu =0 # (m)
ant2-postype =single # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant2-pos1 =0 # (deg|m)
ant2-pos2 =0 # (deg|m)
ant2-pos3 =0 # (m|m)
ant2-anttype =
ant2-antdele =0 # (m)
ant2-antdeln =0 # (m)
ant2-antdelu =0 # (m)
misc-timeinterp =off # (0:off,1:on)
misc-sbasatsel =0 # (0:all)
misc-rnxopt1 =
misc-rnxopt2 =
file-satantfile =
file-rcvantfile =
file-staposfile =
file-geoidfile =
file-ionofile =
file-dcbfile =
file-eopfile =
file-blqfile =
file-tempdir =
file-geexefile =
file-solstatfile =
file-tracefile =
对应代码,主要是三个结构体:
prcopt_t solopt_t filopt_t
typedef struct { /* processing options type */
int mode; /* positioning mode (PMODE_???) */
int soltype; /* solution type (0:forward,1:backward,2:combined) */
int nf; /* number of frequencies (1:L1,2:L1+L2,3:L1+L2+L5) */
int navsys; /* navigation system */
double elmin; /* elevation mask angle (rad) */
snrmask_t snrmask; /* SNR mask */
int sateph; /* satellite ephemeris/clock (EPHOPT_???) */
int modear; /* AR mode (0:off,1:continuous,2:instantaneous,3:fix and hold,4:ppp-ar) */
int glomodear; /* GLONASS AR mode (0:off,1:on,2:auto cal,3:ext cal) */
int bdsmodear; /* BeiDou AR mode (0:off,1:on) */
int maxout; /* obs outage count to reset bias */
int minlock; /* min lock count to fix ambiguity */
int minfix; /* min fix count to hold ambiguity */
int armaxiter; /* max iteration to resolve ambiguity */
int ionoopt; /* ionosphere option (IONOOPT_???) */
int tropopt; /* troposphere option (TROPOPT_???) */
int dynamics; /*
model (0:none,1:velociy,2:accel) */
int tidecorr; /* earth tide correction (0:off,1:solid,2:solid+otl+pole) */
int niter; /* number of filter iteration */
int codesmooth; /* code smoothing window size (0:none) */
int intpref; /* interpolate reference obs (for post mission) */
int sbascorr; /* SBAS correction options */
int sbassatsel; /* SBAS satellite selection (0:all) */
int rovpos; /* rover position for fixed mode */
int refpos; /* base position for relative mode */
/* (0:pos in prcopt, 1:average of single pos, */
/* 2:read from file, 3:rinex header, 4:rtcm pos) */
double eratio[NFREQ]; /* code/phase error ratio */
double err[5]; /* measurement error factor */
/* [0]:reserved */
/* [1-3]:error factor a/b/c of phase (m) */
/* [4]:doppler frequency (hz) */
double std[3]; /* initial-state std [0]bias,[1]iono [2]trop */
double prn[6]; /* process-noise std [0]bias,[1]iono [2]trop [3]acch [4]accv [5] pos */
double sclkstab; /* satellite clock stability (sec/sec) */
double thresar[8]; /* AR validation threshold */
double elmaskar; /* elevation mask of AR for rising satellite (deg) */
double elmaskhold; /* elevation mask to hold ambiguity (deg) */
double thresslip; /* slip threshold of geometry-free phase (m) */
double maxtdiff; /* max difference of time (sec) */
double maxinno; /* reject threshold of innovation (m) */
double maxgdop; /* reject threshold of gdop */
double baseline[2]; /* baseline length constraint {const,sigma} (m) */
double ru[3]; /* rover position for fixed mode {x,y,z} (ecef) (m) */
double rb[3]; /* base position for relative mode {x,y,z} (ecef) (m) */
char anttype[2][MAXANT]; /* antenna types {rover,base} */
double antdel[2][3]; /* antenna delta {{rov_e,rov_n,rov_u},{ref_e,ref_n,ref_u}} */
pcv_t pcvr[2]; /* receiver antenna parameters {rov,base} */
unsigned char exsats[MAXSAT]; /* excluded satellites (1:excluded,2:included) */
int maxaveep; /* max averaging epoches */
int initrst; /* initialize by restart */
int outsingle; /* output single by dgps/float/fix/ppp outage */
char rnxopt[2][256]; /* rinex options {rover,base} */
int posopt[6]; /* positioning options */
int syncsol; /* solution sync mode (0:off,1:on) */
double odisp[2][6*11]; /* ocean tide loading parameters {rov,base} */
exterr_t exterr; /* extended receiver error model */
int freqopt; /* disable L2-AR */
char pppopt[256]; /* ppp option */
} prcopt_t;
typedef struct { /* solution options type */
int posf; /* solution format (SOLF_???) */
int times; /* time system (TIMES_???) */
int timef; /* time format (0:sssss.s,1:yyyy/mm/dd hh:mm:ss.s) */
int timeu; /* time digits under decimal point */
int degf; /* latitude/longitude format (0:ddd.ddd,1:ddd mm ss) */
int outhead; /* output header (0:no,1:yes) */
int outopt; /* output processing options (0:no,1:yes) */
int outvel; /* output velocity options (0:no,1:yes) */
int datum; /* datum (0:WGS84,1:Tokyo) */
int height; /* height (0:ellipsoidal,1:geodetic) */
int geoid; /* geoid model (0:EGM96,1:JGD2000) */
int solstatic; /* solution of static mode (0:all,1:single) */
int sstat; /* solution statistics level (0:off,1:states,2:residuals) */
int trace; /* debug trace level (0:off,1-5:debug) */
double nmeaintv[2]; /* nmea output interval (s) (<0:no,0:all) */
/* nmeaintv[0]:gprmc,gpgga,nmeaintv[1]:gpgsv */
char sep[64]; /* field separator */
char prog[64]; /* program name */
double maxsolstd; /* max std-dev for solution output (m) (0:all) */
} solopt_t;
typedef struct { /* file options type */
char satantp[MAXSTRPATH]; /* satellite antenna parameters file */
char rcvantp[MAXSTRPATH]; /* receiver antenna parameters file */
char stapos [MAXSTRPATH]; /* station positions file */
char geoid [MAXSTRPATH]; /* external geoid data file */
char iono [MAXSTRPATH]; /* ionosphere data file */
char dcb [MAXSTRPATH]; /* dcb data file */
char eop [MAXSTRPATH]; /* eop data file */
char blq [MAXSTRPATH]; /* ocean tide loading blq file */
char tempdir[MAXSTRPATH]; /* ftp/http temporaly directory */
char geexe [MAXSTRPATH]; /* google earth exec file */
char solstat[MAXSTRPATH]; /* solution statistics file */
char trace [MAXSTRPATH]; /* debug trace file */
} filopt_t;
B.5 URL List File for GNSS Data
包含网络中GNSS产品/数据的文件;RTKGET通过URL LIST下载网上的GNSS产品/数据。每一行为GNSS产品的下载链接,“#”后面的内容为注释;如下所示:
URL主要包括:
1、数据/产品类型,用“_”进行连接,
2、URL地址:两种方式
ftp://<host address>/<file path> OR http://<host address>/<file path>
ftp、http为下载协议;
<host address>服务器主机地址;
<file path>主机地址的下载路径,文件路径可以包含以下关键字,这些关键字由日期,时间,站点名称和环境变量替换。
3、当地/本地文件下载路径:
如果未在RTKGET中指定本地目录,则下载文件保存在目录中。 目录路径可以包含关键字与网址相同。
示例如下:
#-------------------------------------------------------------------------------
# URL_LIST.txt : url address list of gnss data for rtkget
#
# notes :
# keywords in a url address are replaced as follows.
#
# %Y -> yyyy : year (4 digits) (2000-2099)
# %y -> yy : year (2 digits) (00-99)
# %m -> mm : month (01-12)
# %d -> dd : day of month (01-31)
# %h -> hh : hours (00-23)
# %H -> a : hour code (a-x)
# %M -> mm : minutes (00-59)
# %n -> ddd : day of year (001-366)
# %W -> wwww : gps week (0001-9999)
# %D -> d : day of gps week (0-6)
# %s -> ssss : station name (lower-case)
# %S -> SSSS : station name (upper-case)
# %r -> rrrr : station name
# %{env} -> env : environment variable
#
# strings after # in a line are treated as comments
#
# version : $Revision:$ $Date:$
# history : 2012/12/28 1.1 new
#-------------------------------------------------------------------------------
# data type url Address default local directory
#! PRODUCT (CDDIS)
IGS_EPH ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W%D.sp3.Z c:\GNSS_DATA\product\%W
IGS_EPH_GLO ftp://cddis.gsfc.nasa.gov/gps/products/%W/igl%W%D.sp3.Z c:\GNSS_DATA\product\%W
IGS_CLK ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W%D.clk.Z c:\GNSS_DATA\product\%W
IGS_CLK_30S ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W%D.clk_30s.Z c:\GNSS_DATA\product\%W
IGS_ERP ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%W7.erp.Z c:\GNSS_DATA\product\%W
IGR_EPH ftp://cddis.gsfc.nasa.gov/gps/products/%W/igr%W%D.sp3.Z c:\GNSS_DATA\product\%W
IGR_CLK ftp://cddis.gsfc.nasa.gov/gps/products/%W/igr%W%D.clk.Z c:\GNSS_DATA\product\%W
IGR_ERP ftp://cddis.gsfc.nasa.gov/gps/products/%W/igr%W%D.erp.Z c:\GNSS_DATA\product\%W
IGU_EPH ftp://cddis.gsfc.nasa.gov/gps/products/%W/igu%W%D_%h.sp3.Z c:\GNSS_DATA\product\%W
IGU_ERP ftp://cddis.gsfc.nasa.gov/gps/products/%W/igu%W%D_%h.erp.Z c:\GNSS_DATA\product\%W
IGS_POS ftp://cddis.gsfc.nasa.gov/gps/products/%W/igs%yP%W.snx.Z c:\GNSS_DATA\product\%W
IGS_ZPD ftp://cddis.gsfc.nasa.gov/gps/products/troposphere/zpd/%Y/%n/%s%n0.%yzpd.gz c:\GNSS_DATA\product\%W
IGS_TEC ftp://cddis.gsfc.nasa.gov/gps/products/ionex/%Y/%n/igsg%n0.%yi.Z c:\GNSS_DATA\product\%W
IGR_TEC ftp://cddis.gsfc.nasa.gov/gps/products/ionex/%Y/%n/igrg%n0.%yi.Z c:\GNSS_DATA\product\%W
参考:
rtklib manual