A shadow flag identifies a geometry, not every consequence of that geometry
A GNSS processing record marks a satellite as eclipsed. What does that establish? It may identify a geometric shadow condition under a chosen model. It does not directly measure the satellite’s attitude, orbit error or the quality of every observation. Those are related questions with their own evidence.
This guide builds a simple shadow-cylinder calculation, tests its signs and units, then examines boundary uncertainty and sampling. Original fictional examples show why a binary flag can be mathematically reproducible yet too coarse for a particular interpretation. The final sections connect illumination with model validity without prescribing one universal satellite-exclusion rule.
The geometry is educational. It is not an operational eclipse predictor, an attitude model or a GNSS quality-control specification. All radii, paths and tolerances below are invented teaching values. No direct solar observation or access to a real satellite stream is needed to work the examples.
Geodesy subject guide · Learning that transfers into life · How X Works hub
Choose your reading route
Route 1: Define the illumination question
Route 2: Calculate the shadow test
Route 3: Check boundaries and sampling
Route 4: Connect flags with evidence
Route 5: Transfer and report
Full chapter index · Independent worked case · Questions and practical checks
Chapter index
Define the illumination question
Separate illumination from the radio path to the receiver
State the cylinder model before evaluating it
Calculate the shadow test
Work a three-dimensional shadow classification
Check equivalent formulas without changing the definitions
Make boundary conventions and margins visible
Check boundaries and sampling
Propagate bounded uncertainty into the classification
See why a sampled flag can miss an entire interval
Calculate duration and test a changed crossing path
CHAPTER 1 OF 12
1. Separate illumination from the radio path to the receiver
An Earth-shadow calculation asks whether Earth blocks sunlight reaching the satellite under a specified geometry. A ground receiver’s radio visibility asks whether the satellite signal has a usable path to that receiver. These involve different lines and different endpoints. A satellite can be in Earth’s shadow while remaining geometrically above a receiver’s horizon.
Similarly, a receiver can lose a signal because a building obstructs the radio path even when the satellite is fully illuminated. Calling both situations blockage does not make them the same measurement problem. Begin by naming which source, object and receiving point are connected by the path being tested.
ESA Navipedia presents a simplified cylindrical Earth-shadow test for GNSS satellites and discusses why eclipse conditions can matter for orbit and attitude modelling. This article uses the geometry as a starting point, not its legacy blanket operational recommendations as a current rule for all spacecraft and processing systems.
The useful sequence is geometry first, model implications second, observation evidence third. A flag can identify a condition worth investigating without establishing the magnitude of the resulting error. Keeping those stages separate prevents both overreaction to a flag and unjustified dismissal of a condition that matters for a particular validated model.
CHAPTER 2 OF 12
2. State the cylinder model before evaluating it
Place the origin at Earth’s centre and approximate the occulting Earth by a sphere of fictional radius R. Let u be a unit vector from Earth towards the Sun. Assume parallel sunlight rays and an infinitely long cylindrical shadow extending in direction −u. This deliberately omits the Sun’s finite angular size and the resulting penumbra and conical details.
Let r be the satellite position vector in the same coordinate representation and at a compatible epoch. Define the signed axial coordinate a = r·u. The satellite is on the anti-solar side when a is negative. Its component perpendicular to the Sun direction is r⊥ = r−au, with distance d = |r⊥| from the shadow axis.
Under the strict interior version of the toy cylinder test, shadow requires both a < 0 and d < R. Equality belongs to the mathematical boundary and needs an explicit classification convention. The two conditions play different roles: the first chooses the side behind Earth, and the second tests proximity to the axis.
This is not a complete physical illumination model. Its value is that every assumption and geometric operation is visible. A more realistic model can refine the shadow surface while retaining the same discipline: state what the flag means, what inputs it uses and which boundary convention or approximation controls marginal cases.
CHAPTER 3 OF 12
3. Work a three-dimensional shadow classification
Use fictional R = 1 distance unit and Sun direction u = (1,0,0). Choose satellite vector r = (−4,0.3,0.4). The axial coordinate is a = −4. The perpendicular vector is (0,0.3,0.4), whose length is √(0.09+0.16) = 0.5. Both a < 0 and d < 1 hold, so the point is inside the declared cylindrical shadow.
Now use r = (+4,0.3,0.4). Its perpendicular distance is still 0.5, but a is positive. The point is on the Sun-facing side and fails the shadow test. Omitting the side condition would classify both points identically even though the cylinder is meant to extend behind Earth, not towards the source.
A third point r = (−4,1.2,0) lies behind Earth but has d = 1.2. It is outside the toy shadow. These paired cases test the two conditions independently. A routine that passes only the first case might still have lost the axial sign test or compared total radius with the shadow radius.
The total distance from Earth’s centre is not d. For the first point it is √16.25, approximately 4.0311, while d is 0.5. Comparing the total radius directly with R would test whether the point lies inside Earth, not whether it lies inside the extended shadow cylinder. Name the distance before deciding which threshold it belongs beside.
CHAPTER 4 OF 12
4. Check equivalent formulas without changing the definitions
Because u is a unit vector, d² = |r|²−(r·u)². For the first fictional point, |r|² = 16.25 and a² = 16, giving d² = 0.25. This agrees with the perpendicular-component calculation. The equality offers an independent arithmetic check using the same geometric inputs.
If s is a nonzero vector from Earth to the Sun rather than a unit vector, first set u = s/|s|. Equivalently, the axial projection is a = r·s/|s|. Replacing u with s directly in |r|²−(r·u)² is wrong unless |s| happens to be one. The missing normalisation can even produce an impossible negative squared distance.
Take s = (10,0,0) and r = (−4,0.3,0.4). Their raw dot product is −40, not the axial distance −4. The incorrect expression 16.25−1600 is negative. That failure is not evidence of exotic shadow geometry; it reveals incompatible use of a non-unit direction vector.
Numerical rounding near the axis can create a tiny negative value when subtracting nearly equal squared quantities. A validated implementation must distinguish harmless round-off from a substantial negative result caused by invalid inputs or definitions. Do not silently clip every negative number to zero, because that can conceal the normalisation error demonstrated here.
CHAPTER 5 OF 12
5. Make boundary conventions and margins visible
For r = (−4,0.6,0.8) and R = 1, the perpendicular distance is exactly one. The point lies on the cylindrical boundary. Under the strict inequalities defined here it is not classified as interior shadow. A different flag convention could include the boundary, but the convention must be documented rather than inferred from a final zero or one.
Define a signed transverse margin g = d−R. Negative g means inside the cylinder when the anti-solar condition also holds; positive g means outside. For the first point g = −0.5. For the boundary point g = 0. Reporting the margin alongside the flag makes proximity to the threshold visible.
A binary label discards that distance information. Points with g = −0.5 and g = −0.000001 receive the same interior flag, although the second is much closer to changing category under small perturbations. The flag answers membership under the current inputs, not how robust that membership is to uncertainty.
Also inspect the axial condition near a = 0. The model’s two boundaries are different surfaces. A point near the terminator plane requires its own side-condition check, even if the transverse margin is comfortable. One scalar margin cannot describe every uncertainty in a test made of two inequalities.
CHAPTER 6 OF 12
6. Propagate bounded uncertainty into the classification
Suppose the fictional transverse distance is d = 0.98 and R = 1, but a supported bounded error account permits d to vary by ±0.05. Then d could lie between 0.93 and 1.03. The nominal flag is interior, yet the transverse classification is not robust under those bounds. A confident binary statement would conceal an unresolved boundary crossing.
By contrast, nominal d = 0.70 with the same bound gives an interval 0.65 to 0.75, entirely inside. If the anti-solar condition is also robust, the cylinder classification is stable under this particular uncertainty account. This does not make the physical shadow model exact; it establishes stability relative to the stated inputs and approximations.
For a fixed unit direction, changing r by a bounded vector perturbation can change its perpendicular projection by no more than the vector bound. If the direction u is also uncertain, the projection changes through another term. A small direction error can matter more for a distant point because its transverse shift grows with the distance scale.
A conservative educational investigation can evaluate plausible extreme inputs or use a justified first-order sensitivity account. Do not call an arbitrary numerical buffer a statistical confidence interval. A bound, standard uncertainty and policy guard band are different statements. Their meaning and intended use should remain attached to the reported flag.
CHAPTER 7 OF 12
7. See why a sampled flag can miss an entire interval
Use a fictional planar path r(t) = (−4,0.4t,0), fixed Sun direction u = (1,0,0) and R = 1. The satellite remains on the anti-solar side throughout the example. Its perpendicular distance is |0.4t|. Interior shadow occurs when |t| < 2.5 teaching time units.
Samples at t = −3 and +3 both lie outside because d = 1.2. The satellite nevertheless passes through the cylinder between them. A dataset containing only those endpoint flags could miss the whole interior interval. Increasing the number of printed decimal places in the two flags does not supply the missing temporal information.
Adding a sample at t = 0 detects interior shadow, but does not by itself give exact entry and exit times. Under the known linear path model, solve d = 1 to find boundary events at −2.5 and +2.5. Without that trajectory model, the sampled states alone permit other between-sample histories.
This connects with orbit interpolation while remaining a different task. A shadow classifier uses evaluated states; the reliability of those states between nodes depends on the orbit model. A reproducible geometry routine cannot repair an unsuitable interpolated path. Check the state-evaluation layer before turning a sequence of flags into a precise duration claim.
CHAPTER 8 OF 12
8. Calculate duration and test a changed crossing path
For the fictional central crossing above, the boundary-to-boundary duration is five time units. Now add a fixed perpendicular offset z = 0.6, so r(t) = (−4,0.4t,0.6). The condition becomes (0.4t)² + 0.6² < 1. Therefore 0.16t² < 0.64, giving |t| < 2 and a duration of four time units.
The shorter interval follows from the shorter chord through the transverse circular cross-section. It is not caused by a change in the along-track teaching speed. With z = 1, the path is tangent at one instant and has no open interior interval under the strict definition. With z greater than one, it misses the cylinder entirely.
Near tangency, small changes in the offset can make a substantial relative change in duration. For a general fictional fixed offset b and transverse speed v, duration is 2√(R²−b²)/|v| when |b| < R. This expression assumes a straight crossing and fixed direction; it is not a full orbital eclipse-duration formula.
Do not treat a single flag value as a duration estimate. A duration needs boundary events, time units and a model for the path between them. The existing eclipse-mathematics guide develops broader shadow paths and tangency ideas. This article applies those reasoning habits to GNSS state flags and the limits of their interpretation.
CHAPTER 9 OF 12
9. Keep illumination changes separate from attitude knowledge
Illumination conditions can matter for solar radiation pressure and spacecraft attitude modelling. The actual consequences depend on the spacecraft, its control behaviour, the model and the data products used. A cylindrical shadow flag alone does not tell you the orientation of an antenna or the size of an orbit error at that event.
ESA’s legacy eclipse discussion includes historical attitude and exclusion statements. Those should not be universalised across modern satellite blocks or processing strategies. The geometric calculations in this guide do not depend on a claim that every eclipsed satellite has random attitude or requires one fixed recovery interval. Such an operational claim would need current spacecraft- and product-specific evidence.
The existing carrier-phase wind-up guide explains why antenna orientation enters a phase model. A shadow flag can identify a condition under which the assumed orientation model deserves scrutiny, but it does not supply the orientation itself. A smooth wind-up correction also does not independently prove that the attitude model remained valid.
Retain the model-validity information and any applicable attitude or product-quality records alongside the geometric flag. If those are unavailable, state the limitation. Replacing missing evidence with a generic fixed waiting period can create an appearance of control without demonstrating that the relevant model is actually valid for the particular spacecraft and observation.
CHAPTER 10 OF 12
10. Treat data selection as a separate evidence decision
A processing system may use a shadow flag to trigger a documented model change, quality check, weighting adjustment or exclusion rule. The appropriateness of that action follows from the validated system and intended accuracy, not from the geometry test alone. A flag is an input to a decision, not a universal decision encoded by nature.
Consider two fictional analyses of the same observations. One excludes all flagged epochs, while another uses a supported model through the transition. Comparing only their final scatter does not establish which retained more accurate information. Exclusion changes the observation geometry and data volume as well as the possible model errors.
A useful comparison examines the affected observations, parameter sensitivity and suitable independent reference information. It preserves the selection rule and the epochs removed. If an apparent improvement relies on deleting the very interval containing a possible real signal, the interpretation needs particular care. Do not choose a rule simply because it produces the desired coordinate history.
This is not a recommendation to retain questionable observations. It is a recommendation to connect the action with evidence and to report its consequences. The same habit applies to low-elevation cutoffs and other quality filters: filtering can be necessary and helpful while still changing the information available to the final inference.
CHAPTER 11 OF 12
11. Test coordinate invariance and metadata failures
A common orthogonal rotation of r and u preserves the axial dot product and perpendicular distance. Use that as a synthetic test. Rotate both vectors by the same known matrix and confirm that the flag and margin are unchanged. If only one vector is transformed, the calculation instead mixes reference descriptions and can change incorrectly.
A common scale change of all lengths also preserves the classification when R and r are transformed together. For example, multiply the first fictional r and radius by one thousand. The distance becomes 500 and the radius 1,000, so the point remains inside. Changing the position units without changing R would produce an incompatible comparison.
The Sun direction must also correspond to an appropriate epoch and reference. A vector copied from another time or interpreted in a different axis system can pass a unit-length check while pointing incorrectly. Normalisation validates the direction’s magnitude, not its physical identity or time association.
A complete test set therefore includes front-side, back-side, outside, boundary and near-axis cases, plus deliberate unit and reference mismatches. Each case targets a different failure mode. A routine that returns the expected flag for one easy example has not established correctness at the thresholds or across software interfaces.
CHAPTER 12 OF 12
12. Report the model, margin and decision separately
A careful geometric report gives the shadow model, input state and Sun-direction definitions, epoch, unit system, boundary convention and numerical margin. If uncertainty can cross a boundary, say so. If a downstream quality action follows, describe it as a separate documented rule rather than claiming that the flag directly measured an error.
For the first fictional example, the point is anti-solar with perpendicular distance 0.5 inside a radius-one cylinder. That is a precise statement within the declared model. It does not establish a real eclipse time, a spacecraft attitude or the quality of a receiver coordinate. Each broader conclusion requires additional information.
For real GNSS work, use current applicable product and spacecraft documentation and validated illumination and attitude models. The simple cylinder is not a universal substitute for finite-Sun geometry or mission-specific modelling. Its educational value is to make the inference chain inspectable, including where a binary label stops carrying enough information.
The transferable lesson is that a category can be correct yet insufficient. A flag compresses geometry into a convenient label; good interpretation restores the model, boundary and decision context behind it. That makes the result useful without asking one bit of data to answer several different physical and operational questions.
Independent worked case and evidence checks
Use fictional R = 2, Sun vector s = (0,5,0) and satellite position r = (1,−6,1). Normalise s to u = (0,1,0). The axial coordinate is a = −6 and the perpendicular vector is (1,0,1), giving d = √2. The point is inside the cylinder because it lies behind Earth and √2 < 2.
Change only the satellite y-coordinate to +6. The perpendicular distance is unchanged, but the point is now Sun-facing and outside the shadow test. Next use r = (2,−6,0): the distance is exactly two, so it lies on the boundary and is not interior under the strict convention. State the equality rule rather than silently rounding it into a preferred class.
For a fictional crossing r(t) = (0.5t,−6,1), the transverse condition is 0.25t² + 1 < 4. Thus |t| < √12, approximately 3.4641, and the boundary-to-boundary duration is approximately 6.9282 teaching time units. Samples only at −4 and +4 would both be outside while missing the entire interior passage.
Add a transverse-distance bound of ±0.1 to a separate nominal point with d = 1.95. Its possible interval crosses the radius-two boundary. Report nominal interior classification but unresolved robustness under the bound. Do not turn the bounded interval into a probability without a supported probability model.
Finally imagine that the geometric flag triggers an analyst’s thirty-unit exclusion window. The geometry calculation did not establish that window’s duration or necessity. Ask for its validated spacecraft and processing basis, then preserve the actual epochs removed. A clear distinction between geometric evidence and a quality-selection rule is the main independent check in this exercise.
A second independent case changes the Sun direction without changing the coordinate axes. Begin with R = 1, r = (−4,0.5,0) and u₀ = (1,0,0). The nominal transverse distance is 0.5. Rotate only the physical Sun direction through θ = 0.1 radians in the xy-plane, giving u₁ = (cosθ,sinθ,0). This is a changed illumination geometry, not a common coordinate transformation.
The signed perpendicular component in that plane is −rₓsinθ + rᵧcosθ = 4sin0.1 + 0.5cos0.1, approximately 0.896835. The axial component remains negative, so the point is still inside but closer to the boundary. Reversing the Sun-direction rotation gives a perpendicular component approximately 0.098168. The two rotations have equal magnitude yet move the point differently relative to the axis.
At a larger illustrative rotation θ = 0.2, the same perpendicular expression is approximately 1.284711, outside the cylinder while still on the anti-solar side. This is not a prediction of a real Sun-vector error. It demonstrates how the direction input participates in classification and why a unit-length vector can still describe the wrong physical direction.
For small θ in the first case, the first-order change in the signed perpendicular component is approximately 4θ, because its derivative at zero is four. The scale comes from the along-axis distance. A small angular change can produce an appreciable transverse displacement for a distant point. The exact trigonometric calculation is available here to check the approximation rather than merely assume it is adequate.
Finally rotate both r and u₀ together by the same θ. That operation changes only their common coordinate representation, so the transverse distance must remain 0.5 and the flag unchanged. Compare this with rotating the physical direction alone. The distinction between changing the world and changing its description is central to geodetic reasoning, and this pair of cases makes it directly testable without any real observation.
The final report should therefore distinguish uncertain input direction, an intentional change of illumination event and a coordinate transformation. They can all alter component arrays, but only some should alter the physical classification. Preserving the event and reference definitions lets another reader decide which comparison was actually made.
One final reverse check reconstructs the original vector from its axial and perpendicular parts: r = au + r⊥. For the first three-dimensional case, (−4)(1,0,0) + (0,0.3,0.4) gives exactly (−4,0.3,0.4). Also check r⊥·u = 0. These identities test the projection implementation before any threshold is applied. A correct final flag can otherwise hide two compensating arithmetic errors, especially in an easy case far from the boundary. The intermediate values make that hidden failure visible.
Worked comparison
| Item | What it describes | What it does not establish |
|---|---|---|
| Axial sign a < 0 | Anti-solar side in the model | Closeness to the shadow axis |
| Distance d < R | Transverse cylinder membership | Which side of Earth the point occupies |
| Signed margin d−R | Distance from a transverse threshold | Full statistical confidence |
| Sampled flag series | Classification at sampled epochs | Every between-sample entry and exit |
| Illumination flag | A modelled geometric condition | Actual antenna attitude or orbit error |
| Exclusion decision | A chosen processing action | A universal consequence of the flag |
Questions and practical checks
Does an eclipse flag mean the receiver cannot see the satellite?
No. Earth blocking sunlight to the satellite and a ground receiver’s usable radio path are different geometrical questions.
Why are two conditions needed?
The axial sign places the point behind Earth; perpendicular distance checks the shadow cylinder. Omitting either condition misclassifies the paired examples.
Is the cylinder a complete illumination model?
No. It assumes parallel rays and omits finite-Sun penumbra and conical geometry. Use an appropriate validated model for real work.
Should every flagged observation be removed for the same time?
This guide supplies no universal exclusion rule. The action needs current spacecraft-, product- and processing-specific support.
Can outside flags at two times prove no eclipse occurred between them?
No. The fictional crossing examples pass through shadow between two outside samples. Boundary timing requires an appropriate between-sample state model.
Continue with the connected subjects
Connect geometry with the distinct antenna questions
Distinguish antenna orientation, phase wind-up and correction continuity
Keep antenna reference points and phase-centre models explicit
Build the wider shadow and state context
Explore eclipse geometry, tangency and shadow paths
Recover the signal event before evaluating a satellite state
Keep state vectors in compatible coordinate representations
Sources and scope
ESA Navipedia: the simplified cylindrical shadow geometry and historical modelling context
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.
Orbit interpolation: evaluate missing states without creating new observations
Broadcast clocks: preserve coefficient references, units and covariance
Eccentric-orbit clocks: check radial motion, scalar invariance and included terms
Compare missed short events in remote-sensing revisit gaps—a different temporal sampling problem