pppar

package
v0.35.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InputTypeConfig         = "configuration"
	InputTypeEphemeris      = "ephemeris"
	InputTypeObservation    = "observation"
	InputTypePreciseProduct = "precise_product"
)

Constants for InputData types

View Source
const (
	ResultTypePosition        = "position"
	ResultTypeAmbiguityStatus = "ambiguity_status"
	ResultTypeDiagnostics     = "diagnostics"
)

Constants for Results types

Variables

This section is empty.

Functions

This section is empty.

Types

type InputData

type InputData struct {
	Type    string      // Data type identifier
	Payload interface{} // Data payload
}

InputData represents data flowing into the PPP solver

type PPP

type PPP struct {
	Config            PPPConfig
	DataChan          chan InputData
	ResultsChan       chan Results
	Epoch             observation.Epoch
	Ephemeris         *ephemeris.EphemerisStore
	PreciseProducts   products.PreciseProductProvider
	SatelliteStateMap *state.PPPSatelliteStateMap
	FilterState       *filter.EKFState
	Result            PPPResult
	// contains filtered or unexported fields
}

PPP is the main solver struct for Precise Point Positioning with Ambiguity Resolution

func NewPPP

func NewPPP(config PPPConfig) *PPP

NewPPP creates a new PPP instance with the provided configuration

func (*PPP) Close

func (ppp *PPP) Close()

Close gracefully shuts down the PPP solver

func (*PPP) ProcessEpoch

func (ppp *PPP) ProcessEpoch(epoch observation.Epoch) (PPPResult, error)

ProcessEpoch processes a single observation epoch through the PPP filter

func (*PPP) Run

func (ppp *PPP) Run()

Run processes incoming data through the PPP pipeline

type PPPConfig

type PPPConfig struct {
	config.Config // Embed base configuration

	// Precise product settings
	SP3FilePath   string // Path to SP3 precise orbit file
	CLKFilePath   string // Path to clock (CLK) file
	BiasSINEXPath string // Path to Bias-SINEX file (CODE or IGS)
	VMFGridPath   string // Path to VMF troposphere grid files
	AntexFilePath string // Path to ANTEX antenna calibration file

	// Processing mode
	ProcessingMode string // "static" or "kinematic"

	// Ambiguity resolution settings
	AREnabled          bool    // Enable ambiguity resolution
	ARMinRatio         float64 // Ratio test threshold (default: 3.0)
	ARMinSatellites    int     // Minimum satellites required for AR (default: 5)
	ARValidationMethod string  // "ratio", "w-test", or "combined"

	// Troposphere estimation
	EstimateTroposphere bool   // Enable troposphere estimation
	TroposphereModel    string // "VMF1", "VMF3", or "Saastamoinen"
	EstimateGradients   bool   // Estimate troposphere gradients (North/East)

	// Process noise parameters (for Kalman filter)
	ProcessNoisePosition    float64 // m²/s - for kinematic mode
	ProcessNoiseClock       float64 // m²/s - receiver clock random walk
	ProcessNoiseTroposphere float64 // m²/s - troposphere ZWD random walk
	ProcessNoiseAmbiguity   float64 // cycles²/s - float ambiguity process noise (typically 0)

	// Measurement weighting
	CodeSigma  float64 // Code measurement std dev (meters), default: 1.0
	PhaseSigma float64 // Phase measurement std dev (meters), default: 0.01
}

PPPConfig extends the base configuration with PPP-AR specific settings

func NewDefaultPPPConfig

func NewDefaultPPPConfig() PPPConfig

NewDefaultPPPConfig returns a PPPConfig with sensible defaults

type PPPResult

type PPPResult struct {
	Time                 time.Time
	Position             coordinates.Vector3D
	PositionCovariance   [3][3]float64           // Position covariance (ECEF)
	ReceiverClocks       map[gnss.System]float64 // Per-system receiver clocks (meters)
	ClockCovariances     map[gnss.System]float64 // Clock uncertainties (meters)
	TroposphereZWD       float64                 // Zenith wet delay (meters)
	TroposphereVariance  float64                 // ZWD uncertainty (meters²)
	TroposphereGradient  [2]float64              // North, East gradients (meters)
	NumberOfSatellites   int                     // Number of satellites used
	NumberOfObservations int                     // Total observations (code + phase)
	AmbiguityStatus      string                  // "float", "partial_fixed", "fixed"
	FixedAmbiguities     int                     // Number of fixed ambiguities
	FloatAmbiguities     int                     // Number of float ambiguities
	PDOP                 float64                 // Position dilution of precision
	Converged            bool                    // Solution convergence flag
}

PPPResult contains the output of a PPP solution for a single epoch

type Results

type Results struct {
	Type    string      // Result type identifier
	Payload interface{} // Result payload
}

Results represents output from the PPP solver

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL