PPPwizard1.4.3软件使用说明中文翻译稿

news2024/11/24 14:25:56

PPP软件包使用说明(版本1.4.3)

1. 交付包

PPPWizardxy内容是按照以下模式组成:

PPPWizardxy
|-- PPPSoftwarePackage_v1.4.3.pdf
|-- RTRover
|-- compile.sh
|-- generateLowLevel.cpp
|-- getStream.cpp
|-- laurichesse_ion_gnss_2015_september_bdp.pdf
|-- processLowLevel.cpp
|-- processStream.cpp
|-- rtklib
|-- tst

2. 包装内容

该软件包包含以下项目:

  • “rtklib”目录包含修改后的rtklib库源文件,用于解码RTCM相位偏差消息(1265)
  • “rtrover”目录包含PPP实现(这是一个与BNC接口兼容的rtrover库)
  • 可执行文件的源文件(getStream、processStream、processLowLevel、generateLowLevel)
  • “tst”目录包含每个可执行文件的示例。
  • 编译和配置文件
  • 文档
  • 来自用户的反馈

3. 软件包的编译

3.1. LINUX下编译

要编译库和可执行文件,请在命令窗口运行“./compile.sh”。这将生成rtklib和rtrover库,以及四个可执行文件getStream、processStream、processLowlevel和generateLowLevel。

3.2. MOBAXTERM下的编译(WINDOWS)

按照以下两个步骤在MobaXterm中进行编译

  1. 第1步:安装mobaxterm和插件development.mxt3
  2. 第2步:包含以下编译指令: CFLAGS=“-O3 -lm -lpthread -lrt -static”
    [如果没有静态标志,仍会生成可执行程序,但会因共享库错误而无法运行]
  3. 第3步:在命令窗口中的运行 ./compile.sh

3.3. MINGW (WINDOWS)下编译

在Windows环境下用同样的方法进行编译

  1. 第1步:使用以下软件包安装MinGW免费软件
    • mingw-developer-tools
    • mingw32-base
    • mingw32-gcc-g++
    • msys-base

  2. 步骤2:编辑PATH环境:

<dir>\msys\1.0\bin
<dir>\bin

<dir>是MinGW安装目录

  1. 步骤3:修改RTRover\Makefile文件中的编译选项:
CFLAGS=-O3 -DRTRover_STATIC_LIB
  1. 步骤4:修改文件compile.sh中的编译选项:
CFLAGS="-O3 -Wl,--stack,4194304 -DRTRover_STATIC_LIB -lm -lWs2_32 -lWinmm"
  1. 步骤5:在命令窗口中运行 sh compile.sh

4. 可执行文件说明

从1.4版本开始,所有输出文件都带有一个新的完好性指示符字段(最后一列),用于描述精密定位的完好性。

4.1. GETSTREAM可执行文件

该可执行文件使用rtklib库从多种数据源和格式(本地接收机、远程接收机(NTRIP)、BRDC、SSR校正等)中恢复一系列数据流。然后,对数据流进行同步、组合并转换成ASCII码。输出文件是独立的,包含PPP所需的所有信息。可以直接处理该文件(例如在管道中)或存储该文件以供回放。

下面给出一条典型的运行命令:

./getStream <conf_get.txt > stream.out

getStream的配置文件来自标准输入,符合以下约定:
• 流地址(rtklib约定)
• 源类型(rtklib约定)
• 流格式(rtklib约定,用于进一步解码)
在配置文件中,接收机必须放在其他流之前。
输出文件写在标准输出。
下面是一个输出示例:

要停止getStream,请使用带有getStream进程PID的kill命令。

4.2. PROCESSSTREAM可执行文件

processStream可执行文件使用getStream恢复的数据执行PPP计算。它使用以下命令:


./processStream –conf conf_process.txt –rover rover.txt –dcb "*.DCB" [-verbose] [-lowlevel]< stream.out

