Skip to main content
Log in

The JPL-GIM algorithm and products: multi-GNSS high-rate global mapping of total electron content

  • Original Article
  • Published:
Journal of Geodesy Aims and scope Submit manuscript

Abstract

The Jet Propulsion Laboratory (JPL) develops JPL-GIM, a software for generating global ionospheric maps (GIMs) of total electron content (TEC) using measurements from multiple Global Navigation Satellite System (GNSS) constellations. Within this overview paper, we delve into the current state and the most recent enhancements of JPL-GIM. An adaptable Kalman filter provides maps with user-defined temporal and spatial resolutions, while concurrently delivering essential covariance data for uncertainty assessment. Furthermore, multiple shell models offer a versatile framework to balance accuracy and computational efficiency. We present the five operational JPL GIM products (JPLG, JPRG, JPLI, JPLD, JPRT), highlighting JPLG and JPRG, our products routinely delivered to the International GNSS Service (IGS), and introduce a new near-real-time product (JPRT). As an added demonstration of JPL-GIM’s capabilities, we present a very-high-resolution (2-minute, multi-GNSS, 1000-station) configuration to showcase JPL-GIM’s ability to resolve long-lasting effects of the 2022 Hunga Tonga-Hunga Ha’apai eruption. Validations using independent datasets confirm the accurate reproduction of ionospheric variations across all latitudinal bands.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Data and materials availability

