球谐拟合与球冠谐拟合:GNSS 广域对流层建模算法

概念 → 数学基础 → ZTD 高程归算 → 单层与分层 → 广域建模与验证

1. 澄清四个概念

术语 英文 核心含义 直观理解
球谐(SH) Spherical Harmonics 定义在球面上的一组角向基函数 球面上的"正弦与余弦"
球冠谐(SCH) Spherical Cap Harmonics 为有限球冠构造的区域基函数 专门描述某块球面区域的变化
球谐展开 Spherical Harmonic Expansion 将空间场表示为球谐基函数的线性组合 写出模型的表达式
球谐拟合 Spherical Harmonic Fitting 利用离散观测估计展开系数 根据测站数据求参数

球谐、球冠谐是基函数;展开是表达;拟合是求系数。 "球谐拟合函数"并非某个固定函数,而是选定坐标、基函数、截断阶次后形成的模型。用球冠谐展开并拟合参数,可称为球冠谐分析(SCHA)。经典球冠谐最初用于区域地磁场建模;将其角向基函数用于 ZTD 拟合,不代表 ZTD 本身满足拉普拉斯方程 1--3。
#mermaid-svg-nftfpjWEXGboMJVU{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-nftfpjWEXGboMJVU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-nftfpjWEXGboMJVU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-nftfpjWEXGboMJVU .error-icon{fill:#552222;}#mermaid-svg-nftfpjWEXGboMJVU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nftfpjWEXGboMJVU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-nftfpjWEXGboMJVU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nftfpjWEXGboMJVU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nftfpjWEXGboMJVU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-nftfpjWEXGboMJVU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nftfpjWEXGboMJVU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nftfpjWEXGboMJVU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nftfpjWEXGboMJVU .marker.cross{stroke:#333333;}#mermaid-svg-nftfpjWEXGboMJVU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nftfpjWEXGboMJVU p{margin:0;}#mermaid-svg-nftfpjWEXGboMJVU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nftfpjWEXGboMJVU .cluster-label text{fill:#333;}#mermaid-svg-nftfpjWEXGboMJVU .cluster-label span{color:#333;}#mermaid-svg-nftfpjWEXGboMJVU .cluster-label span p{background-color:transparent;}#mermaid-svg-nftfpjWEXGboMJVU .label text,#mermaid-svg-nftfpjWEXGboMJVU span{fill:#333;color:#333;}#mermaid-svg-nftfpjWEXGboMJVU .node rect,#mermaid-svg-nftfpjWEXGboMJVU .node circle,#mermaid-svg-nftfpjWEXGboMJVU .node ellipse,#mermaid-svg-nftfpjWEXGboMJVU .node polygon,#mermaid-svg-nftfpjWEXGboMJVU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nftfpjWEXGboMJVU .rough-node .label text,#mermaid-svg-nftfpjWEXGboMJVU .node .label text,#mermaid-svg-nftfpjWEXGboMJVU .image-shape .label,#mermaid-svg-nftfpjWEXGboMJVU .icon-shape .label{text-anchor:middle;}#mermaid-svg-nftfpjWEXGboMJVU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-nftfpjWEXGboMJVU .rough-node .label,#mermaid-svg-nftfpjWEXGboMJVU .node .label,#mermaid-svg-nftfpjWEXGboMJVU .image-shape .label,#mermaid-svg-nftfpjWEXGboMJVU .icon-shape .label{text-align:center;}#mermaid-svg-nftfpjWEXGboMJVU .node.clickable{cursor:pointer;}#mermaid-svg-nftfpjWEXGboMJVU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-nftfpjWEXGboMJVU .arrowheadPath{fill:#333333;}#mermaid-svg-nftfpjWEXGboMJVU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nftfpjWEXGboMJVU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nftfpjWEXGboMJVU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nftfpjWEXGboMJVU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-nftfpjWEXGboMJVU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nftfpjWEXGboMJVU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-nftfpjWEXGboMJVU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nftfpjWEXGboMJVU .cluster text{fill:#333;}#mermaid-svg-nftfpjWEXGboMJVU .cluster span{color:#333;}#mermaid-svg-nftfpjWEXGboMJVU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nftfpjWEXGboMJVU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-nftfpjWEXGboMJVU rect.text{fill:none;stroke-width:0;}#mermaid-svg-nftfpjWEXGboMJVU .icon-shape,#mermaid-svg-nftfpjWEXGboMJVU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nftfpjWEXGboMJVU .icon-shape p,#mermaid-svg-nftfpjWEXGboMJVU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-nftfpjWEXGboMJVU .icon-shape .label rect,#mermaid-svg-nftfpjWEXGboMJVU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nftfpjWEXGboMJVU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-nftfpjWEXGboMJVU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-nftfpjWEXGboMJVU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 全球
有限区域
待建模空间场
建模区域
选择全球球谐 SH
比较球冠谐 SCH 与局部基线
确定基函数与截断阶次
测站观测拟合系数
任意位置重建空间场

常见应用有全球重力场和大地水准面、地磁场、全球电离层 VTEC、全球气象场 ,以及区域 ZTD/ZWD 场或气象模式误差场。球冠谐并不保证在所有区域都优于普通多项式或残差格网:效果取决于观测分布、场的复杂度、模型阶次和高程处理 2--4。

2. SH 与 SCH 的数学原理

2.1 先明确坐标

严格的球面角向函数采用地心纬度 ψ \psi ψ、经度 λ \lambda λ,或余纬 θ = π / 2 − ψ \theta=\pi/2-\psi θ=π/2−ψ。这与 BLH 中的大地纬度 B B B 并非同一概念。由地心地固坐标 ECEF ( X , Y , Z ) (X,Y,Z) (X,Y,Z) 得:

ψ = atan2 ⁡  ⁣ ( Z , X 2 + Y 2 ) , λ = atan2 ⁡ ( Y , X ) . (1) \psi=\operatorname{atan2}\!\left(Z,\sqrt{X^2+Y^2}\right),\qquad \lambda=\operatorname{atan2}(Y,X). \tag{1} ψ=atan2(Z,X2+Y2 ),λ=atan2(Y,X).(1)

变量: X , Y , Z X,Y,Z X,Y,Z 为 ECEF 坐标(m); ψ , λ \psi,\lambda ψ,λ 分别为地心纬度和经度(rad); atan2 ⁡ \operatorname{atan2} atan2 是保留象限的反正切函数。实际经验模型也可能用大地纬度建基,但必须在服务端、客户端使用同一约定,不能将其正交性质直接当作严格球面球谐的性质。

2.2 全球球谐(SH)展开