其中:

  • conf_process.txt是通用配置文件(每个流动站的配置都是相同的)
  • rover.txt包含每个接收机的名称(与getStream配置文件的顺序相同)和流动站先验坐标(如果未使用,则为0.0 0.0 0.0)
  • "*.DCB”是PPP (P1C1,P1P2,P2C2)使用的码偏差文件。这些文件可从以下位置获得ftp://ftp.aiub.unibe.ch/CODE/ 大约一个月需要更换一次。
  • 详细:详细模式(仅供内部使用)
  • 原始数据:生成观测文件(lowlevel.txt)

从1.4版本开始,引入了电离层VTEC(垂直总电子含量)。为了对其进行测试,将配置文件中SigMesIono的第3列设置为“0.0”,然后与1.3版本中对应相同结果的数据进行对比。

4.2.1. 配置文件

下表显示了通用配置文件中每个条目的结构:

参数类型/单位说明典型值
mode枚举处理模式:
mode_PPP_双频,(PPP bi)
mode_SPP_双频,(SPP bi)
mode_PPP_单频,(PPP mono)
mode_SPP_单频,(SPP mono)
mode_PPP_AR,(模糊度固定的PPP)
mode_PPP_AR
antexFileName字符串天线文件名
AR/JumpsIndicators布尔AR/周跳标识(窄巷/宽巷/超宽巷)1 1 0
useGPS布尔使用GPS1
useGlonass布尔使用Glonass1
useGalileo布尔使用伽利略1
useBeidou布尔使用北斗0
sbasCorrection布尔0 -> RTIGS钟差改正,1 -> SBAS钟差改正0
convergence整型/秒收敛时间。连续两次收敛之间的时间(用于收敛时间测试),如果没有收敛,则为00
outputVerbose布尔输出详细信息0
step实数/秒观测量间隔
maxAge实数/秒RTCM改正数的最大龄期10
stepMin整型/无符号AR之前的最小步长3600
maxReject整型/无符号RAIM失败最大次数2
raim布尔开启RAIM算法1
mapThr实数/无符号对流层标测阈值(1/sin(ele))6
sigIniTro实数/m对流层初始噪声0.5
sigModTro实数/mtropo模型噪声0.000005
nbSatFixAmb整型/无符号AR的最少卫星数0
threAmb实数/mAR的模糊阈值0.01
sigIniBiasClk实数/m初始时钟误差噪声0
sigModBiasClk实数/m模型时钟误差噪声0.001
sigIniIono实数/m初始电离层噪声10
sigModIono实数/m模型电离层噪声0.002
sigMeasIono实数/m电离层测量噪声1
ionoThr实数/m电离层测量拒绝阈值5
sigMeasTropo实数/m对流层测量噪声0.1
tropoThr实数/mtropo测量拒绝阈值1
sigIniPos实数/m初始位置噪声50
0(位置固定)
sigModPos实数/m模型位置噪声10(移动接收机)
0.02(静态接收机)
0(位置固定)
preDTMax实数/秒最大测量间隔300
codeThr实数/m伪码测量拒绝阈值10
phaseThr实数/m相位测量抑制阈值0.05
sigMeasCodeGps实数/mGPS伪码测量噪声1
sigMeasPhaseGps实数/mGPS相位测量噪声0.01
sigMeasCodeGlo实数/mGlonass伪码测量噪声5
sigMeasPhaseGlo实数/mGlonass相位测量噪声0.01
sigMeasCodeGal实数/m伽利略伪码测量噪声1
sigMeasPhaseGal实数/m伽利略相位测量噪声0.01
sigMeasCodeBds实数/m北斗伪码测量噪声 (GEO/IGSO/MEO)5 5 5
sigMeasPhaseBds实数/m北斗相位测量噪声(GEO/IGSO/MEO)0.01 0.01 0.01
Smooth实数/无符号多普勒平滑系数不平滑时为0
平滑时为0.95

4.2.2. 流动站文件

流动站文件中每一行包含一个流动站。每行具有以下格式:

字段说明
Name流动站名称
X流动站先验位置X ITRF 08
Y流动站先验位置Y ITRF 08
Z流动站先验位置Z ITRF 08

4.2.3. 输出格式

处理的输出结果中每一行包含一个历元。每行具有以下格式:

