GeoscienceAustralia / ginan

The Australian Government, through Positioning Australia (part of Geoscience Australia), is funding the design, development and operational service of a Global Navigation Satellite System (GNSS) position correction system - the Ginan service and toolkit. The application of the Ginan correction service by a GNSS device has the potential to increase positioning accuracy from meters to centimetres across Australia. The suite of software systems in this repository (the Ginan toolkit) will be used to create the service. It is available now under an open source licence. Ginan will give individuals and organisations no-cost access to the Ginan software and service as a public good.
https://geoscienceaustralia.github.io/ginan/
Other
221 stars 107 forks source link

Real time PPP example does not work well #49

Closed whu-dyf closed 1 year ago

whu-dyf commented 1 year ago

Dear Ginan team

I run single-GPS real-time PPP by Ginan using the template of ex202.yaml, and the positioning results perform not well, is about dm level. Considering some table files seem unnecessary, I make some changes for ex202.yaml. I cannot solve this problem, could you provide me some advice? Thank you in advance!

image

Here are my configs for your information.

my_ex202.yaml

inputs:
    include_yamls:
        - input_metadata.yaml
        - input_streams_rover.yaml
        - processing_rover.yaml
        - mongo_outputs.yaml
        - debug_trace.yaml

outputs:
    metadata:
        config_description:     "my_ex202"

input_metadata.yaml

inputs:

    root_directory: /home/dyf/.vs/src/data/tmp-dwn/
    snx_files:  [ IGS0OPSSNX_20231830000_01D_01D_CRD.SNX ]
    atx_files:  [ igs20.atx                           ]  
    blq_files:  [ OLOAD_GO.BLQ                      ]  
    erp_files:  [ finals.data.iau2000.txt    ]

input_streams_rover.yaml

station_options:    # metadata from May 2023
    ALIC:
        receiver_type:  "SEPT POLARX5"                 # (string)
        antenna_type:   "LEIAR25.R3      NONE"       # (string)
        eccentricity:   [0.0000,   0.0000,   0.0015] # [floats]
        apriori_position:   [-4052052.8799, 4212835.96745,-2545104.4015] # [floats]
inputs:

    gnss_observations:
        inputs_root:    "https://<>:<>@ntrip.data.gnss.ga.gov.au/"

        rtcm_inputs:       
            -   "ALIC00AUS0"

    satellite_data:
        inputs_root:   "https://<>:<>@ntrip.data.gnss.ga.gov.au/"
        rtcm_inputs:
            - "BCEP00BKG0"
            - "SSRA00CNE0"

processing_options:
    ssr_inputs:
        ssr_antenna_offset: APC
    epoch_control:
        epoch_interval:         1
        wait_all_stations:      1
    gnss_general:   
        error_model:        elevation_dependent
        code_measurements:
            sigmas:         [0.3]
        phase_measurements:
            sigmas:         [0.003]

processing_rover.yaml

outputs:

    root_directory:                 outputs/<CONFIG>/
    ppp_sol:                              
        output:                     true         
        filename:                   <STATION><YYYY><DDD><HH>_<CONFIG>.POS
    gpx:
        output:                     true
        filename:                   <STATION><YYYY><DDD><HH>_<CONFIG>.GPX

estimation_parameters:
    stations:
        global:
            pos:
                estimated:          [true]
                sigma:              [100]
                proc_noise:         [100] 
            clk:
                estimated:          [true]
                sigma:              [1000]
                proc_noise:         [100]
            amb:
                estimated:          [true]
                sigma:              [1000]
                proc_noise:         [0]
            trop:
                estimated:          [true]
                sigma:              [0.3]
                proc_noise:         [0.0001]
            trop_grads:
                estimated:          [true]
                sigma:              [0.03]
                proc_noise:         [1.0E-6]
            ion_stec:
                estimated:          [true]
                sigma:              [200]
                proc_noise:         [10]
            code_bias:
                estimated:          [true]
                sigma:              [20]
                proc_noise:         [0]
            phase_bias:
                estimated:          [true]
                sigma:              [10]
                proc_noise:         [0]

processing_options:
    process_modes:
        ppp:                 true
    gnss_general:
        elevation_mask:                 10  #degrees
        rec_reference_system:           GPS
        sys_options:
            gps:
                process:                true
                reject_eclipse:         false
                zero_receiver_dcb:      true
                code_priorities:        [ L1C, L2W ]
            gal:
                process:                false
                reject_eclipse:         false
                zero_receiver_dcb:      true
                code_priorities:        [ L1C, L5Q, L1X, L5X ]
    gnss_models:
        troposphere:
            model:              gpt2
        ionospheric_component2:
            enable:             true
        ionospheric_component3:
            enable:             true
    filter_options:
        outlier_screening:
            max_filter_iterations:      5 
            max_prefit_removals:        3 
        station_chunking:
            enable:                     true
    model_error_checking:
        deweighting:
            deweight_factor:            1000
        ambiguities:
            outage_reset_limit:         5
            phase_reject_limit:         2
            reinit_on_all_slips:        true

station_options:
    global:
        phase_bias:
            enable:         true

satellite_options:
    global:
        phase_bias:
            enable:         true
whu-dyf commented 1 year ago

I have successfully resolved this issue by making the following modifications: The source of "satpos" should be changed to SSR, and for IGS stations, "proc_noise" should be set to zero.

satellite_options:
    GPS:
        pos:
            sources:        [KALMAN, SSR, BROADCAST]
estimation_parameters:
    stations:
        global:
            pos:
                estimated:          [true]
                sigma:              [100]
                proc_noise:         [0]