对参考高度上的球面标量场 F ( ψ , λ ) F(\psi,\lambda) F(ψ,λ),实数形式的截断展开为:

F ( ψ , λ ) ≈ ∑ n = 0 N ∑ m = 0 n P ˉ n m ( sin ⁡ ψ ) C n m cos ⁡ ( m λ ) + S n m sin ⁡ ( m λ ) . (2) F(\psi,\lambda)\approx \sum_{n=0}^{N}\sum_{m=0}^{n} \bar P_{nm}(\sin\psi) \leftC_{nm}\\cos(m\\lambda)+S_{nm}\\sin(m\\lambda)\\right. \tag{2} F(ψ,λ)≈n=0∑Nm=0∑nPˉnm(sinψ)Cnmcos(mλ)+Snmsin(mλ).(2)

变量: F F F 为待建模量(拟合 ZTD 时单位 m); n , m n,m n,m 分别为球谐度(degree)与次(order), 0 ≤ m ≤ n 0\le m\le n 0≤m≤n; N N N 为最高截断度; P ˉ n m \bar P_{nm} Pˉnm 为按约定归一化的缔合勒让德函数(无量纲); C n m , S n m C_{nm},S_{nm} Cnm,Snm 为待估系数(单位同 F F F); ψ , λ \psi,\lambda ψ,λ 均为 rad。**注意:**归一化方式、Condon--Shortley 相位、经度正方向必须一致,否则不同实现的系数不可直接混用。

因为 sin ⁡ ( 0 λ ) = 0 \sin(0\lambda)=0 sin(0λ)=0, S n 0 S_{n0} Sn0 不是独立参数。若保留完整的 0 ≤ m ≤ n ≤ N 0\le m\le n\le N 0≤m≤n≤N,系数数目为:

K S H = ( N + 1 ) 2 . (3) K_{\mathrm{SH}}=(N+1)^2. \tag{3} KSH=(N+1)2.(3)

变量: K S H K_{\mathrm{SH}} KSH 为独立实系数数量; N N N 为最高截断度。例如 N = 2 N=2 N=2 有 9 个参数, N = 3 N=3 N=3 有 16 个。这里是全球球谐的完整三角截断,不宜不加限定地推广到任意 SCH 索引集合。

2.3 球冠谐(SCH)展开

仅对中国等有限区域拟合时,全球球谐在完整球面上的正交性,在有限测站区域内一般不再成立。SCH 通过球冠中心、球冠半张角和边界条件定义区域基函数 1,2。

设球冠中心为 ( ψ 0 , λ 0 ) (\psi_0,\lambda_0) (ψ0,λ0),测点为 ( ψ , λ ) (\psi,\lambda) (ψ,λ),二者角距 ϑ \vartheta ϑ 满足:

cos ⁡ ϑ = sin ⁡ ψ 0 sin ⁡ ψ + cos ⁡ ψ 0 cos ⁡ ψ cos ⁡ ( λ − λ 0 ) . (4) \cos\vartheta= \sin\psi_0\sin\psi+ \cos\psi_0\cos\psi\cos(\lambda-\lambda_0). \tag{4} cosϑ=sinψ0sinψ+cosψ0cosψcos(λ−λ0).(4)

局部方位角可规定为球冠中心朝向测点、由北顺时针旋转的方向:

α = atan2 ⁡  ⁣ ( cos ⁡ ψ sin ⁡ ( λ − λ 0 ) , cos ⁡ ψ 0 sin ⁡ ψ − sin ⁡ ψ 0 cos ⁡ ψ cos ⁡ ( λ − λ 0 ) ) . (5) \alpha=\operatorname{atan2}\!\left( \cos\psi\sin(\lambda-\lambda_0), \cos\psi_0\sin\psi-\sin\psi_0\cos\psi\cos(\lambda-\lambda_0) \right). \tag{5} α=atan2(cosψsin(λ−λ0),cosψ0sinψ−sinψ0cosψcos(λ−λ0)).(5)

变量: ( ψ 0 , λ 0 ) (\psi_0,\lambda_0) (ψ0,λ0) 为球冠中心地心纬度、经度(rad); ( ψ , λ ) (\psi,\lambda) (ψ,λ) 为测点地心纬度、经度(rad); ϑ \vartheta ϑ 为中心角距(rad); α \alpha α 为定义好的局部方位角(rad)。在中心点 ϑ = 0 \vartheta=0 ϑ=0 时方位角本身无定义,软件需作数值特判;对正规角向基函数,中心点的非零次项应按其极限处理。

球冠半张角为 ϑ 0 \vartheta_0 ϑ0 时,区域内满足 0 ≤ ϑ ≤ ϑ 0 0\le\vartheta\le\vartheta_0 0≤ϑ≤ϑ0。球冠中心到边界的球面弧长为 D = R ϑ 0 D=R\vartheta_0 D=Rϑ0,其中 R R R 为选定球体半径(如近似取 6371 k m 6371\ \mathrm{km} 6371 km), D D D 与 R R R 单位一致;球冠半径不是服务区东西跨度。

用于参考高度标量场拟合的一种 SCH 角向表达为:

F ( ϑ , α ) ≈ ∑ ( k , m ) ∈ I P ν k m m ( cos ⁡ ϑ ) c k m cos ⁡ ( m α ) + d k m sin ⁡ ( m α ) . (6) F(\vartheta,\alpha)\approx \sum_{(k,m)\in\mathcal I} P_{\nu_{km}}^m(\cos\vartheta) \leftc_{km}\\cos(m\\alpha)+d_{km}\\sin(m\\alpha)\\right. \tag{6} F(ϑ,α)≈(k,m)∈I∑Pνkmm(cosϑ)ckmcos(mα)+dkmsin(mα).(6)

变量: I \mathcal I I 为保留的索引集合; m m m 为非负整数次; k k k 为根的索引; ν k m \nu_{km} νkm 为由球冠边界条件确定的特征度 (通常非整数); P ν k m m P_{\nu_{km}}^m Pνkmm 为非整数度缔合勒让德函数; c k m , d k m c_{km},d_{km} ckm,dkm 为展开系数,单位同 F F F; ϑ , α \vartheta,\alpha ϑ,α 为球冠局部坐标(rad)。 m = 0 m=0 m=0 的正弦项为零,不估计 d k 0 d_{k0} dk0。以上是表面标量场的角向形式,无需照搬地磁势模型中的径向因子。

经典 Haines 球冠谐的一组索引约定是:

{ ∂ P ν k m m ( cos ⁡ ϑ ) ∂ ϑ ∣ ϑ = ϑ 0 = 0 , k − m 为偶数(Neumann) , P ν k m m ( cos ⁡ ϑ 0 ) = 0 , k − m 为奇数(Dirichlet) . (7) \begin{cases} \displaystyle\left.\frac{\partial P_{\nu_{km}}^m(\cos\vartheta)}{\partial\vartheta}\right|{\vartheta=\vartheta_0}=0, &k-m\text{ 为偶数(Neumann)},\\6pt P{\nu_{km}}^m(\cos\vartheta_0)=0, &k-m\text{ 为奇数(Dirichlet)}. \end{cases} \tag{7} ⎩ ⎨ ⎧∂ϑ∂Pνkmm(cosϑ) ϑ=ϑ0=0,Pνkmm(cosϑ0)=0,k−m 为偶数(Neumann),k−m 为奇数(Dirichlet).(7)

变量: ϑ 0 \vartheta_0 ϑ0 为球冠边界半张角; ν k m \nu_{km} νkm 为相应边界条件的特征根; k − m k-m k−m 的奇偶性用于区分两类函数。Neumann 表示边界法向角导数为零;Dirichlet 表示基函数边界值为零。每一类内部可正交,两类合用并不整体正交,不可把全部系数当成彼此独立的正交投影 1,2。

若具体实现恰好使用 0 ≤ m ≤ k ≤ K max ⁡ 0\le m\le k\le K_{\max} 0≤m≤k≤Kmax 的完整三角索引,并对两类根作上述交错编号,则独立实系数也可为 ( K max ⁡ + 1 ) 2 (K_{\max}+1)^2 (Kmax+1)2;只取一类根、删减基函数或采用不同截断规则时,应按实际索引逐项计数。

3. GNSS ZTD:水平变化与高程变化是两件事

3.1 ZTD、ZHD、ZWD 与 PPP 观测方程

Z T D ( h ) = Z H D ( h ) + Z W D ( h ) . (8) \mathrm{ZTD}(h)=\mathrm{ZHD}(h)+\mathrm{ZWD}(h). \tag{8} ZTD(h)=ZHD(h)+ZWD(h).(8)

变量: Z T D \mathrm{ZTD} ZTD 为天顶总延迟; Z H D \mathrm{ZHD} ZHD 为天顶静力延迟; Z W D \mathrm{ZWD} ZWD 为天顶湿延迟,均为 m; h h h 为测点高程(m)。通常可根据气压较准确地计算 ZHD,而湿延迟变化快,往往需要利用 GNSS 观测估计 6。

实际 GNSS 观测发生在倾斜方向,其大气延迟可近似写为:

T s l a n t = m h ( e )   Z H D + m w ( e )   Z W D + T g r a d . (9) T_{\mathrm{slant}}=m_h(e)\,\mathrm{ZHD}+m_w(e)\,\mathrm{ZWD}+T_{\mathrm{grad}}. \tag{9} Tslant=mh(e)ZHD+mw(e)ZWD+Tgrad.(9)

变量: T s l a n t T_{\mathrm{slant}} Tslant 为斜路径大气延迟(m); e e e 为卫星高度角; m h , m w m_h,m_w mh,mw 分别为静力和湿延迟映射函数(无量纲); T g r a d T_{\mathrm{grad}} Tgrad 为水平梯度等非对称效应(m)。广域 ZTD 模型提供的是天顶先验,不是直接等于每颗卫星的斜路径改正。 精密 PPP/PPP-AR 通常仍要考虑残余 ZWD 的估计、先验约束和梯度模型。

3.2 为什么要进行高程归算?

从物理上看,某高度处的 ZTD 是该高度以上大气柱的累计延迟。以简化的竖直大气柱为例:

T ( h ) ≡ Z T D ( h ) ≈ 10 − 6 ∫ h h t o p N ( z )   d z . (10) T(h)\equiv\mathrm{ZTD}(h)\approx10^{-6} \int_{h}^{h_{\mathrm{top}}}\mathcal N(z)\,\mathrm dz. \tag{10} T(h)≡ZTD(h)≈10−6∫hhtopN(z)dz.(10)

变量: T ( h ) T(h) T(h) 为高度 h h h 的累计 ZTD(m); z z z 为垂向积分坐标(m); h t o p h_{\mathrm{top}} htop 为足够高的积分上界(m); N ( z ) = 10 6 ( n a i r − 1 ) \mathcal N(z)=10^6(n_{\mathrm{air}}-1) N(z)=106(nair−1) 为中性大气折射度(无量纲); n a i r n_{\mathrm{air}} nair 为折射率。此式忽略射线弯曲等高精度效应,用于理解垂向规律。

测站海拔由 100 m 增至 2000 m 时,即使经纬度接近,ZTD 也会有明显差别。若直接用只含 ( ψ , λ ) (\psi,\lambda) (ψ,λ) 的基函数拟合未归算的原始 ZTD,就可能把高差造成的垂向变化 误认为水平变化。SH/SCH 只描述角向变化,不会自动解决高度问题。

实际还要区分 GNSS 椭球高、正高和气象模式的位势高度。近似关系 H ≈ h − N g H\approx h-N_g H≈h−Ng 中, H H H 为正高(m), h h h 为椭球高(m), N g N_g Ng 为大地水准面起伏(m),勿与折射度 N \mathcal N N 混淆;位势高度按气象数据规范转换。

4. 单层 ZTD 模型:一张水平场 + 一套垂向关系

这里的单层 是工程定义:在统一参考高程 h 0 h_0 h0 拟合一张 ZTD 水平场,再用一套垂向递减关系恢复用户高度。不是说大气物理上只有一层,也不是电离层单层薄壳模型。

4.1 逆尺度高度

令 T ( h ) > 0 T(h)>0 T(h)>0,定义 ZTD 的逆尺度高度(inverse scale height):

β ( h ) = − ∂ ln ⁡ T ( h ) ∂ h ≈ 10 − 6 N ( h ) T ( h ) . (11) \beta(h)=-\frac{\partial\ln T(h)}{\partial h} \approx\frac{10^{-6}\mathcal N(h)}{T(h)}. \tag{11} β(h)=−∂h∂lnT(h)≈T(h)10−6N(h).(11)

变量: β \beta β 为 ZTD 相对高程递减率( m − 1 \mathrm{m}^{-1} m−1); T ( h ) T(h) T(h) 为高度 h h h 的累计 ZTD(m); N ( h ) \mathcal N(h) N(h) 为该处折射度; h h h 为同一垂向坐标系中的高度(m)。右侧近似源于式(10)。β \beta β 是相对递减率,而非以 m/m 表示的固定绝对斜率。

4.2 单层指数归算与球谐拟合

在研究的高程范围内取常数 β \beta β,则:

T ( p , h , t ) = T 0 ( p , t ) exp ⁡ − β ( h − h 0 ) . (12) T(\mathbf p,h,t)=T_0(\mathbf p,t)\exp-\\beta(h-h_0). \tag{12} T(p,h,t)=T0(p,t)exp−β(h−h0).(12)

测站 i i i 的 ZTD 归算至参考高程:

T i ( 0 ) = T i exp ⁡ β i ( h i − h 0 ) . (13) T_i^{(0)}=T_i\exp\\beta_i(h_i-h_0). \tag{13} Ti(0)=Tiexpβi(hi−h0).(13)

再拟合水平场:

T 0 ( p , t ) = ∑ j = 1 K a j ( t ) Y j ( p ) . (14) T_0(\mathbf p,t)=\sum_{j=1}^{K}a_j(t)Y_j(\mathbf p). \tag{14} T0(p,t)=j=1∑Kaj(t)Yj(p).(14)

变量(式 12--14): p \mathbf p p 为水平球面坐标或球冠坐标; h , h i , h 0 h,h_i,h_0 h,hi,h0 分别为用户、测站及参考高程(m,采用同一高程基准); t t t 为历元; T i T_i Ti 为第 i i i 站实测 ZTD(m); T i ( 0 ) T_i^{(0)} Ti(0) 为归算后的等效 ZTD(m); T 0 T_0 T0 为参考高程的水平 ZTD 场(m); β , β i \beta,\beta_i β,βi 为递减率( m − 1 \mathrm{m}^{-1} m−1); Y j Y_j Yj 为第 j j j 个无量纲 SH/SCH 基函数; a j a_j aj 为待估系数(m); K K K 为基函数数目。

**算例:**若 h 0 = 100 m h_0=100\ \mathrm m h0=100 m、 T 0 = 2.40 m T_0=2.40\ \mathrm m T0=2.40 m、 β = 1.3 × 10 − 4 m − 1 \beta=1.3\times10^{-4}\ \mathrm{m}^{-1} β=1.3×10−4 m−1,则 h = 1200 m h=1200\ \mathrm m h=1200 m 处:

T ( 1200 ) = 2.40 exp ⁡ − 1.3 × 10 − 4 ( 1200 − 100 ) ≈ 2.08 m . (15) T(1200)=2.40\exp-1.3\\times10\^{-4}(1200-100)\approx2.08\ \mathrm m. \tag{15} T(1200)=2.40exp−1.3×10−4(1200−100)≈2.08 m.(15)

上述 β \beta β 仅用于演示,不能作为中国各区域通用的高程递减率。若 β \beta β 随时空变化,可由气象垂直剖面、经验格网或预报产品提供,不应仅凭不同位置的地面 GNSS ZTD 就认为能够唯一分离水平结构与垂向结构。

5. 分层 ZTD 模型:让不同高度段具有不同递减规律

5.1 方案 A:一张水平场 + 多段逆尺度高度

该方案仍只拟合一张参考高度 ZTD 场 ,但从参考高度 h 0 h_0 h0 到目标高度 h h h 的过程中,不同高度段采用不同 β ℓ \beta_\ell βℓ:

T ( p , h , t ) = T 0 ( p , t ) exp ⁡  ⁣ − ∫ h 0 h β ( z , p , t )   d z . (16) T(\mathbf p,h,t)=T_0(\mathbf p,t) \exp\!\left-\\int_{h_0}\^{h}\\beta(z,\\mathbf p,t)\\,\\mathrm dz\\right. \tag{16} T(p,h,t)=T0(p,t)exp−∫h0hβ(z,p,t)dz.(16)

当 h ≥ h 0 h\ge h_0 h≥h0,且各层 β ℓ \beta_\ell βℓ 为分段常数:

T ( h ) = T 0 exp ⁡  ⁣ − ∑ ℓ = 1 L β ℓ Δ h ℓ , ∑ ℓ = 1 L Δ h ℓ = h − h 0 . (17) T(h)=T_0\exp\!\left-\\sum_{\\ell=1}\^{L}\\beta_\\ell\\Delta h_\\ell\\right, \qquad\sum_{\ell=1}^{L}\Delta h_\ell=h-h_0. \tag{17} T(h)=T0exp−ℓ=1∑LβℓΔhℓ,ℓ=1∑LΔhℓ=h−h0.(17)

变量: L L L 为垂向分层数; z z z 为高度积分变量(m); β ℓ \beta_\ell βℓ 为第 ℓ \ell ℓ 层逆尺度高度( m − 1 \mathrm{m}^{-1} m−1); Δ h ℓ \Delta h_\ell Δhℓ 为 h 0 , h h_0,h h0,h 与该层高程区间的交叠长度(m); T 0 , T ( h ) T_0,T(h) T0,T(h) 为参考高程和目标高程的累计 ZTD(m); p , t \mathbf p,t p,t 为水平位置和历元。若 h < h 0 h<h_0 h<h0,直接使用式(16)的带符号积分,不能把式(17)中定义的非负交叠长度照搬。

对已知大气剖面的两层界 z ℓ − 1 , z ℓ z_{\ell-1},z_\ell zℓ−1,zℓ,平均递减率可由累计 ZTD 求得:

β ℓ ≈ ln ⁡ T ( z ℓ − 1 ) − ln ⁡ T ( z ℓ ) z ℓ − z ℓ − 1 . (18) \beta_\ell\approx \frac{\ln T(z_{\ell-1})-\ln T(z_\ell)}{z_\ell-z_{\ell-1}}. \tag{18} βℓ≈zℓ−zℓ−1lnT(zℓ−1)−lnT(zℓ).(18)

变量: z ℓ − 1 , z ℓ z_{\ell-1},z_\ell zℓ−1,zℓ 为第 ℓ \ell ℓ 层的上下边界高度(m); T ( z ℓ − 1 ) , T ( z ℓ ) > 0 T(z_{\ell-1}),T(z_\ell)>0 T(zℓ−1),T(zℓ)>0 为分别从两个边界向上积分 得到的累计 ZTD(m); β ℓ \beta_\ell βℓ 为该高度段平均逆尺度高度( m − 1 \mathrm{m}^{-1} m−1)。两层界累计 ZTD 的差值才是其间空气柱的延迟,不能把不同高度的累计 ZTD 相加。

Zhang 等(2020)研究中国区域的一个四层案例 4:

层 高程区间
1 0--0.8 km
2 0.8--2.0 km
3 2.0--3.5 km
4 3.5--6.0 km

这些边界是特定研究采用的分层配置 ,并非通用 GNSS 标准。该论文研究的是高程归算的四层逆尺度高度格网,不能误解为"四个高度面分别做 SCH 拟合"。其验证效果也不能直接当作新工程的预期精度。

5.2 方案 B:多个参考高度面分别拟合水平场

若已有气象模式多高度累计 ZTD,可在 L L L 个高度面分别拟合:

T ℓ ( p , t ) = ∑ j = 1 K ℓ a ℓ j ( t ) Y ℓ j ( p ) , ℓ = 1 , ... , L . (19) T_\ell(\mathbf p,t)=\sum_{j=1}^{K_\ell}a_{\ell j}(t)Y_{\ell j}(\mathbf p), \qquad\ell=1,\ldots,L. \tag{19} Tℓ(p,t)=j=1∑Kℓaℓj(t)Yℓj(p),ℓ=1,...,L.(19)

位于相邻高度面 h ℓ < h < h ℓ + 1 h_\ell<h<h_{\ell+1} hℓ<h<hℓ+1 之间的用户,可采用对数插值:

ln ⁡ T ( h ) = ( 1 − w ) ln ⁡ T ℓ + w ln ⁡ T ℓ + 1 , w = h − h ℓ h ℓ + 1 − h ℓ . (20) \ln T(h)=(1-w)\ln T_\ell+w\ln T_{\ell+1}, \qquad w=\frac{h-h_\ell}{h_{\ell+1}-h_\ell}. \tag{20} lnT(h)=(1−w)lnTℓ+wlnTℓ+1,w=hℓ+1−hℓh−hℓ.(20)

变量: T ℓ T_\ell Tℓ 为参考高度 h ℓ h_\ell hℓ 上从该高度向上积分 的累计 ZTD(m); L L L 为参考高度面数量; K ℓ K_\ell Kℓ 为该高度面的基函数数目; Y ℓ j Y_{\ell j} Yℓj 为该面的无量纲基函数; a ℓ j a_{\ell j} aℓj 为其拟合系数(m); h ℓ , h ℓ + 1 , h h_\ell,h_{\ell+1},h hℓ,hℓ+1,h 为两相邻参考高程及用户高程(m); w w w 为无量纲插值权重。要求 T ℓ , T ℓ + 1 > 0 T_\ell,T_{\ell+1}>0 Tℓ,Tℓ+1>0,且应控制因各面独立拟合导致的不合理层间增大或不连续。地表 GNSS ZTD 本身不足以给出所有高度面的独立观测真值,需气象剖面等外部信息。

5.3 单层与两种分层方案对比

比较项 单层 分层 A:多段递减率 分层 B:多高度水平场
水平模型 一张 SH/SCH 场 一张 SH/SCH 场 各参考高度面分别拟合
垂向描述 一段指数关系 分段指数关系 多高度面插值或其他物理约束
所需辅助资料 单段递减率 分层递减率 多高度累计 ZTD
主要优势 简单,易播发 更适应明显高差 三维表达更灵活
主要风险 垂向模型偏差 分层参数、层界误差 参数量大,层间一致性差

选择原则:优先建立单层基线;复杂地形且有可信气象剖面时评估分层 A;只有确有多高度资料和三维需求时才考虑分层 B。单层与分层是垂向参数化的区分 ,SH 与 SCH 是水平方向基函数的选择,两者可以自由组合,不应混为同一维度的分类。
#mermaid-svg-QFCHsDDXWj0FwJnU{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-QFCHsDDXWj0FwJnU .error-icon{fill:#552222;}#mermaid-svg-QFCHsDDXWj0FwJnU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-QFCHsDDXWj0FwJnU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-QFCHsDDXWj0FwJnU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-QFCHsDDXWj0FwJnU .marker.cross{stroke:#333333;}#mermaid-svg-QFCHsDDXWj0FwJnU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-QFCHsDDXWj0FwJnU p{margin:0;}#mermaid-svg-QFCHsDDXWj0FwJnU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU .cluster-label text{fill:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU .cluster-label span{color:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU .cluster-label span p{background-color:transparent;}#mermaid-svg-QFCHsDDXWj0FwJnU .label text,#mermaid-svg-QFCHsDDXWj0FwJnU span{fill:#333;color:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU .node rect,#mermaid-svg-QFCHsDDXWj0FwJnU .node circle,#mermaid-svg-QFCHsDDXWj0FwJnU .node ellipse,#mermaid-svg-QFCHsDDXWj0FwJnU .node polygon,#mermaid-svg-QFCHsDDXWj0FwJnU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-QFCHsDDXWj0FwJnU .rough-node .label text,#mermaid-svg-QFCHsDDXWj0FwJnU .node .label text,#mermaid-svg-QFCHsDDXWj0FwJnU .image-shape .label,#mermaid-svg-QFCHsDDXWj0FwJnU .icon-shape .label{text-anchor:middle;}#mermaid-svg-QFCHsDDXWj0FwJnU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-QFCHsDDXWj0FwJnU .rough-node .label,#mermaid-svg-QFCHsDDXWj0FwJnU .node .label,#mermaid-svg-QFCHsDDXWj0FwJnU .image-shape .label,#mermaid-svg-QFCHsDDXWj0FwJnU .icon-shape .label{text-align:center;}#mermaid-svg-QFCHsDDXWj0FwJnU .node.clickable{cursor:pointer;}#mermaid-svg-QFCHsDDXWj0FwJnU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-QFCHsDDXWj0FwJnU .arrowheadPath{fill:#333333;}#mermaid-svg-QFCHsDDXWj0FwJnU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-QFCHsDDXWj0FwJnU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-QFCHsDDXWj0FwJnU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-QFCHsDDXWj0FwJnU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-QFCHsDDXWj0FwJnU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-QFCHsDDXWj0FwJnU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-QFCHsDDXWj0FwJnU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-QFCHsDDXWj0FwJnU .cluster text{fill:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU .cluster span{color:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-QFCHsDDXWj0FwJnU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-QFCHsDDXWj0FwJnU rect.text{fill:none;stroke-width:0;}#mermaid-svg-QFCHsDDXWj0FwJnU .icon-shape,#mermaid-svg-QFCHsDDXWj0FwJnU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-QFCHsDDXWj0FwJnU .icon-shape p,#mermaid-svg-QFCHsDDXWj0FwJnU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-QFCHsDDXWj0FwJnU .icon-shape .label rect,#mermaid-svg-QFCHsDDXWj0FwJnU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-QFCHsDDXWj0FwJnU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-QFCHsDDXWj0FwJnU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-QFCHsDDXWj0FwJnU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 测站 ZTD 与位置高度
垂向建模方式
气象剖面或垂向经验参数
单层高程归算
分层 A: 分段高程归算
分层 B: 多高度累计 ZTD
在参考高度拟合一张 SH/SCH 场
各高度面分别拟合场
恢复用户高度的 ZTD
高度插值获得用户 ZTD

6. 参数怎么拟合?如何避免病态和过拟合?

在一个历元,将 M M M 个测站的高程归算结果组成 y \mathbf y y,选取 K K K 个基函数:

y 1 ⋮ y M ⏟ y = Y 1 ( p 1 ) ⋯ Y K ( p 1 ) ⋮ ⋱ ⋮ Y 1 ( p M ) ⋯ Y K ( p M ) ⏟ A a 1 ⋮ a K ⏟ x + ε . (21) \underbrace{\begin{bmatrix}y_1\\\vdots\\y_M\end{bmatrix}}{\mathbf y} = \underbrace{\begin{bmatrix} Y_1(\mathbf p_1)&\cdots&Y_K(\mathbf p_1)\\ \vdots&\ddots&\vdots\\ Y_1(\mathbf p_M)&\cdots&Y_K(\mathbf p_M) \end{bmatrix}}{\mathbf A} \underbrace{\begin{bmatrix}a_1\\\vdots\\a_K\end{bmatrix}}_{\mathbf x} +\boldsymbol\varepsilon. \tag{21} y y1⋮yM =A Y1(p1)⋮Y1(pM)⋯⋱⋯YK(p1)⋮YK(pM) x a1⋮aK +ε.(21)

用加权、必要时带正则化的最小二乘估计:

x ^ = arg ⁡ min ⁡ x ∥ W 1 / 2 ( A x − y ) ∥ 2 2 + μ ∥ L x ∥ 2 2 . (22) \widehat{\mathbf x}= \underset{\mathbf x}{\arg\min}\left \\bigl\\\|\\mathbf W\^{1/2}(\\mathbf A\\mathbf x-\\mathbf y)\\bigr\\\|_2\^2 +\\mu\\bigl\\\|\\mathbf L\\mathbf x\\bigr\\\|_2\^2\\right. \tag{22} x =xargmin W1/2(Ax−y) 22+μ Lx 22.(22)

变量: M M M 为建模测站数; K K K 为系数数目; y i y_i yi 为第 i i i 站在同一参考高程的 ZTD 或选定残差(m); p i \mathbf p_i pi 为其水平坐标; A \mathbf A A 为 M × K M\times K M×K 设计矩阵; x = ( a 1 , ... , a K ) T \mathbf x=(a_1,\ldots,a_K)^\mathsf T x=(a1,...,aK)T 为待估系数(m); ε \boldsymbol\varepsilon ε 为误差(m); x ^ \widehat{\mathbf x} x 为估计值; W \mathbf W W 为权矩阵; W 1 / 2 \mathbf W^{1/2} W1/2 为满足 ( W 1 / 2 ) T W 1 / 2 = W (\mathbf W^{1/2})^\mathsf T\mathbf W^{1/2}=\mathbf W (W1/2)TW1/2=W 的矩阵因子; μ ≥ 0 \mu\ge0 μ≥0 为正则化强度; L \mathbf L L 为约束矩阵; ∥ ⋅ ∥ 2 \|\cdot\|_2 ∥⋅∥2 为欧氏范数。

工程上重点检查:

  1. 测站足够不等于可解。 M ≥ K M\ge K M≥K 只是必要的数量条件之一,仍需检查矩阵秩、条件数、站网分布和边缘振荡。
  2. 优先 QR/SVD。 不显式求 (\\mathbf A\^\\mathsf T\\mathbf W\\mathbf A)\^{-1};高阶模型可用交叉验证选择截断阶次与正则化。
  3. 权阵要考虑归算误差。 高程归算的系统误差会传入 y \mathbf y y,不能只使用测站原始 ZTD 的随机精度。
  4. SCH 不能直接照搬 SH 的正交求系数。 混合两类球冠边界基函数后须实际建矩阵并求解 2。

6.1 气象背景 + 球谐残差:广域业务的实用选择

也可不直接拟合全部 ZTD,而先由气象模式提供背景,再拟合差值:

T p r e d ( p , h , t ) = T b g ( p , h , t ) + Δ T m o d e l ( p , h , t ) . (23) T^{\mathrm{pred}}(\mathbf p,h,t)=T^{\mathrm{bg}}(\mathbf p,h,t) +\Delta T^{\mathrm{model}}(\mathbf p,h,t). \tag{23} Tpred(p,h,t)=Tbg(p,h,t)+ΔTmodel(p,h,t).(23)

变量: T p r e d T^{\mathrm{pred}} Tpred 为用户最终预测 ZTD(m); T b g T^{\mathrm{bg}} Tbg 为相同位置、高程、历元的背景 ZTD(m); Δ T m o d e l \Delta T^{\mathrm{model}} ΔTmodel 为利用测站"观测减背景"拟合的残差(m); p , h , t \mathbf p,h,t p,h,t 分别表示位置、高程和历元。

关键限制:残差可以是负数,不能把式(11)的 ln ⁡ T \ln T lnT 或单层指数规律无条件直接用于残差 。若残差只拟合参考高度面,则须单独指定残差如何随高度传播(例如经验缩放或分层拟合),并进行外符合验证。Cao 等(2021)使用 SCH 主要描述气象预报的系统偏差参数场,不是简单以 SCH 代替全部原始 ZTD 5。

对于可靠的测站气压,可先计算 ZHD,再拟合 ZWD 或其残差。ZHD 与 ZWD 的垂直衰减规律并不相同,不能无依据地共享同一个递减率。VMF3/GPT3 可提供气象及映射函数先验,但映射函数模型不等于 ZTD 水平拟合模型 6。

7. "广域"具体有多大?

没有统一的"超过多少公里才算广域"的行业硬阈值。 实际含义是:区域跨度较大、存在明显气象及地形差异,单个城市级低阶局部模型难以充分表达。下面为便于选型的工程经验分级,不是标准定义。

大致最大水平跨度 常见场景 建模建议
数十至约 100 km 城市 CORS 优先多项式、残差格网;SCH 通常非首选
约 100--500 km 地市群、省域的一部分 比较多项式、格网与低阶 SCH
约 500--2000 km 大省域、跨省 重点检查 SCH、分区与高程归算
约 2000--5000 km 全国、大陆区域 结合 SCH/SH、气象背景与分层模型
全球 全球统一模型 全球 SH、全球格网或 NWP

**不要混淆:**服务区最大跨度、球冠弧长半径、服务面积、测站平均间距、模型空间分辨率,这五者不是一回事。区域扩大也不等于模型能表达所有小尺度水汽变化。

对 GNSS ZTD 实际工程,可先按如下顺序评估:城市/济南周边已有十系数多项式与 a 0 + a_0+ a0+残差格网可作为基线;山东省域可加入低阶 SCH 对照;中国尺度更需要处理高海拔与平原的高差,并结合气象背景、分区或球冠谐 3--5。研究使用过全国球冠谐,不意味着其效果可直接移植为某项目的精度指标。

8. 实时广域对流层建模:服务端到 PPP 用户端

#mermaid-svg-BkrJNTEIs8369rz5{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BkrJNTEIs8369rz5 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BkrJNTEIs8369rz5 .error-icon{fill:#552222;}#mermaid-svg-BkrJNTEIs8369rz5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BkrJNTEIs8369rz5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BkrJNTEIs8369rz5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BkrJNTEIs8369rz5 .marker.cross{stroke:#333333;}#mermaid-svg-BkrJNTEIs8369rz5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BkrJNTEIs8369rz5 p{margin:0;}#mermaid-svg-BkrJNTEIs8369rz5 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BkrJNTEIs8369rz5 .cluster-label text{fill:#333;}#mermaid-svg-BkrJNTEIs8369rz5 .cluster-label span{color:#333;}#mermaid-svg-BkrJNTEIs8369rz5 .cluster-label span p{background-color:transparent;}#mermaid-svg-BkrJNTEIs8369rz5 .label text,#mermaid-svg-BkrJNTEIs8369rz5 span{fill:#333;color:#333;}#mermaid-svg-BkrJNTEIs8369rz5 .node rect,#mermaid-svg-BkrJNTEIs8369rz5 .node circle,#mermaid-svg-BkrJNTEIs8369rz5 .node ellipse,#mermaid-svg-BkrJNTEIs8369rz5 .node polygon,#mermaid-svg-BkrJNTEIs8369rz5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BkrJNTEIs8369rz5 .rough-node .label text,#mermaid-svg-BkrJNTEIs8369rz5 .node .label text,#mermaid-svg-BkrJNTEIs8369rz5 .image-shape .label,#mermaid-svg-BkrJNTEIs8369rz5 .icon-shape .label{text-anchor:middle;}#mermaid-svg-BkrJNTEIs8369rz5 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BkrJNTEIs8369rz5 .rough-node .label,#mermaid-svg-BkrJNTEIs8369rz5 .node .label,#mermaid-svg-BkrJNTEIs8369rz5 .image-shape .label,#mermaid-svg-BkrJNTEIs8369rz5 .icon-shape .label{text-align:center;}#mermaid-svg-BkrJNTEIs8369rz5 .node.clickable{cursor:pointer;}#mermaid-svg-BkrJNTEIs8369rz5 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BkrJNTEIs8369rz5 .arrowheadPath{fill:#333333;}#mermaid-svg-BkrJNTEIs8369rz5 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BkrJNTEIs8369rz5 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BkrJNTEIs8369rz5 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BkrJNTEIs8369rz5 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BkrJNTEIs8369rz5 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BkrJNTEIs8369rz5 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BkrJNTEIs8369rz5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BkrJNTEIs8369rz5 .cluster text{fill:#333;}#mermaid-svg-BkrJNTEIs8369rz5 .cluster span{color:#333;}#mermaid-svg-BkrJNTEIs8369rz5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BkrJNTEIs8369rz5 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BkrJNTEIs8369rz5 rect.text{fill:none;stroke-width:0;}#mermaid-svg-BkrJNTEIs8369rz5 .icon-shape,#mermaid-svg-BkrJNTEIs8369rz5 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BkrJNTEIs8369rz5 .icon-shape p,#mermaid-svg-BkrJNTEIs8369rz5 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BkrJNTEIs8369rz5 .icon-shape .label rect,#mermaid-svg-BkrJNTEIs8369rz5 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BkrJNTEIs8369rz5 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BkrJNTEIs8369rz5 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BkrJNTEIs8369rz5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 可用
不可用
GNSS 基准站估计 ZTD/ZWD
历元对齐与异常值质控
实时 NWP 或可信经验气象先验
背景 ZTD 与垂向递减参数
坐标和高程基准统一
高程归算或背景残差
选择 SH/SCH/格网基线并构造矩阵
加权拟合 交叉验证与质量门限
模型可用?
播发系数与全部模型元数据
降低阶次或回退基线模型
用户计算位置与高程处 ZTD 先验
PPP/PPP-AR 映射函数及剩余参数估计

服务端输入: 测站 ZTD 应与同一 GNSS 时间历元对齐;对流层状态应排查收敛、周跳、多路径、轨道钟差误差及不良模糊度解。测站"固定坐标 + PPP-AR"不保证其输出 ZTD 就是真值。

气象数据: ERA5/ERA5T 主要适合历史研究与建立统计先验;ERA5T 约滞后实时 5 天,不能直接当成当前 30 s 历元的实时气象数据。在线运行应采用可及时获得的预报产品或其他在线气象先验,并记录预报起报时刻和有效时次 8,9。

播发元数据: 必须明确定义历元和有效期、SH/SCH 类型、球冠中心与半张角、坐标与高程基准、勒让德函数归一化、截断索引、系数顺序和单位、参考高度、垂向参数,以及不可用时的回退方式。30 s 调度建议基于GNSS 观测历元,不是无校准的本机时钟。

用户端: 按一致的球面角向坐标重建参考高度场,处理用户高程;结合静力/湿延迟映射函数,并估计剩余 ZWD。模型过期、用户超出球冠或垂向模型适用高度时,不应静默外推。

9. 怎样验证模型确实提高精度?

对独立测试样本定义:

e i = T i m o d e l − T i r e f , B i a s = 1 Q ∑ i = 1 Q e i , R M S E = 1 Q ∑ i = 1 Q e i 2 . (24) e_i=T_i^{\mathrm{model}}-T_i^{\mathrm{ref}},\qquad \mathrm{Bias}=\frac1Q\sum_{i=1}^{Q}e_i,\qquad \mathrm{RMSE}=\sqrt{\frac1Q\sum_{i=1}^{Q}e_i^2}. \tag{24} ei=Timodel−Tiref,Bias=Q1i=1∑Qei,RMSE=Q1i=1∑Qei2 .(24)

变量: e i e_i ei 为第 i i i 个样本模型减参考 ZTD 的误差(m); T i m o d e l T_i^{\mathrm{model}} Timodel、 T i r e f T_i^{\mathrm{ref}} Tiref 分别为预测与独立参考 ZTD(m); Q Q Q 为测试样本数;Bias 为平均偏差(m);RMSE 为均方根误差(m)。参考站 ZTD 也有不确定度,应注明其生成方法。

建议同时报告误差 STD(说明分母约定)与 P 95 ( ∣ e ∣ ) P_{95}(|e|) P95(∣e∣)(绝对误差 95% 分位数)。ZTD 绝对误差 P95 不是水平定位 CEP95。

验证按三层展开:建模站内符合 → 整站留出空间外符合 → 跨日期时间外符合 。使用不同测站、不同天气和季节对比;按地形高差、站网密度与球冠边缘位置分组。基线与新模型必须使用相同历元、测站划分、参考值和误差口径。除了 ZTD 误差,还应比较 PPP/PPP-AR 收敛时间、定位 RMS/CEP95、CPU 耗时、带宽与播发延迟,不能仅凭内符合判断算法优劣。

10. 工程实现中的几个常见误区

容易混淆的说法 正确理解
"球冠谐就是把球谐经纬度缩放到中国" 严格 SCH 还需球冠坐标、特征度与边界条件
"球冠谐天然在中国更准" 必须通过相同数据条件下的独立验证确认
"分层就是把 ZTD 分成多层再相加" 各高度 ZTD 是向上积分的累计量,相邻累计值之差才是层延迟
"四层模型 = 四次 SCH 拟合" 四层高程递减 与多高度水平拟合是不同实现
"提高截断阶次一定更好" 容易病态、边缘振荡和空间外推失真
"残差可以和 ZTD 使用同一对数递减率" 残差可为负,不能直接取对数;需另定垂向模型
"GNSS ZTD 改正 = 斜路径大气延迟改正" 还需映射函数和必要的残余参数估计
"实时取 ERA5T 就是实时气象" ERA5T 为滞后数日的再分析初始版本

**可操作的选型顺序:**先固定真实可复现的十系数或 a 0 + a_0+ a0+格网基线;再对比统一高程归算(单层/分层 A);最后在相同垂向策略下比较多项式、SH、SCH 和背景残差拟合。只有独立空间外符合和用户 PPP 指标获得稳定收益,才增加模型复杂度。

11. 参考文献

文中以 序号 对应下列来源;论文提供方法示例,不表示本文对其工程效果作了跨数据集保证。

  1. Haines, G. V. (1985). Spherical cap harmonic analysis. Journal of Geophysical Research: Solid Earth , 90 (B3), 2583--2591. DOI: 10.1029/JB090iB03p02583。经典球冠谐、非整数特征度与边界条件。
  2. Korte, M., & Holme, R. (2003). Regularization of spherical cap harmonics. Geophysical Journal International , 153 (1), 253--262. DOI: 10.1046/j.1365-246X.2003.01898.x。球冠谐两类函数的非完全正交性与正则化。
  3. Qian, C., Liu, H., & He, C. (2014). The Research on the Regional Precise Troposphere Delay by using Spherical Cap Harmonic Analysis. Proceedings of ION GNSS+ 2014 , 51--59. ION 论文页。区域 GNSS ZTD 的 SCH 拟合案例。
  4. Zhang, S., Wang, X., Li, Z., et al. (2020). A New Four-Layer Inverse Scale Height Grid Model of China for Zenith Tropospheric Delay Correction. IEEE Access , 8 , 210171--210182. DOI: 10.1109/ACCESS.2020.3038678。单层与四层垂向递减、高程归算。
  5. Cao, L., Zhang, B., Li, J., Yao, Y., Liu, L., Ran, Q., & Xiong, Z. (2021). A Regional Model for Predicting Tropospheric Delay and Weighted Mean Temperature in China Based on GRAPES_MESO Forecasting Products. Remote Sensing , 13 (13), 2644. DOI: 10.3390/rs13132644。气象预报系统偏差参数的 SCH 空间拟合。
  6. Landskron, D., & Böhm, J. (2018). VMF3/GPT3: refined discrete and empirical troposphere mapping functions. Journal of Geodesy , 92 , 349--360. DOI: 10.1007/s00190-017-1066-2。GNSS 大气先验及映射函数。
  7. Ma, Y., Liu, H., Xu, G., & Lu, Z. (2021). Empirical Orthogonal Function Analysis and Modeling of Global Tropospheric Delay Spherical Harmonic Coefficients. Remote Sensing , 13 (21), 4385. DOI: 10.3390/rs13214385。全球 ZTD 球谐系数建模案例。
  8. ECMWF. ERA5T (ERA5 Initial Release Data). 数据说明。再分析数据及约 5 天延迟。
  9. ECMWF. Open data. 数据门户。可用于在线气象背景的预报产品信息;具体时效以选用产品为准。
  10. Zhang, J., Zuo, X., Guo, S., Xie, S., Yang, X., Li, Y., & Yue, X. (2024). A New Grid Zenith Tropospheric Delay Model Considering Time-Varying Vertical Adjustment and Diurnal Variation over China. Remote Sensing , 16 (11), 2023. DOI: 10.3390/rs16112023。中国区域高程变化与日变化建模案例。
  11. Petit, G., & Luzum, B. (eds.) (2010). IERS Conventions (2010) , Technical Note 36, Chapter 9: Models for atmospheric propagation delays. IERS 官方页面。ZHD/ZWD、映射函数及 GNSS 大气延迟模型。
相关推荐
jason成都2 天前
rtklib_java项目新增模块:rtklib-research与rtklib-stream功能详解
java·gnss·rtklib·rtklib_java
jason成都11 天前
RTKLIB Java版:从C到Java的精密定位引擎,SPP/RTK/PPP/PPP-AR/PPP-RTK全栈实现
java·gnss·rtklib
德思特11 天前
GNSS HIL测试如何从单点仿真走向生态联动?德思特与dSPACE、IPG、VTD、CANoe、aiSim联合方案全景解析
经验分享·gnss·智能驾驶·hil测试·gnss模拟器
jason成都2 个月前
rtklib_java 配套可视化工具 GNSS‑VisView|自研 Java 版 RTKLIB 配套调试方案
java·gnss·rtklib_java
怀民民民2 个月前
开篇:基于 Cortex-M7、OpenMV 与双频 GNSS 的智能派件 AGV 设计与实现
单片机·嵌入式硬件·gnss·openmv·智能车
爱刷碗的苏泓舒3 个月前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
海途信息3 个月前
基于GNSS多传感融合的深基坑自动化监测系统全套方案详解
gnss·基坑安全监测·物联网形变监测
爱刷碗的苏泓舒3 个月前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
海途信息3 个月前
多源数据融合视角下大坝自动化安全监测体系技术解析
高精度·gnss·大坝安全监测·水库预警