字段说明
Date日*
Hour小时*
Rover流动站名称
PPP modeSPP、PPP等
Measurements观测量总数
ExtraWidelanes#超宽巷固定的测量值
Widelanes#宽巷固定的测量值
Narrowlane#窄巷固定的测量值
Xx(m,ITRF 08)
CovXX方差(m)
YY(m,ITRF 08)
CovYY方差(m)
ZZ(m,ITRF 08)
CovZZ方差(m)
DryTropo对流层干延迟(m)
Tropo估计的对流层湿延迟(m)
Cov tropo对流层湿延迟的方差(m)
Integrity完好性标识

如果在配置文件中激活了outputVerbose,则输出具有以下格式:

字段说明
Date日*
Hour小时*
Rover流动站名称
PPP modeSPP、PPP等
HstaGPSGPS钟差
HstaGloGlo钟差
HstaGalGal钟差
HstaBdsBds钟差
Measurements观测量总数
ExtraWidelanes#超宽巷固定的观测量
Widelanes#宽巷固定的观测量
Narrowlane#窄巷固定的观测量
Xx(m,ITRF 08)
CovXX方差(m)
Yy(m,ITRF 08)
CovYY方差(m)
ZZ(m,ITRF 08)
CovZZ 方差(m)
DryTropo对流层干延迟(m)
Tropo估计的对流层湿延迟(m)
Cov tropo对流层湿延迟的方差(m)
Integrity完好性标识

4.2.4. 详细选项

processStream的verbose选项([-verbose])会在stderr上输出以下信息。该输出信息中每一行包含一个历元。每行具有以下格式:

字段说明
Rover流动站号
Date
Hour小时
Tropo对流层

对于每个星座和每颗卫星:

字段说明
PRN例如:G01,R10,E11,C06
iono电离层

为了使用详细选项输出,软件内部定义了特定的RTCM消息(99)。该RTCM消息可以由“decode_tropo_iono”函数读取并解析。

4.2.5. 原始文件

下表显示了原始文件([-lowlevel])的每一行的结构:

字段序号字段单位说明
1流动站号-
2卫星-示例G01
3CNES·儒略日第一天1950年1月1日
4天内秒
5C1/P1/E1m伪距
6P2m
7C6(北斗)m
8C5/E5a(伽利略)m
9E5b/C7(北斗)m
10L1相位
11L2
12L6(北斗)
13L5/L5a(伽利略)
14L5b/L7(北斗)
15D1Hz多普勒
16D2Hz
17D6(北斗)Hz
18D5/D5a(伽利略)Hz
19D5b/D7(北斗)Hz
20Slot/typeBds-Glo卫星频点或BDS卫星类型:
0:GEO,1:IGSO,2:MEO
21Xm卫星位置.信号发射时的APC
22Ym
23Zm
24Hm信号发射时刻的卫星钟差,包括相对论效应
25Vxm/s卫星速度
26Vym/s
27Vzm/s
28电离层延迟m在L1频率上的斜电离层延迟
29电离层延迟来源-1:精确,2:SBAS,3:全球
30对流层延迟m天顶对流层延迟
31偏航卫星偏航角
32bC1mL1频率上的码偏差.与字段5和字段24一致
33bP2m
34bC6m
35bC5m
36bE5bm
37bL1L1频率上的相位偏差.与字段10和字段24一致
38bL2
39bL6
40bL5
41bL5b
42N1指示器0/1对应N1整周模糊度的偏差
43Wl指示器0/1对应W1整周模糊度的偏差
44不连续计数-不连续历元的计数值

*日期是间隔的倍数。

4.3. 完整的PPP流程

在conf_get.txt文件中更新您的配置。
执行如下命令启动整个PPP流程(数据流采集和处理):

./getStream <conf_get.txt | ./processStream –conf conf_process.txt –rover rover.txt –dcb "*.DCB"

下面是一个输出示例:
在这里插入图片描述

4.4. GENERATELOWLEVEL可执行文件

从1.4版本开始增加了电离层SBAS接口。增加了对GLONASS的RF信道的警告(当文件不存在时)。
generateLowLevel可执行文件可用于从输入文件(dcb、atx…)创建低级文件。它使用以下命令:

