![]() |
Ginan
|
Data Structures | |
struct | Duo |
Functions | |
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, 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 | mergeCorrelated (Trace &trace, KFState &kfState, KFMeasEntryList &kfMeasEntryList) |
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 orbits Provide a weak tiedown using mu values, which the state will attempt to exponentially decay toward using the configured tau value in stateTransition. | |
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) |
bool | isIntervalReset (double epoch, double prev_epoch, double reset_interval) |
Checks if a reset interval has been reached between two epochs. | |
bool | isSpecificTimeReset (double epoch, double prev_epoch, const std::vector< double > &resetTimes) |
Checks if a specific time reset has occurred between two epochs. | |
void | updatePseudoPulses (Trace &trace, KFState &kfState) |
void | resetFilterbyConfig (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 | removeBadSatellites (Trace &trace, KFState &kfState) |
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, KFState &kfState, 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) |
void chunkFilter | ( | Trace & | trace, |
KFState & | kfState, | ||
KFMeas & | kfMeas, | ||
ReceiverMap & | receiverMap, | ||
map< string, FilterChunk > & | filterChunkMap, | ||
map< string, std::ofstream > & | traceList ) |
Architecture Combinators__ | ( | ) |
bool isIntervalReset | ( | double | epoch, |
double | prev_epoch, | ||
double | reset_interval ) |
Checks if a reset interval has been reached between two epochs.
Determines whether the current epoch (epoch
) or the transition from the previous epoch (prev_epoch
) to the current epoch crosses a specified reset interval (reset_interval
).
epoch | The current epoch time. |
prev_epoch | The previous epoch time. |
reset_interval | The interval at which resets occur. |
bool isSpecificTimeReset | ( | double | epoch, |
double | prev_epoch, | ||
const std::vector< double > & | resetTimes ) |
Checks if a specific time reset has occurred between two epochs.
Determines whether a given epoch or the transition between two epochs corresponds to any of the specified reset times within a day. A reset time can either match the exact time of the epoch or occur between the two epochs.
epoch | The current epoch time in seconds since the start of the day. |
prev_epoch | The previous epoch time in seconds since the start of the day. |
resetTimes | A vector of reset times in seconds within a day (0 to 86400). |
Architecture Main_Filter__ | ( | ) |
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'.
Replace individual measurements with linear combinations.
void makeIFLCs | ( | Trace & | trace, |
KFState & | kfState, | ||
KFMeasEntryList & | kfMeasEntryList ) |
Replace individual measurements with linear combinations.
Replace individual measurements with linear combinations.
void mergeCorrelated | ( | Trace & | trace, |
KFState & | kfState, | ||
KFMeasEntryList & | kfMeasEntryList ) |
void perRecMeasurements | ( | Trace & | trace, |
Receiver & | rec, | ||
ReceiverMap & | receiverMap, | ||
KFMeasEntryList & | kfMeasEntryList, | ||
KFState & | kfState, | ||
KFState & | remoteState ) |
void ppp | ( | Trace & | trace, |
ReceiverMap & | receiverMap, | ||
KFState & | kfState, | ||
KFState & | remoteState ) |
trace | Trace to output to |
receiverMap | List of receivers containing observations for this epoch |
kfState | Kalman filter object containing the network state parameters |
remoteState | Optional pointer to remote kalman filter |
void pppPseudoObs | ( | Trace & | trace, |
ReceiverMap & | receiverMap, | ||
KFState & | kfState, | ||
KFMeasEntryList & | kfMeasEntryList ) |
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.
trace | Trace to output to |
kfState | Filter to remove states from |
receiverMap | List of receivers containing observations for this epoch |
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.
trace | Trace to output to |
kfState | Filter to remove states from |
void removeBadReceivers | ( | Trace & | trace, |
KFState & | kfState, | ||
ReceiverMap & | receiverMap ) |
trace | Trace to output to |
kfState | Filter to remove states from |
receiverMap | List of receivers containing observations for this epoch |
trace | Trace to output to |
kfState | Filter to remove states from |
Prepare satellite clocks to minimise residuals to broadcast clocks.
Provide a weak tiedown using mu values, which the state will attempt to exponentially decay toward using the configured tau value in stateTransition
trace | Trace to output to |
time | Time |
kfState | Kalman filter object containing the network state parameters |
Prepare stec values clocks to minimise residuals to klobuchar model.
trace | Trace to output to |
time | Time |
kfState | Kalman filter object containing the network state parameters |
Prepare Satellite clocks to minimise residuals to broadcast orbits Provide a weak tiedown using mu values, which the state will attempt to exponentially decay toward using the configured tau value in stateTransition.
trace | Trace to output to |
time | Time |
kfState | Kalman filter object containing the network state parameters |
void updateFilter | ( | Trace & | trace, |
ReceiverMap & | receiverMap, | ||
KFState & | kfState ) |
trace | Trace to output to |
receiverMap | List of receivers containing observations for this epoch |
kfState | Kalman filter object containing the network state parameters |
void updateRecClocks | ( | Trace & | trace, |
ReceiverMap & | receiverMap, | ||
KFState & | kfState ) |
Prepare receiver clocks using SPP values to minimise pre-fit residuals.
trace | Trace to output to |
receiverMap | List of receivers containing observations for this epoch |
kfState | Kalman filter object containing the network state parameters |