|
Architecture | Main_Filter__ () |
| Primary estimation and filtering.
|
|
Architecture | Combinators__ () |
|
void | explainMeasurements (Trace &trace, KFMeas &kfMeas, KFState &kfState) |
|
void | alternatePostfits (Trace &trace, KFMeas &kfMeas, KFState &kfState) |
|
void | makeIFLCs (Trace &trace, const KFState &kfState, KFMeasEntryList &kfMeasEntryList) |
|
KFMeas | makeGFLCs (KFMeas &kfMeas, KFState &kfState) |
| Replace individual measurements with linear combinations.
|
|
KFMeas | makeRTKLCs1 (KFMeas &kfMeas, KFState &kfState) |
| Replace individual measurements with linear combinations.
|
|
KFMeas | makeRTKLCs2 (KFMeas &kfMeas, KFState &kfState) |
| Replace individual measurements with linear combinations.
|
|
void | updateRecClocks (Trace &trace, ReceiverMap &receiverMap, KFState &kfState) |
| Prepare receiver clocks using spp values to minimise pre-fit residuals.
|
|
void | updateAvgIonosphere (Trace &trace, GTime time, KFState &kfState) |
| Prepare stec values clocks to minimise residuals to klobuchar model.
|
|
void | updateAvgOrbits (Trace &trace, GTime time, KFState &kfState) |
| Prepare Satellite clocks to minimise residuals to broadcast clocks.
|
|
void | updateAvgClocks (Trace &trace, GTime time, KFState &kfState) |
| Prepare Satellite clocks to minimise residuals to broadcast clocks.
|
|
KFState | propagateUncertainty (Trace &trace, KFState &kfState) |
|
void | chunkFilter (Trace &trace, KFState &kfState, KFMeas &kfMeas, ReceiverMap &receiverMap, map< string, FilterChunk > &filterChunkMap, map< string, std::ofstream > &traceList) |
|
void | updatePseudoPulses (Trace &trace, KFState &kfState) |
|
void | updateNukeFilter (Trace &trace, KFState &kfState) |
|
void | removeBadAmbiguities (Trace &trace, KFState &kfState, ReceiverMap &receiverMap) |
| Remove ambiguity states from filter when they deemed old or bad This effectively reinitialises them on the following epoch as a new state, and can be used for simple resolution of cycle-slips.
|
|
void | removeBadReceivers (Trace &trace, KFState &kfState, ReceiverMap &receiverMap) |
|
void | removeBadIonospheres (Trace &trace, KFState &kfState) |
| Remove ambiguity states from filter when they deemed old or bad This effectively reinitialises them on the following epoch as a new state, and can be used for simple resolution of cycle-slips.
|
|
void | checkOrbits (Trace &trace, KFState &kfState) |
|
void | updateFilter (Trace &trace, ReceiverMap &receiverMap, KFState &kfState) |
|
void | perRecMeasurements (Trace &trace, Receiver &rec, ReceiverMap &receiverMap, KFMeasEntryList &kfMeasEntryList, const KFState &kfState, const KFState &remoteState) |
|
void | pppLinearCombinations (KFMeas &kfMeas, KFState &kfState) |
|
void | pppPseudoObs (Trace &trace, ReceiverMap &receiverMap, KFState &kfState, KFMeasEntryList &kfMeasEntryList) |
|
void | ppp (Trace &trace, ReceiverMap &receiverMap, KFState &kfState, KFState &remoteState) |
|
Primary estimation and filtering.
While there are other auxiliary filters and states used within the Pea, all PPP processing flows through a common filtering stage.
The residuals for all observations are first computed in an undifferenced-uncombined state, which leads to the greatest generality and extensibility. As each receiver's observations are then independent of each other, these computations are computed in parallel, using openMP directives, increasing thoughput.
Bookkeeping around the initialisation of state elements and their state transitions is taken care of automatically at the point they are first referenced in the observation equations, using values as configured in the yaml file.
The distinction between "Network" and "User" positioning modes that may be used in other software packages is not required in Ginan. All receivers are always stored in a large single filter. Depending on the configuration, the state and it's covariance matrix may turn out to be block-diagonal (user-mode), which will automatically be treated optimally upon the estimation stage by applying 'chunking'.