./generateLowlevel –rinex rinex.rnx -sp3 ephem.sp3 –clk clock.clk –bias bias.bia –atx igs.atx –dcb "*.DCB" -chan channelGlo.txt > lowlevel.txt

其中:

  • rinex.rnx:测量文件
  • ephem.sp3:星历文件
  • clock.clk:钟差文件
  • bias.bia: sinex格式的偏差文件(如果使用了GRG产品,则无需为A.R .指定此文件)。
  • igs.atx是天线文件名
  • "*.DCB”是PPP (P1C1,P1P2,P2C2)使用的码偏差文件。这些文件可从以下地址获得ftp://ftp.aiub.unibe.ch/CODE/ 大约一个月需要更换一次。
  • channelGlo.txt是一个包含每个Glonass卫星通道的文件

(请参阅4.2.5 中关于原始文件的描述。)

下面是一个输出示例:
在这里插入图片描述

4.5. PROCESSLOWLEVEL可执行文件

processLowLevel可执行文件使用从原始文件中读取的数据来执行PPP计算。它使用以下命令:

./processLowlevel –conf conf_process.txt –rover rover.txt < lowlevel.txt

其中:

  • conf_process.txt是通用配置文件(每个流动站的配置都是相同的),请参考4.2.1
  • rover.txt包含每个接收机的名称(与getStream配置文件的顺序相同)和流动站先验位置(如果未使用,则为0.0 0.0 0.0),请参考4.2.2

原始文件的描述参考4.2.5。该文件可通过使用processStream的[-lowlevel]选项 (参考4.2)或者由generateLowLevel可执行文件生成。

下面是一个输出示例:
在这里插入图片描述
从1.4版本开始,processLowlevel可执行程序中的详细模式与processStream中已定义的详细模式使用方式一致,以协调这两个进程。

5. 算法的描述

不同的算法、模型和软件的内部结构在本软件包的附件文档中进行了描述。

D.Laurichesse, A. Privat, “An Open-source PPP Client Implementation for the CNES PPP-WIZARD Demonstrator”, Proceedings of the ION GNSS+ 2015, September 2015, Tampa, Florida
http://www.ppp-wizard.net/Articles/laurichesse_ion_gnss_2015_september_bdp.pdf

6. 例子

“tst”目录包含一些示例及其配置文件和相关结果。要执行所有这些示例,请使用命令: ./test.sh.

这些示例是通过以下不同步骤创建的:

  • 使用getStream进行数据采集:
    getStream < conf_get.txt > brut_gamg.txt
    要停止getStream,请使用带有getStream进程PID的kill命令。“conf_get.txt”文件的内容是:
    login:password@94.23.202.142:2101/GAMG00KOR0 7 1
    login:password@94.23.202.142:2101/SSRA00CNE0 7 1
    login:password@94.23.202.142:2101/RTCM3EPH-MGEX 7 1

  • 使用进程流的PPP计算:
    执行三种不同的PPP计算。
    (1). 使用GPS和Glonass的PPP_SF模式:

zcat brut_gamg.txt.gz | ../processStream -conf conf_process_PPP_SF_GPSGLO.txt -rover rover_gamg.txt -dcb "*.DCB" >output_PPP_SF_GPS

(2). 使用GPS和Glonass的PPP_AR模式:

zcat brut_gamg.txt.gz | ../processStream -conf conf_process_PPP_AR_GPSGLO.txt - rover rover_gamg.txt -dcb "*.DCB" >output_PPP_AR_GPSGLO

(3).使用GPS、Glonass和Galileo的PPP_AR模式:

zcat brut_gamg.txt.gz | ../processStream -conf conf_process_PPP_AR_ALL.txt -rover rover_gamg.txt -dcb "*.DCB" >output_PPP_AR_ALL
  • 用进程流生成原始文件;
zcat brut_gamg.txt.gz | ../processStream -conf conf_process_PPP_AR_ALL.txt -rover rover_gamg.txt -dcb "*.DCB" -lowlevel >output_PPP_AR_GPSGLO
  • 使用processLowlevel的PPP计算:
