## 2 Multi-Constellation PPP Model
### Kalman Filter Model  
A Kalman filter was used for the multi-constellation kinematic PPP processing in this study. The GNSS dynamic positioning system state equation and observation equation are:  
\[X_{i}=\Phi_{i,i-1}X_{i-1}+W_{i} \tag{5}\]  
\[L_{i}=A_{i}X_{i}+e_{i}\ P_{i} \tag{6}\]  
where \(i\) is the time of \(t_{i}\), and \(Xi\) and \(X_{i-1}\) are the m \(\times\) 1 state vectors at \(t_{i}\) and \(t_{i-1}\), respectively. m is the number of parameters; \(\Phi_{i,i-1}\) is an m \(\times\) m dimensional state transition matrix; and \(W_{i}\) is a system noise vector, which is assumed to be drawn from a zero mean multivariate normal distribution with covariance \(\Sigma_{W_{i}}\). \(L_{i}\) is the observation design vector matrix, and \(e_{i}\) is the measurement error. \(P_{i}\) is a weight matrix. The steps involved in Kalman filtering are as follows [26; 27]:  
(1) Store \(\hat{X}_{i-1}\) and \(\sum_{\hat{X}_{i-1}}\) at \(t_{i-1}\)  
(2) Predicted (a priori) state estimate:  
\[\overline{X}_{i}=\Phi_{i,i-1}\hat{X}_{i-1} \tag{7}\]  
(3) Predicted (a priori) estimate covariance:  
\[\sum_{\overline{X}_{i}}=\Phi_{k,k-1}\sum_{\hat{X}_{k-1}}\Phi^{T}_{k,k-1}+\Phi_ {W_{i}}=P_{\overline{X}_{i}}^{-1} \tag{8}\]  
(4) Innovation or measurement residual and covariance:  
\[\overline{V}_{i}=A_{i}\overline{X}_{k}-L_{i} \tag{9}\]  
\[\sum_{\overline{V}_{i}}=A_{i}\sum_{\overline{X}_{i}}A_{i}^{T}+\sum_{i} \tag{10}\]  
(5) Optimal Kalman gain:  
\[K_{i}=\Phi_{i,i-1}A_{i}\sum_{\overline{V}_{i}}^{-1}=P_{\overline{X}_{i}}^{-1} A_{i}^{T}P_{i} \tag{11}\]  
(6) Updated (a posteriori) state estimate:  
\[\hat{X}_{i}=\overline{X}_{i}-K_{i}\overline{V}_{i} \tag{12}\]  
(7) Updated (a posteriori) estimate covariance:  
\[\sum_{\hat{X}_{i}}=(I-K_{i}A_{i})\sum_{\overline{X}_{i-1}}(I-A_{i}^{T}K_{i}^{ T})+K_{i}\sum_{i}K_{i}^{T} \tag{13}\]  
(8) Let \(I=i+1\) and then return to the first step until the end of the data. Appropriate stochastic models for the observations and dynamic models for the state vector must be provided in the Kalman filter. The stochastic model is usually defined using an appropriate covariance matrix that describes the statistical properties of the measurements [28]. In the following section, the stochastic models used in this study will be introduced in detail. The kinematic model used in the dynamic model is the constant acceleration:  
\[\text{r}(t+1)=\text{r}(t)+\text{r}(t)^{\prime}\Delta\text{t}+\text{r}(t)^{ \prime\prime}\Delta\text{t}^{2}/2 \tag{14}\]  
where \(\text{r}(t)\) is an unknown vector, \(\text{r}(t)^{\prime}\) is the velocity, and \(\Delta\)t is the acceleration time length. In our software, the coordinate, receiver clock, tropospheric delay and ambiguity parameters were the unknown parameters. These parameters were estimated using the first-order Gauss-Markov (GM) random process. If no cycle-slips occurred, we treated the ambiguity as a constant. In our software, we only stored the information of the current epoch and the next epoch, and we estimated the parameters of each epoch. The discussion regarding dynamic noise variance of the related parameters is as follows:  
The discrete first-order GM process is:  
\[L_{i}=A_{i}X_{i}+e_{i}\ P_{i} \tag{6}\]0  
where \(x\) is the state vector, \(\Re\text{x}_{k}=e^{-\Delta t/\tau}\), \(\tau\) is the correlation time, \(\omega\) is the white noise sequence with zero mean value, and \(\triangle t\) is the time interval. Generally,\(\beta=\frac{1}{\tau}\), \(\beta\) is the damping coefficient. If the damping coefficient is too large, the current and next epochs will have greater volatility. However, the two epochs have a strong time correlation. The state transition matrix is:  
\[L_{i}=A_{i}X_{i}+e_{i}\ P_{i} \tag{6}\]1  
The dynamic noise variance matrix is:  
\[L_{i}=A_{i}X_{i}+e_{i}\ P_{i} \tag{6}\]2  
where \(q\) is the spectral density or dynamic noise variance matrix. When the correlation time \(\tau\) is zero, Equation (15) represents the pure white noise model. If \(\tau\) is infinite, the filtering process is a pure random walk.