-
Notifications
You must be signed in to change notification settings - Fork 108
Technical Aspects
The website is under maintenance
PRIDE PPP-AR is composed of CUI Aps(Command User Interface Application Programs, CUI Aps). The executable binary CUI APs included in the package require Linux environment. All of the main codes were written in Fortran. A series of tests are conducted on different operating systems with several gfortran versions. The tests results are listed as below (Table 1). Note that you can also try other Linux distribution and Fortran compiler, and tell us if you have any problems.
Fortran compiler, such as gfortran needs to be installed before installing PRIDE PPP-AR.
Table 1 PRIDE PPP-AR test results in different operating systems.
Platform version | gfortran version | Test result | Notes |
---|---|---|---|
Ubuntu14.04.4 (x64) | 4.8.4 | pass | 1. Pre-install ‘gfortran’ before installation; 2. Test result is consistent with the reference |
Ubuntu14.04.4 (x32) | 4.8.4 | pass | 1. Pre-install ‘gfortran’ before installation; 2. Test result is consistent with the reference |
Ubuntu16.04.11 (x64) | 5.4.0 | pass | Test result is consistent with the reference |
Ubuntu16.04.11 (x32) | 5.4.0 | pass | Test result is consistent with the reference |
Ubuntu18.04(x64) | 7.3.0 | pass | 1. Pre-install ‘gfortran’ before installation; 2. Test result is consistent with the reference |
Ubuntu20.04.4(x64) | 4.8.4 | pass | Test result is consistent with the reference |
Ubuntu20.04.4(x32) | 4.8.4 | pass | Test result is consistent with the reference |
Arch Linux (x64) | 8.2.1 | pass | Test result is consistent with the reference |
CentOS 6.5 (x64) | 4.4.7 | pass | Test result is consistent with the reference |
CentOS 7 (x64) | 4.8.5 | pass | Test result is consistent with the reference |
Debian 9.6 (x64) | 6.3.0 | pass | Test result is consistent with the reference |
Debian 8.11 (x64) | 4.9.2 | pass | 1. Pre-install ‘gfortran’ before installation; 2. Test result is consistent with the reference |
MacOS 10.14 | 10.2.0 | pass | 1. Pre-install ‘gfortran’ before installation; 2. Test result is consistent with the reference |
Copyright (C) 2022 by Wuhan University, All rights reserved.
This program is open-source software: you can redistribute it and/or modify it under the terms of the GNU General Public License (version 3) as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (version 3) for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ʺAS ISʺ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The structure of PRIDE PPP-AR is as follows (Table 2). We provide a complete set of cases in the “example/” folder for users to execute. The program will be executed automatically, and users do not need to use the files in other folders alone. However, in order to give users a better understanding of the software content, further instructions are given below.
Table 2 PRIDE PPP-AR structures
Directory / File | Directory / File | Instructions |
---|---|---|
\bin | Executable program | |
arsig | Ambiguity resolution | |
get_ctrl | Get configuration parameters | |
lsq | Least squares adjustment | |
otl | Calculation of tidal corrections | |
pbopos | Convert “pos_” files to PBO position series | |
redig | Residual editing | |
sp3orb | Satellite orbit format and coordinate system conversion | |
spp | Standard single point positioning | |
tedit | Pre-processing of observation data | |
xyz2enu | Convert ECEF position in “kin_file” to ENU | |
\scripts | Scripts that facilitate data process | |
lat2obx.py | Convert LEO attitude products to ORBEX format | |
leoatx.py | LEO antenna information | |
merge2brdm.py | Merge GPS and GLONASS broadcast ephemerides to brdm file | |
pdp3.sh | Automatic processing Shell script (Linux) | |
plotkin2pso.py | Python script for plotting LEO result | |
plotkin.py | Python script for plotting Kinematic results | |
plotkin.sh | GMT script for plotting Kinematic results | |
plotmhm.py | Python script for plotting MHM model | |
plotmhm.sh | GMT script for plotting MHM model | |
plotres.py | Python script for plotting Residuals | |
plotres.sh | GMT script for plotting Residuals | |
plottrack.py | Python script for plotting track | |
plotztd.py | Python script for plotting zenith troposphere delays | |
prepare_leodata.py | Prepare the data for low orbit satellites | |
\src | Source programs | |
arsig/ | Ambiguity resolution | |
header/ | Header files | |
lib/ | Library functions | |
lsq/ | Least squares adjustment | |
mhm/ | Multipath delay compensation | |
otl/ | Tidal load correction | |
orbit/ | Satellite orbit format and coordinate system conversion | |
redig | Residuals edit | |
spp/ | Standard point positioning | |
tedit/ | Pre-processing of observation data | |
utils/ | Universal tools | |
Makefile | Compile Command | |
\table | Dependent table files | |
FES2004S1.dat | Tidal load spherical harmonic coefficient model | |
Love_load_cm.dat | Load Love numbers | |
config_template | Configuration file template | |
file_name | File names definition | |
gpt3_1.grd | External grid file of meteorological parameters file (1° × 1°) | |
leap.sec | Leap seconds | |
oceanload | Ocean tide loading file | |
orography_ell | Global terrain file for VMF1 (2.5° × 2.5°) | |
orography_ell_1x1 | Global terrain file for VMF3 (1° × 1°) | |
sat_parameters | Satellite parameters | |
ANTEX files | Provide antenna offset data in need | |
install.sh | Installation script | |
ChangeLog.txt | Change log of the software | |
README.md | Software related information | |
LICENSE.txt | GPL3 protocol | |
\doc | Document flag | |
logo | The logo printed on screen when installing successfully | |
Manual | Manual of the software | |
\example | Examples | |
test.sh | Test script | |
\data | Data of examples | |
\results_ref | Reference results for examples |
Step 1: Make sure you have installed some essential programs in advance.
i.e. bash, make, gfortran, wget
Step 2: Run script ./install.sh to install the program automatically. (This script executes Makefile to build CUI APs and add CUI APs to system PATH (~/.PRIDE_PPPAR_BIN/*))
If you see the prompt shown in the picture below, the installation is completed normally.
![image16](https://private-user-images.githubusercontent.com/67955813/411873044-1fcf51bb-0629-4175-b96d-0316f828cae6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzMwNDQtMWZjZjUxYmItMDYyOS00MTc1LWI5NmQtMDMxNmY4MjhjYWU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkMjJlYTAxZWE2ZWM4OWEzY2RlY2IyMTQ2ZmFiNzIxYjkyNjBjNjM1NTllYzU3ZmE4ZDRjOTE4YWM4NTA0OWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.fv96gqFfXBCOXGqpObe_YQJJxHbHAUaW71c6xsdXd-g)
Figure 1 successfully installed interface
Step 3: Input y/Y to run the example.
The script test.sh in /example folder is used to validate the correctness and effectiveness of the installation and execution. The examples of PPP and PPP-AR will be are conducted after successfully running test.sh. The data processing procedure is conducted and some information is printed on the screen. After that, results files are created. Then compare the solution files between results and reference results to make sure the software installation is correct and valid.
Five examples are conducted by script test.sh. ‘static’ mode denotes that we regard the station as a static station, and estimate only one set of coordinates in the whole observation period. ‘kinematic’ denotes that we regard the station as a kinematic station, and estimate one set of coordinates every epoch. ‘high-rate’ denotes that we use high-frequency data, and estimate one set of coordinates every epoch. ‘PPP-AR’ achieves ambiguity resolution by utilizing code/phase bias products. ‘PPP-AR LAMBDA’ denotes the ambiguity resolution process is conducted by LAMBDA (Least-squares Ambiguity Decorrelation Adjustment) method.
Table 3 PRIDE PPP-AR test examples
Examples | Content |
---|---|
static-24h-fixed | Daily static solution, PPP-AR |
kinematic-24h-fixed | Daily kinematic solution, PPP-AR |
kinematic-1h-fixed-LAMBDA | Hourly kinematic solution, PPP-AR LAMBDA |
highrate-1h-fixed-LAMBDA | High-rate solution, PPP-AR |
tropo-24h-fixed | Daily tropospheric solution, PPP-AR |
After successfully running the test script, the solution files will be moved to the “/example/result” directory, as shown in Table 3. The solution files of “static-24h-fixed” are shown in Figure 2.
For the positioning results, the static solution stores it in the ‘pos_’ file, while the kinematic solution stores it in the ‘kin_’ file. Other kinematic solution files are consistent with static solution.
Figure 2 Solution files of “static-fixed-24h”
The solution files header recorded the basic configuration and corresponding file content description. Users can check the corresponding configuration information.
Figure 3 Header of solution files
The values of float ambiguities are recorded in ‘amb’ file. Running arsig will call ‘amb’ file to obtain initial value of ambiguity. The results in the ‘amb’ file are: Pseudo Random Noise code(PRN), ionosphere-free(IF) float ambiguity, wide-lane(WL) float ambiguity, MjdS, MjdE, RMS(IF/WL), mean elevation angle during the valid time.
![image19](https://private-user-images.githubusercontent.com/67955813/411873282-f38e5f86-ee93-425b-806f-902e333768f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzMyODItZjM4ZTVmODYtZWU5My00MjViLTgwNmYtOTAyZTMzMzc2OGYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1NjM1NTMxYjhiYTQyNTJmMjMzMWZiM2ZmNmY1NmYxOTIxYzM2YTBhYTY1NDVhYTFiYmRhOWFhY2MzOTlmMmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pPRbhPAzSsd0LjmFFiEZc6pMQP7OdPWuFGQRqRKlRH4)
Figure 4 The ambiguities (‘amb_’) file
Running arsig, ‘cst’ file will be produced. ‘cst’ file records the values of integer ambiguity. The header records the total number of observations for each system, fixed observations for wide-lane ambiguity, fixed observations for narrow-lane ambiguity and so on. The contents in the ‘cst’ file are: single-difference(SD) satellites, begin and end time, SD WL/NL ambiguity.
Figure 5 The integer ambiguities (‘cst_’) file
The parameters in the horizontal troposphere gradient (‘htg_’) file are: start time (GPS time), end time (GPS time), initial North-South troposphere gradient (m), North-South troposphere gradient correction (m), initial East-West troposphere gradient (m), East-West troposphere gradient correction (m).
![image21](https://private-user-images.githubusercontent.com/67955813/411873525-7b989822-e787-47d8-bceb-386569d7b6f5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzM1MjUtN2I5ODk4MjItZTc4Ny00N2Q4LWJjZWItMzg2NTY5ZDdiNmY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFkYWUyNjczZDlkYjAwYzg3NzliY2UwNDc0OTMzNTA2NDQ0Y2VmNWI4NWQwYzU2NWU5ZWRjMzJkMzU4YTFjZTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UiwfFy2uugomWeb77o4MhzX0vJIHwCfyMzvyaBivKO8)
Figure 6 The horizontal troposphere gradient (‘htg_’) file
The results of RINEX health diagnosis are recorded in ‘log’ file. In the part of the file header, the comment “INTERVAL” denotes interval of the file; the comment “AMB AI DAT-BOUNDARY” denotes the disposal of ambiguity at the day boundary; the comment “AMB MAX/TOT/NEW” denotes max numbers of ambiguity for epochs, total numbers of ambiguity and newly added ambiguity numbers after posterior residual diagnosis, respectively; the comment “EPO AVA/REM/NEW” denotes available numbers of epochs, deleted numbers of epochs and newly added epoch numbers after posterior residual diagnosis, respectively; the comment “EPO AVA/REM/NEW” denotes the number of available epochs, the number of deleted epochs, and the number of newly added epochs respectively; the comment “RES TIME BEG/LEN” denotes the start time and duration of the file(unit: second); the comment “SYS / FREQUENCY BAND” denotes the navigation systems and frequencies used for position solving.
In the part of file body, the line started with “TIM” records the time of health diagnosis data. And then next lines record the health diagnosis data. The comment “AMB” denotes adding a new ambiguity parameter. The content includes satellite number and ending time. The start time is the time which has been given at the line with “TIM”. The comment “DEL” denotes the data of the satellite deleted as bad data.
Figure 7 the RINEX health diagnosis (‘log_’) file
Static position results are recorded in the 'pos' file, with only one set of coordinates. The parameters in the ‘pos’ file are: station name, reference time (mjd / sod), coordinates (m), variance of X/Y/Z, covariance of XY/XZ/YZ, unit weighted mean errors (m), the number of observations used. This file only appears in the results of static solution. Besides, the pbopos (Table 2) can be used convert “pos_” file to PBO format.
![image23](https://private-user-images.githubusercontent.com/67955813/411873665-366e14a9-65ea-4b19-af93-bb1f0dee2220.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzM2NjUtMzY2ZTE0YTktNjVlYS00YjE5LWFmOTMtYmIxZjBkZWUyMjIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAxMTgyNzBmN2M2MDMyODg3ZTdkMDU5NGY0OGYwNzY3MDNlZDVjMGI3MzhhNzI2ODc0NGVmNTJkYmMwNzkyNzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-LUS3znsy7NIbb9TrfU_q3aMQ2AlMIGVKSHukU-Dhg4)
![image24](https://private-user-images.githubusercontent.com/67955813/411873992-4f32401f-d783-43ce-a997-894ad9acdc3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzM5OTItNGYzMjQwMWYtZDc4My00M2NlLWE5OTctODk0YWQ5YWNkYzNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA4NTljMjU3OGM5MjQ0YjA5ZmZmNTk0Yjg2MjJhMGFiZTQ1YzYyZTI5ZDZjNGI5NDIxMjc0MTQ0MDU4MGUwOWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QOOPs_icvPFlu9lMD9m0HDSB3gOMDuEbpjHk6s6p7aw)
Figure 8 The static station coordinate (‘pos_’) file
The results of receiver clock are recorded in ‘rck’ file. In the file body, there are records of epoch time and receiver clock.
![image25](https://private-user-images.githubusercontent.com/67955813/411874130-611792ff-e344-41ad-bf09-32a00c70602b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzQxMzAtNjExNzkyZmYtZTM0NC00MWFkLWJmMDktMzJhMDBjNzA2MDJiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIwNWQzNTc4NzczYzQyMjI4YzlkYzEzNTU5NTJkMmM0YTFiYThhNjhmNjkwMWI4ZGRlMDQ0OTE5ZjA1YzFjM2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.iZH5Qo9IAdtCYowSoggparyUro8d9VQigz-X_9Gl5uQ)
Figure 9 The receiver clock offset correction (‘rck_’) file
The values of residuals for observation are recorded in ‘res’ file, as an output of lsq. The parameters in ‘res’ file are: PRN, phase residual (m), pseudo-range residual (m), pseudo-range/phase weights in the observation equationSTDs, data status identification (0 denotes satellite existed, 1 denotes satellite newly added), satellite elevation (°), azimuth (°), observation types.
Figure 10 the residuals for observation (‘res_’) file
The statistic value of phase residuals are recorded in ‘stt’ file and you can check this file to obtain the quality of PPP result. The parameters in the ‘stt’ file are: RMS of phase residuals (mm), time series of residuals (mm).
Figure 11 the phase residual of single satellite (‘stt_’) file
The value of zenith tropospheric delay (ZTD) are record in ‘ztd’ file. The parameters in the ‘ztd’ file** are: epoch time, initial value of dry tropospheric delay (m), initial value of wet tropospheric delay (m), wet tropospheric delay correction (m).
![image29](https://private-user-images.githubusercontent.com/67955813/411874619-6228d2cc-af1d-4107-b44d-8a27843030b7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4NzQ2MTktNjIyOGQyY2MtYWYxZC00MTA3LWI0NGQtOGEyNzg0MzAzMGI3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk0MTFmM2ZhMjU0NmRhMWFkYTUxZjY2MzFkYmZmNGUwYzA1ZTllODhmYWI0MDQ0ZmVkMTJlOWMzNmJhOWUwOTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Mw2HCaB_1k8VPsJ10IgvyzqO4iV70N996xPr9c2StNs)
Figure 12 the zenith tropospheric delay (‘ztd_’) file
The results of position are recorded in ‘kin’ file when using the K model (kinematic), P model (piece-wise const) or L model (Low earth orbit). The coordinates in this file are recorded epoch by epoch. The parameters in the ‘kin’ file are: reference time, position coordinates X/Y/Z (m), position coordinates B/L/H (°/°/m), number of satellites, PDOP. Besides, You can run xyz2enu to get the corresponding topocentric coordinate.
Figure 13 the kinematic station coordinate (‘kin_’) file
Note: In P mode, the seconds within the day will be recorded in the form of "the midpoint of the effective time period of the coordinate parameter"; In K/L mode, the seconds within the day will be recorded in the form of "observation record time".
The MHM model is recorded in the ‘mhm_’ file. In the header section, "STATION" represents the station to which the model belongs; "MODEL DURATION" indicates the length of time for modeling; 'DAY LIST' indicates which days of data were involved in the modeling process; "SYS/FRENCY BAND/RMS (meter)/MEAN STD (meter)" indicates the constellations present in the model, their corresponding frequencies, the RMS and the mean STD orresponding to the constellation MHM model. The data recorded in each model includes azimuth, elevation, and pseudorange multipath correction values (unit: m), the number of pseudorange points in the grid, the STD of pseudorange multipath in the grid, and the correction value of grid carrier multipath (unit: m), the number of carrier points in the grid and the STD of carrier multipath in the grid.
Figure 14 the MHM model (‘mhm_’) file
As shown in Table 2, there are some useful scripts under the “scripts/” directory that facilitate users to process results. Note that if your Python 3 path is not “/usr/bin/python3”, you can use the which command to find the path of python3 in your computer.
which python3
/usr/local/bin/python3
Then, modify these python programs’ header to the corresponding path.
#!/usr/bin/env python3
#!/usr/local/bin/python3
Copy the modified python scripts to the path where software environment variables are located (~/.PRIDE_PPPAR_BIN/). Then you can use these python scripts directly in any directory.
cp plotkin.py ~/.PRIDE_PPPAR_BIN/
Moreover, the python scripts require some modules of python, i.e., NumPy and Matplotlib. The GMT5 is required if you use GMT scripts.
pbopos is used to convert PRIDE-PPPAR pos files to PBO position series. The usage of pbopos is as follows:
pbopos site path [x_ref y_ref z_ref]
where
Command | Description |
---|---|
site | is the station name |
path | is the “pos” file with path |
[x_ref y_ref z_ref] | is optional parameter, represent the reference coordinates |
xyz2enu is used to convert the geocentric coordinate to the topocentric coordinate (unit: m). The usage of xyz2enu is as follows:
xyz2enu kin_fl enu_fl [x_ref y_ref z_ref]
where
Command | Description |
---|---|
kin_fl | is the “kin” file |
enu_fl | is user-defined output file name |
[x_ref y_ref z_ref] | is optional parameter, represent the reference coordinates. If there is no input, the coordinates mean value of “kin” file will be used |
The plotkin.py script and the plotkin.sh script are used to plot position time series of K/P mode.
plotkin.py kin_filename png_filename [x_ref y_ref z_ref]
plotkin.sh kin_filename png_filename [x_ref y_ref z_ref]
where
Command | Description |
---|---|
kin_filename | is the “kin” file |
png_filename | is the PNG format picture name to be saved |
[x_ref y_ref z_ref] | is optional parameter, represent the reference coordinates. If there is no input, the coordinates mean value of ‘kin_’ file will be used |
Figure 15 Example of plotkin.py
There is a python script and a GMT script for plotting residuals in the ‘scripts’ folder named plotres.py and plotres.sh.
plotres.py res_filename PRN
plotres.sh res_filename png_filename
where
Command | Description |
---|---|
res_filename | denotes the “res” file |
PRN | denotes the satellite will be plotted in plotres.py, and the picture will be saved as “PRN.png” |
png_filename | denotes the PNG format picture will be saved in plotres.sh, and the plotres.sh will plot all satellites contained in the ‘res’ file |
Figure 16 Example of plotres.py
Trajectory can also be plotted via ‘kin’ file, i.e., through plottrack.py we can obtain the required picture.
plottrack.py kin_filename png_filename
where
Command | Description |
---|---|
kin_filename | is the “kin” file |
png_filename | is the PNG format picture name to be saved |
![image34](https://private-user-images.githubusercontent.com/67955813/411880319-12ca491c-7480-4dfb-9286-de9df901cae1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjM5MjMsIm5iZiI6MTczOTQyMzYyMywicGF0aCI6Ii82Nzk1NTgxMy80MTE4ODAzMTktMTJjYTQ5MWMtNzQ4MC00ZGZiLTkyODYtZGU5ZGY5MDFjYWUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MTM0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU2YzIzMzYzY2E4YjQ1YWI5MTYyN2U3MzIzMWQ4NWVjMGFkY2NiYTI3NTNmM2RmMmJmZWZhOTgzN2I0YTYyNmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SFCdPeKw8M1hTujZG_-EzWG2hnhPM-UNUQuyUgKWsAM)
Figure 17 Example of plottrack.py
Another plotting script is plotztd.py, the usage of plotztd.py is as follows
plotztd.py ztd_filename png_filename
where
Command | Description |
---|---|
ztd_filename | is the “ztd” file |
png_filename | is the PNG format picture name to be saved |
Figure 18 Example of plotztd.py
plotkin2pso.sh is used to plot the time series diagrams of the Low Earth Orbit Satellite in three directions: tangential, radial, and normal. Its usage is as follows
plotkin2pso.py kin_file pso_file png_file
where
Command | Description |
---|---|
kin_file | is the “kin” file of LEO satellite |
pso_file | is the “pso” file which records the scientific position of LEO satellite |
png_file | is the PNG format picture name to be saved |
Figure 19 Example of plotkin2pso.sh
prepare_leodata.sh is used to download observation data and products of LEO satellites.
prepare_leodata.sh leo_name date
where
Command | Description |
---|---|
leo_name | is the name of LEO satellite, such as GRACE-FO, GRACE |
date | is the date of the downloaded data, in the format of year/month/day or year/day (day of year) |
Note: Downloading data will use the format conversion function, and the script will call lat2obx.py to convert the customized formats of each LEO satellite to ORBEX format. Among them, the GRACE-FO satellite files are ASCII files and do not require format conversion; The GRACE satellite files are custom binary files that need to be converted using the corresponding software (GraceReadSW_L1-2010-03-31).
plotmhm.py is used to plot the MHM model map.
plotmhm.py mhm_file [png_file]
where
Command | Description |
---|---|
mhm_file | is the name of mhm-file |
png_file | is the PNG format picture name to be saved |
Figure 20 Example of plotmhm.py
As shown in section otl , there are two strategies for the software's current tide correction, one is the conventional Scherneck method (modelled as FES2004), and the oceanload in the table file are the files needed for the first method. The second is to cite researcher ChuanYin Zhang's computational method, and the Love_load_cm.dat and FES2004S1.dat in the table file are the files needed for the second method.
The first method needs to get the tide coefficient information, some stations may havebe missing., If you need to get the tide coefficient information, you can submit the station coordinates to the website (http://holt.oso.chalmers.se/loading/) according to the need. Then the acquired data will be copied to the local tide coefficient file oceanload. site coordinates in sit.xyz can be used to acquire tide coefficient information. The parameters and format of these files are described on the website, and the submission method is described in section General operation steps.
File names of PRIDE PPP-AR are defined in file “file_name”. The first column records keyword of output file and following it is the format of file name. In the format, YYYY denotes the year of processing and DDD denotes the day of year. SNAM denotes the station name. For example, “res_2020001_abmf” denotes the residual of station abmf in 1st, 2020. The format of “file_name” is as below.
Figure 21 Format of ‘file_name’
In order to correct the effect of terrain on the results, the global terrain correction file orography_ell which contains coefficients for terrain correction is used, and the grid accuracy is 2.5 degree * 2.5 degree. The content of another file named orography_ell_1x1 is similar to orography_ell, but the grid precision is 1 degree * 1 degree.
GPT3_1 is based on a 1 degree * 1 degree external grid file ('gpt3_1.grd') with mean values as well as sine and cosine amplitudes for the annual and semiannual variation of the coefficients.
Records the data processing strategy that is the basis for the operation of the software. Please refer to section Configuration file for specific details of the document.
After the software installation is completed, the corresponding executable programs and data processing scripts will be stored in the system path ~/.PRIDE_PPPAR_BIN/*. Considering the previous command line form of pdp3 and configuration file is more complex, some adjustments have been made to facilitate users to use PRIDE PPP-AR , but the software is still running based on the configuration file. Before you start, you need to know some considerations:
- Change the way the pdp3 script runs, so that users can enter command line parameters according to their needs;
- As described in section Installation and validation Drawing Lines, the three configuration file templates under the software installation directory (~/.PRIDE_PPPAR_BIN /config_template) are used by default. If the users needs to modify the rest of the options in the configuration file, the configuration file template from the “table” directory can be used as the basis.
In this section: the package directory is path-to-software; the working directory is path-to-project; the path to the directory where the RINEX observation files and broadcast ephemeris are located is path-to-data; the path to the configuration file is path-to-config; the observation files, broadcast ephemeris and configuration files are: RINEXo, RINEXn and config respectively.
The usage of pdp3 is shown in Figure 22. For more detailed information, you can entering pdp3 at the terminal.
Figure 22 pdp3 script partial help information
Except for “obs-file”, all other options are optional, and the order of priority is, Command Line Parameters > Configuration File > Default Value. The option name must be entered correctly, and the input parameters can be entered in both upper and lower case, where < > indicates that the input parameter is required and [ ] indicates that the input parameter is optional. Options can be divided into three categories: (1) Mandatory options; (2) Common options; (3) Advanced options. The meaning of each option is as follows:
(1) Mandatory options:
- obs-file: RINEX observation file with path, either relative path or absolute path. Note that the broadcast ephemeris needs to be in the same directory as the RINEX observation file. For multi-day processing, all observation files are stored in the same directory, and then the observation file names for the first day are entered. Multi-day processing observation file matching methods include: (1) search for observation files in standard naming format; (2) support for observation files that are directly merged for multiple days.
(2) Common options:
-
-V, --version: output software version.
-
-H, --help: output pdp3 script help information.
-
-cfg, --config: configuration file with path, either relative path or absolute path. If this item is not specified, the default matches the configuration file in the installation directory (~/.PRIDE_PPPAR_BIN/config_template).
-
-sys , --system : Select the GNSS systems involved in data processing by entering one or more of “GREC23J”, which means “GPS/GLONASS/Galileo/BDS/BDS-2/BDS-3/QZSS” respectively. When this option is not entered, all satellites of these five systems will be used by default.
-
-frq , --frequency : select frequency to from ionosphere-free combination. The optional frequencies for GPS system include L1/L2/L5, GLONASS system includes L1/L2, Galileo system includes E1/E5a/E6/E5b/E5, BDS system includes B1C/B1I/B2a/B3/B2b/B2, and QZSS system includes L1/L2/L5/L6. Follow the rule of "system + frequency-label 1 + frequency-label 2" when using. The corresponding relationship between frequency-label and system frequency is shown in Table 4.
Table 4 Corresponding relationship between frequency-label and system frequency
Note: When selecting frequencies, it is necessary to consider the frequency spacing of the selected frequency, which will affect the positioning performance of the linear combination composed of them. The default combination is "G12 R12 E15 C26 J12".
-
-m <char[length] [constraint]>, --mode <char[length] [constraint]>, --mode : positioning mode. Options include "S/P/K/F/L". S for the static solution, P for the piece-wise constant solution, K for the kinematic solution, F for the station-fixed solution and L for low earth orbit satellites solution (required corresponding products). If this item is not specified and the configuration file is specified, the positioning mode in the configuration file will be read, otherwise the K mode is used by default.
Note: If choose L mode, due to the GRACE/GRACE-FO satellite being equipped with an ultra-stable oscillator, when solving GRACE/GRACE-FO satellite, you can add a "- r s" configuration to specify the receiver clock error as a random walk noise estimation during the calculation to improve the accuracy of the satellite orbit. If choose P mode, the default processing time is 300s. To set different segmented processing times, the unit should be seconds; for P mode, one can also set the positionalal random walkcalendar element constraint between epochs, the unit is m/sqrt(s), the default constraint sizevalue is 0.01m/sqrt(s); and the positional random walk constraint is only applicable to P mode. If choose F mode, the prior coordinates of the measurement station are required. If the calculation data from an IGS station, the coordinates in the SINEX file are used by default; If you want to use the fixed coordinates set by yourself, you need to create a new "sit. xyz" file in the working directory and add "staname posx posy posz" data to the file. The data meanings are "station name(with the same name as in the O file) fixed X coordinate fixed Y coordinate fixed Z coordinate ".
-
-s <date [time]>, --start <date [time]>: start time for processing, format: “yyyy/mm/dd hh:MM:ss”, indicates the year, month, day and hour, minute and second, where “hh:MM:ss” is optional. And can take the form of a yyyy/doy (year and day of year). If this item is not specified, use the first epoch of the observation file as the start time.
-
-e <date [time]>, --end <date [time]>: end time for processing, format: “yyyy/mm/dd hh:MM:ss”, indicates the year, month, day and hour, minute and second, where “hh:MM:ss” is optional. And can take the form of a yyyy/doy (year and day of year). If this item is not specified, the default is to use the last epoch of the observation file as the end time.
-
-n , --site : four digit and letter combinations for station name. If this item is not specified, Read the station name corresponding to “MARKER NAME” in the observation file header; If the station name is not read, take the first four characters of the observation file name (subject to the standard naming format)
-
-i , --interval : processing interval. The values range from 0.02s to 30s. If this item is not specified and the configuration file is specified, the processing interval in the configuration file will be read, otherwise, the sampling rate of the observation file is used by default.
(3) Advanced options:
-
-aoff, --wapc-off: disable APC correction on the Melbourne-Wübbena combination. If this option is not entered, APC correction will be applied. Note that this correction should be consistent with the calculation strategy of the corresponding products. When using products other than “WUMMGX0RAP_*”, try entering this parameter on the command line if you do not know the calculation strategy of the corresponding products and the fixed rate of the wide lane is low.
-
-c , --cutoff-elev : The cutoff elevation angle, in the range of 0° to 60°. If this option is not entered, the default is 7°.
-
-f, --float: No ambiguity resolution and the float solution is calculated. If this option is not entered and there are code/phase bias products the fixed solution is calculated
-
-hion, --high-ion: use 2nd ionospheric delay model with CODE's GIM product. When this option is not entered, no higher-order ionospheric correction is performed.
-
-mp [num], --multipath [num]: perform multipath compensation. When this option is not entered, no multipath compensation is performed. [num] represents the number of days for additional modeling outside of a sidereal day. When [num] is a positive number, it represents modeling using data before that day. When num is a negative number, it represents modeling using data after that day. If this parameter is not set, a sidereal day is used by default for modeling.
-
-h <char[length] [num]>, --htg <char[length] [num]>: disable horizontal tropospheric gradient (HTG) estimation. Options include (1) S: STO model. (2) P: PWC model. (3) N: NO model used. [length] sets PWS model’s estimate time, options have 60, 720, default is 720 min. [num] sets process noise parameters, default P model is 0.002 m/sqrt(h), S model is 0.0004 m/sqrt(s).
-
-l, --loose-edit: disable strict editing mode, which should be used when high dynamic data quality is poor. If this option is not entered, strict editing is performed by default. Arcs shorter than ten minutes in strict edit mode will be excluded, otherwise two minutes.**
-
-p , --mapping-func : ZTD mapping function. Options include (1) G: GMF mapping function; (2) N: NMF mapping function; (3) V1: VMF1 mapping function; and (4) V3: VMF3 mapping function. GMF mapping function is used by default if this option is not entered.**
-
-toff , --tide-off : disable tide correction, enter one or more of “SOP” for solid, ocean, and polar tides. If this option is not entered, apply all tide corrections.
-
-twnd , --time-window : processing time window in seconds, for not standard or super high rate RINEX observation file. The range is 0.0001~1.
-
-x , --fix-method : ambiguity resolution method. Options include: (1) rounding method; (2) LAMBDA method. The default Ambiguity resolution method is LAMBDA method when the processing time is less than 6 hours, otherwise it is the rounding method. The LAMBDA method should be used when the processing time is short, otherwise the rounding method should be used.
-
-z <char[length] [num]>, --ztd <char[length] [num]>: the zenith tropospheric delay model and the corresponding process noise parameters (optional). The zenith tropospheric delay model options include: (1) p60/P60: PWC:60, estimated every 1h, where the estimated duration (60) is customizable (needs to be greater than or equal to 60); (2) s/S: STO, stochastic walk noise. This option defaults to sto when not entered, The corresponding process noise parameters are in units of m/sqrt(s) and 0.02m/sqrt( h), the range is 0~10. STO corresponds to the default value of 0.0004 when the process noise parameter is not entered, and PWC corresponds to the default value of 0.02m/sqrt(h).
-
-r <char [num]>, --rck <char [num]>: receiver clock offset estimation model configurationusing the random walk model. The default mode for receiver clock estimation is white noise estimation. But when you specify the option “-r”, it changes to the random walk model.There are two options available: S/W. S represents the receiver clock offset estimated using the random walk model, W represents the receiver clock offset estimated using the white noise model, and the default mode is white noise estimation. When selecting the S mode, Tthe [num] option can be set to .0040, indicating that the process noise is 0.0040m/sqrt (s), otherwise the default value is 0.001m/sqrt (s).
-
-h <char [length] [num]>, --htg <char [length] [num]>: horizontal tropospheric gradients configuration. The options are "S", "P", and "N". S represents selecting the STO model, P represents selecting the PWC model and N represents no model. The default is the PWC model. [length] represents the estimated duration, with optional values of 60 and 720. If this parameter is not set, P mode takes 720 minutes. [num] represents the process noise parameter. If this parameter is not set, P mode takes 0.002m/sqrt (h), and S mode takes 0.0004m/sqrt (s).
-
-v, --verbose: Restore other ambiguity outputs.
Note: For multi-day processing, use -s (--start) and -e (--end) to specify the data processing session time, use the observation files that have not been merged for multiple days to put them in the same directory, and obs-file to specify the observation files for the first day. In addition, when processing highly dynamic data, due to the large amount of data, pdp3 will be relatively time-consuming to match the relevant information at the beginning, so please be patient.
As mentioned above, there is a configuration file template in the “path-to-software/table” directory, which is used to record the data processing policy of PRIDE PPP-AR. The command-line parameters described in section Usage of pdp3 are equivalent to specifying the configuration options in the configuration file, and the users can modify the configuration information through the configuration file. If no command-line parameters are entered and a configuration file is specified, the corresponding configuration options in the configuration file will be matched. The configuration file uses the “Keyword=Value” format to record the various options. For enumerated values, the optional value is an enumerated label (NO, YES, etc.). The text after “!” in a line is considered a comment. The configuration file is divided into the following parts: Global processing options and file path settings, parameter model options, fixed ambiguity options, satellite list and its weights, and station processing options
The command line options corresponding to each configuration option in this section include:
-
Frequency combination = Default
The corresponding pdp3 command line parameter for frequency combination is -frq or --frequency. Specify the frequency composition of ionospheric composite observations. Default "means using the default value" G12 R12 E15 C26 J12 ". If you want to set different frequency combinations, please refer to Table 4.
-
Interval= Default
The sampling rate corresponds to the command line option -i or --interval. “Default” means that the default value, which is the corresponding sampling rate in the observation file.
-
Session time = -YYYY- -MM- -DD- -HH- -MI- -SS- -SE-
The data processing starting time and processing duration, in order, are the year, month, day, hour, minute and second and the processing duration in seconds. Note that the modification does not take effect when using the pdp3 script. If the user wants to specify the processing time period, enter the corresponding command line parameters, which correspond to -s (--start) and -e (--end).
-
Table directory = /home/username/path-to-table/table/
Specify the directory where the table files are located.
Note: After the software installation is successful, the "Table directory" will be changed to the "table/" directory under the software package directory, and users do not need to modify it. Namely, Table directory=/home/username/path to software/table/
-
Product directory = Default
Specify the directory where precision products are located. For the "Product directory" directory, if the user has not made any modifications, i.e. "Default", the "product" directory will be created under the "path to project/year" directory. For example, when processing data for 2022, it is: Product directory=/home/username/path to project/2022/product/
The required precision product classification is stored in a subdirectory of the "product" directory, including four subdirectories: "common", "ssc", "vmf", and "ion". These directories are the most prone to errors and are usually left with default values.
Note: the Rinex directory in the previous version's configuration file was replaced by the last option in pdp3, which stores the observation file and broadcast ephemeris. Therefore, users need to ensure that they enter the correct path and observation file name (they can use the Tab key to fill in the path to prevent input errors).
After that is the product name section, which are Satellite orbit. Satellite Clock, ERP, Quaternions and Code/phase bias, "Default" means use the default product, related information can refer to the end of section pdp3 batch script and Appendix A. If you want to use other products, you need to decompress them and place them in the "Product directory/common" directory. Then change the corresponding product name in the configuration file from "Default" to the actual file name. If there is no quaternions product, you can change Quaternions to "none"; if you don't need ambiguity resolution, you don't need the code/phase bias product, and you can change Code/phase bias to "none". Note that multi-day processing should include all days of product filenames, separated by spaces.
There are six configuration options in this section:
-
Strict editing = Default
Data editing mode. The corresponding command line option is -l or --loose-edit. "Default" represents the "YES". Value should be modified to "NO" when the data quality is poor, meaning a more lenient editing threshold and fewer iterations.
-
RCK model = Default
The receiver clock offset estimation model corresponds to a command line parameter of -r or --rck. 'Default' represents the WNO (White Noise), representing the white noise estimation model.
-
ZTD model =Default
Zenith troposphere delay process noise model (PWC/STO). PWC:60 means piece-wise constant for 60 minutes; STO means stochastic walk noise. The corresponding command line option is -z or --ztd. "Default" means STO.
-
HTG model = PWC:720
Horizontal troposphere gradient process noise model (PWC/NON). NON means no estimates. "Default" means PWC:720 for S/F mode and NON for K mode.
ZTD model and HTG model modification suggestions: (1) S/F model: PWC: 60 and PWC: 720; (2) K model: STO and NON.
-
Iono 2nd = Default
Changed to YES if correcting 2-order ionospheric delays. The corresponding command line option is -hion or --hgh-ion. “Default” means NO. The residual higher-order ionospheric delay in the ionosphere-free observations has a negligible effect on the PPP and is not normally corrected. The corresponding GIM product will be stored in the “Product directory/ion” directory when this correction is performed.
-
Tides = Default
Remove any of them to shut it down, or changed to NON if not correcting tidal errors. The corresponding command line option is -toff or--tide-off . Among them, the ocean tide correction needs to be interpolated according to the oceanload file under the Table directory. If “##warning (oceanload_coef): no ocean load coefficients for” is prompted in the output lsq part of the screen or the head of the result file shows that the ocean tide correction is not carried out, update the oceanload file according to step 3 of section General operation steps and solve again
-
Multipath = Default
Multipath compensation, corresponding to command line option is -mp or --multipath. “Default” means NO. If changed to YES, multipath compensation will be enabled, and the improvement effect depends on the station environment.
There are two main configuration options to note in this section, the others can be left at their default values.
-
Ambiguity co-var = Default
Ambiguity resolution method, the corresponding command line option is -x or --fix-method. “Default” means the default value, YES when the instant length is less than 6h, use LAMBDA method for ambiguity resolution, otherwise use rounding method.
-
Ambiguity duration =600
Single-difference satellite pair co-viewing time length required for ambiguity resolution.
-
Cutoff elevation =15
Cut-off elevation angle required for ambiguity resolution.
-
PCO on wide-lane = YES
PCO corrections on Melbourne-Wübbena or not. The corresponding command line option is -aoff or --wapc-off.
-
Widelane decision = 0.20 0.15 1000.
Bias, standard deviation, and threshold in cycle for judging wide-lane ambiguity resolution.
-
Narrowlane decision = 0.15 0.15 1000.
Bias, standard deviation, and threshold in cycle for judging narrow-lane ambiguity resolution.
-
Critical search = 3 4 1.8 3.0
The four parameters are, the maximum number of ambiguities removed, the minimum number of ambiguities retained, the minimum value of ratio for ambiguity search and the threshold value in the LAMBDA algorithm in order. When the ambiguity of the narrow lane cannot be fixed using the LAMBDA method, i.e. “no more can be fixed” is output in the LAMBDA fixed rate section of arsig, the first value (the maximum amount of ambiguity is eliminated) can be adjusted upward gradually and solve again.
-
Truncate at midnight = Default
Whether to truncate the ambiguity at midnight is used to solve the discontinuity at the day boundary, the default setting is Default, that is, the ambiguity will be truncated at midnight or not by simple calculation based on the DOCB moduledata block in the bias-SINEX file, when the DOCB moduledata block does not exist in the bias-SINEX file, the ambiguity will be forced to be truncated at midnight; when set to YES, the ambiguity will be forced to be truncated at midnight; when set to CON, the ambiguity will be forced continuous at midnight.
-
Verbose output =NO
Whether to display the fixed rate of all ambiguity of the subsystem.
The satellite list consists of the satellite PRN and the corresponding weighting factor, the larger the weighting factor, the lower the weighting. Users can disable the satellite by inserting “#” at the beginning of a single GNSS PRN, corresponding to the command line parameter -sys or --system (note that these two command line parameters indicate that all satellites of the corresponding input system are selected, and satellites of other systems will be disabled). Since the orbit accuracy of BDS-2 GEO satellites (C01-C05) is low, you can disable them if the positioning result is poor.
Leave the default values in the station list except for the configuration options corresponding to the command line parameters. Note: (1) only one line can be kept in the station list; (2) x/X in this part is a wildcard, indicating the corresponding default value; (3) if you want to make changes, pay attention to keep the same indentation as the original one.
Item | Description |
---|---|
NAME | Station name |
TP | Positioning mode |
MAP | Tropospheric projection function |
CLKm / PoDm | Receiver clock deviation prior constraint (Unit: m) and process noise (Unit: m/sqrt(s)) |
EV | Elevation mask |
ZTDm / PoDm | Zenith tropospheric delay prior constraint (Unit: m) and process noise (Unit: m/sqrt(s)) |
HTGm / PoDm | Horizontal tropospheric delay prior constraint (Unit: m) and process noise (Unit: m/sqrt(s)) |
RAGm | Pseudo-range observation noise (Unit: m) |
PHSc | phase prior constraint (Unit: cycle) |
PoLns | Parameter duration of position parameter PWC mode (Unit: s) |
PoXEm | Priori constraint on the X coordinate (Unit: m) |
PoYNm | Priori constraint on the Y coordinate (Unit: m) |
PoZHm | Priori constraint on the Z coordinate (Unit: m) |
After installation and verification, let's start the PPP data processing! The general steps when using PRIDE PPP-AR for data processing are:
Step 1: Make sure you have the software installed. For the method of installing software, see section Installation and validation.
Step 2: Refer to section Usage of pdp3 and section Configuration file, if you want to modify other configuration options in addition to the command line options, modify the configuration file based on the configuration file template in the “example” directory in the software package.
Step 3: In case of non-networked solving, it is necessary to prepare in advance the external files to be downloaded and place them in the corresponding directories. This includes precision products, partial table files and broadcast ephemeris, refer to the last part of Section pdp3 batch script and Appendix A.
Step 4: [Optional choice for stations offshore] Get Ocean tide loading parameters using the coordinates in sit.xyz according to the website (http://holt.oso.chalmers.se/loading/), or you can calculate the station coordinates by spp, such as
spp -trop saas path-to-data/RINEXo path-to-data/RINEXn
Choose the model FES2004 (Figure 23), and leave the rest of the options as default.
Figure 23 Ocean tide model
Then submit a task by add station coordinates as below at the website. When you get the oceanload coefficients through your email, append them to oceanload in “Table directory” as the original format(Figure 24).
Figure 24 Submitting the task
Step 5: Calling pdp3 for data processing.
pdp3 [-cfg path-to-config/config ……] path-to-data/RINEXo
**Step 6:**After processing, check the solution files in path-to-project/year/doy directory.
If you already know how to process data with pdp3, you can start processing your data. Otherwise, you can practice with the data in the “path-to-software/example” directory. Create “Practice” folder under the “example” directory for program execution (If you are familiar with Linux, you can change the directory as needed). This section illustrates the parameter selection and input for common data processing scenarios, which can be used as a reference for users to adjust the relevant processing strategies as needed when processing data. Note that a corresponding complete configuration file will be generated under the result directory (year/day-of-year directory), which can be viewed by users to check the configuration information.
For static single-day solution, enter -m or --mode option to specify the positioning mode as S mode, enter -z or --ztd option to specify the ZTD model as PWC:60, and keep the rest of the default configuration.
-
Create ‘Practice1’ directory under ‘Practice’ directory.
-
Open terminal, run pdp3 script to start data processing under ‘Practice/Practice1’ directory.
pdp3 -m s -z p60 ../../data/2020/001/abmf0010.20o
-
The result files will be output in the “2020/001” directory, change directory to the “2020/001” directory.
-
For static solution, users can use pbopos to convert “pos_” file to PBO format.
pbopos abmf pos_2020001_abmf
-
Plot residuals to analyze the solution.
plotres.py res_2020001_abmf G01
Figure 25 Resdiuals of abmf, 001 day in 2020
It is sufficient to keep the default configuration parameters when processing kinematic solutions. You can enter the -l or --lose-edit parameter if the data quality is poor.
-
Back to the ‘Practice’ directory and create ‘Practice2’ directory.
-
Open the terminal and run the pdp3 script to start data processing under the ‘Practice/Practice2’ directory.
pdp3 ../../data/2021/210/ccj22100.21o
-
The result files will be output in the “2021/001” directory, change directory to the “2021/210” director.
-
For kinematic solution, users can use xyz2enu to transform XYZ to ENU, If reference coordinates are empty, the coordinates mean value of “kin_” file will be used.
xyz2enu kin_2021210_ccj2 enu_2021210_ccj2
-
Plot displacement of station.
plotkin.py kin_2021210_ccj2 enuts_ccj2
Figure 26 Position time series of ccj2, 210 day in 2021
The seismic data is the same as the dynamic solution, and each configuration parameter can be kept as default.
-
Back to the ‘Practice’ directory and create ‘Practice3’ directory.
-
In this example, using data during the Alaska M8.1 earthquake, data from UNAVCO (https://www.unavco.org).
-
Open terminal, run pdp3 script to start data processing under ‘Practice/Practice3’ directory.
pdp3 ../../data/2021/210/ac122100.21o
-
The result files will be output in the “2021/001” directory, change directory to the “2021/210” directory.
-
Plot displacement of station.
plotkin.py kin_2021210_ac12 enuts_ac12
Figure 27 Position time series of ac12, 210 day in 2021
When using other products, you should pay attention to whether to add PCO correction in the M-W observation. If you are not sure, you can compare the parameters with and without -aoff or --wapc-apc, and then choose the solution with a higher fixed rate of wide-lane. In order not to modify the original configuration file template, copy “path-to-software/example/config_template” to the directory of this example.
-
Back to the ‘Practice’ directory and create ‘Practice4’ directory.
-
In this example, we will use the precise product released by CODE, the corresponding GPS
week is 2168 and days of week is 4 , the download link is http://ftp.aiub.unibe.ch/CODE_MGEX/CODE/2021/.
-
Create the directory “2021/product/common” after the download is completed, and unzip the downloaded precise products and store them in this directory;
-
Switch to the 'Practice4' directory, copy the configuration file template from the “Table directory” directory to the current directory, and modify the product name in the configuration file.
Satellite orbit = COM21684.EPH
Satellite clock = COM21684.CLK
ERP = COM21684.ERP
Quaternions = COM21684.OBX
Code/phase bias = COM21684.BIA
Note: In multi-day processing you need to write all product file names with spaces as separators; or write individual merged product file names after merging them yourself, e.g.
Satellite orbit = COM21684.EPH COM21685.EPH
-
Open terminal and run the script to start data processing under the ‘Practice/Practice4’ directory.
pdp3 -cfg config_template -aoff ../../data/2021/210/ccj22100.21o
-
The result files will be output in the “2021/210” directory, change directory to the “2021/210” directory.
-
Plot displacement of station.
plotkin.py kin_2021210_ccj2 enuts_ccj2
Figure 28 Position time series of ccj2, 210 day in 2021
Processing data in offline mode requires prior preparation of external files, download links refer to the end of section pdp3 batch script. As in Example 4, the downloaded precision products need to be sorted into the respective subdirectories.
Required external files:
- Precise products: Downloaded and stored in the “Product directory/common” directory.
- Broadcast ephemeris: downloaded and stored in the directory where the observation files are located.
- leap.sec file: Since the time interval between two leaps is long, update this file after the leap occurs, download it and store it in the “Table directory” directory.
- sat_parameters file: This file is mainly used to read GLONASS satellite channel number, when processing data containing GLONASS satellite, you need to update this file, download it and store it in “Table directory” directory.
- ANTEX file: the record "SYS / PCVS APPLIED" in clock difference product recorded the corresponding antenna file, if the “Table directory” directory does not have the file, you need to download and store in the “Table directory” directory.
Optional external files:
- IGS SINEX file: required when the positioning mode is F mode, it indicates the fixed station coordinates to improve the accuracy of ZTD estimation, download and store it in “Product directory/ssc” directory.
- Tropospheric grid file: required when the mapping function is VMF1 or VMF3, downloaded and stored them in the “Product directory/vmf” directory.
- The GIM products: needed for higher-order ionospheric corrections, download and store it in the “Product directory/ion” directory.
This example takes F mode as an example and downloads the corresponding precise products, broadcast ephemeris and solution files.
-
Back to the ‘Practice’ directory and create ‘Practice5’ directory, Download the external files required for the F model in 2021 day 220.
Precise products: ftp://igs.gnsswhu.cn/pub/whu/phasebias/2021
Broadcast ephemeris:
ftp://igs.gnsswhu.cn/pub/gps/data/daily/2021/220/21p/BRDC00IGS_R_20212200000_01D_MN.rnx.gz
ANTEX file: The antenna file recorded in the header of the clock difference file in this example is “igs14_2148.atx”, https://files.igs.org/pub/station/general/pcv_archive/igs14_2148.atx
Satellite parameter file: ftp://igs.gnsswhu.cn/pub/whu/phasebias/table/sat_parameters
SINEX file: ftp://igs.gnsswhu.cn/pub/gps/products/2170/igs21P21700.ssc.Z
-
Store the corresponding external files in the corresponding directories.
-
Open terminal and run the script to start data processing under the ‘Practice/Practice5’ directory.
pdp3 -m f ../../data/2021/220/BAKO00IDN_R_20212200000_01D_30S_MO.rnx
-
The result files will be output in the “2021/220” directory, change directory to the “2021/220” directory.
-
Plot the ZTD time series.
plotztd.py ztd_2021220_bako ztdts_2021220_bako
Figure 29 ZTD time series of bako, 220 day in 2021
The orbit calculation of LEO satellites is the same as the dynamic solution, and all configuration parameters can be kept as default.
-
Back to the ‘Practice’ directory and create ‘Practice6’ directory.
-
Data preparation: Open the terminal and run the following script. The downloaded data for this script includes: Observation O files for low orbit satellites, Attitude files for low orbit satellites and Scientific orbit files for low orbit satellites.
prepare_leodata.sh grace-fo 2023/001
-
LEO satellite position calculation: Input the following pdp3 script and start data processing in the "Practice/Practice6" directory.
pdp3 -m l ./data/2023/grac0010.23o
-
The result file will be output to the "2023/001" directory and switched to the "2023/001" directory.
-
Plot radial, tangential, and normal RMS diagrams: Create a new terminal in the results folder, enter the following command to draw a positioning accuracy time series diagram, and save the results to rms_ enu.
potkin2pso.py kin_2023001_grac ../product/leo/pso_2023001_grac rms_enu
Figure 30 Time series diagram of grace satellite's resolution accuracy on the 1 day of 2023
To add stochasticrandom walk constraint during positioningin position domain, the P mode of the software must be required (other modes are not supported). It is used as follows:
pdp3 -m <charp[length] [constraint]>
Where -m is the mode setting, char is the mode option (S/P/K/F/L), length is the time length, and constraint is the magnitudevalue of the constraint in m/sqrt(s), the default is 0.01m/sqrt(s). For the specific usage of each parameter of the pdp3 command, refer to Usage of pdp3.
A common setting for observation filesdata with a 30s sampling rate is
-m p30 0.0001
which has the specific meaning that the solution is performed in P-mode, with a solution length of 30s and an additional inter-calendar elementbetween-epoch random walk constraint of magnitude 0.0001 m/sqrt(s).
-
Back to the ‘Practice’ directory and create ‘Practice7’ directory.
-
Data preparation. Users are requested to prepare observation data of 2024 doy 001, sampling 30s for abpo station and place it in the Pratice7 folder. There are several methonds to get data, here is a ftp link “ftps://igs.gnsswhu.cn/pub/gps/data/daily/2024/001/24o/abpo0010.24o.gz”;
-
Open the terminal, switch to the "Practice/Practice7" directory, and enter the following command to start data processing;
pdp3 -m P30 0.0001 abpo0010.24o
-
Enter the command to draw a timing diagram for constraint positioning between calendar elements;
plotkin.sh 2024/001/kin_2024001_abpo abpo_P30
-
Compare the positioning timing diagrams for the default K mode.
potkin2pso.py kin_2023001_grac ../product/leo/pso_2023001_grac rms_enu
Figure 31 random walk constraint (0.0001 m/sqrt(s)) position sequence for abpo of 2024 001
Figure 32 kinematic position sequence for abpo of 2024 001
The software currently supports cross-day solution, using the -s and -e parameters to set the start and end time, and prepare the observation file of multiple days. When starting cross-day solution, it is inevitable to encounter the problem of whether the cross-day ambiguity is truncated or not, the OSB product of WUM0MGXRAP provides the docb indicator to assist in determining whether the cross-day ambiguity is truncated or not, this example will introduce the cross-day solution. The steps are as follows:
-
Back to the ‘Practice’ directory and create ‘Practice8’ directory.
-
Data preparation. Users are requested to prepare their own observation data from doy 027-028 in 2024 of abamf, and place them in the Pratice8 folder;
-
Open the terminal, switch to the "Practice/Practice8" directory, and enter the following command to start data processing (refer to Section Usage of pdp3 for the detailed explanation of the command);
pdp3 -s 2024/17827 20:00:00 -e 2024/17928 04:00:00 -sys GEC abamf1780270.24o
-
Enter the command to draw a timing sequence for positioning;
plotkin.sh 2024/178-179/kin_2024178_bamf bamf_docb
Figure 33 Time sequence plot of cross-day position on doy 178-179 in 2024 of bamf (half-hourly results before and after the day boundary)
- Introduction
- Fundamentals
- Program structure and algorithm
- Technical Aspects
- PRIDE PPP‐AR for GUI