zcat lowlevel_gamg.txt.gz | ../processLowLevel -conf conf_process_PPP_AR_GPSGLO.txt - rover rover_gamg.txt > output_lowlevel 2>/dev/null
  • 使用generateLowLevel生成原始文件:
time ../generateLowLevel -rinex "GAMG*.rnx" -sp3 "cnt21102.sp3" -clk "cnt21102.clk" - atx igs14_2108.atx -dcb "P1*.DCB" -chan channelGlo.txt >meas_gamg.spa

所有输入和输出文件都位于“tst”目录中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM内存模型的演变

1&#xff0c;背景 class文件、类的加载过程。我们的class文件就要进入到JVM内存里&#xff0c;我们沿着经典的JDK1.6&#xff0c;JDK1.7&#xff0c;JDK1.8看看在其中都经历了哪些改变 概念的统一&#xff1a; 方法区&#xff1a; 方法区可以看作是JVM逻辑上管理一片区域的…

深度学习-第T5周——运动鞋品牌识别

深度学习-第T5周——运动鞋品牌识别 深度学习-第T5周——运动鞋品牌识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目3、查看数据 四、数据预处理1、 加载数据1、设置图片格式2、划分训练集3、划分验证集4、查看标签 2、数据可视化3、检查数据4、配置数据集 …

微短剧“小阳春”,“爱优腾芒”抢滩登陆?

降本增效一整年&#xff0c;长视频平台们似乎扭转了市场对于它们“烧钱”的印象。 爱奇艺宣布2022全年盈利&#xff0c;腾讯视频宣布从去年10月起开始盈利&#xff0c;视频平台们结束了一场“无限战争”。 与此同时&#xff0c;随着短视频平台的崛起&#xff0c;视频内容的形…

从0到1带你构建——低代码开发入门案例

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端&#xff08;Node.js&#xff09; &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;…

【算法】欧拉路径的DFS存储顺序

欧拉路径和欧拉回路 对于无向图&#xff0c;所有边都是连通的。 &#xff08;1&#xff09;存在欧拉路径的充分必要条件&#xff1a;度数为奇数的点只能有0个或2个。 &#xff08;2&#xff09;存在欧拉回路的充分必要条件&#xff1a;度数为奇数的点只能有0个。 对于有向图&a…

jvm之字节码

写在前面 java字节码由单字节的指令(也叫做操作码)组成&#xff0c;但一个 byte 最多能够存储 256 个指令&#xff0c;够用吗&#xff1f;截止到目前是够的&#xff0c;因为指令的个数是200多一点&#xff0c;指令分为如下四类&#xff1a; 1&#xff1a;栈操作指令&#xff…

【前端基础知识】Vue中的变量不是响应式的吗?属性赋值后视图不变化的原因是什么?

目录 &#x1f914;问题&#x1f4dd;回答&#x1f3a8;使用场景动态添加属性动态添加数组元素 ❌注意事项$set只能在响应式对象上使用$set不能用于根级别的属性$set的性能问题 &#x1f4c4;总结 &#x1f914;问题 Vue是一款在国内非常流行的框架&#xff0c;采用MVVM架构&a…

数据库课设--基于Python+MySQL的餐厅点餐系统

文章目录 一、系统需求分析二、系统设计1. 功能结构设计2、概念设计2.2.1 bill_food表E-R图2.2.2 bills表E-R图2.2.3 categories E-R图2.2.4 discounts表 E-R图2.2.5 emp表E-R图2.2.6 food 表E-R图2.2.7 member表E-R图2.2.8 member_point_bill表E-R图2.2.9 servers表E-R图2.2.1…

五一出行!如何辨别偷拍设备

五一小长假即将到来&#xff0c;作为出行的重要一环&#xff0c;我们都希望能在旅途中享受安全与便捷。但不可避免的事&#xff0c;有些不法分子可能会通过安装针孔摄像头等方式进行非法监控。从表面上看&#xff0c;我们很难分辨。这些小小的设备&#xff0c;被伪装成日常用品…

elementUI组件库el-switch开关控件的样式设置,精细至开关内的文字、圆点、背景设置

