# Source code for error analysis
https://github.com/AlanSpaceAudits/ct-error-analysis
---
# Full-Spectrum Error Analysis — Aircraft Position Uncertainty
AstroLive's celestial theodolite experiment claims globe model errors of **0.01–0.06°** in elevation angle. This analysis quantifies the actual measurement uncertainty in the aircraft positions used as inputs, using primary source specifications for every instrument in the signal chain.
The result: **the uncertainty in the input data is 3–6× larger than the claimed output precision**. The experiment cannot distinguish between globe and flat earth models because the error bars on the aircraft position swallow the difference.
---
## Measurement Error vs. Predicted Signal
Each plot shows one aircraft occultation event. The green dot is the flat earth (FE) predicted elevation angle, the magenta dot is the globe earth (GE) predicted elevation. The error bars show the total measurement uncertainty propagated from every error source in the ADS-B position chain. The orange lines mark the [[Cel_Theo_And_Central_Angle#2. Inscribed Angle Theorem (Elements III, Prop. 20–21)|inscribed angle]] — the angular difference between GE and FE predictions that the experiment is trying to resolve.
In every case, the error bars overlap both predictions. The measurement cannot distinguish between the two models.
### Spirit Airlines (FL340) — HIP 44471, 1/6/2026
![[Spirit_Airlines_error.png]]
### Allegiant 453 (FL310) — HIP 47693, 1/16/2026
![[Allegiant_453_error.png]]
### Jet Speed 691 (FL390) — HIP 23078, 1/29/2026
![[Jet_Speed_691_error.png]]
### AAL1517 (FL308) — HIP 39850, 1/29/2026
![[AAL1517_error.png]]
### Summary
| Aircraft | Distance | Inscribed Angle | Measurement Error | Error ÷ Drop | Verdict |
|---|---|---|---|---|---|
| Spirit Airlines | ~35 km | 0.152° (9'05") | **±0.159°** (9'31") | **1.0×** | Error ≥ signal |
| Allegiant 453 | ~70 km | 0.278° (16'41") | **±0.189°** (11'20") | 0.6× | Error comparable to signal |
| Jet Speed 691 | ~56 km | 0.231° (13'53") | **±0.352°** (21'07") | **1.4×** | Error > signal |
| AAL1517 | ~90 km | 0.353° (21'10") | **±0.169°** (10'09") | 0.4× | Error comparable to signal |
The claimed globe residuals of 0.01–0.06° require resolving a signal that is 0.15–0.35° wide with measurement uncertainty of 0.16–0.35°. The error bars are the same size as the thing being measured. The detailed error budget follows below.
---
## Error Source Inventory
Every aircraft position fed into the raytracer passes through this chain, each link introducing uncertainty:
```
GPS satellite fix → Transponder processing → ADS-B broadcast →
RTL-SDR reception → SDRAngel decode → CSV input → Raytracer
```
Additionally, the aircraft altitude is derived through:
```
Barometric pressure (aircraft) → ISA pressure-altitude →
Balloon interpolation (234 km away) → Geopotential height → [geometric conversion SKIPPED]
```
---
## 1. Horizontal Position Errors
### 1a. GPS Navigation Source — NACp
The aircraft's GPS receiver determines position, which is broadcast via ADS-B. Accuracy is categorized by NACp (Navigation Accuracy Category - Position), defined in **RTCA DO-260B Table 2-73**.
- **EPU (Estimated Position Uncertainty)** / **HFOM (Horizontal Figure of Merit)** — radius of a horizontal circle centered on the true position within which the reported position falls at 95% confidence
- **VEPU (Vertical Estimated Position Uncertainty)** / **VFOM (Vertical Figure of Merit)** — vertical error bound at 95% confidence
EPU/VEPU is the ADS-B (DO-260B) terminology; HFOM/VFOM is the older GPS receiver terminology. The transponder reads HFOM/VFOM from the GPS unit and maps it to the NACp category for broadcast.
| NACp | EPU / HFOM (95%) | VEPU / VFOM (95%) | Typical aircraft |
|------|------------------|-------------------|------------------|
| 11 | < 3 m | < 4 m | WAAS/SBAS equipped |
| 10 | < 10 m | < 15 m | Modern GPS |
| **9** | **< 30 m** | **< 45 m** | **Most commercial jets** |
| **8** | **< 92.6 m (0.05 NM)** | **N/A** | **FAA minimum for ADS-B Out** |
| 7 | < 185.2 m | N/A | Older equipment |
| 6 | < 555.6 m (0.3 NM) | N/A | — |
| 5 | < 926 m (0.5 NM) | N/A | — |
| 4 | < 1,852 m (1.0 NM) | N/A | — |
**FAA requirement (14 CFR 91.227):** NACp ≥ 8 (EPU < 0.05 NM) for ADS-B Out compliance.
Most commercial aircraft achieve NACp = 9, giving **±30 m horizontal** and **±45 m vertical** uncertainty at 95% confidence. Note that VEPU is only reported for NACp ≥ 9 — at the FAA minimum of NACp 8, there is **no vertical accuracy guarantee**.
> **Source:** [RTCA DO-260B, Table 2-73](https://mode-s.org/1090mhz/content/ads-b/7-uncertainty.html); [14 CFR 91.227](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-F/part-91/subpart-E/section-91.227)
### 1b. CPR Encoding Quantization
ADS-B positions are encoded using Compact Position Reporting (CPR) with 17 bits per coordinate (Nb=17 for airborne messages). Each ~6° latitude zone is divided into 2¹⁷ = 131,072 bins. The position resolution can be derived from the bit width:
> 6° ÷ 131,072 bins = ~0.0000458° per bin
> 0.0000458° × 111,320 m/° ≈ **5.1 m** per bin (at equatorial latitudes)
This is a derived value — the DO-260B spec defines the 17-bit encoding but does not state a resolution in meters.
> **Source:** RTCA DO-260B, Appendix A defines Nb=17 for airborne CPR; [mode-s.org CPR reference](https://mode-s.org/1090mhz/content/ads-b/3-airborne-position.html) explains the algorithm; 5m resolution is calculated, not directly cited
### 1c. Uncompensated Latency
Per **DO-260B Section 2.2.3.2.7**, total latency from GPS fix to broadcast is allowed up to **2.0 seconds**. Of that, up to **0.6 seconds may be uncompensated** — the transponder does not extrapolate the position forward to account for this delay.
At cruise speeds of 215–288 m/s, 0.6s of uncompensated latency produces **129–173 m** of along-track position error in the broadcast itself, before any timestamp comparison.
> **Source:** RTCA DO-260B §2.2.3.2.7; [14 CFR 91.227(d)](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-F/part-91/subpart-E/section-91.227)
### 1d. Temporal Mismatch (ADS-B vs Occultation)
The ADS-B "Updated" timestamp in every screenshot is **2–5 seconds after** the occultation frame. The raytracer uses these delayed positions with no extrapolation. At cruise speeds, this produces:
| Event | GS (m/s) | Delta | Horizontal Drift |
|-------|----------|-------|-----------------|
| Spirit Airlines | N/A | 2s | N/A |
| Allegiant 453 | 215 | 4s | **860 m** |
| Jet Speed 691 | 288 | 3s | **863 m** |
| AAL1517 | 275 | 5s | **1,376 m** |
This is the single largest error source. It is **systematic, not random** — the positions are guaranteed to be wrong in the direction of travel.
> **Source:** ADS-B screenshots vs. occultation frame timestamps — see [[AL_Data_Analysis#ADS-B Position Drift]]
---
## 2. Altitude Errors
### 2a. Altimeter Instrument Error
Aircraft altimeters are bench-tested per **14 CFR Part 43, Appendix E, Table I**. The allowed scale error increases with altitude:
| Altitude | Tolerance |
|----------|-----------|
| 10,000 ft | ±80 ft (±24 m) |
| 20,000 ft | ±130 ft (±40 m) |
| 30,000 ft | ±180 ft (±55 m) |
| 35,000 ft | ±205 ft (±62 m) |
| 40,000 ft | ±230 ft (±70 m) |
All four aircraft are at FL308–FL390. Allowed instrument error alone: **±55 to ±70 m**.
> **Source:** [14 CFR Part 43, Appendix E, Table I](https://www.law.cornell.edu/cfr/text/14/appendix-E_to_part_43); [FAA AC 43-6D (PDF)](https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_43-6D_Ed_Update.pdf)
### 2b. ADS-B Altitude Quantization
ADS-B broadcasts barometric altitude in the 12-bit altitude field of Type Code 9–18 position messages. The 8th bit is the **Q-bit**, which determines the encoding resolution:
- **Q = 1**: Altitude encoded in **25-foot increments** using h = 25N − 1000 (ft). This applies to all altitudes below 50,175 ft.
- **Q = 0**: Falls back to **100-foot increments** using Gray code (legacy Gillham encoding). Only used above 50,175 ft.
All four aircraft are at FL308–FL390 (30,810–39,030 ft) — well below the 50,175 ft threshold — so they use the 25 ft encoding.
The true pressure altitude at any given moment is a continuous value. The altimeter might read 31,037.4 ft, but the broadcast protocol can only transmit standardized 25 ft increments. The altitude is rounded to the nearest step so that every aircraft reports in the same uniform grid, rather than arbitrary decimal values that would require more bits and complicate decoding. This rounding introduces a maximum error of half a step: **±12.5 ft (±3.8 m)**.
> **Source:** [ADS-B altitude encoding (mode-s.org)](https://mode-s.org/1090mhz/content/ads-b/3-airborne-position.html) — Section 5.1, "when Q=1, the altitude is encoded with a 25 feet increment"
### 2c. Static Source Error (SSE)
A barometric altimeter measures static pressure at ports on the fuselage. At cruise speed, airflow over the fuselage creates local pressure perturbations that distort the reading. Per **14 CFR 25.1325(e)**, the allowable static system error is:
> **±30 ft (9 m) per 100 knots speed** in the speed range between 1.23 VSR0 (flaps extended) and 1.7 VSR1 (flaps retracted), with a floor of ±30 ft (9 m).
At typical cruise IAS of 250–350 knots, this allows **±75 to ±105 ft (±23 to ±32 m)** of static source error.
This error does not affect a weather balloon — the balloon floats vertically through still air with no aerodynamic disturbance around its pressure sensor. An aircraft flying at cruise speed through the same pressure level will read differently due to airflow effects.
> **Source:** [14 CFR 25.1325(e)](https://www.ecfr.gov/current/title-14/section-25.1325)
### 2d. RVSM Altimetry System Error (Total)
For aircraft operating in RVSM airspace (FL290–FL410 — all four events), **14 CFR Part 91 Appendix G** requires:
- Mean ASE ≤ ±80 ft
- Mean + 3σ ≤ **±200 ft (±61 m)**
This is the total system error budget including instrument, encoder, SSE, and avionics. At 99.7% confidence, the altitude could be off by **±61 m** from pressure-altitude truth.
> **Source:** [14 CFR Part 91, Appendix G](https://www.law.cornell.edu/cfr/text/14/appendix-G_to_part_91); ICAO Doc 9574 (RVSM Manual)
### 2e. [[99_Definitions#Geodesy|Geopotential]]-to-Geometric Conversion (Skipped)
The raytracer code (`CelestialTheodoliteDataProcessor.py`, line 116) converts geopotential height to geometric height **only for weather balloon targets**:
```python
if row['Target']=='Weather Balloon':
EarthRadius = 6371000.0
row['Target Alt'] = (EarthRadius * row['Target Alt']) / (EarthRadius - row['Target Alt'])
```
Aircraft targets skip this conversion entirely. The CSV altitudes are raw geopotential heights from balloon pressure interpolation. At aircraft altitudes, the geopotential-to-geometric difference is:
| Aircraft | Geopotential (m) | Geometric (m) | **Skipped correction** |
|----------|-----------------|---------------|----------------------|
| Spirit Airlines | 10,375.5 | 10,392.4 | **+16.9 m** |
| Allegiant 453 | 9,466.8 | 9,480.9 | **+14.1 m** |
| Jet Speed 691 | 11,898.2 | 11,920.5 | **+22.3 m** |
| AAL1517 | 9,392.2 | 9,406.1 | **+13.9 m** |
These are systematic errors — the aircraft is always higher than assumed. The raytracer then computes geometry on the WGS84 ellipsoid using an altitude that belongs to a different reference surface.
### 2f. [[99_Definitions#Geodesy|Geoid]] Undulation (Not Accounted For)
The observer altitude is MSL. The raytracer uses WGS84 ellipsoid geometry. These are different reference surfaces — MSL (the geoid) and the WGS84 ellipsoid differ by the geoid undulation at that location. At the observer location (27.068°N, 82.222°W), the NOAA GEOID18 model gives a geoid undulation of **−24.022 m** (±0.029 m at 95% confidence) — meaning MSL is 24 m below the ellipsoid. No geoid model is used anywhere in the raytracer code (confirmed by grep for "geoid", "EGM", "undulation").
The geoid is the shape mean sea level would form if the ocean covered the entire Earth — an irregular surface defined by gravity. The WGS84 ellipsoid is a smooth mathematical approximation (a simple squished sphere). Geoid undulation is the height difference between the two at any given point. Here, MSL sits 24 m below the ellipsoid.
The observer's altitude is measured from MSL (the geoid), but the raytracer does all its geometry on the WGS84 ellipsoid. Those are two different "zero" surfaces, 24 m apart at this location, and the code never accounts for that offset. This mixes three reference frames with no reconciliation: observer on the geoid, aircraft on the geopotential surface, geometry on the ellipsoid.
> **Source:** [NOAA GEOID18 interactive calculator](https://geodesy.noaa.gov/GEOID/GEOID18/computation.html) — input 27.068°N, 82.222°W → N = −24.022 m
![[AL_Error_Analysis-1.png]]
### 2g. Balloon Spatial Representativeness
The radiosonde station is at **25.756°N, 80.384°W** (Miami). The occultation events occur 167–234 km away over the Gulf coast near Sarasota.
| Event | Balloon → aircraft | Balloon → observer |
|-------|-------------------|-------------------|
| Spirit Airlines | 232 km | 234 km |
| Allegiant 453 | 183 km | 234 km |
| Jet Speed 691 | 212 km | 234 km |
| AAL1517 | 167 km | 234 km |
Per **Sun et al. (2010)**, from the abstract:
> "Globally, in the troposphere (850–200 hPa), the collocation mismatch impacts on the comparison standard deviation errors for temperature are 0.35 K per 3 h and **0.42 K per 100 km**"
At 230 km, the expected temperature disagreement is ~1 K SD at any given pressure level in the troposphere.
The impact on altitude depends on how much of the column is affected. Via the hypsometric equation (Δz = R_d/g₀ × T × ln(P₁/P₂)):
- 1 K error at a **single level**: ~4 m altitude error
- 1 K error over a **5 km layer**: ~21 m altitude error
- 1 K error over the **entire column** (surface to 10 km): ~39 m altitude error
Giving maximum benefit of the doubt — assuming the temperature error only affects a single ~1 km layer at aircraft altitude rather than any broader portion of the column — the most conservative altitude error estimate is:
| Event | Distance | Temp SD (0.42 K/100 km) | **Alt error (single level)** |
|-------|----------|------------------------|--------------------------|
| Spirit Airlines | 232 km | ±0.97 K | **±4.0 m** |
| Allegiant 453 | 183 km | ±0.77 K | **±3.2 m** |
| Jet Speed 691 | 212 km | ±0.89 K | **±3.7 m** |
| AAL1517 | 167 km | ±0.70 K | **±2.9 m** |
If the error extends over a broader portion of the column (which is likely given the 200+ km distance and different coastal environments), the altitude error scales proportionally — up to ~39 m for a full-column error.
The balloon samples a different air column (Miami, Atlantic coast) than the light path traverses (Sarasota, Gulf coast). Per **Orlanski (1975)**, the atmospheric features that matter most for refraction — temperature inversions, humidity gradients, coastal boundary layer effects — are **meso-β phenomena** (20–200 km scale). At 167–234 km, the balloon is at or beyond the edge of that range.
> **Source:** [Sun, B. et al. (2010), *J. Geophys. Res.*, 115, D23104 (PDF)](https://www.arl.noaa.gov/documents/JournalPDFs/SunEtAl.JGR2010.JDO14457.pdf); [Orlanski, I. (1975), *Bull. Amer. Meteor. Soc.*, 56, 527–530](https://journals.ametsoc.org/view/journals/bams/56/5/1520-0477-56_5_527.xml); [WMO-No. 8 (CIMO Guide)](https://www.weather.gov/media/epz/mesonet/CWOP-WMO8.pdf)
### 2h. Temporal Mismatch (Vertical)
Aircraft were climbing or descending at the time of occultation. The 2–5 second delay means the altitude used is also wrong:
| Event | VR (m/s) | Delta | **Vertical drift** |
|-------|----------|-------|-------------------|
| Spirit Airlines | +4.88 | 2s | +9.8 m |
| Allegiant 453 | +5.20 | 4s | +20.8 m |
| Jet Speed 691 | −14.31 | 3s | **−42.9 m** |
| AAL1517 | −4.88 | 5s | −24.4 m |
---
## 3. Combined Error Budget — Per Aircraft
### Spirit Airlines (FL340)
| Error Source | Horizontal (m) | Vertical (m) | Source |
|-------------|----------------|--------------|--------|
| GPS/NACp=9 | ±30 | — | DO-260B |
| CPR quantization | ±5 | — | DO-260B App A |
| Uncompensated latency | N/A | — | DO-260B §2.2.3 |
| Temporal mismatch | N/A | +9.8 | ADS-B screenshots |
| Altimeter scale error | — | ±61.0 | 14 CFR 43 App E |
| ADS-B alt quantization | — | ±3.8 | Mode S, 25 ft steps |
| Static source error | — | ±27.4 | 14 CFR 25.1325(e) |
| Geopotential (skipped) | — | +16.9 | Code review |
| Geoid undulation | — | +24.0 | NOAA GEOID18 |
| Balloon distance (232 km) | — | ±4.0 (conservative) | Sun et al. 2010 |
| **RSS (random)** | **±30** | **±67.1** | |
| **Systematic** | — | **+40.9** | |
| **TOTAL** | **±30** | **−77 to +118 m** | |
**Elevation angle uncertainty: ±0.16° (19 arcmin)** — vs claimed globe error ~0.01–0.06°
---
### Allegiant 453 (FL310)
| Error Source | Horizontal (m) | Vertical (m) | Source |
|-------------|----------------|--------------|--------|
| GPS/NACp=9 | ±30 | — | DO-260B |
| CPR quantization | ±5 | — | DO-260B App A |
| Uncompensated latency | ±129 | — | DO-260B §2.2.3 |
| Temporal mismatch | 860 | +20.8 | ADS-B screenshots |
| Altimeter scale error | — | ±56.5 | 14 CFR 43 App E |
| ADS-B alt quantization | — | ±3.8 | Mode S, 25 ft steps |
| Static source error | — | ±27.4 | 14 CFR 25.1325(e) |
| Geopotential (skipped) | — | +14.1 | Code review |
| Geoid undulation | — | +24.0 | NOAA GEOID18 |
| Balloon distance (183 km) | — | ±3.2 (conservative) | Sun et al. 2010 |
| **RSS (random)** | **±133** | **±63.0** | |
| **Systematic** | **860** | **+38.1** | |
| **TOTAL** | **993** | **−84 to +122 m** | |
**Elevation angle uncertainty: ±0.19° (23 arcmin)** — vs claimed globe error ~0.01–0.06°
---
### Jet Speed 691 (FL390)
| Error Source | Horizontal (m) | Vertical (m) | Source |
|-------------|----------------|--------------|--------|
| GPS/NACp=9 | ±30 | — | DO-260B |
| CPR quantization | ±5 | — | DO-260B App A |
| Uncompensated latency | ±173 | — | DO-260B §2.2.3 |
| Temporal mismatch | 863 | −42.9 | ADS-B screenshots |
| Altimeter scale error | — | ±68.6 | 14 CFR 43 App E |
| ADS-B alt quantization | — | ±3.8 | Mode S, 25 ft steps |
| Static source error | — | ±27.4 | 14 CFR 25.1325(e) |
| Geopotential (skipped) | — | +22.3 | Code review |
| Geoid undulation | — | +24.0 | NOAA GEOID18 |
| Balloon distance (212 km) | — | ±3.7 (conservative) | Sun et al. 2010 |
| **RSS (random)** | **±175** | **±74.1** | |
| **Systematic** | **863** | **+46.3** | |
| **TOTAL** | **1,038** | **−117 to +163 m** | |
**Elevation angle uncertainty: ±0.35° (42 arcmin)** — vs claimed globe error ~0.01–0.06°
---
### American Airlines 1517 (FL308)
| Error Source | Horizontal (m) | Vertical (m) | Source |
|-------------|----------------|--------------|--------|
| GPS/NACp=9 | ±30 | — | DO-260B |
| CPR quantization | ±5 | — | DO-260B App A |
| Uncompensated latency | ±165 | — | DO-260B §2.2.3 |
| Temporal mismatch | 1,376 | −24.4 | ADS-B screenshots |
| Altimeter scale error | — | ±56.1 | 14 CFR 43 App E |
| ADS-B alt quantization | — | ±3.8 | Mode S, 25 ft steps |
| Static source error | — | ±27.4 | 14 CFR 25.1325(e) |
| Geopotential (skipped) | — | +13.9 | Code review |
| Geoid undulation | — | +24.0 | NOAA GEOID18 |
| Balloon distance (167 km) | — | ±2.9 (conservative) | Sun et al. 2010 |
| **RSS (random)** | **±168** | **±62.6** | |
| **Systematic** | **1,376** | **+37.9** | |
| **TOTAL** | **1,544** | **−87 to +125 m** | |
**Elevation angle uncertainty: ±0.17° (20 arcmin)** — vs claimed globe error ~0.01–0.06°
---
## 4. Summary
| Aircraft | Horiz. Uncertainty | Vert. Uncertainty | Elevation Uncertainty | Claimed Globe Error |
|----------|-------------------|-------------------|----------------------|-------------------|
| Spirit Airlines | ±30 m | −77 to +118 m | **±0.16°** | ~0.01–0.06° |
| Allegiant 453 | 993 m | −84 to +122 m | **±0.19°** | ~0.01–0.06° |
| Jet Speed 691 | 1,038 m | −117 to +163 m | **±0.35°** | ~0.01–0.06° |
| AAL1517 | 1,544 m | −87 to +125 m | **±0.17°** | ~0.01–0.06° |
### Error vs. the thing being measured
The whole point of the experiment is to distinguish between a globe and flat earth predictions. The angular difference between these two models is the elevation angle difference defined by the [[Cel_Theo_And_Central_Angle#3. Chord-Tangent Theorem (Elements III, Prop. 32)|chord-tangent theorem]]. This is what the experiment is attempting to resolve. The [[Cel_Theo_And_Central_Angle#2. Inscribed Angle Theorem (Elements III, Prop. 20–21)|inscribed angle]] of the [[Cel_Theo_And_Central_Angle#The Central Angle|central angle]] along the surface arc from observer to aircraft ((d/R)/2) represents the geometric "[[FE_and_the_Central_Angle#Quick Reference: The Sagitta|drop]]" due to curvature over the arc distance defined by that central angle.
See also: [[Cel_Theo_And_Central_Angle]], [[85_Inscribed_Angle_Residual]], [[FE_and_the_Central_Angle]]
| Aircraft | Dist | Central Angle | **Inscribed Angle** | **Drop (d²/2R)** | **Error** | **Error as Drop** | **Ratio** |
|---|---|---|---|---|---|---|---|
| Spirit Airlines | 35.32 km | 0° 19' 5" | 0° 9' 7" (9.1') | 97.9 m | ±0° 9' 36" (±9.6') | ±103.1 m | **1.1×** |
| Allegiant 453 | 70.48 km | 0° 38' 2" | 0° 16' 41" (16.7') | 389.8 m | ±0° 11' 24" (±11.4') | ±266.4 m | 0.7× |
| Jet Speed 691 | 56.15 km | 0° 30' 18" | 0° 13' 52" (13.9') | 247.4 m | ±0° 21' 0" (±21.0') | ±374.9 m | **1.5×** |
| AAL1517 | 89.70 km | 0° 48' 25" | 0° 21' 11" (21.2') | 631.5 m | ±0° 10' 12" (±10.2') | ±304.1 m | 0.5× |
For Spirit Airlines and Jet Speed 691, the measurement error is bigger than the angular difference between globe and flat earth predictions. The error bars are wider than the gap between the two models. For Allegiant 453 and AAL1517, the error is comparable (0.5–0.7× the difference) but still too large for a single measurement to confidently tell the models apart.
The globe and FE predictions are separated by 0.15–0.35°. The measurement uncertainty is 0.16–0.35°. The signal being measured is the same size as the noise floor. And these are the **conservative** estimates, giving maximum benefit of the doubt on balloon representativeness and assuming NACp=9 GPS accuracy.
The claimed globe residuals of 0.01–0.06° represent a precision the input data simply cannot support. The biggest contributor is the temporal mismatch: the aircraft positions used are from 2–5 seconds after the occultation actually happened. On top of that, the combined altitude uncertainties from instrument tolerances, mixed reference frames, and a weather balloon 234 km away are comparable to the entire globe vs FE difference the experiment is trying to resolve.
---
## Primary Sources
| Document | Content | Link |
|----------|---------|------|
| **RTCA DO-260B** | ADS-B MOPS: NACp categories, CPR encoding, latency requirements | [NACp table (mode-s.org mirror)](https://mode-s.org/1090mhz/content/ads-b/7-uncertainty.html) |
| **14 CFR 91.227** | ADS-B Out equipment requirements (NACp ≥ 8) | [eCFR §91.227](https://www.ecfr.gov/current/title-14/chapter-I/subchapter-F/part-91/subpart-E/section-91.227) |
| **14 CFR Part 43, Appendix E** | Altimeter system test tolerances (Table I) | [Cornell LII — 14 CFR Part 43 App E](https://www.law.cornell.edu/cfr/text/14/appendix-E_to_part_43) |
| **14 CFR Part 91, Appendix G** | RVSM operations: ASE ≤ ±200 ft at 3σ | [Cornell LII — 14 CFR Part 91 App G](https://www.law.cornell.edu/cfr/text/14/appendix-G_to_part_91) |
| **14 CFR 25.1325** | Static pressure system certification: SSE ±30 ft/100 kn | [Cornell LII — §25.1325](https://www.ecfr.gov/current/title-14/section-25.1325) |
| **FAA AC 43-6D** | Altimeter system inspection procedures | [FAA AC 43-6D (PDF)](https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_43-6D_Ed_Update.pdf) |
| **GPS SPS Performance Standard** | GPS accuracy ≤ 8m (95%), 5th Ed. April 2020 | [USCG NavCen (PDF)](https://www.navcen.uscg.gov/sites/default/files/pdf/gps/geninfo/2020SPSPerformanceStandardFINAL.pdf) |
| **Orlanski (1975)** | Atmospheric scale classification (meso-α/β/γ), *Bull. AMS*, 56, 527–530 | [AMS Journals](https://journals.ametsoc.org/view/journals/bams/56/5/1520-0477-56_5_527.xml) |
| **Sun et al. (2010)** | Radiosonde spatial representativeness, *J. Geophys. Res.*, 115, D23104 | [NOAA ARL (PDF)](https://www.arl.noaa.gov/documents/JournalPDFs/SunEtAl.JGR2010.JDO14457.pdf) |
| **WMO-No. 8** | Guide to Instruments and Methods of Observation (CIMO Guide) | [WMO Library catalog](https://library.wmo.int/records/item/35809-international-meteorological-vocabulary) |
| **WMO-No. 8 (full PDF)** | CIMO Guide — radiosonde accuracy specs | [weather.gov mirror (PDF)](https://www.weather.gov/media/epz/mesonet/CWOP-WMO8.pdf) |
| **NOAA GEOID18** | Geoid undulation: N = −24.022 m at observer location | [NOAA GEOID18 calculator](https://geodesy.noaa.gov/GEOID/GEOID18/computation.html) |
| **RTCA DO-260B — CPR Encoding** | Compact Position Reporting: 17-bit airborne encoding | [mode-s.org CPR reference](https://mode-s.org/1090mhz/content/ads-b/3-airborne-position.html) |
| **NASA LaRC — CPR Verification** | Formal proof of CPR algorithm correctness | [NASA Formal Methods — CPR](https://shemesh.larc.nasa.gov/fm/CPR/) |
| **Sun et al. (2020)** | Study of uncompensated latency in ADS-B | [arXiv:2008.06352](https://arxiv.org/abs/2008.06352) |
| **FAA AIM §7-2** | Barometric altimeter errors and setting procedures | [FAA AIM Chapter 7 Section 2](https://www.faa.gov/air_traffic/publications/atpubs/aim_html/chap7_section_2.html) |
| **FAA AIM §7-3** | Cold temperature barometric altimeter errors | [FAA AIM Chapter 7 Section 3](https://www.faa.gov/air_traffic/publications/atpubs/aim_html/chap7_section_3.html) |