Skip to content

Commit 1a0a618

Browse files
committed
2024-09-28
1. GREAT-PVT ver-1.0.0
1 parent 60c4a60 commit 1a0a618

715 files changed

Lines changed: 290550 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,79 @@
1-
# GREAT-PVT
1+
# GREAT-PVT: 武汉大学GREAT团队精密定位导航软件(内测版)
2+
3+
## 概述
4+
5+
&emsp;&emsp;GREAT (GNSS+ REsearch, Application and Teaching) 软件由武汉大学测绘学院设计开发,是一个用于空间大地测量数据处理、精密定位和定轨以及多源融合导航的综合性软件平台。<br />
6+
&emsp;&emsp;GREAT-PVT是GREAT软件中的一个重要模块,主要用于精密定位解算。软件中,核心计算模块使用C++语言(C++17)编写,辅助脚本模块使用Python3和C-Shell语言实现自动化数据处理。GREAT-PVT软件使用CMAKE工具进行编译管理,用户可以灵活选择GCC、Clang、MSVC等主流C++编译器。目前软件提供了Windows和Linux平台的命令行应用程序。<br />
7+
&emsp;&emsp;GREAT-PVT由2个可移植程序库组成,分别是LibGREAT和LibGnut。LibGREAT库主要用于PPP、RTK滤波解算,包括滤波估计中涉及的数据解码、存储以及PPP、PPP-AR、RTK算法的实现,LibGnut库来源于开源GNSS软件G-nut,包括GNSS数据的解码和存储以及基本参数配置模块。<br />
8+
&emsp;&emsp;GREAT-PVT软件主要特点包括:
9+
1. 支持GPS、GLONASS、Galileo、BDS-2/3系统
10+
11+
2. 支持多频PPP浮点解与固定解
12+
13+
3. 支持无电离层组合、非差非组合PPP观测值组合方式
14+
15+
4. 支持多频率多系统PPP浮点解与固定解
16+
17+
5. 支持双频、单双频混合RTK解算
18+
19+
20+
&emsp;&emsp;此外,软件包还提供批处理脚本和定位结果绘图脚本,便于用户对多天数据进行解算与结果分析。
21+
22+
## 软件包目录结构
23+
```shell
24+
GREAT-PVT_<ver>
25+
./bin Windows和Linux可执行程序 *
26+
./src 源代码 *
27+
./app GREAT-PVT主程序 *
28+
./LibGREAT PPP、PPP-AR、RTK解算库 *
29+
./LibGnut Gnut库 *
30+
./third-party 第三方库 *
31+
./sample_data 算例数据 *
32+
./PPPFLT_2023304 PPP算例 *
33+
./RTKFLT_2020351 RTK算例 *
34+
./util 脚本工具 *
35+
./batch_process PPP批处理脚本 *
36+
./plot 画图脚本 *
37+
./poleut1 地球定向参数生成程序 *
38+
./doc 文档 *
39+
GREAT_PPP.xml PPP配置文件模板 *
40+
GREAT_RTK.xml RTK配置文件模板 *
41+
GREAT-PVT_1.0.pdf GREAT-PVT用户指南 *
42+
```
43+
44+
## 安装和使用
45+
46+
参见GREAT-PVT_1.0.pdf
47+
48+
## 参与贡献
49+
50+
开发人员:
51+
52+
武汉大学GREAT团队, Wuhan University.
53+
54+
三方库:
55+
56+
* GREAT-PVT使用G-Nut库(http://www.pecny.cz)
57+
Copyright (C) 2011-2016 GOP - Geodetic Observatory Pecny, RIGTC.
58+
59+
* GREAT-PVT使用pugixml库(http://pugixml.org)
60+
Copyright (C) 2006-2014 Arseny Kapoulkine.
61+
62+
* GREAT-PVT使用Newmat库(http://www.robertnz.net/nm_intro.htm)
63+
Copyright (C) 2008: R B Davies.
64+
65+
* GREAT-PVT使用spdlog库(https://github.com/gabime/spdlog)
66+
Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
67+
68+
* GREAT-PVT使用Eigen库(https://eigen.tuxfamily.org)
69+
Copyright (C) 2008-2011 Gael Guennebaud
70+
71+
* 脚本工具使用部分FAST源码(https://github.com/ChangChuntao/FAST)
72+
Copyright (C) The GNSS Center, Wuhan University & Chinese Academy of Surveying and mapping.
73+
74+
## 下载地址
75+
76+
GitHub:https://github.com/GREAT-WHU/GREAT-PVT
77+
78+
欢迎加入QQ群(1009827379)参与讨论与交流。
79+

bin/Linux/GREAT_PVT

557 KB
Binary file not shown.

bin/Linux/libLibGREAT.so

2.76 MB
Binary file not shown.

bin/Linux/libLibGnut.so

5.54 MB
Binary file not shown.

bin/Windows/GREAT_PVT.exe

596 KB
Binary file not shown.

bin/Windows/LibGREATrd.dll

3.4 MB
Binary file not shown.

bin/Windows/LibGnutrd.dll

5.2 MB
Binary file not shown.

doc/GREAT-PVT_1.0.pdf

3.89 MB
Binary file not shown.

doc/GREAT_PPP.xml

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
<?xml version='1.0' encoding='utf-8'?>
2+
<config>
3+
<gen>
4+
<beg> 2024-02-09 00:00:00 </beg> <!--> begin time <!-->
5+
<end> 2024-02-09 23:59:30 </end> <!--> end time <!-->
6+
<int> 30 </int> <!--> sampling interval <!-->
7+
<sys> GPS GAL BDS GLO </sys> <!--> system ex:GPS GAL GLO QZS BDS SBS <!-->
8+
<rec> GODN MBAR SGOC </rec> <!--> site (4-char upper) <!-->
9+
<est> FLT </est> <!--> Estimator :FLT <!-->
10+
</gen>
11+
12+
<inputs>
13+
<rinexo> <!--> rinex obs file <!-->
14+
obs\GODN00USA_R_20240400000_01D_30S_MO.24o
15+
obs\MBAR00UGA_R_20240400000_01D_30S_MO.24o
16+
obs\SGOC00LKA_R_20240400000_01D_30S_MO.24o
17+
</rinexo>
18+
<rinexn> gnss\brdc0400.24p </rinexn> <!--> rinex nav file <!-->
19+
<rinexc> gnss\COD0MGXFIN_20240400000_01D_30S_CLK.CLK </rinexc> <!--> precise satellite clock offset file <!-->
20+
<sp3> gnss\COD0MGXFIN_20240400000_01D_05M_ORB.SP3 </sp3> <!--> precise orbit file <!-->
21+
<de> model\jpleph_de405_great </de> <!--> Planetary ephemeris file <!-->
22+
<atx> model\igs20_2290.atx </atx> <!--> Antenna correction file <!-->
23+
<blq> model\oceanload </blq> <!--> oceanload file <!-->
24+
<eop> model\poleut1 </eop> <!--> ERP file <!-->
25+
<bias> gnss\CAS0MGXRAP_20240400000_01D_01D_DCB.BSX </bias> <!--> DCB file <!-->
26+
<upd> upd\upd_wl_2024040_GREC upd\upd_nl_2024040_GREC </upd> <!--> uncalibrated phase delay, for fixing ambiguity <!-->
27+
</inputs>
28+
29+
<outputs append="false" verb="0"> <!--> output file:whether append & verb:the larger the value,the more detailed the output log. <!-->
30+
<log type="CONSOLE" name="ppp" level="INFO"/> <!--> log file <!-->
31+
<ppp> .\result\$(rec)-PPP </ppp> <!--> ppp log file <!-->
32+
<flt> .\result\$(rec)-PPP.flt </flt> <!--> result file <!-->
33+
</outputs>
34+
35+
<gps sigma_C="0.6" sigma_L="0.01"> <!--> GPS pseudorange sigma & phase sigma <!-->
36+
<sat> <!--> satellite prn <!-->
37+
G01 G02 G03 G04 G05 G06 G07 G08 G09 G10
38+
G11 G12 G13 G14 G15 G16 G17 G18 G19 G20
39+
G21 G22 G23 G24 G25 G26 G27 G28 G29 G30
40+
G31 G32
41+
</sat>
42+
<band> 1 2 </band> <!--> the satellite frequency, for example, C5X, is represented as 5 <!-->
43+
<freq> 1 2 </freq> <!--> satellite frequency, corresponding to band, optional value 1/2/3/4/5 <!-->
44+
</gps>
45+
<glo sigma_C="0.6" sigma_L="0.01"> <!--> GLO pseudorange sigma & phase sigma <!-->
46+
<sat>
47+
R01 R02 R03 R04 R05 R06 R07 R08 R09 R10
48+
R11 R12 R13 R14 R15 R16 R17 R18 R19 R20
49+
R21 R22 R23 R24
50+
</sat>
51+
<band> 1 2 </band>
52+
<freq> 1 2 </freq>
53+
</glo>
54+
<gal sigma_C="0.6" sigma_L="0.01"> <!--> GAL pseudorange sigma & phase sigma <!-->
55+
<sat>
56+
E01 E02 E03 E04 E05 E06 E07 E08 E09 E10
57+
E11 E12 E13 E14 E15 E16 E17 E18 E19 E20
58+
E21 E22 E23 E24 E25 E26 E27 E28 E29 E30
59+
E31 E32 E33 E34 E35 E36
60+
</sat>
61+
<band> 1 5 </band>
62+
<freq> 1 2 </freq>
63+
</gal>
64+
<bds sigma_C="0.6" sigma_L="0.01"> <!--> BDS pseudorange sigma & phase sigma <!-->
65+
<sat>
66+
C06 C07 C08 C09 C10
67+
C11 C12 C13 C14 C15 C16 C17 C18 C19 C20
68+
C21 C22 C23 C24 C25 C26 C27 C28 C29 C30
69+
C31 C32 C33 C34 C35 C36 C37 C38 C39
70+
C41 C42 C43 C44 C45 C46
71+
72+
</sat>
73+
<band> 2 6 </band>
74+
<freq> 1 2 </freq>
75+
</bds>
76+
<qzs sigma_C="0.6" sigma_L="0.01"> <!--> QZS pseudorange sigma & phase sigma <!-->
77+
<sat>
78+
J01 J02 J03 J04
79+
</sat>
80+
<band> 1 2 </band>
81+
<freq> 1 2 </freq>
82+
</qzs>
83+
84+
85+
<process>
86+
<phase> true </phase> <!--> use phase obs (true/false) <!-->
87+
<tropo> true </tropo> <!--> estimate trop param (true/false) <!-->
88+
<iono> true </iono> <!--> estimate iono param (true/false) <!-->
89+
<doppler> false </doppler> <!--> use doppler obs (true/false) <!-->
90+
<tropo_model> saastamoinen </tropo_model> <!--> trop model <!-->
91+
<sig_init_crd> 30 </sig_init_crd> <!--> initial sigma of coordinate <!-->
92+
<sig_init_vel> 10 </sig_init_vel> <!--> initial sigma of velocity <!-->
93+
<sig_init_ztd> 10 </sig_init_ztd> <!--> initial sigma of ztd <!-->
94+
<sig_init_amb> 30 </sig_init_amb> <!--> initial sigma of ambiguity <!-->
95+
<sig_init_gal> 10 </sig_init_gal> <!--> initial sigma of Galileo isb/ifb <!-->
96+
<sig_init_glo> 10 </sig_init_glo> <!--> initial sigma of GLONASS isb/ifb <!-->
97+
<sig_init_bds> 10 </sig_init_bds> <!--> initial sigma of BDS isb/ifb <!-->
98+
<sig_init_vion> 100 </sig_init_vion> <!--> initial sigma of slant iono <!-->
99+
<minimum_elev> 7 </minimum_elev> <!--> cut-off satellite elevation(deg) <!-->
100+
<obs_combination> RAW_ALL </obs_combination> <!--> obs comb type (IONO_FREE/RAW_ALL) <!-->
101+
<max_res_norm> 3 </max_res_norm> <!--> posterior residual threshold <!-->
102+
<crd_constr> est </crd_constr> <!--> coordinate constraint method (EST/FIX/KIN) <!-->
103+
<pos_kin> false </pos_kin> <!--> kinematic mode (true/false) <!-->
104+
<min_sat> 5 </min_sat> <!--> min satellite number <!-->
105+
<obs_weight> SINEL </obs_weight> <!--> weigh model of obs <!-->
106+
<bds_code_bias_corr> true </bds_code_bias_corr> <!--> whether to correct BDS codeBias (true/false) <!-->
107+
<slip_model> default </slip_model> <!--> cycle slip detect method <!-->
108+
<frequency> 2 </frequency> <!--> frequency number <!-->
109+
</process>
110+
111+
112+
<!--filter
113+
method_flt filter method(srcf, kalman)
114+
noise_crd noise of rec coordinate
115+
noise_vel noise of rec velocity
116+
noise_clk noise of rec clk
117+
noise_dclk noise of rec dclk
118+
noise_vion noise of iono
119+
rndwk_ztd random walk of ztd
120+
rndwk_amb random walk of ambiguity
121+
rndwk_glo random walk of GLONASS isb/ifb
122+
rndwk_gal random walk of Galileo isb/ifb
123+
rndwk_bds random walk of BDS isb/ifb
124+
rndwk_gps random walk of BDS ifb
125+
/-->
126+
<filter
127+
method_flt="srcf"
128+
noise_crd="0"
129+
noise_vel="1"
130+
noise_clk = "1000"
131+
noise_dclk="100"
132+
noise_vion="100"
133+
rndwk_ztd="6"
134+
rndwk_amb="0"
135+
rndwk_glo = "20"
136+
rndwk_gal = "20"
137+
rndwk_bds = "20"
138+
rndwk_gps = "20"
139+
/>
140+
141+
142+
<ambiguity>
143+
<fix_mode> SEARCH </fix_mode> <!--> ambiguity fixed mode (NO/SEARCH) <!-->
144+
<upd_mode> UPD </upd_mode> <!--> upd mode <!-->
145+
<part_fix> YES </part_fix> <!--> part_fix (YES/NO) <!-->
146+
<part_fix_num> 4 </part_fix_num> <!--> threshold in partial ambiguity fixing <!-->
147+
<ratio> 2.0 </ratio> <!--> threshold in LAMBDA method <!-->
148+
<set_refsat> YES </set_refsat> <!--> set_refsat (YES/NO) <!-->
149+
<min_common_time> 1 </min_common_time> <!--> minimum common time/seconds <!-->
150+
<extra_widelane_decision maxdev = "0.07" maxsig = "0.10" alpha = "1000" /> <!--> extra widelane setting, alpha&maxdev(Confidence interval parameter), maxsig(maximum sigma) <!-->
151+
<widelane_decision maxdev = "0.25" maxsig = "0.12" alpha = "1000" /> <!--> widelane setting, option: alpha&maxdev(Confidence interval parameter), maxsig(maximum sigma) <!-->
152+
<narrowlane_decision maxdev = "0.35" maxsig = "0.12" alpha = "1000" /> <!--> narrowlane setting, option: alpha&maxdev(Confidence interval parameter), maxsig(maximum sigma) <!-->
153+
</ambiguity>
154+
155+
</config>

doc/GREAT_RTK.xml

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2+
<!DOCTYPE config>
3+
4+
<config>
5+
<gen>
6+
<beg> "2020-12-16 07:00:00" </beg> <!--> begin time <!-->
7+
<end> "2020-12-16 08:50:00" </end> <!--> end time <!-->
8+
<sys > GPS GAL BDS </sys> <!--> system ex: GAL GLO QZS BDS SBS <!-->
9+
<rec> SEPT WUDA </rec> <!--> site (4-char upper) <!-->
10+
<base> WUDA </base> <!--> base site (4-char upper) <!-->
11+
<rover> SEPT </rover> <!--> rover site (4-char upper) <!-->
12+
<int> 1 </int> <!--> sampling interval <!-->
13+
</gen>
14+
15+
<receiver>
16+
<rec id="WUDA" X="-2267761.0442" Y="5009370.8908" Z="3220970.5961"/> <!--> base site coordinate <!-->
17+
</receiver>
18+
19+
<inputs>
20+
<rinexo> obs\SEPT3510.20O obs\WUDA3510.20O </rinexo> <!--> rinex obs file <!-->
21+
<rinexn> gnss\brdm3510.20p </rinexn> <!--> rinex nav file <!-->
22+
<atx> model\igs20_2290.atx </atx> <!--> Antenna correction file <!-->
23+
<blq> model\oceanload </blq> <!--> oceanload file <!-->
24+
<de> model\jpleph_de405_great </de> <!--> Planetary ephemeris file <!-->
25+
<eop> model\poleut1 </eop> <!--> ERP file <!-->
26+
</inputs>
27+
28+
29+
<outputs>
30+
<log type="BASIC" level="INFO" /> <!--> log file <!-->
31+
<ppp> result/$(rec)-RTK </ppp> <!--> RTK log file <!-->
32+
<flt> result/$(rec)-RTK.flt </flt> <!--> result file <!-->
33+
</outputs>
34+
35+
<process>
36+
<phase> true </phase> <!--> use phase obs (true/false) <!-->
37+
<tropo> false </tropo> <!--> estimate trop param (true/false) <!-->
38+
<iono> false </iono> <!--> estimate iono param (true/false) <!-->
39+
<doppler> false </doppler> <!--> use doppler obs (true/false) <!-->
40+
<tropo_model> saastamoinen </tropo_model> <!--> trop model <!-->
41+
<sig_init_crd> 30 </sig_init_crd> <!--> initial sigma of coordinate <!-->
42+
<sig_init_vel> 10 </sig_init_vel> <!--> initial sigma of velocity <!-->
43+
<sig_init_ztd> 10 </sig_init_ztd> <!--> initial sigma of ztd <!-->
44+
<sig_init_amb> 30 </sig_init_amb> <!--> initial sigma of ambiguity <!-->
45+
<sig_init_gal> 10 </sig_init_gal> <!--> initial sigma of Galileo isb/ifb <!-->
46+
<sig_init_glo> 10 </sig_init_glo> <!--> initial sigma of GLONASS isb/ifb <!-->
47+
<sig_init_bds> 10 </sig_init_bds> <!--> initial sigma of BDS isb/ifb <!-->
48+
<sig_init_vion> 100 </sig_init_vion> <!--> initial sigma of slant iono <!-->
49+
<minimum_elev> 7 </minimum_elev> <!--> cut-off satellite elevation(deg) <!-->
50+
<obs_combination> RAW_MIX </obs_combination> <!--> obs comb type <!-->
51+
<max_res_norm> 3 </max_res_norm> <!--> posterior residual threshold <!-->
52+
<pos_kin> true </pos_kin> <!--> kinematic mode (true/false) <!-->
53+
<min_sat> 5 </min_sat> <!--> min satellite number <!-->
54+
<obs_weight> SINEL </obs_weight> <!--> weigh model of obs <!-->
55+
<basepos> CFILE </basepos> <!--> Base station coordinate acquisition method(CFILE/spp) <!-->
56+
<bds_code_bias_corr> true </bds_code_bias_corr> <!--> whether to correct BDS codeBias (true/false) <!-->
57+
<slip_model> default </slip_model> <!--> cycle slip detect method <!-->
58+
<frequency> 2 </frequency> <!--> frequency number <!-->
59+
</process>
60+
61+
62+
<!--filter
63+
method_flt filter method(srcf, kalman)
64+
noise_crd noise of rec coordinate
65+
noise_vel noise of rec velocity
66+
noise_dclk noise of rec dclk
67+
rndwk_ztd random walk of ztd
68+
rndwk_amb time interval of ambiguity reset
69+
/-->
70+
<filter
71+
method_flt="kalman"
72+
noise_crd="30"
73+
noise_vel="1"
74+
noise_dclk="100"
75+
rndwk_ztd="6"
76+
reset_amb="0"
77+
/>
78+
79+
80+
<ambiguity>
81+
<fix_mode> SEARCH </fix_mode> <!--> ambiguity fixed mode (NO/SEARCH) <!-->
82+
<part_fix> YES </part_fix> <!--> part_fix (YES/NO) <!-->
83+
<part_fix_num> 3 </part_fix_num> <!--> threshold in partial ambiguity fixing <!-->
84+
<ratio> 2.5 </ratio> <!--> threshold in LAMBDA method <!-->
85+
<min_common_time> 0 </min_common_time> <!--> minimum common time/seconds <!-->
86+
<extra_widelane_decision maxdev = "0.1" maxsig = "0.10" alpha = "1000" /> <!--> extra widelane setting, alpha&maxdev(Confidence interval parameter), maxsig(maximum sigma) <!-->
87+
<widelane_decision maxdev = "0.275" maxsig = "0.10" alpha = "1000" /> <!--> widelane setting, option: alpha&maxdev(Confidence interval parameter), maxsig(maximum sigma) <!-->
88+
<narrowlane_decision maxdev = "0.375" maxsig = "0.10" alpha = "1000" /> <!--> narrowlane setting, option: alpha&maxdev(Confidence interval parameter), maxsig(maximum sigma) <!-->
89+
</ambiguity>
90+
91+
<bds sigma_C="3" sigma_L="0.03" > <!--> BDS pseudorange sigma & phase sigma <!-->
92+
<freq> 1 2 </freq> <!--> the satellite frequency, for example, C5X, is represented as 5 <!-->
93+
<band> 2 6 </band> <!--> satellite frequency, corresponding to band, optional value 1/2/3/4/5 <!-->
94+
</bds>
95+
96+
<gps sigma_C="2" sigma_L="0.02" >
97+
<freq> 1 2 </freq>
98+
<band> 1 2 </band>
99+
</gps>
100+
101+
<gal sigma_C="3" sigma_L="0.03" >
102+
<freq> 1 2 </freq>
103+
<band> 1 5 </band>
104+
</gal>
105+
106+
<glo sigma_C="4" sigma_L="0.04" >
107+
<freq> 1 2 </freq>
108+
<band> 1 2 </band>
109+
</glo>
110+
111+
<qzs sigma_C="0.6" sigma_L="0.01" >
112+
<freq> 1 2 </freq>
113+
<band> 1 2 </band>
114+
</qzs>
115+
116+
117+
</config>
118+
119+

0 commit comments

Comments
 (0)