A table of satellite positions does not contain every instant
A signal left a satellite between two epochs in an orbit file. The receiver needs a satellite state at that earlier event, but the file gives only samples. Interpolation supplies a value between those samples. The important question is not whether a smooth curve can be drawn; it is what supports that curve between the points.
This guide explains the missing step between recovering an emission time and evaluating a tabulated orbit. It uses original fictional trajectories small enough to calculate by hand. The examples separate interpolation error, errors already present in the sampled orbit, numerical sensitivity and the different problem of extrapolating beyond the available interval.
No sampling interval, polynomial degree or uncertainty below is a recommended GNSS processing setting. Real work needs a compatible orbit product, time scale, reference frame and validated interpolation method. The educational aim is to identify which checks establish arithmetic consistency and which require genuinely new evidence.
Geodesy subject guide · Learning that transfers into life · How X Works hub
Choose your reading route
Route 1: Identify the requested state
Route 2: Build the interpolating curve
Route 3: Test sensitivity and uncertainty
Route 4: Check model boundaries
Route 5: Transfer and report
Full chapter index · Independent worked case · Questions and practical checks
Chapter index
Identify the requested state
Begin with the event and the product definition
Distinguish interpolation from fitting and propagation
Build the interpolating curve
Construct an exact quadratic teaching trajectory
Derive the three interpolation weights
Use local time without silently changing its scale
Test sensitivity and uncertainty
Measure sensitivity through the weights
Carry shared orbit errors through the combination
Recognise the stronger leverage of extrapolation
Check model boundaries
Build a hidden-trajectory counterexample
Do not borrow an orbit rule for a clock series
CHAPTER 1 OF 12
1. Begin with the event and the product definition
An orbit table associates coordinate samples with stated epochs. To evaluate a satellite state, first identify the requested physical event and its time label. For a received GNSS signal, the transmitting endpoint belongs to emission, not reception. The existing emission-time guide develops that choice. Interpolation begins after the requested epoch has been established.
Next identify what the sampled coordinates represent. Their reference frame, units, satellite identifier and physical endpoint belong to the data contract. A centre-of-mass orbit and an antenna reference require their documented connection. A mathematically excellent interpolation of the wrong satellite or endpoint remains wrong for the intended range calculation.
ESA Navipedia describes polynomial interpolation for precise satellite coordinates and stresses consistency between orbit and clock products. Its legacy numerical examples are not adopted here as universal current performance rules. This article instead develops small exact constructions so the behaviour of the method can be inspected without assuming that a named file format guarantees accuracy.
Write the request in a complete sentence: estimate this satellite coordinate at this emission epoch using these samples in this frame. Then record the available time interval. If the requested epoch falls outside it, name the operation extrapolation immediately. Calling every missing value interpolation conceals an important change in the evidence available.
CHAPTER 2 OF 12
2. Distinguish interpolation from fitting and propagation
An interpolating curve passes through the selected samples exactly, up to numerical rounding. A fitted curve may deliberately not pass through every point because it models noisy data with fewer degrees of freedom. Orbit propagation instead uses a dynamical model and an initial state to calculate evolution. These operations can support the same larger task but are not interchangeable descriptions.
For a fictional one-coordinate table, let times be −1, 0 and +1 teaching time units, with positions 101, 100 and 105 distance units. A quadratic polynomial can pass through all three. That property establishes a mathematical connection among the samples; it does not establish that the real satellite followed that exact quadratic between them.
If an orbit provider has already estimated a trajectory from observations, its tabulated values carry the provider’s modelling and estimation uncertainties. Interpolating those values adds another numerical layer. Passing through them perfectly does not remove their common bias, correct an incompatible frame or supply missing observation information.
This distinction helps interpret a zero residual at a sample epoch. It may simply reflect a design property of interpolation. A useful accuracy test needs information not forced by that design, such as held-out samples, an independent product or an exact synthetic trajectory. Different checks answer different questions, and a trustworthy report names which was performed.
CHAPTER 3 OF 12
3. Construct an exact quadratic teaching trajectory
Choose the fictional trajectory x(t) = 100 + 2t + 3t² in consistent teaching units. At t = −1, x = 100 − 2 + 3 = 101. At zero, x = 100. At +1, x = 105. The three values match the table. Because the generating function is known, it can act as an independent truth for this exercise.
At t = 0.5, direct substitution gives 100 + 1 + 0.75 = 101.75. A straight line between the samples at zero and one would instead give 102.5. Its error relative to the stipulated quadratic is +0.75 distance units. The discrepancy comes from curvature omitted by that linear approximation, not from a unit conversion or clock error.
The quadratic coefficient also has a physical interpretation inside this toy model. The velocity is 2 + 6t and the acceleration is the constant 6 distance units per squared time unit. A straight line assumes zero curvature over its interval. The two descriptions can agree at their endpoints while disagreeing between them.
Do not conclude that a quadratic is sufficient for real satellite motion. We deliberately chose a quadratic so one method has an exact reference answer. Later chapters change the hidden trajectory while preserving the same three nodes. That changed-context test shows why reproducing a small table is not enough to establish what happened between its entries.
CHAPTER 4 OF 12
4. Derive the three interpolation weights
For nodes −1, 0 and +1, define three basis weights: L₋(t) = t(t−1)/2, L₀(t) = 1−t² and L₊(t) = t(t+1)/2. At its own node each basis is one, and at the other two it is zero. Therefore P(t) = 101L₋ + 100L₀ + 105L₊ reproduces the three sample values.
At t = 0.5, the weights are −0.125, 0.75 and 0.375. Their sum is one. The interpolated value is −12.625 + 75 + 39.375 = 101.75, agreeing with the known quadratic. A negative interpolation weight is not itself a mistake; it is part of reconstructing the curvature from these nodes.
Check each node explicitly rather than testing only the requested midpoint. At −1, the weights are 1,0,0; at zero they are 0,1,0; at +1 they are 0,0,1. Also test a constant input table. Since the weights sum to one, a constant position should remain constant at every evaluated time in this polynomial construction.
The basis form is one way to explain interpolation. Production implementations may use numerically preferable representations. The educational requirement is to understand the weights and their dependencies, not to prescribe a particular code routine. A transparent small example provides a regression test for another implementation without pretending to validate every realistic orbit condition.
CHAPTER 5 OF 12
5. Use local time without silently changing its scale
Large absolute epoch labels are often inconvenient for a small local polynomial example. Introduce a local variable u = (T−T₀)/h, where T is the original time, T₀ a chosen origin and h a nonzero time scale. The nodes −1,0,+1 might correspond to original times T₀−h, T₀ and T₀+h. The transformation is part of the model interface.
Take fictional T₀ = 1,000 seconds and h = 20 seconds. The three nodes are 980, 1,000 and 1,020 seconds. The local query u = 0.5 means T = 1,010 seconds. Substituting 1,010 directly into a polynomial defined in u would not be a small numerical error; it would evaluate a completely different argument.
Derivatives must also follow the scale. If the toy coordinate is x(u) = 100 + 2u + 3u², then dx/dT = (2+6u)/h. At u = 0.5 and h = 20 seconds, the velocity is 5/20 = 0.25 distance units per second, not five. A correctly interpolated position does not prove that a derived velocity used the proper time scale.
Changing the origin or units consistently should preserve the physical state at the same event. Use that as another synthetic check. Relabel the times, transform the polynomial argument and compare the recovered position. Preserve both the original epoch labels and the local transformation so a later reviewer can reconstruct the calculation without guessing what one time unit meant.
CHAPTER 6 OF 12
6. Measure sensitivity through the weights
An interpolated value is a weighted sum of sampled values. If each node has an independent perturbation bounded in magnitude by ε, then the output perturbation is bounded by ε times the sum of the absolute weights. At t = 0.5, that sum is 0.125 + 0.75 + 0.375 = 1.25. The worst-case bound is therefore 1.25ε.
With fictional ε = 0.004 distance units, the bound is 0.005. It is a deterministic bound for the stated node perturbations, not a standard deviation. It assumes nothing about random signs. The negative first weight means one node’s negative perturbation can reinforce positive perturbations from the other two in the worst-case arrangement.
If instead node errors are independent with equal standard uncertainty σ, the variance is σ² times the sum of squared weights. Here the sum is 0.71875. With σ = 0.004, the interpolated standard uncertainty is approximately 0.003391. This answers a different question from the worst-case bound and should not be presented as the same error statement.
Neither calculation includes error from choosing an unsuitable interpolation model. They propagate uncertainty already assigned to the nodes through a specified linear combination. A complete assessment must distinguish uncertainty in sampled states from between-node approximation error and from incorrect metadata. A small propagated number cannot certify a model whose missing assumptions were never checked.
CHAPTER 7 OF 12
7. Carry shared orbit errors through the combination
Node errors may share a component. Let each sampled error be b + eᵢ, where b is a common offset and the eᵢ are independent local errors. Since the interpolation weights sum to one, the common term in the output is exactly b. Interpolation does not average it away merely because several epochs were used.
Suppose the fictional common offset has standard uncertainty 0.010 distance units and each independent component has standard uncertainty 0.004. If the common and local components are independent, the output variance is 0.010² + 0.71875 × 0.004² = 0.0001115. Its standard uncertainty is approximately 0.01056 distance units.
Treating all three node errors as independent with only the 0.004 uncertainty would have reported approximately 0.003391 instead. The discrepancy concerns the error model, not a change in the interpolation weights. A tidy smooth curve can preserve an uncertain reference offset throughout the interval.
More generally, with node covariance matrix C and weight vector L, the output variance is LᵀCL. Retaining the covariance account matters when interpolated states at several query epochs share the same nodes. Those outputs are not automatically independent observations. Reusing one uncertain sample in many interpolated values does not create many independent measurements of the orbit.
CHAPTER 8 OF 12
8. Recognise the stronger leverage of extrapolation
Evaluate the same quadratic basis at t = 2, outside the sampled interval. The weights are 1, −3 and 3. Their sum remains one, and the polynomial gives 101 − 300 + 315 = 116, matching the stipulated generating quadratic. Exactness in this special case does not make extrapolation generally trustworthy.
The absolute-weight sum is now seven rather than 1.25. A node perturbation bounded by 0.004 can therefore produce an output perturbation bounded by 0.028 under the stated worst-case model. The sum of squared weights is 19, so independent node noise with standard uncertainty 0.004 propagates to approximately 0.01744.
Both sensitivities are larger than at the interior query. Even before considering an incorrect hidden trajectory, extrapolation has increased the influence of sample errors. The result may still look smooth and may still reproduce all input nodes. Neither property reveals the increased leverage at the outside point.
The correct conclusion is not that extrapolation is forbidden in every application. It is that its support and uncertainty require separate justification. State the query’s location relative to the nodes, the permitted product interval and the validation performed. Do not quietly extend an interpolation claim beyond the domain that the evidence actually tested.
CHAPTER 9 OF 12
9. Build a hidden-trajectory counterexample
Define another fictional trajectory xₐ(t) = 100 + 2t + 3t² + αt(t²−1). At t = −1,0,+1, the added term is zero. Every value in the three-node table is unchanged for any α. A quadratic interpolator using those nodes must therefore return the same curve no matter which member of this family generated them.
At t = 0.5, the added term is −0.375α. If α = 2, the true teaching value is 101.00 rather than 101.75. The interpolator still passes through every supplied node exactly. This counterexample proves that zero node residuals alone do not bound the error between nodes without additional assumptions on the trajectory.
At t = 2, the added term is 6α, or 12 when α = 2. The alternate trajectory gives 128, while the quadratic extrapolation gives 116. The same invisible node difference becomes a much larger outside-interval discrepancy. This is a concrete reason to distinguish interpolating evidence from extrapolating confidence.
A held-out value at 0.5 can distinguish these two constructed trajectories. It does not prove uniqueness among every possible trajectory or validate every other interval. The strength of the conclusion follows the scope of the test. Independent evidence is valuable because it was not already forced to agree by the interpolation construction.
CHAPTER 10 OF 12
10. Do not borrow an orbit rule for a clock series
A coordinate trajectory and a satellite clock series are different quantities with different short-term behaviour and product conventions. ESA’s precise-coordinate discussion treats orbit and clock interpolation separately. Its dated numerical examples should not be turned into one universal present-day sampling or interpolation rule for every product.
A fictional clock sequence can contain an abrupt offset change while the satellite coordinate remains smooth. A high-order curve through clock samples on both sides could smear the change into times where it never occurred. Conversely, treating a smooth coordinate as a series of independent clock-like offsets discards useful trajectory structure. The variable’s model matters.
Before interpolating, check event flags, missing-value conventions and product compatibility. A missing sample represented by a sentinel number is not an extreme physical coordinate to include in a polynomial. A duplicate timestamp can make the basis denominator zero. These are data-contract failures that require handling before increasing numerical precision.
The broadcast-clock companion develops a polynomial that is explicitly supplied as a model relative to a reference epoch. That is different from inventing a polynomial through arbitrary clock samples. Keep the distinction visible: evaluating a documented parameterisation and interpolating a time series are separate operations, even when both happen to use polynomial arithmetic.
CHAPTER 11 OF 12
11. Design a held-out check that tests the intended interval
A useful synthetic test begins with a known trajectory, samples it at chosen nodes and evaluates the interpolator at times not used as nodes. Compare position and, if required, velocity. Vary the query location, node spacing and trajectory curvature deliberately. One midpoint match is not a complete test of edge behaviour or extrapolation.
For real products, a held-out sample comparison can test reconstruction relative to that sampled product. A comparison with another independently established orbit can test additional errors, provided reference conventions and dependence are understood. Two solutions derived from shared data and models may agree while preserving a common bias.
Choose a tolerance for the quantity that matters. Coordinate error, line-of-sight range error and final receiver-position error are different outputs. The existing reception-frame guide explains how an endpoint change projects into range. A coordinate interpolation test cannot automatically be advertised as a final positioning-accuracy test.
Preserve the node identifiers, query times, product version, reference frame and before-and-after results. Do not select the degree solely because it minimises residuals at the very nodes that the method is designed to reproduce. Test information that can actually reveal an incorrect between-node model, and keep unsuccessful cases in the assessment.
CHAPTER 12 OF 12
12. Report what the smooth curve does and does not establish
A defensible conclusion states that a specified interpolation reproduced a named product at selected epochs and met a stated held-out criterion over a defined interval. It distinguishes that numerical result from the accuracy of the orbit product and from the complete receiver solution. The word precise in a product category does not remove the need for those boundaries.
For our fictional quadratic, the three-node method returns 101.75 at t = 0.5 exactly within arithmetic rounding. For the alternate cubic family, the same method can miss the true teaching value despite fitting all three nodes. Both statements are correct because they refer to different assumptions about the unknown trajectory.
If the application needs a state outside the supported interval, report the extrapolation explicitly and obtain suitable additional evidence or a validated dynamical prediction. If a sample flag indicates a model discontinuity, do not smooth over it merely to keep a continuous plot. Visual continuity is not the same as an independently justified state.
The transferable lesson is that interpolation creates an organised estimate, not new observations. Its usefulness comes from a justified relationship between the samples and the missing instant. Checking that relationship—through conventions, sensitivity, held-out information and honest limits—is what turns a smooth curve into a trustworthy part of a measurement model.
Independent worked case and evidence checks
Try a new fictional trajectory y(u) = 20 − 4u + 2u² at nodes −1,0,+1. Its samples are 26,20,18. At u = 0.25, the weights are −0.09375, 0.9375 and 0.15625. The weighted value is −2.4375 + 18.75 + 2.8125 = 19.125, matching direct substitution 20 − 1 + 0.125.
Now use physical times T₀ = 500 seconds and h = 40 seconds. The query is T = 510 seconds, and the coordinate velocity there is (−4 + 4 × 0.25)/40 = −0.075 distance units per second. Explain why dividing by h is necessary. A correct position interpolation with an incorrectly scaled derivative would fail a state-vector application.
Add a hidden cubic term βu(u²−1) with β = 0.8. It leaves all three samples unchanged. At the query it contributes 0.8 × 0.25 × (0.0625−1) = −0.1875. The alternative teaching value is therefore 18.9375. Identify what observation would distinguish the two histories and what a zero residual at the original nodes cannot establish.
Finally suppose each node shares a fixed +0.3 offset. Since the weights sum to one, the interpolated coordinate also has +0.3. Reconstruct the output using the shifted samples to verify that fact. Neither exact interpolation nor a successful local derivative calculation removes the common reference error. The checks concern different parts of the inference.
A second independent case changes node spacing rather than the hidden trajectory. Sample x(t) = 100 + 2t + 3t² at t = −2,0,+2. The values are 108,100,116. Define u = t/2, so the same quadratic becomes 100 + 4u + 12u². At physical t = 0.5, the local query is u = 0.25, not 0.5. Using weights −0.09375,0.9375,0.15625 gives −10.125 + 93.75 + 18.125 = 101.75. The exact trajectory is recovered again.
Compare a straight line between physical times zero and two at t = 0.5. It gives 100 + 0.25 × 16 = 104, an error of +2.25 relative to the stipulated quadratic. The earlier line between zero and one gave error +0.75 at the same event. Changing spacing changed the local approximation error even though the hidden trajectory and query event did not change. A method name alone therefore does not identify its performance.
For a generic twice-differentiable function with a supported bound |x″| ≤ M over two bracketing nodes a and b, the linear-interpolation error at t has magnitude at most M|(t−a)(t−b)|/2. Our quadratic has M = 6 in the teaching units. Between zero and two at t = 0.5, the bound is 3 × |0.5 × (−1.5)| = 2.25, matching the exact error. This equality is special to the constant-curvature example.
That bound is useful only when the derivative bound is justified over the full interval. Estimating curvature from the same sparse nodes does not rule out the hidden cubic family already constructed. State whether M comes from a validated dynamical argument, independent information or an explicit teaching stipulation. Otherwise the formula merely relocates the unsupported assumption into another symbol.
As a final classification check, ask a second learner to label four statements: the interpolator passes through its nodes; the query is inside the node interval; the orbit product is accurate; the receiver position is accurate. The first two can be checked from the interpolation construction and metadata. The latter two require additional evidence. Keeping those levels separate is the practical lesson, not a preference for any one polynomial degree.
Worked comparison
| Check | What it establishes | What it does not establish |
|---|---|---|
| Reproduce each node | Interpolation arithmetic and node identity | Between-node truth |
| Preserve constant input | Weights sum to one | Absence of a shared bias |
| Propagate node covariance | Conditional uncertainty of the weighted value | Correctness of the trajectory assumption |
| Compare a held-out epoch | Performance at an unused test point | Universal accuracy outside the tested interval |
| Check extrapolation separately | Sensitivity beyond the available nodes | Permission to ignore product validity |
Questions and practical checks
Is a negative interpolation weight always wrong?
No. The three-node quadratic uses a negative weight at an interior query. Check the basis and its sensitivity rather than assuming that interpolation must be an ordinary positive-weight average.
Does exact agreement at all sample epochs prove accuracy?
No. The hidden cubic construction agrees at every supplied node while differing between them. Independent assumptions or held-out evidence are needed.
Should I always use the highest available degree?
No. Degree alone does not establish stability or physical suitability. Validate the method for the specific product, node spacing, query interval and required quantity.
Can orbit interpolation settings be reused for clocks?
Not without justification. Orbit coordinates and clock products have different behaviour and conventions. Evaluate each under its documented model and quality flags.
Does interpolating more output epochs create more independent observations?
No. Outputs sharing uncertain nodes are generally dependent. Retain the relevant covariance and distinguish generated estimates from newly measured information.
Continue with the connected subjects
Establish the requested event and reference
Recover GNSS emission time before asking for the satellite state
Express the emission state in compatible reception-frame axes
Keep other observation interfaces explicit
Distinguish physical antenna endpoints and phase-centre models
Preserve observation epochs and signal identifiers
Sources and scope
ESA Navipedia: precise-coordinate interpolation and orbit–clock product consistency
NIST Digital Library of Mathematical Functions: Lagrange interpolation and its remainder
The numerical cases in this guide are original fictional teaching examples, not measurements from a real site. This is an educational explanation, not a field safety instruction, engineering approval or an official certification. For a real project, use qualified practitioners, current product documentation and site-specific evidence. Sources were checked on 31 October 2026.
Continue with the state and clock model
Choose the companion that addresses the next unresolved interface. These are distinct model checks, not substitutes for an independent positioning comparison.
Broadcast clocks: preserve coefficient references, units and covariance
Eccentric-orbit clocks: check radial motion, scalar invariance and included terms
Eclipse geometry: separate a shadow classification from model-validity decisions