开发项目时做一种开关控件样式&#xff0c;要求显示和隐藏两种状态下的文字、圆点、背景色等都有区别&#xff0c;就研究了一下&#xff0c;各种设置已在代码中标注&#xff0c;小白也可直接复制使用。 <el-table-column label"操作"><template slot-scope&…

【FPGA】Spartan®-7器件XC7S75-1FGGA484C、XC7S15-1FTGB196C现场可编程门阵列芯片

赛灵思 Spartan-7现场可编程门阵列采用运行频率超过200DMIP的MicroBlaze™软处理器&#xff0c;支持800Mb/s DDR3&#xff0c;基于28nm技术。FPGA是半导体器件&#xff0c;基于通过可编程互连系统连接的可配置逻辑块 (CLB) 矩阵。Spartan-7具有集成的模数转换器、专用安全特性以…

回溯算法经典面试题

⭐️前言⭐️ 本文汇总了常见的回溯算法题目&#xff0c;并将框架来进行运用&#xff0c;相信通过这篇文章&#xff0c;读者能够对回溯算法有一定了解。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更…

【MySQL入门指南】主键与唯一键的使用与区别

文章目录 一、主键1.基本语法2.使用案例 二、唯一键1.基本语法2.使用案例 一、主键 1.基本语法 -- 方式一 create table t5(id int primary key, ……); -- 设置id字段主键-- 方式二 create table t5(id int primary key,……primary key(id, ……); -- 每个表只能有一个主键…

商城订单模块实战 - 分库分表实战及海量数据处理

商城订单服务的实现 数据量 在设计系统&#xff0c;我们预估订单的数量每个月订单2000W&#xff0c;一年的订单数可达2.4亿。而每条订单的大小大致为1KB&#xff0c;按照我们在MySQL中学习到的知识&#xff0c;为了让B树的高度控制在一定范围&#xff0c;保证查询的性能&…

归一化层(BatchNorm、LayerNorm、InstanceNorm、GroupNorm)

参考博客 BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结 PyTorch学习之归一化层&#xff08;BatchNorm、LayerNorm、InstanceNorm、GroupNorm&#xff09; BN&#xff0c;LN&#xff0c;IN&#xff0c;GN从学术化上解释差异&#xf…

前端常见报错问题处理及技术点收集

一、报错问题收集 1、页面停留半小时左右不动卡死报错问题 Uncaught (in promise) TypeError: Failed to fetch dynamically imported module: http://10.233.54.161/assets/index.f8110bbc.js Promise.then (async) E main.c19f562f.js:39 f main.c19f562f.js:39 z.onClick…

Chatgpt聊天机器人系统开发

智能聊天ChatGPT的主要功能包括&#xff1a; 对话生成&#xff1a;生成连贯、自然的对话回复&#xff0c;与用户进行自然而流畅的对话。 意图识别&#xff1a;识别用户的意图和需求&#xff0c;并提供相应的回复或建议。 语义理解&#xff1a;理解用户的语言表达&a…

网络设备正常运行时间监控

什么是正常运行时间监控 正常运行时间是衡量服务器或任何网络组件对其最终用户的可用性的指标。定期检查网络设备可用性的过程称为正常运行时间监控。正常运行时间监控有助于确保所有组件保持正常运行&#xff0c;而不会停机。 正常运行时间监控是关键的网络监控功能&#xf…

Docker基础知识全解析

​ Docker是一个开源的容器化平台&#xff0c;可以让开发者在容器中构建、打包、运行和发布应用程序&#xff0c;从而实现应用程序的快速部署和可移植性。Docker将应用程序和依赖项打包在一个轻量级的可移植容器中&#xff0c;这个容器可以在任何平台上运行&#xff0c;不会受到…

Java 创建线程池的三种方式

一、 Java 创建线程池主要有以下三种方式 1. 默认线程池 ForkJoinPool 2. 通过调用执行器 Executors中的静态方法 3. 通过 ThreadPoolExector import java.util.concurrent.*;// 自定义线程工厂 class MyThreadFactory implements ThreadFactory {Override//ThreadFactory 主要…