Closed wsaddasw1989 closed 2 weeks ago
Can you please send you actual .yaml configuration file and the Ginan software version you are using (the commit tag).
Can you please send you actual .yaml configuration file and the Ginan software version you are using (the commit tag).
This is the git log info of the software version. commit 0f263270daa1d5234d1194d3bc314cf3dca85f38 (HEAD -> main, origin/main, origin/HEAD) Merge: 7b79153 a92d809 Author: Ronald Maj 36747983+ronaldmaj@users.noreply.github.com Date: Tue Apr 30 14:29:34 2024 +1000
I am using the default ppp_example.yaml file. And I don't think its the problem of yaml file. https://github.com/GeoscienceAustralia/ginan/blob/main/exampleConfigs/ppp_example.yaml
`inputs:
inputs_root: ./products/
atx_files: [ igs20.atx ] # required
igrf_files: [ tables/igrf13coeffs.txt ]
erp_files: [ finals.data.iau2000.txt ]
planetary_ephemeris_files: [ tables/DE436.1950.2050 ]
troposphere:
gpt2grid_files: [ tables/gpt_25.grd ]
tides:
ocean_tide_loading_blq_files: [ tables/OLOAD_GO.BLQ ] # required if ocean loading is applied
atmos_tide_loading_blq_files: [ tables/ALOAD_GO.BLQ ] # required if atmospheric tide loading is applied
ocean_pole_tide_loading_files: [ tables/opoleloadcoefcmcor.txt ] # required if ocean pole tide loading is applied
snx_files:
# - "*.SNX" # use a wild card to include all files matching the description in the directory
- igs_satellite_metadata.snx
- tables/sat_yaw_bias_rate.snx
- tables/qzss_yaw_modes.snx
- tables/bds_yaw_modes.snx
- IGS1R03SNX_20191950000_07D_07D_CRD.SNX
satellite_data:
# nav_files:
# - "*.rnx"
clk_files:
# - "*.CLK"
- IGS2R03FIN_20191990000_01D_30S_CLK.CLK
bsx_files:
# - "*.BIA"
- IGS2R03FIN_20191990000_01D_01D_OSB.BIA
sp3_files:
# - "*.SP3"
- IGS2R03FIN_20191990000_01D_05M_ORB.SP3
gnss_observations:
gnss_observations_root: ../data/
rnx_inputs:
# - "*.rnx"
- ALIC00AUS_R_20191990000_01D_30S_MO.rnx
- DARW00AUS_R_20191990000_01D_30S_MO.rnx
- HOB200AUS_R_20191990000_01D_30S_MO.rnx
- "M*.rnx"
outputs:
metadata:
config_description: ppp_example
outputs_root: ./outputs/<CONFIG>
gpx:
output: true
filename: <RECEIVER>_<CONFIG>_<YYYY><DDD><HH>.GPX
trace:
level: 2
output_receivers: true
output_network: true
receiver_filename: <RECEIVER>_<CONFIG>_<YYYY><DDD><HH>.TRACE
network_filename: <RECEIVER>_<CONFIG>_<YYYY><DDD><HH>.TRACE
output_residuals: true
output_residual_chain: true
output_config: true
# log:
# output: false
# directory: ./logs/
# filename: log<LOGTIME>.json
satellite_options:
global:
error_model: ELEVATION_DEPENDENT # {uniform,elevation_dependent}
code_sigma: 0 # Standard deviation of code measurements
phase_sigma: 0 # Standard deviation of phase measurmeents
models:
phase_bias:
enable: false
# E05:
# exclude: true # Exclude satellites
# E06:
# exclude: true
receiver_options:
global:
elevation_mask: 15 # degrees
error_model: ELEVATION_DEPENDENT # {uniform,elevation_dependent}
code_sigma: 0.3 # Standard deviation of code measurements, m
phase_sigma: 0.003 # Standard deviation of phase measurmeents, m
clock_codes: [AUTO, AUTO]
zero_dcb_codes: [AUTO, AUTO]
models:
phase_bias:
enable: false
troposphere: # Tropospheric modelling accounts for delays due to refraction of light in water vapour
enable: true
models: [ gpt2 ] # List of models to use for troposphere [standard,sbas,vmf3,gpt2,cssr]
tides:
atl: true # Enable atmospheric tide loading
enable: true # Enable modelling of tidal disaplacements
opole: true # Enable ocean pole tides
otl: true # Enable ocean tide loading
solid: true # Enable solid Earth tides
spole: true # Enable solid Earth pole tides
# ALIC:
# receiver_type: "LEICA GR25" # (string)
# antenna_type: "LEIAR25.R3 NONE" # (string)
# apriori_position: [-4052052.7254, 4212835.9872,-2545104.6139] # [floats]
# aliases: [PIVOT] # set as pivot station
# models:
# eccentricity:
# enable: true
# offset: [0.0000, 0.0000, 0.0015] # [floats]
processing_options:
process_modes:
preprocessor: true # Preprocessing and quality checks
spp: true # Perform SPP on receiver data
ppp: true # Perform PPP network or end user mode
ionosphere: false # Compute Ionosphere models based on GNSS measurements
slr: false # Process SLR observations
epoch_control:
# start_epoch: 2019-07-18 00:00:00
# end_epoch: 2019-07-18 23:59:30
# max_epochs: 2880
epoch_interval: 30 # seconds
wait_next_epoch: 3600 # seconds (make large for post-processing)
gnss_general:
rec_reference_system: GPS
sys_options:
gps:
process: true
reject_eclipse: false
# clock_codes: [ L1W, L2W ]
code_priorities: [ L1W, L1C, L2W ]
gal:
process: true
reject_eclipse: false
code_priorities: [ L1C, L5Q, L1X, L5X ]
preprocessor: # Configurations for the kalman filter and its sub processes
cycle_slips: # Cycle slips may be detected by the preprocessor and measurements rejected or ambiguities reinitialised
mw_process_noise: 0 # Process noise applied to filtered Melbourne-Wubenna measurements to detect cycle slips
slip_threshold: 0.05 # Value used to determine when a slip has occurred
preprocess_all_data: true
spp:
# always_reinitialise: false # Reset SPP state to zero to avoid potential for lock-in of bad states
max_lsq_iterations: 12 # Maximum number of iterations of least squares allowed for convergence
outlier_screening:
raim: true # Enable Receiver Autonomous Integrity Monitoring
max_gdop: 30 # Maximum dilution of precision before error is flagged
ppp_filter:
outlier_screening:
chi_square:
enable: false # Enable Chi-square test
mode: NONE # Chi-square test mode {none,innovation,measurement,state}
prefit:
max_iterations: 3 # Maximum number of measurements to exclude using prefit checks before attempting to filter
omega_test: false # Enable omega-test
sigma_check: true # Enable sigma check
sigma_threshold: 4 # Sigma threshold
postfit:
max_iterations: 10 # Maximum number of measurements to exclude using postfit checks while iterating filter
sigma_check: true # Enable sigma check
sigma_threshold: 4 # Sigma threshold
ionospheric_components: # Slant ionospheric components
common_ionosphere: true # Use the same ionosphere state for code and phase observations
use_gf_combo: false # Combine 'uncombined' measurements to simulate a geometry-free solution
use_if_combo: false # Combine 'uncombined' measurements to simulate an ionosphere-free solution
chunking:
by_receiver: false # Split large filter and measurement matrices blockwise by receiver ID to improve processing speed
by_satellite: false # Split large filter and measurement matrices blockwise by satellite ID to improve processing speed
size: 0
rts: # Rauch-Tung-Striebel (RTS) backwards smoothing
enable: true
lag: -1
inverter: LDLT # Inverter to be used within the rts processor, which may provide different performance outcomes in terms of processing time and accuracy and stability
filename: <CONFIG>_<RECEIVER>.rts
model_error_handling:
meas_deweighting: # Measurements that are outside the expected confidence bounds may be deweighted so that outliers do not contaminate the filtered solution
deweight_factor: 1000 # Factor to downweight the variance of measurements with statistically detected errors
enable: true # Enable deweighting of all rejected measurement
state_deweighting: # Any "state" errors cause deweighting of all measurements that reference the state
deweight_factor: 1000 # Factor to downweight the variance of measurements with statistically detected errors
enable: true # Enable deweighting of all referencing measurements
ambiguities:
outage_reset_limit: 5 # Wait for 5 consecutive missing epoch of data before reseting ambiguity
phase_reject_limit: 2 # Reset ambiguity after 2 large fractional residuals are found (replaces phase_reject_count:)
reset_on: # Reset ambiguities when slip is detected by the following
gf: true # GF test
lli: true # LLI test
mw: true # MW test
scdia: true # SCDIA test
estimation_parameters: global_models: eop: estimated: [false] # Estimate state in kalman filter sigma: [-1] # Apriori sigma values - if zero, will be initialised using least squares process_noise: [0] # Process noise sigmas eop_rates: estimated: [false] # Estimate state in kalman filter sigma: [-1] # Apriori sigma values - if zero, will be initialised using least squares process_noise: [0] # Process noise sigmas ion: estimated: [false] # Estimate state in kalman filter sigma: [-1] # Apriori sigma values - if zero, will be initialised using least squares process_noise: [0] # Process noise sigmas
receivers:
global:
pos:
estimated: [true]
sigma: [100]
process_noise: [30]
pos_rate: # Velocity
estimated: [false] # [bools] Estimate state in kalman filter
sigma: [0] # [floats] Apriori sigma values - if zero, will be initialised using least squares
process_noise: [0] # [floats] Process noise sigmas
# process_noise_dt: SECOND # (enum) Time unit for process noise - sqrt_sec, sqrt_day etc
# apriori_val: [0] # [floats] Apriori state values
# mu: [0] # [floats] Desired mean value for gauss markov states
# tau: [-1] # [floats] Correlation times for gauss markov noise, defaults to -1 -> inf (Random Walk)
clock:
estimated: [true]
sigma: [1000]
process_noise: [100]
clock_rate:
estimated: [false]
sigma: [0.005]
process_noise: [1e-4]
ambiguities:
estimated: [true]
sigma: [1000]
process_noise: [0]
ion_stec: # Ionospheric slant delay
estimated: [true] # Estimate state in kalman filter
sigma: [200] # Apriori sigma values - if zero, will be initialised using least squares
process_noise: [10] # Process noise sigmas
trop:
estimated: [true]
sigma: [0.3]
process_noise: [0.0001]
trop_grads:
estimated: [true]
sigma: [0.03]
process_noise: [1.0E-6]
code_bias:
estimated: [true] # false
sigma: [20]
process_noise: [0]
phase_bias:
estimated: [false]
sigma: [10]
process_noise: [0]
mongo: # Mongo is a database used to store results and intermediate values for later analysis and inter-process communication
enable: primary # Enable and connect to mongo database {none,primary,secondary,both}
primary_uri: mongodb://localhost:27017 # Location and port of the mongo database to connect to
primary_database:
# secondary_suffix: "" # Suffix to append to database elements to make distinctions between runs for comparison
# secondary_uri: mongodb://localhost:27017 # Location and port of the mongo database to connect to
# output_config: NONE # Output config {none,primary,secondary,both}
output_components: primary # Output components of measurements {none,primary,secondary,both}
output_states: primary # Output states {none,primary,secondary,both}
output_measurements: primary # Output measurements and their residuals {none,primary,secondary,both}
output_test_stats: primary # Output test statistics {none,primary,secondary,both}
delete_history: primary # Drop the collection in the database at the beginning of the run to only show fresh data {none,primary,secondary,both}
output_trace: primary
`
Hi wsaddasw1989, We cannot reproduce your error on an AWS EC2 ubuntu 22.04 server using the same software version as you (same commit). The only thing that we can see is that the version of the software you are building is: PEA starting... (main untagged-0f26327-dirty from Tue Apr 30 04:29:34 2024)
Whereas our fresh build from a github clone says: PEA starting... (main untagged-0f26327 from Tue Apr 30 14:29:34 2024)
You can note the absence of "dirty" in our build, suggesting that something may have been changed in one of the Ginan directory monitored by git? Maybe you should try a rebuild to be sure something didn't get inadvertently changed?
Hi smcclusky, The changed monitored by git may caused by some unimportant modify.
I tried the ubuntu22.04.4 and the old ubuntu22.04, and change the linux kernal to the old version, it just produce the same error. This work was done on my local virtual machine. But I when try it on the cloud ecs machine by unsing the ubuntu22.04 from the cloud service provider, it works well.
Then I try ubuntu20.04.6 on my local virtual machine, it works well. So I think there is something incompatible to the new Ubuntu22.04 version. But I don't know what cause it.
I am glad that I have bypassed this problem. Thank you very much.
Dear ginan team, I install the ginan on ubuntu22.04 according to the README.md file and using the ubuntu22.sh script. Everything is good during the installing and complining process, but I got "NAN foud. Exiting ..." ERROR in the first epoch process while runing "./pea --config ppp_example.yaml". All the files and yaml are default ones and the inputdata is well prepared. There are the same problem while runing on CentOS8. Here is the cmake info and run info on ubuntu22.04. Is there any problem? Thank you.
-- The C compiler identification is GNU 11.4.0 -- The CXX compiler identification is GNU 11.4.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Setting ccache off -- Setting optimisation on -- Setting parallelisation on -- Found OpenMP_C: -fopenmp (found version "4.5") -- Found OpenMP_CXX: -fopenmp (found version "4.5") -- Found OpenMP: TRUE (found version "4.5")
-- Setting docs on -- Found Doxygen: /usr/bin/doxygen (found version "1.9.1") found components: doxygen dot -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2")
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.73.0") found components: log log_setup date_time system thread program_options serialization timer stacktrace_addr2line stacktrace_backtrace -- Found NetCDF: /usr/lib/x86_64-linux-gnu/libnetcdf_c++4.so;/usr/lib/x86_64-linux-gnu/libnetcdf.so
-- Could NOT find BLAS (missing: BLASLIBRARIES) -- Looking for sgemm -- Looking for sgemm - not found -- Looking for sgemm -- Looking for sgemm_ - found -- Found BLAS: /usr/lib/x8664-linux-gnu/libopenblas.so
-- Looking for cheev -- Looking for cheev_ - found -- Found LAPACK: /usr/lib/x86_64-linux-gnu/libopenblas.so;-lm;-ldl
-- Found LAPACK and BLAS -- Found YAML library: /usr/lib/x86_64-linux-gnu/libyaml-cpp.so -- Found NetCDF library: /usr/lib/x86_64-linux-gnu/libnetcdf_c++4.so -- Found Eigen version: 3.4.0 -- Found Boost version: 1.74.0 -- Found Mongocxx version: 3.6.7 -- Found C++ compiler: GNU 11.4.0 -- Found Git: /usr/bin/git (found version "2.34.1") -- Git branch tag: untagged-0f26327-dirty -- Git branch: main -- CMAKE_CURRENT_BINARY_DIR: /ginan/src/build -- CMAKE_CURRENT_SOURCE_DIR: /ginan/src -- CMAKE_CXX_FLAGS: -std=c++2a -fpermissive -Wall -Wno-write-strings -Wno-deprecated-declarations -Wno-format-overflow -Wno-narrowing -Wno-unused-but-set-variable -Wno-sign-compare -Wno-stringop-truncation -Wno-unused-variable -Wno-switch -Wno-dangling-else -Wno-misleading-indentation -Wno-format-truncation -Wno-extern-c-compat -Wno-format-zero-length -Wno-array-bounds -Wno-restrict -O3 -fopenmp -pthread -- Configuring done -- Generating done -- Build files have been written to: /ginan/src/build
PEA starting... (main untagged-0f26327-dirty from Tue Apr 30 04:29:34 2024)
Checking configuration file ppp_example.yaml Loading configuration from file ppp_example.yaml
=============================== Configuration...
Inputs: snx_files: ./products/igs_satellite_metadata.snx ./products/tables/sat_yaw_bias_rate.snx ./products/tables/qzss_yaw_modes.snx ./products/tables/bds_yaw_modes.snx ./products/IGS1R03SNX_20191950000_07D_07D_CRD.SNX atx_files: ./products/igs20.atx clk_files: ./products/IGS2R03FIN_20191990000_01D_30S_CLK.CLK bsx_files: ./products/IGS2R03FIN_20191990000_01D_01D_OSB.BIA igrf_files: ./products/tables/igrf13coeffs.txt ocean_tide_loading_blq_files: ./products/tables/OLOAD_GO.BLQ atmos_tide_loading_blq_files: ./products/tables/ALOAD_GO.BLQ ocean_pole_tide_loading_files: ./products/tables/opoleloadcoefcmcor.txt erp_files: ./products/finals.data.iau2000.txt sp3_files: ./products/IGS2R03FIN_20191990000_01D_05M_ORB.SP3 planetary_ephemeris_files: ./products/tables/DE436.1950.2050 gpt2grid_files: ./products/tables/gpt_25.grd rnx_inputs: ./products/../data/ALIC00AUS_R_20191990000_01D_30S_MO.rnx ./products/../data/DARW00AUS_R_20191990000_01D_30S_MO.rnx ./products/../data/HOB200AUS_R_20191990000_01D_30S_MO.rnx ./products/../data/MADR00ESP_R_20191990000_01D_30S_MO.rnx ./products/../data/MAJU00MHL_R_20191990000_01D_30S_MO.rnx ./products/../data/MARS00FRA_R_20191990000_01D_30S_MO.rnx ./products/../data/MAS100ESP_R_20191990000_01D_30S_MO.rnx ./products/../data/MATE00ITA_R_20191990000_01D_30S_MO.rnx ./products/../data/MAW100ATA_R_20191990000_01D_30S_MO.rnx ./products/../data/MAYG00MYT_R_20191990000_01D_30S_MO.rnx ./products/../data/MBAR00UGA_R_20191990000_01D_30S_MO.rnx ./products/../data/MCIL00JPN_R_20191990000_01D_30S_MO.rnx ./products/../data/METG00FIN_R_20191990000_01D_30S_MO.rnx ./products/../data/MGUE00ARG_R_20191990000_01D_30S_MO.rnx ./products/../data/MRO100AUS_R_20191990000_01D_30S_MO.rnx
Outputs: trace level: 10 receiver trace filename: ./outputs/ppp_example/_pppexample.TRACE
network trace filename: ./outputs/ppp_example/_pppexample.TRACE
gpx filename: ./outputs/ppp_example/_pppexample.GPX
Process Modes: Preprocessor: 1 SPP 1 PPP: 1 Minimum Constraints: 0 Ionospheric: 0 RTS Smoothing: 1
Systems: GPS: 1 GLONASS: 0 GALILEO: 1 BEIDOU: 0 QZSS: 0 LEO: 0
Epochs: epoch_interval: 30
=============================== ...End Configuration
Threading with max 32 eigen threads Threading with max 2147483647 omp threads Logging with trace level:10
Mongo connecting to database @ mongodb://localhost:27017 Loading ATX file ./products/igs20.atx Loading SP3 file ./products/IGS2R03FIN_20191990000_01D_05M_ORB.SP3 Loading ERP file ./products/finals.data.iau2000.txt Loading CLK file ./products/IGS2R03FIN_20191990000_01D_30S_CLK.CLK Loading BSX file ./products/IGS2R03FIN_20191990000_01D_01D_OSB.BIA Loading IGRF file ./products/tables/igrf13coeffs.txt Loading SNX file ./products/igs_satellite_metadata.snx Loading SNX file ./products/tables/sat_yaw_bias_rate.snx Loading SNX file ./products/tables/qzss_yaw_modes.snx Loading SNX file ./products/tables/bds_yaw_modes.snx Loading SNX file ./products/IGS1R03SNX_20191950000_07D_07D_CRD.SNX Loading GPT file ./products/tables/gpt_25.grd Loading Ocean Pole Tide file ./products/tables/opoleloadcoefcmcor.txt Loading planetary ephemeris file ./products/tables/DE436.1950.2050 Initialising station ALIC Initialising station DARW Initialising station HOB2 Initialising station MADR Initialising station MAJU Initialising station MARS Initialising station MAS1 Initialising station MATE Initialising station MAW1 Initialising station MAYG Initialising station MBAR Initialising station MCIL Initialising station METG Initialising station MGUE Initialising station MRO1 Mongo connecting to database : ppp_example @ mongodb://localhost:27017 Mongo connected to database : ppp_example
Starting to process epochs... Starting epoch #1 Synced 15 stations... Warning: SVN not found for E06 Warning: Block type not found for E06, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E06 Warning: No sat pos found for E06. Warning: SVN not found for E10 Warning: Block type not found for E10, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E10 Warning: No sat pos found for E10. Warning: SVN not found for E16 Warning: Block type not found for E16, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E16 Warning: No sat pos found for E16. Warning: SVN not found for E17 Warning: Block type not found for E17, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E17 Warning: No sat pos found for E17. Warning: Looking for precise position, but no precise ephemerides found for E20 Warning: No sat pos found for E20. Warning: Looking for precise position, but no precise ephemerides found for E22 Warning: No sat pos found for E22. Warning: SVN not found for E23 Warning: Block type not found for E23, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E23 Warning: No sat pos found for E23. Warning: SVN not found for E28 Warning: Block type not found for E28, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E28 Warning: No sat pos found for E28. Warning: SVN not found for E29 Warning: Block type not found for E29, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E29 Warning: No sat pos found for E29. Warning: SVN not found for E32 Warning: Block type not found for E32, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E32 Warning: No sat pos found for E32. Warning: SVN not found for E34 Warning: Block type not found for E34, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E34 Warning: No sat pos found for E34. Warning: SVN not found for E35 Warning: Block type not found for E35, attitude modelling etc may be affected, check sinex file Warning: Looking for precise position, but no precise ephemerides found for E35 Warning: No sat pos found for E35. ------- PREPROCESSING STATIONS --------
------- DOING STATE TRANSITION --------
------- CALCULATING PPP MEASUREMENTS --------
Warning: No PCO found for AOAD/M_T NONE for GAL Warning: No PCV found for AOAD/M_T NONE for GAL Warning: No PCO found for AOAD/M_T NONE for GPS L5 ------- DOING STATE TRANSITION --------
------- DOING PPPPP KALMAN FILTER --------
x: 1 -4.05205e+06 4.21284e+06 -2.5451e+06 10.4277 2.23874 0 0 0 0 22.5539 ......
xp: -nan -nan ......
R : ......
v : -2.46991 -13.0676 -2.87429 -20.8263 ......
NAN found. Exiting...