## 2 Methodology
### Extraction and Constraints of Atmospheric Delay  
#### 2.2.1 Server-Side Atmospheric Delay Extraction  
The server selects the ionosphere-free model to fix the SD ambiguity and extracts the atmospheric delay correction. The equations for raw code and phase observations are as follows [20]:  
\[\left\{\begin{array}{l}P_{r,i}^{s}=\rho_{r}^{s}+ct_{r}-ct^{s}+\gamma_{r}I_{s, 1}^{s}+T_{r}^{s}+d_{r,i}-d_{i}^{s}+\varepsilon_{p,r,i}^{s}\\ I_{r,i}^{s}=\rho_{r}^{s}+ct_{r}-ct^{s}-\gamma_{i}I_{r,1}^{s}+T_{r}^{s}+\lambda_{ i}N_{r,i}^{s}+b_{r,j}-b_{i}^{s}+\varepsilon_{L,r,i}^{s}\end{array}\right. \tag{6}\]  
where the subscript \(i\), \(r\), and \(s\) represent the frequency, reference station, and satellite, respectively; \(P\) and \(L\) are the code and phase measurements, respectively; \(t\), and \(t^{s}\) are the receiver clock error and satellite clock error, respectively; \(I\) and \(T\) represent the ionospheric and tropospheric delay, respectively; \(d_{r,i}\) and \(d_{i}^{s}\) represent the receiver and satellite code hardware delays, respectively; \(b_{r,i}\) and \(b_{i}^{s}\) represent the receiver and satellite phase hardware delays, respectively; \(\varepsilon\) represents observation noise, multipath effects, and other unmodeled errors; \(\lambda\) is the wavelength of the carrier phase; \(N\) is the integer ambiguity; \(c\) is the speed of light; and \(\gamma_{i}=\left(\lambda_{i}/\lambda_{1}\right)^{2}\). The tropospheric model delay \(T_{r}^{s}\) can be written as follows:  
\[T_{r}^{s}=M_{h,r}^{s}d_{h,r}+M_{w,r}^{s}d_{w,r} \tag{7}\]  
where \(d_{h,r}\) and \(d_{w,r}\) are the dry and wet delays of the site-specific zenith tropospheric delay, respectively, and \(M_{h,r}^{s}\) and \(M_{w,r}^{s}\) are the mapping functions of dry and wet delay, respectively. After error correction and reparameterization, the ionospheric-free (IF) dual-frequency combined observation equation is as follows:  
\[\left\{\begin{array}{l}p_{r,IF}^{s}=\mu_{r}^{s}.x+c\bar{t}_{r}-c\bar{t}^{s} +M_{w,r}^{s}d_{w,r}+\varepsilon_{p,r,IF}^{s}\\ l_{r,IF}^{s}=\mu_{r}^{s}.x+c\bar{t}_{r}-c\bar{t}^{s}+M_{w,r}^{s}d_{w,r}+ \lambda_{1}N_{r,IF}+\varepsilon_{\phi,r,IF}^{s}\end{array}\right. \tag{8}\]  
In the formula,  
\[\left\{\begin{array}{l}c\bar{t}_{r}=ct_{r}+d_{r,IF}\\ c\bar{t}^{s}=ct^{s}+d_{IF}^{s}\\ \lambda_{1}\overline{N}_{r,IF}^{s}=\lambda_{1}N_{r,IF}^{s}+b_{r,IF}-b_{IF}^{s} -d_{r,IF}+d_{IF}^{s}\end{array}\right.\]where \(\mu_{r}^{s}\) is the unit vector of the component from the receiver to the satellite and \(x\) is the vector of the receiver position increments relative to the a priori position. The precise satellite clock error product was used to correct satellite clock error, which includes satellite clock error and ionosphere-free code hardware delay of satellites. The server extracts the tropospheric delay and ionospheric delay using coordinate constraints and ambiguity fixing methods and uses the IF observations to invert the tropospheric wet delay component.  
\[\overline{T}_{w,r}^{s}=L_{r,IF}^{s}-\rho_{r}^{s}-c\overline{t}_{r}+c\overline{t }^{s}-\lambda_{1}\overline{N}_{r,IF}^{s}-M_{h,r}^{s}d_{h,r} \tag{9}\]  
If the noise term is ignored, the ionospheric delay correction can be calculated as follows:  
\[\overline{I}_{1}^{s}=\rho_{r}^{s}+c\overline{t}_{r}-c\overline{t}^{s}+\left(M _{h,r}^{s}d_{h,r}+\overline{T}_{w,r}^{s}\right)+\lambda_{1}N_{1}^{s}+b_{r,1}- b_{1}^{s}-L_{r,1}^{s} \tag{10}\]  
The UPD product can correct the hardware delay in the equation. The ionospheric delay can be expressed as follows:  
\[\overline{I}_{1}^{s}=I_{r,1}^{s}+\delta Z \tag{11}\]  
where \(I_{r,1}^{s}\) is the theoretical ionospheric delay, and \(\delta Z\) represents common satellite errors, including errors such as the UPD product benchmark and receiver code hardware delay.