JPL routinely transfers its ionospheric data streams in IONEX format to NASA’s publicly-available CDDIS (https://cddis.nasa.gov). Additional products are made available on JPL-hosted public-facing server (https://sideshow.jpl.nasa.gov/pub/iono_daily/). For more details, see Appendix A.

Notes

  1. For a satellite at zenith exactly above a station, \(\mathbb {S}=\mathbb {V}\).

  2. The monthly average sunspot numbers and predictions are obtained from the Royal Observatory of Belgium site (https://www.sidc.be/silso). The monthly average radio flux data are obtained from the Canadian Space Weather site (https://ftp.seismo.nrcan.gc.ca). The predicted radio flux is modeled from the predicted sunspots and the historic correlation between sunspots and flux.

  3. Using a conversion factor of 1 TECU \(\simeq \) \(16.2\,\hbox {cm}\) for comparison.

  4. See https://igs.org/news/updated-guidelines-on-long-product-filenames-in-the-igs/ for context and relevant resources.

References

Download references

Acknowledgements

This paper is dedicated to the memory of our colleague, Dr. Thomas F. Runge. His contributions were critical to the development of the JPL-GIM software and this paper. His knowledge, enthusiasm, and attention to detail have inspired our team and will remain with us in our future endeavors. The authors thank the WAAS engineering team at the Federal Aviation Administration, Eric Altschuler at Sequoia Research Corporation, and Richard Langley and Hyun Ho Ro at University of New Brunswick for providing data for the WAAS calibration. The authors also thank Lawrence C. Sparks for fruitful discussions on comparing the WAAS results with the JPL-GIM maps.

Funding

This research was carried out at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration (80NM0018D0004). We are grateful to the United States Space Force (USSF) for supporting this activity under contract number 80NM0022F0055. The support from “Advanced GNSS ionospheric products for Jason-series and Sentinel-6 ocean altimetry missions” of Ocean Physics program at NASA HQ is gratefully acknowledged. ©2024; California Institute of Technology; Government sponsorship acknowledged.

Author information

Authors and Affiliations

Authors

Contributions

Conceptualization: Tom F. Runge, Anthony J. Mannucci, Attila Komjáthy; Methodology: Tom F. Runge, Anthony J. Mannucci, Attila Komjáthy; Formal analysis and investigation: Tom F. Runge, Anthony J. Mannucci, Léo Martire, Xing Meng; Writing - original draft preparation: Léo Martire, Tom F. Runge, Anthony J. Mannucci, Olga P. Verkhoglyadova, Panagiotis Vergados, Angelyn W. Moore; Writing - review and editing: all authors; Funding acquisition: Panagiotis Vergados; Resources: Angelyn W. Moore; Supervision: Olga P. Verkhoglyadova, Panagiotis Vergados, Attila Komjáthy. All authors contributed to the development and/or use of the JPL-GIM software; all authors commented on previous versions of the manuscript; all authors reviewed the manuscript.

Corresponding author

Correspondence to Léo Martire.

Ethics declarations

Conflict of interest

The authors have no relevant financial or non-financial interests to disclose. The authors have no Conflict of interest to declare that are relevant to the content of this article. All authors certify that they have no affiliations with or involvement in any organization or entity with any financial interest or non-financial interest in the subject matter or materials discussed in this manuscript. The authors have no financial or proprietary interests in any material discussed in this article.

Supplementary Information

Below is the link to the electronic supplementary material.

Supplementary file 1 (pdf 3946 KB)

Supplementary file 2 (mp4 67701 KB)

Supplementary file 3 (mp4 36223 KB)

Appendices

Appendix A JPL-GIM products

The main characteristics of the JPL products are given in Table 3. More details are given in the following Subsections.

Table 3 JPL data products computed using JPL-GIM. JPLI is not broadcast as its availability period ended on the 31st of December 2017

In this paper, we rely on the short names which are the original, historic names used internally at JPL. The International GNSS Service (IGS) has recently published new guidelines for operational product filenames.Footnote 4 The JPL operational products provided to the community in the context of IGS are JPLG and JPRG. The corresponding IGS-compliant filenames are, respectively, JPL0OPSFIN_YYYYDDDHHMM_01D_02H_GIM.INX and JPL0OPSRAP_YYYYDDDHH MM_01D_02H_GIM.INX, where YYYYDDDHHMM is the start epoch.

1.1 A.1 Legacy products: JPRG (Rapid) and JPLG (Final)

The JPRG and JPLG products are operational products generated for ionospheric calibration purposes and represent the rapid and final global ionospheric TEC maps, respectively.

They provide the vertical TEC modeled in a solar-magnetic reference frame (Knecht and Shuman 1985).

The only difference between the JPRG (rapid) and JPLG (final) products is the set of stations used for the JPL-GIM runs: the final product might rely on a different set than the rapid one, depending on what stations are available at the time of the JPL-GIM run. The magnitude of the vertical TEC difference between the two is smaller than 0.5 TECU. IGS uses the JPLG final product to produce an all-center averaged global ionospheric TEC map with using the weighting scheme described by Hernández-Pajares et al. (2009).

1.2 A.2 Science products: JPLI and JPLD

The JPLI and JPLD products are research-oriented products, consisting of TEC maps provided in netCDF format. JPLD is a research-oriented product that covers the period from January 2003 to present, whereas JPLI covers the fixed period from January 2000 until December 2017.

The JPLI product is generated with an extended slab model, whereas the JPLD product uses a three-shell model. Both models have a 15-minute temporal resolution and a \({1\,\mathrm{{}^{\circ }}}\times {1\,\mathrm{{}^{\circ }}}\) spatial resolution. The higher temporal resolution of these products ensures a better accuracy (Liu et al. 2021; Milanowska et al. 2021) compared to the legacy JPRG and JPLG products. For JPLI, the processing used worldwide data from 200 stations throughout 2000-2017; JPLD used data from about 100 stations from the 1st of January 2000 to the 19th of October 2003, about 200 stations from the 20th of October 2003 to the 9th of December 2018, about 300 stations from the 10th of December 2018 to the 2nd of October 2022, and finally more than 300 stations from the 3rd of October 2022 onward. Emmert et al. (2017)’s Figure S1 shows an example distribution of the GPS sites used by the JPLI product on selected dates. The JPLI products were generated using GPS-only data; the JPLD products were generated using GPS and GLONASS data prior to the 6th of July 2021, and GPS and Galileo data afterward. Selective testing showed consistency between the legacy product (dates prior to 2018) and the updated one (dates after 2018).

The TEC maps occasionally having negative values, we manually set the negative values to 0.1 TECU, in generating both the JPLI and JPLD products; we introduced a data quality flag in the netCDF file to mark those artificially-reset TEC values. Currently, automated processes produce the JPLD product monthly, for the whole previous month.

1.3 A.3 JPRT

The JPRT product is a near-real-time-oriented product. Twelve parallel processes are used for data fetching, formulating the observables (gnsstec.py, see Sect. 2.2), and executing the GIMX filter. Run times average under 10 min, allowing the computation of global GIMs at the desired 15-minute rate. Thorough validation of the JPRT product is ongoing and will be the subject of a forthcoming separate manuscript. Future objectives include leveraging the JPL GDGPS 1-Hz real-time data streams and orbit products for an advanced real-time mode.

Appendix B Basis functions

This is a summary of the work by Lawson (1984)—defining a family \(\left( g_i\right) _{i\in \llbracket 1,N_b\rrbracket }\) of \(N_b\) compact support \(\mathcal{{C}}^2\) functions as a basis on the sphere. It is recalled here for convenience.

Let \(\theta \) denote latitude and \(\phi \) denote east longitude. Choose \(K\in \mathbb {N}\) as the parameter specifying the resolution of the basis. Define \(\Delta \theta =\pi /K\) and \(\theta _k=\pi /2-k\Delta \phi \) for all \(k\in \llbracket 0,K\rrbracket \). All JPL products use a resolution parameter \(K=16\).

The circles at latitudes \(\theta _k\) for all \(k\in \llbracket 2,K-2\rrbracket \) are called nodal latitude circles. On each of those are assigned \(n_k\) nodal points, all separated by a longitudinal spacing of \(\Delta \phi _k=2\pi /n_k\). The value of \(n_k\) is chosen to be the smallest integer verifying \(n_k\ge 2K\cos \left( \theta _k\right) \), or in other words \(n_k=\lceil 2K\cos \left( \theta _k\right) \rceil \) where \(\lceil \cdot \rceil \) is the "ceiling" function. Polar nodes are also defined, the corresponding number of nodal points are set as \(n_0=n_K=6\). At latitudes \(\theta _1\) and \(\theta _{K-1}\), no nodal point is defined; \(n_1=n_{K-1}=0\). The total number of nodes is \(N_b=\sum _{k=0}^{K}n_k\). The nodes are indexed from \(i=0\) to \(i=N_b\), with the 6 north pole nodes first, the intermediate nodes sorted by decreasing latitude and increasing east longitude, and the 6 south pole nodes last.

The bivariate basis functions are defined as products of cubic spline univariate functions. A first function, \(B\left( t\right) \), is defined as:

$$\begin{aligned} B\left( t\right) = \left\{ \begin{array}{lll} \sum _{j=0}^{3} b_{1,j}\left( t - \left( -2\right) \right) ^j &{}\text {for}&{} t\in \left[ -2,-1\right] \\ \sum _{j=0}^{3} b_{2,j}\left( t - \left( -1\right) \right) ^j &{}\text {for}&{} t\in ]-1,0]\\ \sum _{j=0}^{3} b_{3,j}t^j &{}\text {for}&{} t\in ]0,1]\\ \sum _{j=0}^{3} b_{4,j}\left( t - 1\right) ^j &{}\text {for}&{} t\in ]1,2]\\ 0 &{}\text {for}&{} t\in ]-\infty ,-2[\cup ]2,+\infty [ \\ \end{array}\right. \nonumber \\ \end{aligned}$$
(B1)

Additional functions are defined for the polar caps. For \(p\in \left\{ 1,2,3\right\} \), \(S_p\left( t\right) \) is defined as:

$$\begin{aligned} S_p\left( t\right) \!=\! \left\{ \begin{array}{lll} \sum _{j=0}^{3} s_{p,0,j}t^j &{}\text {for}&{} t\in \left[ 0,1\right] \\ \sum _{j=0}^{3} s_{p,1,j}\left( t - 1\right) ^j &{}\text {for}&{} t\in ]1,2]\\ \sum _{j=0}^{3} s_{p,2,j}\left( t - 2\right) ^j &{}\text {for}&{} t\in ]2,3]\\ 0 &{}\text {for}&{} t\in ]-\infty ,0[\cup ]3,+\infty [ \\ \end{array}\right. \nonumber \\ \end{aligned}$$
(B2)

The coefficients \(b_{i,j}\) and \(s_{p,i,j}\) can be found in Lawson (1984). Note that B and the \(\left( S_p\right) _{p\in \left\{ 1,2,3\right\} }\) all have \(\mathcal{{C}}^2\) continuity, and all are non-negative.

The bivariate basis functions are defined as products of the functions introduced above. The polar and non-polar nodes are treated differently.

For a non-polar node i, i.e. for any \(i\in \llbracket 7,N-6\rrbracket \), with latitude \(\theta _k\) (where \(k\in \llbracket 2,K-2\rrbracket \)), and at a longitude \(\phi _i\), the basis functions are defined as:

$$\begin{aligned}{} & {} g_i\left( \phi ,\theta \right) = B\left( \frac{\theta -\theta _k}{\Delta \theta }\right) B\left( \frac{\phi -\phi _i}{\Delta \phi _k}\right) \nonumber \\{} & {} \quad \forall \left( \phi ,\theta \right) \in {\mathbb {R}}^2 \hspace{5.0pt}\forall i\in \llbracket 7,N-6\rrbracket . \end{aligned}$$
(B3)

At the north pole, for \(\theta _1=\pi /2\) and \(\forall \phi \in {\mathbb {R}}\), the basis functions are defined as:

$$\begin{aligned} \left\{ \begin{array}{lcl} g_1\left( \phi ,\theta \right) &{}=&{}S_0\left( t\right) ,\\ g_2\left( \phi ,\theta \right) &{}=&{}S_1\left( t\right) \cos \left( \phi \right) ,\\ g_3\left( \phi ,\theta \right) &{}=&{}S_1\left( t\right) \sin \left( \phi \right) ,\\ g_4\left( \phi ,\theta \right) &{}=&{}S_2\left( t\right) \cos ^2\left( \phi \right) ,\\ g_5\left( \phi ,\theta \right) &{}=&{}S_2\left( t\right) \cos \left( \phi \right) \sin \left( \phi \right) , \text {and}\\ g_6\left( \phi ,\theta \right) &{}=&{}S_2\left( t\right) \sin ^2\left( \phi \right) ;\\ \end{array}\right. \end{aligned}$$
(B4)

where \(t=\left( \theta _1-\theta \right) /\Delta \theta \). At the south pole, for \(\theta _N\)=\(-\pi /2\) and \(\forall \phi \in {\mathbb {R}}\), the basis functions are exactly similar:

$$\begin{aligned} \left\{ \begin{array}{lcl} g_{N_b-5}\left( \phi ,\theta \right) &{}=&{}S_0\left( t\right) ,\\ g_{N_b-4}\left( \phi ,\theta \right) &{}=&{}S_1\left( t\right) \cos \left( \phi \right) ,\\ g_{N_b-3}\left( \phi ,\theta \right) &{}=&{}S_1\left( t\right) \sin \left( \phi \right) ,\\ g_{N_b-2}\left( \phi ,\theta \right) &{}=&{}S_2\left( t\right) \cos ^2\left( \phi \right) ,\\ g_{N_b-1}\left( \phi ,\theta \right) &{}=&{}S_2\left( t\right) \cos \left( \phi \right) \sin \left( \phi \right) , \text {and}\\ g_{N_b}\left( \phi ,\theta \right) &{}=&{}S_2\left( t\right) \sin ^2\left( \phi \right) ;\\ \end{array}\right. \end{aligned}$$
(B5)

but in this case \(t=\left( \theta -\theta _K\right) /\Delta \theta \).

Each of the non-polar basis functions, \(\left( g_i\right) _{i\in \llbracket 7,N_b-6\rrbracket }\), is only nonzero in the longitude-latitude domain \(\left[ \phi -\Delta \phi _k,\phi \right. \) \(\left. +\Delta \phi _k\right] \times \left[ \theta -\Delta \theta ,\theta +\Delta \theta \right] \), and zero everywhere else; this domain is a curvilinear quadrilateral in general, and a curvilinear triangle for \(k=2\) and \(k=K-2\) (since in this case two vertices map to a pole—north or south, respectively). The polar basis functions, \(\left( g_i\right) _{i\in \llbracket 1,6\rrbracket \cup \llbracket N_b-5,N_b\rrbracket }\) are only nonzero on a region extending from their respective pole to a \(3\Delta \theta \) distance in latitude (see definitions of the \(\left( S_p\right) _{p\in \left\{ 1,2,3\right\} }\)). All the \(\left( g_i\right) _{i\in \llbracket 1,N_b\rrbracket }\) functions hold \(\mathcal{{C}}^2\) continuity everywhere on the sphere, including at the poles (Lawson 1984).

Appendix C Uncertainty quantification

Given our modeling choices, the vertical TEC \(\mathbb {V}\) is expressed in terms of the basis functions (see Sect. 2.3):

$$\begin{aligned} \mathbb {V}\left( \phi , \theta \right) = \sum _{i=1}^{N_b}C_ih_i\left( \phi , \theta \right) , \end{aligned}$$
(C6)

where the \(\left( h_i\right) _{i\in \llbracket 1,N_b\rrbracket }\) are a set of functions derived from the basis functions (see Eq. (10) and Appendix B). The Kalman filter produces estimates \(\left( C_i^*\right) _{i\in \llbracket 1,N_b\rrbracket }\) of the coefficients \(\left( C_i\right) _{i\in \llbracket 1,N_b\rrbracket }\), as well as \({\mathfrak {C}}\) the covariance matrix of the errors on the estimates \(\left( C_i^*\right) _{i}\). Denote the errors \(\varepsilon _i=C_i^*-C_i\) for all i in \(\llbracket 1,N_b\rrbracket \), as well as:

$$\begin{aligned} \forall \left( i,j\right) \in \llbracket 1,N_b\rrbracket ^2,\quad \left\{ \begin{array}{l} {\mathfrak {C}}_{ij} = \left\langle \varepsilon _i\varepsilon _j\right\rangle = r_{ij}\sigma _{i}\sigma _{j}\\ r_{ij} \in \left[ -1, 1\right] \\ r_{ii} = 1.\\ \end{array}\right. \end{aligned}$$
(C7)

Necessarily and by definition, \({\mathfrak {C}}_{ii} =\sigma _i^2\).

For a given geographic location \(\left( \phi , \theta \right) \), the error on the VTEC estimate \(\mathbb {V}^*\left( \phi , \theta \right) \) is:

$$\begin{aligned} \varepsilon _{\mathbb {V}\left( \phi , \theta \right) } = \mathbb {V}^*\left( \phi , \theta \right) -\mathbb {V}\left( \phi , \theta \right) = \sum _{i=1}^{N_b}\varepsilon _ih_i\left( \phi , \theta \right) , \end{aligned}$$
(C8)

and its variance is:

$$\begin{aligned} \begin{aligned} \sigma _{\mathbb {V}\left( \phi , \theta \right) }^2&= \left\langle \varepsilon _{\mathbb {V}\left( \phi , \theta \right) }^2\right\rangle \\&= \sum _{i=1}^{N_b}\sum _{j=1}^{N_b}\left\langle \varepsilon _i\varepsilon _j\right\rangle h_i\left( \phi , \theta \right) h_j\left( \phi , \theta \right) \\&= \sum _{i=1}^{N_b}\sum _{j=1}^{N_b}{\mathfrak {C}}_{ij}h_i\left( \phi , \theta \right) h_j\left( \phi , \theta \right) . \end{aligned} \end{aligned}$$
(C9)

One can now obtain an upper bound for the variance:

$$\begin{aligned} \begin{aligned} \sigma _{\mathbb {V}\left( \phi , \theta \right) }^2&= \sum _{i=1}^{N_b}\sum _{j=1}^{N_b}h_i\left( \phi , \theta \right) h_j\left( \phi , \theta \right) r_{ij}\sigma _{i}\sigma _{j}\\&\le \sum _{i=1}^{N_b}\sum _{j=1}^{N_b}\left|h_i\left( \phi , \theta \right) \right|\left|h_j\left( \phi , \theta \right) \right|\left|r_{ij}\right|\sigma _{i}\sigma _{j}\\&\le \sum _{i=1}^{N_b}\sum _{j=1}^{N_b}\left|h_i\left( \phi , \theta \right) \right|\left|h_j\left( \phi , \theta \right) \right|\sigma _{i}\sigma _{j}\\&= \left( \sum _{i=1}^{N_b}\left|h_i\left( \phi , \theta \right) \right|\sigma _{i}\right) ^2. \end{aligned} \nonumber \\ \end{aligned}$$
(C10)

Here, the first bound is obtained through an identity. The second bounding is obtained by assuming \(r_{ij}=1\) for all \(\left( i,j\right) \) in \(\llbracket 1,N_b\rrbracket ^2\), which essentially means all coefficient errors are perfectly correlated – an extremely unlikely case and therefore a worst-case scenario.

We define \(\sigma _{\mathbb {V}\left( \phi , \theta \right) }\) as the formal VTEC uncertainty of GIM; in other words, it represents upper bound on the standard deviation of the VTEC estimate yielded by the Kalman filter.

Appendix D Mapping functions

For the single- and multi-shell models, we use the function described in (Lanyi and Roth 1988, Eq. (A4)):

$$\begin{aligned} \begin{array}{rcl} M\left( h, e\right) &{}=&{} \left( 1 - \left( \frac{\cos \left( \pi /2-e\right) }{1+h/R_e}\right) ^2\right) ^{-\frac{1}{2}} \\ &{}=&{} \left( 1 - \left( \frac{\sin \left( e\right) }{1+h/R_e}\right) ^2\right) ^{-\frac{1}{2}} \end{array} \end{aligned}$$
(D11)

where e is the elevation angle (in radians) defined as the angle between the ray path and the local vertical at the shell intersection point, \(R_e\) is the mean radius of the Earth, and h is the ionospheric height above ground (\(h\ll R_e\)). For the both the single- and multi-shell models, the mapping function is applied to each shell before being combined in the observation equation (Komjáthy et al. 2002, Eq. (2)):

$$\begin{aligned} \mathbb {S}\left( e\right) = \sum _{j=1}^{N_s}M\left( h_j, e\right) \sum _{i=1}^{N_b}C_{ij}g_i\left( \phi _j, \theta _j\right) , \end{aligned}$$
(D12)

where e is the elevation angle of interest, \(N_s\) is the number of shells and \(\left( h_j\right) _{j\in \llbracket 1,N_s\rrbracket }\) are the shell heights, \(N_b\) is the number of basis functions and \(\left( g_i\right) _{i\in \llbracket 1,N_b\rrbracket }\) are the basis functions (see Appendix B), \(C_{ij}\) is the coefficient associated to the basis function i and shell j, and \(\left( \phi _j, \theta _j\right) \) are the longitude and latitude (respectively) of the ionospheric pierce point associated to shell j.

For the slab model, the mapping function reads:

$$\begin{aligned} M\left( z_1, z_2, e\right) = \frac{m\left( z_2, e\right) - m\left( z_1, e\right) }{z_2-z_1}, \end{aligned}$$
(D13)

with

$$\begin{aligned} m\left( z, e\right) = \sqrt{(R_e+z)^2-(R_e\cos \left( e\right) )^2}, \end{aligned}$$
(D14)

where \(z_{1,2}\) (\(z_1<z_2\)) are the slab bottom and top altitudes, \(R_e\) is the mean radius of the Earth, and e is the elevation angle (in radians).

For the extended slab model (see Sect. 2.3.1 and Eq. (6)), the mapping function reads:

$$\begin{aligned}{} & {} M\left( h, e\right) \nonumber \\{} & {} \quad = \frac{ I_{\text {l}}\left( e, z_0, z_1, H_{\text {l}}\right) + m\left( z_2, e\right) - m\left( z_1, e\right) + I_{\text {u}}\left( e, z_2, z_3, H_{\text {u}}\right) }{ v\left( z_0, z_1, H_{\text {l}}\right) + \left( z_2-z_1\right) + v\left( z_2, z_3, H_{\text {u}}\right) }, \nonumber \\ \end{aligned}$$
(D15)

where \(z_{1,2,3,4}\) define the model key altitudes, and e is the elevation angle (in radians). The function v permits the analytical computation of an integrated VTEC in the bottom and top parts of the extended slab model; it is defined as \(v\left( z_i, z_j, H\right) = H\log \left( 1+\left( z_j-z_i\right) /H\right) \) where \(z_{i,j}\) denote the limits of the profile part and H is its scale height. \(I_{\text {l}}\) and \(I_{\text {u}}\) permit the analytical computation of the equivalent integrated STEC values given an elevation angle e – their tedious expressions are left as an exercise to the reader.

Appendix E Observation equations, combinations, TEC approximation, and ambiguity resolution

The observation equation for the carrier phase measurement, at a given time t and in units of length, is (Teunissen and Montenbruck 2017, Eq. (19.9)):

$$\begin{aligned} \begin{aligned} \phi _{f,s,r}\left( t\right)&=\rho _{s,r}\left( t\right) +\zeta _{f,s,r}\left( t\right) \\&\quad +c\left( \delta ^{\text {R}}_{f,r}-\delta ^{\text {S}}_{f,s}\right) + c\left( {dt}^{\text {R}}\left( t\right) -{dt}^{\text {S}}\left( t\right) +{dt}^{\text {rel}}\left( t\right) \right) \\&\quad -I_{f,s,r}\left( t\right) + T_{s,r}\left( t\right) + \lambda _{f}\left( \omega _{r,s}+N_{f,s,r}\right) \\&\quad +\epsilon _{f,s,r}\left( t\right) , \end{aligned} \nonumber \\ \end{aligned}$$
(E16)

where an f subscript indicates a dependency on frequency, an s subscript indicates a dependency on transmitter, an r subscript indicates a dependency on receiver, \(\rho _{s,r}\left( t\right) \) is the pseudorange measurement (Teunissen and Montenbruck 2017, Eq. (19.6)), \(\zeta _{f,s,r}\left( t\right) \) contains the contributions from the transmitter and receiver phase center offsets and variations (PCOs and PCVs), c is the speed of light, \(\delta ^{{\text {R}},{\text {S}}}_{f,r}\) are the phase instrumental delays (respectively, of the receiver, and of the transmitter), \({dt}^{{\text {R}},{\text {S}},{\text {rel}}}\) are the clock offsets (respectively, in the receiver, in the transmitter, and due to relativistic effects), \(I_{f,s,r}\) is the ionospheric delay, \(T_{s,r}\) is the tropospheric delay, \(\lambda _{f}\) is the radio wavelength at play, \(\omega _{r,s}\) is the phase windup (due to the GNSS signal being polarized, the transmitter’s orientation plays a role here), \(N_{f,s,r}\) is an unknown integer number of cycles, and \(\epsilon _{f,s,r}\) are remaining error terms (multipath, thermal effects, etc.).

The ionospheric delay, when expanded up to the fourth inverse powers of frequency, reads (Teunissen and Montenbruck 2017, Eq. (6.87)):

$$\begin{aligned} \begin{aligned} I_{f,s,r}&=f^{-2} K\int n_{\text {e}}\left( s\right) \ {\text {d}}s\\&\quad +2f^{-3} 2.2566{\times }10^{12}\int n_{\text {e}}\left( s\right) B\left( s\right) \cos \left( \Theta \left( s\right) \right) \ {\text {d}}s\\&\quad +3f^{-4} 2347\int n_{\text {e}}\left( s\right) ^2\ {\text {d}}s\\&\quad +3f^{-4} 4.74{\times }10^{22}\int n_{\text {e}}\left( s\right) B\left( s\right) ^2\left( 1+\cos \left( \Theta \left( s\right) \right) ^2\right) \ {\text {d}}s, \end{aligned} \nonumber \\ \end{aligned}$$
(E17)

where \(\int n_{\text {e}}\left( s\right) \ {\text {d}}s=\mathbb {S}\) is (by definition) the slant TEC along the (curvilinear) line of sight, K is the plasma frequency constant (see Eq. (2)), B is the geomagnetic field induction magnitude, \(\Theta \) is the angle between the ray path and the geomagnetic field induction. The third-order term generally induces an error of at most 30 cm (Teunissen and Montenbruck 2017, Eq. (6.92)), i.e., \(\simeq 3\) TECU. The fourth-order term generally induces an error of at most 20 mm (Teunissen and Montenbruck 2017, Eq. (6.93)), i.e., \(\simeq 0.2\) TECU.

The ionospheric combination LI is made by differentiating the carrier phase signals on two different frequencies, on a shared transmitter-receiver couple. Dropping the time-dependence notation for conciseness, Eq. (E16) yields:

$$\begin{aligned} \begin{aligned} -LI&= \phi _{f_1,s,r}-\phi _{f_2,s,r}\\&= \zeta _{f_1,s,r}-\zeta _{f_2,s,r}\\&\quad +c\left( \delta ^{\text {R}}_{f_1,r}-\delta ^{\text {S}}_{f_1,s}-\left( \delta ^{\text {R}}_{f_2,r}-\delta ^{\text {S}}_{f_2,s}\right) \right) \\&\quad -\left( I_{f_1,s,r}-I_{f_2,s,r}\right) \\&\quad +\omega _{r,s}\left( \lambda _{f_1}-\lambda _{f_2}\right) +{\tilde{N}}_{f_1,f_2,s,r}+\varepsilon _{f_1,f_2,s,r}, \end{aligned} \end{aligned}$$
(E18)

where, in addition to the notation introduced above, \({\tilde{N}}_{f_1,f_2,s,r}=\left( \lambda _{f_1}N_{f_1,s,r}-\lambda _{f_2}N_{f_2,s,r}\right) \) is an unknown combination of integer multiples of the wavelengths at play, and \(\varepsilon _{f_1,f_2,s,r}\) is a term combining remaining errors.

Considering only the first (second-order) term in Eq. (E17) permits the computation of the differential ionospheric delay:

$$\begin{aligned} I_{f_1,s,r}-I_{f_2,s,r} = K\frac{f_2^2-f_1^2}{f_1^2f_2^2}\mathbb {S}_{s,r}. \end{aligned}$$
(E19)

Denote \({\tilde{K}}_{f_1, f_2}=f_1^2f_2^2/\left( K\left( f_2^2-f_1^2\right) \right) \) the frequency-dependent and geometry-independent constant that appears in Eq. (E19). Denote \(\Delta ^{\text {R}}_r=\delta ^{\text {R}}_{f_1,r}-\delta ^{\text {R}}_{f_2,r}\) and \(\Delta ^{\text {S}}_s=\delta ^{\text {S}}_{f_1,s}-\delta ^{\text {S}}_{f_2,s}\) the differential phase hardware delays on the receiver and transmitter, respectively. Inserting Eq. (E19) into Eq. (E18), and expressing it in terms of the STEC \(\mathbb {S}\), yields:

$$\begin{aligned} \begin{aligned} \mathbb {S}_{s,r}&={\tilde{K}}_{f_1, f_2}\left( \phi _{f_1,s,r}-\phi _{f_2,s,r}\right) \\&\quad -{\tilde{K}}_{f_1, f_2} \left( \left( \zeta _{f_1,s,r}-\zeta _{f_2,s,r}\right) + c\left( \Delta ^{\text {R}}_r-\Delta ^{\text {S}}_s\right) \right. \\ {}&\quad \left. + \omega _{r,s}\left( \lambda _{f_1}-\lambda _{f_2}\right) \right) \\&\quad -{\tilde{K}}_{f_1, f_2} \left( {\tilde{N}}_{f_1,f_2,s,r} + \varepsilon _{f_1,f_2,s,r} \right) . \end{aligned} \end{aligned}$$
(E20)

For simplicity, one can group instrumental effects (PCOs, PCVs, hardware delays, and phase windup) under \(\Delta b\) and noise effects (integer ambiguities, thermal noise, multipath, etc.) under \(\Delta \varepsilon \) for conciseness, yielding a simplified Eq. (E20):

$$\begin{aligned} \mathbb {S}_{s,r}{} & {} = {\tilde{K}}_{f_1, f_2}\left( \phi _{f_1,s,r}-\phi _{f_2,s,r}\right) \nonumber \\ {}{} & {} \quad + \Delta b_{f_1,f_2,s,r} + \Delta \varepsilon _{f_1,f_2,s,r}. \end{aligned}$$
(E21)

The time variation of hardware biases in \(\Delta b\) (PCOs, PCVs, hardware delays) is typically negligible over the time scales of interest (up to a couple days at most); they induce an interfrequency bias that one can assume constant and can determine using other methods (see Sect. 2.4). Integer ambiguities can also be assumed constant, and the occasional cycle slip can be corrected on-the-fly. Finally, the phase windup can be determined based on geometrical arguments using the satellite’s attitude, satellite’s position, and receiver’s position.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Martire, L., Runge, T.F., Meng, X. et al. The JPL-GIM algorithm and products: multi-GNSS high-rate global mapping of total electron content. J Geod 98, 44 (2024). https://doi.org/10.1007/s00190-024-01860-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s00190-024-01860-3

Keywords

Navigation