Technical note · Methods

GeoMotion: Decomposition, Averaging, Denoising and Mapping of EGMS Ground-Motion Data

Mathias Depelsmaeker — MADEP

8 October 2026

Abstract

The European Ground Motion Service (EGMS) distributes Sentinel-1 persistent-scatterer interferometry as line-of-sight (LOS) displacement time series per measurement point (Level 2B) and as gridded vertical and east–west components (Level 3). This note documents every quantitative step that the GeoMotion web application performs on these products. We derive the LOS observation model and show that the north–south component is unobservable because the blind direction of each acquisition geometry coincides with its flight direction, which lies within 11.4° of north for all tracks over Brussels. We then describe the per-epoch decomposition of an ascending and a descending series by Cramer's rule on a common six-day grid, referred to a robust local-linear level rather than to a single acquisition, uncertainty propagation, the averaging of multi-point selections under a root-mean-square rule that we prove to be an upper bound for arbitrarily correlated errors, Gaussian-weighted local-linear smoothing without trend bias at the series ends, removal of the annual cycle, and the construction of an animated displacement map from Level 3 data, including per-frame median removal of the regional signal and an optional, statistically gated gradient model h=−B∇U\vh = -B\nabla U that estimates the north component. At twelve sites, velocities from our Level 2B decomposition agree with EGMS Level 3 to 0.25 mm/yr RMS vertically (r=0.99r = 0.99) and 0.19 mm/yr east–west (r=0.88r = 0.88); because Level 3 is derived from the same Level 2B data, this is a consistency check rather than an independent validation. We conclude that the methods are suitable for screening relative ground motion, subject to the limitations stated explicitly.

Keywords: InSAR; EGMS; Sentinel-1; persistent scatterers; line-of-sight decomposition; error propagation; kernel smoothing; subsidence; ground motion

Contents
  1. 1Introduction
    1. 1.1Conventions and notation
  2. 2Data
    1. 2.1EGMS products
    2. 2.2Release and temporal sampling
    3. 2.3Tile decoding and coordinates
  3. 3Line-of-sight geometry
    1. 3.1The observation equation
    2. 3.2The LOS vector from incidence angle and heading
    3. 3.3Why the north–south component is not observed
  4. 4Decomposition at a single probe point
    1. 4.1Point selection
    2. 4.2Time alignment
    3. 4.3The two-by-two system and Cramer's rule
    4. 4.4Error propagation
    5. 4.5Velocities and totals
    6. 4.6Significance and presentation
  5. 5Averaging of multi-point selections
    1. 5.1Selection
    2. 5.2Averaging on a common grid
    3. 5.3Uncertainty of an average
  6. 6Accuracy bands in the time-series chart
  7. 7Temporal denoising
    1. 7.1Local-linear Gaussian smoothing on irregular sampling
    2. 7.2Frequency response
    3. 7.3Removal of the annual cycle
    4. 7.4Residual scatter
  8. 8Displacement map
    1. 8.1From polygon to grid
    2. 8.2The time cube
    3. 8.3Regional trend removal
    4. 8.4Temporal denoising of the cube
    5. 8.5Height map
    6. 8.6Measured east–west arrows
    7. 8.7Estimated two-dimensional arrows: the gradient model
    8. 8.8Playback
  9. 9Comparison with EGMS Level 3
  10. 10Limitations
    1. 10.1Unobservable north–south motion
    2. 10.2Point density and the nature of scatterers
    3. 10.3Relative nature of the measurements
    4. 10.4Phase unwrapping
    5. 10.5Temporal coverage
    6. 10.6Simplifications of the implementation
    7. 10.7A screening tool
  11. 11Conclusion
  12. References
  13. AParameters
  14. BImplementation map

1Introduction

Interferometric synthetic aperture radar (InSAR) measures the change in the radar path length between repeated satellite acquisitions and therefore one component of the three-dimensional ground displacement (Hanssen, 2001). Multi-temporal techniques restrict the analysis to scatterers whose phase remains stable over the whole observation period, which yields displacement time series with millimetre precision at the location of buildings, infrastructure and exposed rock (Ferretti et al., 2001). The European Ground Motion Service (EGMS) of the Copernicus Land Monitoring Service applies such processing to all Sentinel-1 acquisitions over Europe and publishes the results in harmonised products (Crosetto et al., 2020; Costantini et al., 2021).

GeoMotion is a web application that queries the public EGMS endpoints through a caching proxy and performs all analyses in the browser. It offers three tools: a single-point probe, which selects the nearest ascending and descending measurement points and decomposes their LOS series into east–west and vertical motion; a multi-point selection, which averages several points per orbit before the same decomposition; and a displacement map, which animates the vertical and east–west Level 3 components inside a user-drawn polygon. The purpose of this note is to state the mathematical model behind each of these computations in the form in which it is implemented, including constants, thresholds and fallbacks. Where the implementation simplifies, we say so, and we distinguish throughout between quantities that EGMS measures, quantities that GeoMotion derives from them by exact transformations, and quantities that rest on a model assumption.

The note is organised as follows. Section 2 describes the EGMS products and their sampling. Section 3 derives the LOS observation model and analyses the observability of the north component. Section 4 treats the decomposition at a single probe point, including time alignment, error propagation and the derived velocities. Section 5 covers multi-point averaging and its uncertainty, Section 6 the accuracy bands of the time-series chart and Section 7 temporal denoising. Section 8 describes the displacement map, including the gradient model for horizontal motion. Section 9 compares the decomposition with EGMS Level 3, Section 10 discusses limitations and Section 11 concludes. Appendix A lists all parameters and Appendix B maps the equations to the source modules.

1.1Conventions and notation

We express ground displacement in a local east–north–up frame as D=(E,N,U)⊤\vD = (E, N, U)\T, in millimetres, with EE positive eastward, NN positive northward and UU positive upward, so that subsidence corresponds to U<0U \lt 0. Subscripts a\mathrm a and d\mathrm d denote the ascending and the descending geometry. Time is measured in days, and one year is defined as 365.25365.25 days wherever a rate is expressed per year. A displacement time series is a sequence of pairs (tj,xj)(t_j, x_j); missing values are excluded from every sum, mean and fit. The symbols used throughout are collected in Table 1.

Table 1. Principal notation.

SymbolMeaningUnit
D=(E,N,U)⊤\vD = (E,N,U)\Tground displacement: east, north, upmm
ℓ^=(e,n,u)⊤\los = (e,n,u)\TLOS unit vector, pointing from the ground to the satellite–
θ, α\theta,\ \alphaincidence angle; heading (track angle), clockwise from north°
ddLOS displacement, positive towards the satellitemm
A\vA2×22\times 2 matrix of the east–vertical decomposition–
tk, Δtt_k,\ \Delta tcommon time grid; grid step (6 days)d
σa, σd\sigma\sa,\ \sigma\sdper-epoch LOS noise (EGMS rmse_ts)mm
σv,a, σv,d\sigma_{v,\mathrm a},\ \sigma_{v,\mathrm d}standard deviation of the LOS mean velocity (EGMS mean_velocity_std)mm/yr
vE, vUv_E,\ v_Ueast–west and vertical velocitymm/yr
mmnumber of points in an average–
σt\sigma_tscale of the Gaussian smoothing kerneld
H(f)H(f)amplitude response at frequency ff–
C[f,c]C[f,c]time cube: value of cell cc at frame ffmm
Dc(t;t0)D_c(t;t_0)displacement of cell cc at time tt relative to t0t_0mm
L(t)L(t)robust reference level: local-linear estimate with σref=60\sigma_{\mathrm{ref}} = 60 dmm
RRhalf-width of the colour range of the height mapmm
BBconstant of the gradient model h=−B∇U\vh = -B\nabla Um
rrPearson correlation coefficient–

2Data

2.1EGMS products

GeoMotion uses two of the EGMS product levels (Copernicus Land Monitoring Service, n.d.-b; Crosetto et al., 2020). The calibrated product (Level 2B) contains, for each Sentinel-1 track, the measurement points identified by persistent- and distributed-scatterer processing. Each point carries a LOS displacement time series in millimetres and metadata, of which the application uses the LOS unit vector (los_east, los_north, los_up), the mean LOS velocity (mean_velocity) and its standard deviation (mean_velocity_std), the root-mean-square deviation of the time series from the EGMS displacement model (rmse_ts) and the temporal coherence. Level 2B differs from the basic Level 2A product by a calibration against a GNSS-based velocity model, which ties the otherwise relative InSAR measurements to a common reference (Copernicus Land Monitoring Service, n.d.-b). A track is identified by its orbit direction and relative orbit number; for example, A21-088 is the ascending track with relative orbit 88.

The ortho product (Level 3) provides the vertical and the east–west displacement components on a regular 100 m grid in the ETRS89 Lambert azimuthal equal-area projection (EPSG:3035). EGMS derives it from the Level 2B data of all overlapping ascending and descending tracks; the north component is not resolved (Copernicus Land Monitoring Service, n.d.-a). Each grid cell carries a time series per component and the corresponding mean velocity.

2.2Release and temporal sampling

EGMS publishes a new release approximately once per year. The catalogue may therefore list several releases of the same track, and the application retains, for every track (identified by orbit and relative orbit number) and for every Level 3 component, the dataset whose period ends latest. At the time of writing, all 85 datasets belong to the 2020–2024 release, which covers January 2020 to December 2024, so every analysis in this note refers to that period.

The temporal sampling of Level 2B is irregular. Until December 2021 both Sentinel-1A and Sentinel-1B were operational and each track was imaged every 6 days; after the loss of Sentinel-1B the revisit interval became 12 days (Torres et al., 2012). A typical point of track A21-088 has 209 epochs, with intervals of 6 and 12 days and occasional 24-day gaps. Level 3, in contrast, is sampled on a regular 6-day lattice: in the current release every cell ends on 18 December 2024 and starts on 8, 14 or 20 January 2020, which gives 302, 301 or 300 epochs. This difference matters for the time alignment of Section 4.2 and for the time cube of Section 8.2.

2.3Tile decoding and coordinates

Point positions are obtained from the vector tiles that the official EGMS viewer uses. The tiles store Cartesian coordinates on a sphere of radius 128 in arbitrary units, as the sum p=c+v\vp = \mathbf c + \mathbf v of a tile centre c\mathbf c and a per-point offset v\mathbf v. With p=(x,y,z)⊤\vp = (x, y, z)\T, where yy points to the north pole and zz to the intersection of the equator with the prime meridian, longitude λ\lambda and latitude φ\varphi follow from

λ=atan2⁡(x, z),φ=arcsin⁡y∥p∥.\lambda = \atantwo(x,\, z), \qquad \varphi = \arcsin\frac{y}{\lVert\vp\rVert}.
(1)

We treat λ\lambda and φ\varphi as WGS 84 coordinates. For display, the application converts them to Web Mercator (EPSG:3857) with

X=RM λ,Y=RMln⁡tan⁡ ⁣(π4+φ2),RM=6 378 137 m,X = R_M\,\lambda, \qquad Y = R_M \ln\tan\!\left(\frac{\pi}{4} + \frac{\varphi}{2}\right), \qquad R_M = 6\,378\,137\ \mathrm{m},
(2)

and it measures distances between points with the haversine formula on a sphere of radius R=6 371 008.8R = 6\,371\,008.8 m. Since the Mercator projection is conformal with scale factor sec⁡φ\sec\varphi, map lengths at the latitude of Brussels (φ≈51∘\varphi \approx 51^\circ) exceed ground lengths by a factor of about 1.59; Section 8 accounts for this where it matters.

3Line-of-sight geometry

3.1The observation equation

A radar interferometer is sensitive only to the change in distance between the satellite and the scatterer. For displacements that are small compared with the satellite range, this change equals the projection of the ground displacement onto the line of sight. Let ℓ^=(e,n,u)⊤\los = (e, n, u)\T denote the unit vector pointing from the ground towards the satellite. The LOS displacement is then

d=ℓ^⋅D=e E+n N+u U,d = \los\cdot\vD = e\,E + n\,N + u\,U,
(3)

so that d>0d \gt 0 indicates motion towards the satellite, that is, a shortening of the range. EGMS publishes the three components of ℓ^\los per measurement point, rounded to three decimals; the application renormalises them as ℓ^←ℓ^/∥ℓ^∥\los \leftarrow \los/\lVert\los\rVert before use.

3.2The LOS vector from incidence angle and heading

Sentinel-1 observes to the right of its flight direction. If α\alpha denotes the heading, measured clockwise from north, and θ\theta the incidence angle at the target, the look direction has azimuth α+90∘\alpha + 90^\circ, and the horizontal projection of the ground-to-satellite vector points towards azimuth α−90∘\alpha - 90^\circ. A horizontal unit vector at azimuth β\beta has east and north components (sin⁡β,cos⁡β)(\sin\beta, \cos\beta); substituting β=α−90∘\beta = \alpha - 90^\circ and scaling by sin⁡θ\sin\theta gives

ℓ^=(−sin⁡θcos⁡αsin⁡θsin⁡αcos⁡θ).\los = \begin{pmatrix} -\sin\theta\cos\alpha \\ \sin\theta\sin\alpha \\ \cos\theta \end{pmatrix}.
(4)

GeoMotion does not evaluate (4), because the vectors are part of the metadata, but the relation reproduces the published vectors to within the rounding of 0.001 for all tracks we have examined. Table 2 lists the geometry of the four tracks that cover the centre of Brussels, and Figure 1 illustrates the configuration.

Table 2. Acquisition geometry of the EGMS Level 2B points nearest to the centre of Brussels (4.3517° E, 50.8466° N), as published in the metadata.

TrackOrbitθ\theta (°)α\alpha (°)eennuu
A21-088ascending31.21348.59−0.508−0.1030.855
A20-161ascending40.30350.19−0.637−0.1100.763
D18-110descending35.21190.730.567−0.1070.817
D19-037descending43.63189.140.681−0.1100.724
Plan view of ascending and descending Sentinel-1 passes with headings and look directions(a) Plan viewNαa = 350.2°ascendingαd = 190.7°descendingPlook direction = heading + 90° (right-looking)East–up section showing incidence angles and the east and up components of the LOS unit vectors(b) East–up sectionASCDESCθaθdℓaℓdua = 0.76ud = 0.82ea = −0.64ed = +0.57WE
Figure 1. Acquisition geometry of the ascending track A20-161 and the descending track D18-110 at Brussels. (a) Plan view: both passes look to the right of the flight direction, so the ascending pass (αa=350.2∘\alpha\sa = 350.2^\circ) observes the target PP from the west and the descending pass (αd=190.7∘\alpha\sd = 190.7^\circ) from the east. (b) Section in the east–up plane: the LOS unit vectors make the incidence angles θa=40.3∘\theta\sa = 40.3^\circ and θd=35.2∘\theta\sd = 35.2^\circ with the vertical; their east components have opposite signs and their up components are similar. The north components (n≈−0.11n \approx -0.11) are perpendicular to the drawing plane.

3.3Why the north–south component is not observed

The sensitivity of a LOS measurement to horizontal motion depends on the direction of that motion. For a horizontal unit displacement at azimuth β\beta, h^(β)=(sin⁡β,cos⁡β,0)⊤\hat{\vh}(\beta) = (\sin\beta, \cos\beta, 0)\T, equations (3) and (4) give

s(β)=ℓ^⋅h^(β)=esin⁡β+ncos⁡β=sin⁡θ sin⁡(α−β).s(\beta) = \los\cdot\hat{\vh}(\beta) = e\sin\beta + n\cos\beta = \sin\theta\,\sin(\alpha - \beta).
(5)

The sensitivity vanishes for β=α\beta = \alpha and β=α+180∘\beta = \alpha + 180^\circ: a radar acquisition in zero-Doppler geometry is blind to motion parallel to the flight direction (Hanssen, 2001). Sentinel-1 flies a near-polar, sun-synchronous orbit with an inclination of 98.18° (Torres et al., 2012), and at the latitude of Belgium its heading deviates from the meridian by only about 10°. For the four tracks of Table 2, the blind directions lie between 11.4° west and 10.7° east of north (Figure 2). Combining an ascending and a descending track does not remove the blindness, because their blind directions differ by only about 20°. The same fact explains the small north components of the LOS vectors: by (4), ∣n∣=sin⁡θ ∣sin⁡α∣≤0.11|n| = \sin\theta\,|\sin\alpha| \le 0.11 for all four tracks.

Plan view of the horizontal LOS components of four Sentinel-1 tracks and their blind directions near north–southEN|ℓ| = 1blind (along-track)directions: 11.4° Wto 10.7° E of northA21-088A20-161D18-110D19-037horizontal LOS components (e, n): n = −0.103 … −0.110dashed: sensitivity |s(β)| to unit horizontal motion at azimuth β
Figure 2. Plan view of the horizontal LOS components (e,n)(e, n) of the four tracks over Brussels (solid arrows) and of the sensitivity ∣s(β)∣|s(\beta)| of (5) for A20-161 and D18-110 (dashed lobes). Each track is blind along its flight direction (thin lines); the shaded double wedge contains the blind directions of all four tracks and spans 22° around the north–south axis.

Remark 1 (Observability of the north component). One may attempt to estimate NN by solving (3) jointly for (E,N,U)(E, N, U) with all four tracks of Table 2. The 4×34 \times 3 design matrix whose rows are the four LOS vectors has singular values 1.598, 1.203 and 0.0176, hence a condition number of 91. For independent LOS errors of 1 mm, the least-squares standard deviations are σE=0.89\sigma_E = 0.89, σN=56\sigma_N = 56 and σU=7.6\sigma_U = 7.6 mm; an unknown north component thus also degrades the vertical estimate by an order of magnitude. With one ascending and one descending track, the 2×32 \times 3 system has a null space spanned by (−0.01,0.99,0.14)⊤(-0.01, 0.99, 0.14)\T (A20-161 and D18-110): a combination of northward and slight upward motion that neither geometry can see. These figures agree with the general analysis of Wright et al. (2004) and with the multi-geometry study of Fuhrmann and Garthwaite (2019).

We therefore adopt the following assumption, which is also made in the EGMS Level 3 product (Copernicus Land Monitoring Service, n.d.-a).

Assumption 1 (Negligible north–south motion). The north component NN is neglected in (3), so that d≈e E+u Ud \approx e\,E + u\,U.

If the assumption is violated, the estimates absorb the neglected term. Writing the decomposition of Section 4.3 as Ax=b\vA\vx = \vb with x=(E,U)⊤\vx = (E, U)\T, a true north displacement NN adds N(na,nd)⊤N(n\sa, n\sd)\T to b\vb, and the estimate becomes

x~=x+N A−1(nand).\tilde{\vx} = \vx + N\,\vA^{-1}\begin{pmatrix} n\sa \\ n\sd \end{pmatrix}.
(6)

For the pair A20-161/D18-110, A−1(na,nd)⊤=(0.009,−0.137)⊤\vA^{-1}(n\sa, n\sd)\T = (0.009, -0.137)\T: one millimetre of northward motion appears as 0.14 mm of apparent subsidence and 0.01 mm of eastward motion. Because na≈ndn\sa \approx n\sd, the neglected term acts as a common-mode LOS bias and leaks almost entirely into the vertical component.

4Decomposition at a single probe point

The probe tool converts one ascending and one descending LOS time series into east–west and vertical time series and velocities. The procedure consists of point selection (Section 4.1), alignment of the two series in time (Section 4.2), the solution of a 2×22\times2 system per epoch (Section 4.3), error propagation (Section 4.4), the estimation of velocities and totals (Section 4.5) and the presentation of the result (Section 4.6).

4.1Point selection

Given a probe location (λ0,φ0)(\lambda_0, \varphi_0), the application first identifies candidate tracks whose coverage spheres contain the location; this test is coarse and typically returns more than ten tracks per orbit, most of them without points at the location. For each orbit separately and for each search radius rmax⁡∈{100,250,500}r_{\max} \in \{100, 250, 500\} m in turn, it loads all points of all candidate tracks inside the bounding box of half-width rmax⁡r_{\max} and ranks them with the local equirectangular metric

qi2=((λi−λ0)cos⁡φ0)2+(φi−φ0)2.q_i^2 = \bigl((\lambda_i - \lambda_0)\cos\varphi_0\bigr)^2 + (\varphi_i - \varphi_0)^2.
(7)

The best-ranked point of each track is accepted if its haversine distance does not exceed rmax⁡r_{\max}; the nearest accepted point over all tracks of the orbit is selected, and the search stops at the first radius that yields a point. The ascending and the descending point are thus selected independently. They are, in general, different scatterers, possibly on different structures, up to 500 m apart; the reported distances allow the user to judge the following assumption.

Assumption 2 (Spatial homogeneity). The ascending and the descending point experience the same displacement D(t)\vD(t).

4.2Time alignment

The two series are not acquired on the same days. At Brussels, for instance, the descending track D18-110 is imaged three days before the ascending track A20-161 (Figure 3). Instead of pairing nearest dates, the application interpolates both series onto a common regular grid over their overlapping period,

tk=ts+k Δt,k=0,…,K−1,Δt=6 d,ts=max⁡(t1a,t1d),tK−1≤min⁡(tlasta,tlastd),\begin{gathered} t_k = t_s + k\,\Delta t, \quad k = 0, \dots, K-1, \qquad \Delta t = 6\ \mathrm{d}, \\ t_s = \max\bigl(t^{\mathrm a}_{1}, t^{\mathrm d}_{1}\bigr), \qquad t_{K-1} \le \min\bigl(t^{\mathrm a}_{\mathrm{last}}, t^{\mathrm d}_{\mathrm{last}}\bigr), \end{gathered}
(8)

where t1at^{\mathrm a}_{1} and tlastat^{\mathrm a}_{\mathrm{last}} are the first and last epochs of the ascending series with a finite value, and likewise for the descending series. Each series is interpolated linearly between the bracketing acquisitions tj≤tk≤tj+1t_j \le t_k \le t_{j+1},

d~(tk)=dj+tk−tjtj+1−tj (dj+1−dj),\tilde d(t_k) = d_j + \frac{t_k - t_j}{t_{j+1} - t_j}\,\bigl(d_{j+1} - d_j\bigr),
(9)

without extrapolation. Each series is then referred to a robust estimate of its level at the first grid epoch rather than to the single, noisy acquisition at that epoch,

dˉ(tk)=d~(tk)−L(t0),L(t0)=x^LL(t0; σref=60 d),\bar d(t_k) = \tilde d(t_k) - L(t_0), \qquad L(t_0) = \hat x_{\mathrm{LL}}(t_0;\ \sigma_{\mathrm{ref}} = 60\ \mathrm d),
(10)

where x^LL(t;σ)\hat x_{\mathrm{LL}}(t;\sigma) is the Gaussian-weighted local-linear estimate of (32) (Section 7.1), evaluated on the original acquisitions of the series with a kernel scale σref\sigma_{\mathrm{ref}}. It is the intercept at t0t_0 of a straight line fitted to the acquisitions within 3σref=1803\sigma_{\mathrm{ref}} = 180 days, each weighted by its Gaussian distance from t0t_0.

Because all acquisitions of a track fall on a 6-day lattice, the grid (8) coincides with the acquisitions of the later-starting series as long as the 6-day revisit lasts, whereas the other series is always interpolated (at mid-interval when the offset is three days). After December 2021 every second grid epoch is interpolated for both series. Interpolation at mid-interval averages two acquisitions, so for independent errors of variance σ2\sigma^2 the interpolated value has variance σ2/2\sigma^2/2, and consecutive grid values become correlated, which the uncertainty of the velocities in Section 4.4 takes into account.

Acquisition dates of an ascending and a descending track around the end of Sentinel-1B operations and the common six-day grid6-day revisit (Sentinel-1A + 1B)12-day revisit (Sentinel-1A only)ASC A20-161DESC D18-110grid t(Δt = 6 d)1 Dec 20211 Jan 20221 Feb 2022acquisitionlinearly interpolated onto the grid
Figure 3. Acquisition epochs of A20-161 and D18-110 around the end of Sentinel-1B operations and the common grid (8), which starts on the first ascending epoch (12 January 2020). Grid epochs that coincide with an acquisition use it directly; all others are interpolated linearly by (9) (open circles). After December 2021 the 12-day revisit leaves every second grid epoch without an acquisition in either series.

Remark 2 (Choice of the reference level). A reference to a single epoch, d~(t0)\tilde d(t_0), carries the full noise of that acquisition, of the order of rmse_ts, that is 2–4 mm for typical Level 2B points, and shifts the entire referenced series by that amount. Of the robust alternatives, we prefer the local-linear level to the mean of the acquisitions in the first NN days, which is biased by vN/2v N/2 for a series with velocity vv, and to the intercept of a linear trend fitted to the whole series, which depends on the motion years later. The local-linear level is exactly unbiased for locally linear motion, also at the first epoch where its support is one-sided, and depends only on the first six months. For independent noise of standard deviation σ\sigma and 6-day sampling, its standard deviation is 0.41 σ0.41\,\sigma at the first epoch (one-sided support) and 0.17 σ0.17\,\sigma in the interior, against σ\sigma for a single acquisition. Because the reference is a constant per series, velocities do not depend on it. The same reference is used for the series in the chart (Section 6), for the averaged series (Section 5) and, evaluated on the time cube, for the displacement map (Section 8.2).

4.3The two-by-two system and Cramer's rule

Under Assumption 1, equation (3) written for both geometries at grid epoch tkt_k gives the linear system

(eauaedud)⏟A(EkUk)=(dˉa(tk)dˉd(tk)),\underbrace{\begin{pmatrix} e\sa & u\sa \\ e\sd & u\sd \end{pmatrix}}_{\vA} \begin{pmatrix} E_k \\ U_k \end{pmatrix} = \begin{pmatrix} \bar d\sa(t_k) \\ \bar d\sd(t_k) \end{pmatrix},
(11)

with determinant

det⁡A=ea ud−ua ed.\det\vA = e\sa\,u\sd - u\sa\,e\sd.
(12)

Cramer's rule yields the east–west and vertical displacement at every grid epoch at which both referenced series are defined,

Ek=dˉa(tk) ud−ua dˉd(tk)det⁡A,Uk=ea dˉd(tk)−dˉa(tk) eddet⁡A.E_k = \frac{\bar d\sa(t_k)\,u\sd - u\sa\,\bar d\sd(t_k)}{\det\vA}, \qquad U_k = \frac{e\sa\,\bar d\sd(t_k) - \bar d\sa(t_k)\,e\sd}{\det\vA}.
(13)

The application refuses the decomposition if the overlapping period contains fewer than two grid epochs or if the geometry is too poorly conditioned, as quantified below in (16). Because both series are referred to robust levels rather than to their values at t0t_0, E0E_0 and U0U_0 are small but in general not exactly zero.

The determinant has a simple geometric meaning. Let pa=(ea,ua)⊤\vp\sa = (e\sa, u\sa)\T and pd=(ed,ud)⊤\vp\sd = (e\sd, u\sd)\T be the projections of the two LOS vectors onto the east–up plane, and let γ\gamma be the angle between them. Then

det⁡A=pa×pd=−∥pa∥ ∥pd∥sin⁡γ,\det\vA = \vp\sa \times \vp\sd = -\lVert\vp\sa\rVert\,\lVert\vp\sd\rVert \sin\gamma,
(14)

the signed area of the parallelogram spanned by pa\vp\sa and pd\vp\sd (negative because pd\vp\sd lies clockwise of pa\vp\sa). Each row of (11) confines (Ek,Uk)(E_k, U_k) to a line perpendicular to the corresponding p\vp; the solution is the intersection of the two lines, and ∣det⁡A∣|\det\vA| measures how transversally they intersect (Figure 4). Substituting (4) with cos⁡αa>0\cos\alpha\sa \gt 0 and cos⁡αd<0\cos\alpha\sd \lt 0 gives

det⁡A=−sin⁡θacos⁡θd ∣cos⁡αa∣−cos⁡θasin⁡θd ∣cos⁡αd∣≈−sin⁡(θa+θd),\det\vA = -\sin\theta\sa\cos\theta\sd\,|\cos\alpha\sa| - \cos\theta\sa\sin\theta\sd\,|\cos\alpha\sd| \approx -\sin(\theta\sa + \theta\sd),
(15)

where the approximation holds because ∣cos⁡α∣≈0.98|\cos\alpha| \approx 0.98 for both orbits. For A20-161/D18-110, θa+θd=75.5∘\theta\sa + \theta\sd = 75.5^\circ and det⁡A=−0.953\det\vA = -0.953. Over Belgium the incidence angles range from about 30° to 45°, so ∣det⁡A∣|\det\vA| lies between about 0.85 and 1.0 for every opposite-orbit pair.

A threshold on ∣det⁡A∣|\det\vA| alone does not separate good from poor geometries, because it also depends on the lengths of pa\vp\sa and pd\vp\sd: two ascending tracks with different incidence angles (A21-088 and A20-161) give ∣det⁡A∣=0.16|\det\vA| = 0.16 although their projected vectors are only 9.1° apart. The application therefore tests the angle itself and requires

sin⁡γ=∣det⁡A∣∥pa∥ ∥pd∥≥sin⁡30∘⟺κ(A~)=1+∣cos⁡γ∣1−∣cos⁡γ∣≤3.73,\sin\gamma = \frac{|\det\vA|}{\lVert\vp\sa\rVert\,\lVert\vp\sd\rVert} \ge \sin 30^\circ \quad\Longleftrightarrow\quad \kappa(\tilde\vA) = \sqrt{\frac{1 + |\cos\gamma|}{1 - |\cos\gamma|}} \le 3.73,
(16)

where κ(A~)\kappa(\tilde\vA) is the condition number of A\vA with its rows normalised to unit length. Opposite-orbit pairs over Belgium have γ\gamma between about 60° and 90° and pass; any pair of the same orbit has γ<20∘\gamma \lt 20^\circ and is rejected.

Geometric solution of the two-by-two decomposition in the east–up planeE (mm)U (mm)x = (E, U)papdγarea |det A|pa · x = dapd · x = ddA20-161 / D18-110 at Brussels: det A = −0.95, γ = 74.6°; strips ±σ, σ = 0.45 mm
Figure 4. Geometric solution of (11) in the east–up plane for A20-161 and D18-110, drawn for a displacement (E,U)=(1.5,−3.0)(E, U) = (1.5, -3.0) mm. Each LOS measurement confines the solution to a line perpendicular to the projected LOS vector p\vp; the shaded strips are ±σ\pm\sigma wide in LOS (σ=0.45\sigma = 0.45 mm). Their intersection is the image of the ±σ\pm\sigma square under A−1\vA^{-1}; the dashed curve is the corresponding 1σ1\sigma ellipse of (17). The parallelogram spanned by pa\vp\sa and pd\vp\sd has area ∣det⁡A∣|\det\vA|.

4.4Error propagation

We propagate the published uncertainties to first order under the following assumption.

Assumption 3 (Independent geometries). The errors of dˉa(tk)\bar d\sa(t_k) and dˉd(tk)\bar d\sd(t_k) are independent, have zero mean and have standard deviations σa\sigma\sa and σd\sigma\sd equal to the published rmse_ts of the two points.

The solution xk=A−1bk\vx_k = \vA^{-1}\vb_k is linear in the observations, so its covariance matrix is

Σx=A−1diag⁡(σa2,σd2) A−⊤,A−1=1det⁡A(ud−ua−edea).\vSigma_{\vx} = \vA^{-1}\diag\bigl(\sigma\sa^2, \sigma\sd^2\bigr)\,\vA^{-\top}, \qquad \vA^{-1} = \frac{1}{\det\vA}\begin{pmatrix} u\sd & -u\sa \\ -e\sd & e\sa \end{pmatrix}.
(17)

Evaluating the diagonal of (17) gives the standard deviations used by the application,

σE2=ud2 σa2+ua2 σd2(det⁡A)2,σU2=ed2 σa2+ea2 σd2(det⁡A)2,\sigma_E^2 = \frac{u\sd^2\,\sigma\sa^2 + u\sa^2\,\sigma\sd^2}{(\det\vA)^2}, \qquad \sigma_U^2 = \frac{e\sd^2\,\sigma\sa^2 + e\sa^2\,\sigma\sd^2}{(\det\vA)^2},
(18)

and the off-diagonal element, which the application does not use, is

σEU=−ed ud σa2+ea ua σd2(det⁡A)2.\sigma_{EU} = -\frac{e\sd\,u\sd\,\sigma\sa^2 + e\sa\,u\sa\,\sigma\sd^2}{(\det\vA)^2}.
(19)

For A20-161/D18-110 with σa=σd=σ\sigma\sa = \sigma\sd = \sigma, equation (18) gives σE=1.17 σ\sigma_E = 1.17\,\sigma and σU=0.90 σ\sigma_U = 0.90\,\sigma, and (19) gives a correlation coefficient of only 0.02, because eae\sa and ede\sd have opposite signs. The vertical component is better determined than the east–west component: both geometries are steep (u≈0.76u \approx 0.76–0.820.82), so the vertical signal enters both observations with the same sign, whereas the east–west signal enters with opposite signs and smaller weights.

The application applies (18) twice: with the per-epoch noise rmse_ts, which yields the bands ±σE\pm\sigma_E and ±σU\pm\sigma_U of the decomposed series (Section 6), and with the velocity standard deviations mean_velocity_std, which yields the propagated velocity uncertainties σvEprop\sigma^{\mathrm{prop}}_{v_E} and σvUprop\sigma^{\mathrm{prop}}_{v_U}. The latter enter the velocity uncertainty of Section 4.5 together with an estimate from the decomposed series itself.

4.5Velocities and totals

Velocities are the ordinary least-squares slopes of the decomposed series against time in years. With τk=(tk−t0)/yr\tau_k = (t_k - t_0)/\yr and the means τˉ\bar\tau and xˉ\bar x taken over the epochs with a finite value,

v^=∑k(τk−τˉ)(xk−xˉ)∑k(τk−τˉ)2,\hat v = \frac{\sum_k (\tau_k - \bar\tau)(x_k - \bar x)}{\sum_k (\tau_k - \bar\tau)^2},
(20)

applied to xk=Ekx_k = E_k and xk=Ukx_k = U_k, which gives vEv_E and vUv_U.

The propagated uncertainty σvprop\sigma^{\mathrm{prop}}_v of Section 4.4 is optimistic in three respects: the published mean_velocity_std refers to the EGMS fit of the full LOS series rather than to the overlapping period, it is typically only 0.1–0.2 mm/yr, and it does not reflect the serial correlation that interpolation (Section 4.2) and residual seasonal motion introduce in the decomposed series. The application therefore also computes the standard error of (20) from the residuals εk\varepsilon_k of the fit, corrected for lag-one autocorrelation following Santer et al. (2000),

σvfit=∑kεk2(neff−2)∑k(τk−τˉ)2,neff=n 1−ρ11+ρ1,ρ1=clamp⁡ ⁣(∑kεkεk+1∑kεk2, 0, 0.99),\begin{gathered} \sigma^{\mathrm{fit}}_v = \sqrt{\frac{\sum_k \varepsilon_k^2}{(n_{\mathrm{eff}} - 2)\sum_k (\tau_k - \bar\tau)^2}}, \\ n_{\mathrm{eff}} = n\,\frac{1 - \rho_1}{1 + \rho_1}, \qquad \rho_1 = \clamp\!\left(\frac{\sum_k \varepsilon_k\varepsilon_{k+1}}{\sum_k \varepsilon_k^2},\ 0,\ 0.99\right), \end{gathered}
(21)

where nn is the number of grid epochs with a finite value and the lag-one sum runs over consecutive finite epochs. The reported uncertainty is the larger of the two estimates,

σv=max⁡(σvprop, σvfit).\sigma_v = \max\bigl(\sigma^{\mathrm{prop}}_v,\ \sigma^{\mathrm{fit}}_v\bigr).
(22)

The second term accounts for the actual scatter of the decomposed series, including seasonal motion, and for its serial correlation; the first protects against an optimistic fit of a short or smooth series. At the Brussels probe point of Figure 1 (A20-161 and D18-110), for example, the propagated values are 0.12 mm/yr east–west and 0.09 mm/yr vertically, whereas (21) gives 0.22 and 0.19 mm/yr, which are therefore reported. Errors that are common to a whole region, such as residual calibration or reference-frame errors, remain outside both estimates.

The totals shown in the interpretation are the displacements implied by the fitted trend over the length T=(tK−1−t0)/yrT = (t_{K-1} - t_0)/\yr of the grid,

ΔE=vE T,ΔU=vU T,σΔE=σvE T,σΔU=σvU T.\Delta E = v_E\,T, \qquad \Delta U = v_U\,T, \qquad \sigma_{\Delta E} = \sigma_{v_E}\,T, \qquad \sigma_{\Delta U} = \sigma_{v_U}\,T.
(23)

We prefer (23) to the difference between the last and the first decomposed epoch because that difference carries the full noise of two single epochs: by (18), with σ=3\sigma = 3 mm its standard deviation is about 2×1.17×3≈5\sqrt2 \times 1.17 \times 3 \approx 5 mm in the east–west component, whereas the trend uses all epochs. The price is that non-linear motion, such as acceleration or a seasonal cycle, is summarised by its best linear approximation over the period. Where a model-free total is needed, namely in the fallback of the significance test below, the application uses the difference of robust levels, ΔLx=Lx(tK−1)−Lx(t0)\Delta^{\mathrm{L}} x = L_x(t_{K-1}) - L_x(t_0), with LxL_x the local-linear level of the decomposed series as in (10).

4.6Significance and presentation

A decomposed component is flagged as not significant if

∣v^∣<2 σv,|\hat v| \lt 2\,\sigma_{v},
(24)

which corresponds to a two-sided test at approximately the 5 % level for Gaussian errors. If σv\sigma_v is unavailable, the test is applied to the robust total ΔLx\Delta^{\mathrm L}x with the per-epoch σE\sigma_E or σU\sigma_U. The same rule is used in the map callout, in the side panel and in the chart. The interpretation is drawn on the map as a plan-view arrow for the east–west component and a symbol for the vertical component. The arrow is drawn only if the east–west velocity is significant by (24) and ∣vE∣≥0.05|v_E| \ge 0.05 mm/yr, the displayed precision. It is then horizontal, points east if vE>0v_E \gt 0 and west otherwise, and has a screen length, independent of the zoom level, of

L=clamp⁡(30 ∣vE∣, 20, 160) px,vE in mm/yr.L = \clamp\bigl(30\,|v_E|,\ 20,\ 160\bigr)\ \text{px}, \qquad v_E \text{ in mm/yr}.
(25)

It is anchored at the probe location or, for a selection, at the mean longitude and latitude of the selected points. The vertical component is shown as a disc at the anchor, green with a central dot for uplift (vU≥0v_U \ge 0, motion out of the drawing plane) and red with a cross for subsidence, following the engineering convention for vectors normal to the plane. A callout states vU±σvUv_U \pm \sigma_{v_U} and vE±σvEv_E \pm \sigma_{v_E}, the totals (23), the period and the fact that the north–south component is not resolved. Otherwise no arrow is drawn: a neutral dashed ring around the vertical symbol and the callout note that no significant east–west motion was found, so that the minimum length of (25) never exaggerates a velocity that is indistinguishable from zero. The temporal coherence of each point is displayed with the heuristic classes good (≥0.8\ge 0.8), fair (0.6–0.8) and poor (<0.6\lt 0.6).

5Averaging of multi-point selections

A single scatterer may move for reasons unrelated to the ground, for example structural or thermal deformation of a building. The multi-point tool therefore averages several points of each orbit before the decomposition. This section describes the selection, the averaging and the uncertainty assigned to the average.

5.1Selection

A click adds the nearest ascending and the nearest descending point, found as in Section 4.1 with radii of 30 m and then 100 m. A box drawn on the map adds all points of both orbits inside it from every candidate track; if an orbit contributes more than 100 points, the application keeps 100 of them by uniform striding, that is, the points with indices ⌊i mbox/100⌋\lfloor i\,m_{\mathrm{box}}/100 \rfloor, i=0,…,99i = 0, \dots, 99, where mboxm_{\mathrm{box}} is the number of points of that orbit in the box. The points of one orbit may therefore belong to different tracks, for instance A21-088 and A20-161.

5.2Averaging on a common grid

Let the selection contain mm points of a given orbit. The application constructs the grid (8) over the period covered by all mm series, or over the union of their periods if they do not overlap. Each series is interpolated by (9) and referred to its own robust level at its first grid epoch by (10). At each epoch the average is taken over the set Mk\mathcal M_k of members with a finite value,

dˉo(tk)=1∣Mk∣∑i∈Mkdˉi(tk),\bar d_{o}(t_k) = \frac{1}{|\mathcal M_k|}\sum_{i\in\mathcal M_k} \bar d_i(t_k),
(26)

and the LOS vector of the average is the arithmetic mean of the member unit vectors,

ℓo=1m∑i=1mℓ^i,\boldsymbol\ell_{o} = \frac{1}{m}\sum_{i=1}^{m}\los_i,
(27)

which is deliberately not renormalised. If all members experience the same displacement D\vD, the average of their LOS displacements is 1m∑iℓ^i⋅D=ℓo⋅D\tfrac1m\sum_i\los_i\cdot\vD = \boldsymbol\ell_o\cdot\vD exactly, so that (3) holds for the averaged series with ℓo\boldsymbol\ell_o in place of ℓ^\los. Normalising ℓo\boldsymbol\ell_o would scale the decomposed displacement by ∥ℓo∥≤1\lVert\boldsymbol\ell_o\rVert \le 1, by 0.3 % for an equal mix of the two ascending tracks of Table 2, whose LOS vectors differ by 9.1°. The mean velocity and the coherence of the average are the arithmetic means of the member values. The averaged ascending and descending series then enter Section 4.3 unchanged.

5.3Uncertainty of an average

The application assigns to the average the root mean square of the member uncertainties,

σo=1m∑i=1mσi2,\sigma_{o} = \sqrt{\frac{1}{m}\sum_{i=1}^{m}\sigma_i^2},
(28)

both for the per-epoch noise and for the velocity uncertainty, and uses σo\sigma_o as σa\sigma\sa or σd\sigma\sd in (18). The familiar reduction by m\sqrt m is deliberately not applied. The following proposition shows that (28) is conservative.

Proposition 1 (The RMS rule is an upper bound). Let the member errors have standard deviations σi\sigma_i and arbitrary correlation coefficients ρij∈[−1,1]\rho_{ij} \in [-1, 1]. Then the standard deviation of their arithmetic mean satisfies σmean≤1m∑iσi≤σo\sigma_{\mathrm{mean}} \le \tfrac1m\sum_i\sigma_i \le \sigma_o.

Proof. The variance of the mean is

σmean2=1m2∑i=1m∑j=1mρij σiσj  ≤  1m2∑i=1m∑j=1mσiσj=(1m∑i=1mσi)2  ≤  1m∑i=1mσi2=σo2,\begin{aligned} \sigma_{\mathrm{mean}}^2 &= \frac{1}{m^2}\sum_{i=1}^{m}\sum_{j=1}^{m}\rho_{ij}\,\sigma_i\sigma_j \;\le\; \frac{1}{m^2}\sum_{i=1}^{m}\sum_{j=1}^{m}\sigma_i\sigma_j \\ &= \Bigl(\frac{1}{m}\sum_{i=1}^{m}\sigma_i\Bigr)^2 \;\le\; \frac{1}{m}\sum_{i=1}^{m}\sigma_i^2 = \sigma_o^2, \end{aligned}
(29)

where the first inequality uses ρij≤1\rho_{ij} \le 1 and the second is the Cauchy–Schwarz inequality. ∎

Equality holds when all members have the same σ\sigma and fully correlated errors. For independent errors, (29) reduces to σmean=σo/m\sigma_{\mathrm{mean}} = \sigma_o/\sqrt m. The choice of the bound is motivated by the error structure of InSAR. The dominant error sources between nearby scatterers, namely the atmospheric phase screen, which is correlated over kilometres, and errors of the reference and the calibration, are common to all points of a small selection (Hanssen, 2001). For mm members with equal σ\sigma and a common correlation ρ\rho,

σmean=σ ρ+1−ρm.\sigma_{\mathrm{mean}} = \sigma\,\sqrt{\rho + \frac{1-\rho}{m}}.
(30)

With m=15m = 15 and ρ=0.8\rho = 0.8, (30) gives 0.90 σ0.90\,\sigma, whereas the independent model would give σ/15=0.26 σ\sigma/\sqrt{15} = 0.26\,\sigma and overstate the precision by a factor of 3.5. The RMS rule slightly overestimates the uncertainty of the uncorrelated part of the error, which we consider the appropriate side on which to err.

6Accuracy bands in the time-series chart

The chart shows the LOS series of the selected points, referred to their robust levels at the first epoch as in (10), the averaged series of Section 5 and the decomposed series, each with a shaded band intended to convey the scatter of individual epochs. When denoising is off, the band is centred on a running mean over a 30-day window,

μk=1∣Wk∣∑j∈Wkxj,Wk={ j:∣tj−tk∣≤15 d, xj finite },\mu_k = \frac{1}{|W_k|}\sum_{j\in W_k} x_j, \qquad W_k = \{\, j : |t_j - t_k| \le 15\ \mathrm d,\ x_j \text{ finite} \,\},
(31)

and spans μk±σ\mu_k \pm \sigma, where σ\sigma is rmse_ts for a single point, σo\sigma_o of (28) for an average and σE\sigma_E or σU\sigma_U of (18) for the decomposed series. Because the window is defined in time, it contains five acquisitions at 6-day sampling and three at 12-day sampling. When denoising is on, the band is centred on the denoised series x^k\hat x_k of Section 7 and spans x^k±σres\hat x_k \pm \sigma_{\mathrm{res}}, with σres\sigma_{\mathrm{res}} from (40).

The band is a one-sigma band for individual epochs about a local mean. It is neither a confidence band for the local mean, which would be narrower by up to 5\sqrt5 for independent errors, nor a band for the displacement relative to the start, which would also contain the error of the reference level (Remark 2). The numerical readouts beside the chart show the EGMS mean LOS velocity with mean_velocity_std for each point and, after interpretation, vU±σvUv_U \pm \sigma_{v_U} and vE±σvEv_E \pm \sigma_{v_E} with the significance flag of (24).

7Temporal denoising

InSAR time series contain per-epoch noise of a few millimetres from atmospheric delay, processing and residual unwrapping errors, as well as seasonal motion of the scatterers themselves. To make slow deformation easier to see, the application offers an optional denoiser, shared by the chart and the displacement map, with two independent steps: removal of the annual cycle (Section 7.3) followed by Gaussian-weighted local-linear smoothing (Section 7.1). In the chart, denoising affects only the display; velocities and the decomposition are always computed from the raw series. In the displacement map, the denoised series replace the raw ones (Section 8.4). The same local-linear estimator, with a fixed scale of 60 days, provides the reference level of (10).

7.1Local-linear Gaussian smoothing on irregular sampling

The smoothed value at epoch tit_i is the intercept of a straight line fitted by weighted least squares to the available samples within three kernel scales,

x^(ti)=β^0,(β^0,β^1)=arg⁡min⁡β0,β1∑j∈Jiwij(xj−β0−β1uij)2,uij=tj−tiσt,wij=e−uij2/2,\begin{gathered} \hat x(t_i) = \hat\beta_0, \qquad (\hat\beta_0, \hat\beta_1) = \arg\min_{\beta_0,\beta_1}\sum_{j\in J_i} w_{ij}\bigl(x_j - \beta_0 - \beta_1 u_{ij}\bigr)^2, \\ u_{ij} = \frac{t_j - t_i}{\sigma_t}, \qquad w_{ij} = e^{-u_{ij}^2/2}, \end{gathered}
(32)

with Ji={ j:∣uij∣≤3, xj finite }J_i = \{\, j : |u_{ij}| \le 3,\ x_j \text{ finite} \,\} and σt=30\sigma_t = 30, 60 or 90 days for the levels Light, Medium and Strong; the default is Medium. This is local-linear kernel regression with a truncated Gaussian kernel (Fan and Gijbels, 1996). With the weighted moments Sk=∑j∈JiwijuijkS_k = \sum_{j\in J_i} w_{ij}u_{ij}^k and Tk=∑j∈JiwijuijkxjT_k = \sum_{j\in J_i} w_{ij}u_{ij}^k x_j, the normal equations of (32) give the closed form

x^(ti)=S2T0−S1T1S0S2−S12=∑j∈Jiℓij xj,ℓij=wij S2−S1uijS0S2−S12,\hat x(t_i) = \frac{S_2T_0 - S_1T_1}{S_0S_2 - S_1^2} = \sum_{j\in J_i} \ell_{ij}\,x_j, \qquad \ell_{ij} = w_{ij}\,\frac{S_2 - S_1u_{ij}}{S_0S_2 - S_1^2},
(33)

where ℓij\ell_{ij} is the equivalent kernel. It satisfies ∑jℓij=1\sum_j \ell_{ij} = 1 and ∑jℓijuij=0\sum_j \ell_{ij}u_{ij} = 0 for any sampling, so constants and straight lines are reproduced exactly, including at the ends of a series and next to gaps. Where the samples are placed symmetrically about tit_i, as in the interior of a regularly sampled series, S1=0S_1 = 0 and ℓij=wij/S0\ell_{ij} = w_{ij}/S_0: the estimator then coincides with the Gaussian kernel mean, the Nadaraya–Watson estimator (Nadaraya, 1964; Watson, 1964). If the local design is degenerate, that is, if JiJ_i contains fewer than three samples or the weighted spread of the sample times is below 0.2 σt0.2\,\sigma_t (S0S2−S12<0.04 S02S_0S_2 - S_1^2 \lt 0.04\,S_0^2), the application falls back to the kernel mean T0/S0T_0/S_0, which avoids extrapolating a poorly determined slope. Because all weights are computed from the actual acquisition dates, the estimator handles the transition from 6-day to 12-day sampling without modification; it is also evaluated at epochs whose own value is missing, which fills such epochs whenever samples lie within 3σt3\sigma_t.

7.2Frequency response

In the interior of a regularly sampled series, (33) reduces to a convolution with the normalised Gaussian g(τ)=(2πσt2)−1/2exp⁡(−τ2/2σt2)g(\tau) = (2\pi\sigma_t^2)^{-1/2}\exp\bigl(-\tau^2/2\sigma_t^2\bigr). Its Fourier transform is again Gaussian,

H(f)=∫−∞∞g(τ) e−i2πfτ dτ=exp⁡ ⁣(−2π2σt2f2),H(f) = \int_{-\infty}^{\infty} g(\tau)\,e^{-\mathrm i 2\pi f\tau}\,\mathrm d\tau = \exp\!\bigl(-2\pi^2\sigma_t^2 f^2\bigr),
(34)

so the smoother is a zero-phase low-pass filter. Setting H(fc)=1/2H(f_c) = 1/\sqrt2, the half-power or −3 dB point, gives the cut-off frequency and period

fc=ln⁡22π σt≈0.1325σt,Tc=1fc≈7.55 σt.f_c = \frac{\sqrt{\ln 2}}{2\pi\,\sigma_t} \approx \frac{0.1325}{\sigma_t}, \qquad T_c = \frac{1}{f_c} \approx 7.55\,\sigma_t.
(35)

Table 3 and Figure 5 give the values for the three levels. We verified numerically that the truncation at ±3σt\pm3\sigma_t and discrete sampling at 6 or 12 days change ∣H∣|H| by less than 0.004 at all frequencies. An important consequence is that the smoother is not neutral with respect to seasonal signals: in the interior, Medium smoothing retains 59 % of the amplitude of an annual cycle and Strong smoothing 30 %. Removal of the annual cycle by Section 7.3 is the explicit alternative.

Table 3. Properties of the three smoothing levels for 6-day sampling: cut-off period and frequency from (35) and interior amplitude response at the annual frequency from (34); noise factor ∑jℓij2\sqrt{\sum_j \ell_{ij}^2}, the standard deviation of x^\hat x for independent noise of unit variance, in the interior and at the last epoch; and the largest gain ∣H∣|H| of the last-epoch kernel for frequencies up to 3 cycles per year.

Levelσt\sigma_t (d)TcT_c (d)fcf_c (yr⁻¹)H(1 yr−1)H(1\ \mathrm{yr}^{-1})noise, interiornoise, last epochmax ∣H∣|H|, last epoch
Light302261.610.8750.240.561.20
Medium (default)604530.810.5870.170.411.24
Strong906790.540.3020.140.341.25
Equivalent kernels of the local-linear smoother in the interior and at the last epoch of a series(a) Equivalent kernels, 60 d−200−100010020000.050.10.150.2lag τ (days), 6-day samplingweight per sampleinteriorlast epochAmplitude response of the smoother in the interior for three kernel scales and at the last epoch for the 60-day scale(b) Amplitude response00.511.522.5300.51−3 dBannual30 d, interior60 d, interior90 d, interior60 d, last epochfrequency f (cycles per year)|H(f)|
Figure 5. (a) Equivalent kernels ℓij\ell_{ij} of (33) for σt=60\sigma_t = 60 days and 6-day sampling: in the interior, where they equal the normalised Gaussian, and at the last epoch of a series, where the support is one-sided and the kernel acquires a negative lobe that cancels the trend bias. (b) Amplitude response: interior response (34) for the three levels, with the −3 dB cut-off (35) (open circles) and the annual frequency (filled circles), and the response of the last-epoch kernel for 60 days (dash-dotted), which exceeds one at intermediate frequencies.

Remark 3 (Behaviour at the ends of a series). The simplest alternative, the Gaussian kernel mean T0/S0T_0/S_0, is biased wherever its support is one-sided. For a linear trend x(t)=x0+v tx(t) = x_0 + v\,t its estimate at the last epoch lags the trend by the mean lag of the half-Gaussian,

λ=σt2/π≈0.80 σt,\lambda = \sigma_t\sqrt{2/\pi} \approx 0.80\,\sigma_t,
(36)

that is 22, 46 and 69 days for the three levels at 6-day sampling, and the first epoch is biased by the same amount in the opposite direction. A smoothed displacement between the first and the last epoch of the 2020–2024 Level 3 period (1806 days) would then underestimate a linear trend by 2λv2\lambda v, or 2.4, 5.1 and 7.7 %. The local-linear estimator removes this bias: on irregularly sampled series with gaps, the application's routine reproduces a linear trend at every epoch, including both ends, to better than 10−310^{-3} mm. The price is a larger variance where the support is one-sided: at the last epoch the noise factor is about 2.4 times its interior value (Table 3), and the one-sided kernel amplifies some frequencies by up to 25 %, including an annual cycle by 20 % for Medium smoothing. Near the ends, smoothed curves are therefore unbiased but noisier, and seasonal signals are better removed by Section 7.3 than by smoothing.

7.3Removal of the annual cycle

Thermal dilation of structures and moisture-driven soil motion produce an approximately annual cycle. The application models a series as a linear trend plus a sinusoid with a period of one year,

x(t)=β0+β1t~+β2sin⁡(2πt~)+β3cos⁡(2πt~)+ε,t~=t−tˉyr,x(t) = \beta_0 + \beta_1\tilde t + \beta_2\sin(2\pi\tilde t) + \beta_3\cos(2\pi\tilde t) + \varepsilon, \qquad \tilde t = \frac{t - \bar t}{\yr},
(37)

where tˉ\bar t is the mean epoch of the samples with a finite value; centring the time variable makes the intercept and the slope nearly uncorrelated and improves the conditioning. With gi=(1,t~i,sin⁡2πt~i,cos⁡2πt~i)⊤\vg_i = \bigl(1, \tilde t_i, \sin 2\pi\tilde t_i, \cos 2\pi\tilde t_i\bigr)\T, the least-squares estimate β=(β0,…,β3)⊤\vbeta = (\beta_0, \dots, \beta_3)\T solves the normal equations

(∑igigi⊤) β=∑igi xi,\Bigl(\sum_i \vg_i\vg_i\T\Bigr)\,\vbeta = \sum_i \vg_i\,x_i,
(38)

which the application solves by Gauss–Jordan elimination with partial pivoting. The fit requires at least eight samples and is abandoned, leaving the series unchanged, if a pivot falls below 10−1210^{-12}. Only the periodic part is removed,

xi′=xi−β2sin⁡(2πt~i)−β3cos⁡(2πt~i),A=β22+β32,x'_i = x_i - \beta_2\sin(2\pi\tilde t_i) - \beta_3\cos(2\pi\tilde t_i), \qquad A = \sqrt{\beta_2^2 + \beta_3^2},
(39)

and the amplitude AA is reported in the chart legend. Fitting the trend jointly with the sinusoid prevents the trend from leaking into the seasonal coefficients, which would otherwise happen whenever the series does not span an integer number of years. When both steps are active, (39) is applied before (32).

7.4Residual scatter

The band of a denoised series uses the scatter of the raw values about the denoised curve,

σres=1∣K∣−1∑k∈K(xk−x^k)2,\sigma_{\mathrm{res}} = \sqrt{\frac{1}{|\mathcal K| - 1}\sum_{k\in\mathcal K}\bigl(x_k - \hat x_k\bigr)^2},
(40)

where K\mathcal K is the set of epochs at which both values are finite. This quantity measures what the filter removes. It underestimates the per-epoch noise, because the smoother partly follows the noise, and it includes any genuine high-frequency signal as well as the annual cycle when that has been removed.

8Displacement map

The displacement map visualises the vertical and east–west motion inside a user-drawn polygon as an animated height map with an arrow field. It is built from Level 3 rather than Level 2B data, because Level 3 already provides both components on a regular grid, whereas the use of Level 2B would require tens of thousands of time-series requests and a decomposition per cell. Figure 6 summarises the processing, which the following subsections describe in order.

Processing pipeline of the displacement map1 Polygon Πdrawn in EPSG:3857; bounding box ≤ 25 × 25 km2 L3 cells inside ΠU and E tiles at full depth; ray casting3 Regular subsamplingif n > 4000: EPSG:3035 lattice, stride s4 Raster indexone pixel per cell; polygon mask5 Time cube C[f, c]6-day grid; linear resampling; v·Δt preview6 Temporal denoisingper cell: seasonal fit, local-linear σt (worker)7 Displacement at playheadD(t; t0) = C(t) − L(t0), fractional frame8 Regional trend removalD − median over all cells, per frameHeight map (U)LUT ±R (P98), reliefArrows (E)42 px blocks, κ (P95)Gradient modelsmooth, ∇U, fit B and rN = −B ∂U/∂y if gate passes9 Playt advances (t1 − t0) per 8 s at 1×; back to 7
Figure 6. Processing pipeline of the displacement map. Steps 1–6 run once per polygon (step 5 progressively as time series arrive, step 6 in a background worker); steps 7–8 and the outputs are evaluated for every rendered frame. The gradient model (dashed) is optional and calibrated once per selected period.

8.1From polygon to grid

The user draws a polygon Π\Pi in Web Mercator coordinates. Its bounding box may not exceed 25 km on either side, where widths are computed with 111.32 cos⁡φc\cos\varphi_c km per degree of longitude and 110.57 km per degree of latitude at the central latitude φc\varphi_c. Because the Mercator scale factor is sec⁡φ\sec\varphi in every direction, the ground area is estimated from the planar shoelace area AMA_M of the polygon in map units as

A≈AMcos⁡2φc,A \approx A_M\cos^2\varphi_c,
(41)

and the number of Level 3 cells as 100 A/km2100\,A/\mathrm{km}^2. The application then loads the vertical and east–west Level 3 cells inside the bounding box at full tile depth and keeps those inside Π\Pi by the even–odd ray-casting test.

If a component has M>4000M \gt 4000 cells inside Π\Pi, a regular subset is retained. The cell centres are projected to EPSG:3035 (Lambert azimuthal equal-area with origin 52° N, 10° E, false easting 4 321 000 m and false northing 3 210 000 m on GRS 80), and integer lattice indices are computed as

ic=round⁡ ⁣(xc100 m−ϕx),ϕx=12πatan2⁡ ⁣(∑csin⁡2πxc100 m, ∑ccos⁡2πxc100 m),i_c = \round\!\left(\frac{x_c}{100\ \mathrm m} - \phi_x\right), \qquad \phi_x = \frac{1}{2\pi}\atantwo\!\Bigl(\sum_c \sin\frac{2\pi x_c}{100\ \mathrm m},\ \sum_c \cos\frac{2\pi x_c}{100\ \mathrm m}\Bigr),
(42)

and likewise jcj_c from the northing. The offset ϕx\phi_x is the circular mean of the fractional cell position and makes the indices insensitive to whether the coordinates refer to cell centres or corners. Cells with ic≡jc≡0(mods)i_c \equiv j_c \equiv 0 \pmod s are kept, where the stride ss starts at max⁡(2,⌈M/4000 ⌉)\max\bigl(2, \lceil\sqrt{M/4000}\,\rceil\bigr) and is increased until at most 4000 cells remain or the stride exceeds 64. The result is an exactly regular subgrid with a spacing of 100 s100\,s m.

For rendering, each retained cell is mapped to one pixel of a raster in Web Mercator. The pixel size is ss times the median nearest-neighbour distance of up to 64 sampled cells, accepted if it lies between 0.6 and 1.6 times the nominal 100 m/cos⁡φc100\ \mathrm m/\cos\varphi_c and replaced by the nominal value otherwise. Each pixel takes the cell nearest to its centre within 0.75 pixel; remaining empty pixels take the nearest cell within 1.5 pixels, and enclosed single-pixel holes with at least three of four neighbours filled take the nearest cell within 2.2 pixels. These tolerances compensate for the slight rotation of the EPSG:3035 lattice relative to Web Mercator, while genuine gaps in the data, such as heathland or fields without scatterers, remain empty. Pixels whose centres lie outside Π\Pi are masked.

8.2The time cube

The time series of the retained cells are requested in batches of 150 cells, the vertical component first. Each component is stored as a time cube C∈RF×MC \in \mathbb R^{F\times M} on a regular grid of frames,

C[f,c]=xc(tf),tf=ts+f Δt,f=0,…,F−1,Δt=6 d,C[f, c] = x_c(t_f), \qquad t_f = t_s + f\,\Delta t, \quad f = 0, \dots, F-1, \qquad \Delta t = 6\ \mathrm d,
(43)

where tst_s and tet_e are the earliest and the latest epoch among all series loaded so far, and F=⌊(te−ts)/Δt⌋+1F = \lfloor (t_e - t_s)/\Delta t \rfloor + 1, increased by one if tF−1<tet_{F-1} \lt t_e. When a batch contains an epoch outside [ts,te][t_s, t_e], the grid is extended to the union of the old grid and the new span, a new cube is allocated and all series loaded before are resampled onto it; the original series are kept for this purpose. No epoch of any loaded series is therefore dropped. Each series (tc,j,xc,j)j=1Nc(t_{c,j}, x_{c,j})_{j=1}^{N_c} is resampled onto the frames by linear interpolation (9) inside its period and by holding its end values outside it,

xc(tf)={xc,1,tf≤tc,1,xc,Nc,tf≥tc,Nc,linear interpolation,otherwise.x_c(t_f) = \begin{cases} x_{c,1}, & t_f \le t_{c,1}, \\ x_{c,N_c}, & t_f \ge t_{c,N_c}, \\ \text{linear interpolation}, & \text{otherwise.} \end{cases}
(44)

Since all Level 3 cells of the current release share one 6-day lattice (Section 2.2), the frames coincide with Level 3 epochs and (44) reduces to a copy within each series; holding applies only to the first frames of cells whose series begin after tst_s, at most two frames in the current release. Cells for which no series is available keep the velocity model of (46).

The map displays the displacement at a playhead time tt relative to the start t0t_0 of the selected period. The playhead is converted to a fractional frame index, and the cube is interpolated linearly between the neighbouring frames (Figure 7),

ϕ(t)=clamp⁡ ⁣(t−tsΔt, 0, F−1),Cc(t)=(1−a) C[i,c]+a C[i′,c],i=⌊ϕ⌋,a=ϕ−i,i′=min⁡(i+1,F−1).\begin{gathered} \phi(t) = \clamp\!\left(\frac{t - t_s}{\Delta t},\ 0,\ F-1\right), \\ C_c(t) = (1-a)\,C[i, c] + a\,C[i', c], \\ i = \lfloor\phi\rfloor,\quad a = \phi - i,\quad i' = \min(i+1, F-1). \end{gathered}
(45)

The start is represented, as in (10), by the robust level Lc(t0)L_c(t_0) of the cell: the local-linear estimate (33) with σref=60\sigma_{\mathrm{ref}} = 60 days, evaluated on the frames of the displayed cube within ±3σref\pm 3\sigma_{\mathrm{ref}} of t0t_0. The displacement is then

Dc(t;t0)={Cc(t)−Lc(t0),if the series of c has been loaded,vc (t−t0)/yr,otherwise,D_c(t; t_0) = \begin{cases} C_c(t) - L_c(t_0), & \text{if the series of } c \text{ has been loaded}, \\ v_c\,(t - t_0)/\yr, & \text{otherwise}, \end{cases}
(46)

where vcv_c is the mean velocity of the cell from the tile. The second case provides an immediate preview before the series arrive and is replaced cell by cell as they are loaded. The levels Lc(t0)L_c(t_0) depend only on t0t_0 and on the cube contents; they are computed once when either changes and reused for every rendered frame, so the robust reference does not slow down playback. For independent noise and 6-day frames, the reference contributes 0.41 σ0.41\,\sigma of noise at the first frame and 0.17 σ0.17\,\sigma in the interior (Remark 2) instead of the full σ\sigma of a single frame.

Stack of regular time frames forming the displacement time cube with a fractional playhead(a) Time cubef = 0f = iplayhead φ(t)f = i + 1f = F − 1tone pixel per cell c; one frame per 6 daysLinear interpolation between grid frames at a fractional playhead and the displacement relative to the robust level at the start(b) One cell012345678frame index fCc (mm)Lc(t0)φ = 5 + 0.4Dc1 − aa
Figure 7. (a) The time cube (43): one frame per 6-day epoch, one pixel per cell; the playhead generally lies between two frames. (b) For one cell, (45) interpolates linearly between frames ii and i+1i+1 with weights 1−a1-a and aa, and (46) subtracts the robust level Lc(t0)L_c(t_0) at the start of the selected period (open circle), a local-linear estimate from the neighbouring frames rather than the value of the single frame at t0t_0.

8.3Regional trend removal

By default the application removes, at every frame, the median displacement of all MM cells of the component,

Dc′(t;t0)=Dc(t;t0)−med⁡c′Dc′(t;t0),D'_c(t; t_0) = D_c(t; t_0) - \med_{c'} D_{c'}(t; t_0),
(47)

where the median of an even number of values is the mean of the two central ones. The operation removes any signal common to the polygon, such as regional subsidence or uplift, a residual offset of the reference frame of the calibrated product, or a residual atmospheric contribution shared by the area, so that differential motion stands out. The median is used instead of the mean because its breakdown point is 50 %: a local subsidence bowl that occupies less than half of the cells does not bias the reference. Conversely, if a deformation feature covers more than half of the polygon, the median lies inside the feature and the remaining area appears to move in the opposite direction. The removed value is displayed so that the user can judge this. With the option enabled, all map quantities are relative to the polygon; with the option disabled, Dc′≡DcD'_c \equiv D_c in what follows.

8.4Temporal denoising of the cube

When the denoiser is active, (39) and (33) are applied to every cell with a loaded series, along the frame axis, with the frame epochs (43) as sampling times and the same settings as in the chart. Because the frames are regular, the Gaussian weights depend only on the frame offset; they are tabulated once per run, and the per-cell computation allocates no memory and evaluates no exponential, which keeps the cost at about 40 ms per 1000 cells. The computation runs in a background worker and its result replaces CC in (45)–(47), in the colour range and in the gradient model. The cells are processed independently, without spatial smoothing; an optional 3×33\times3 median filter of the rendered field is described in Section 8.5. Because the local-linear estimator reproduces linear trends at both ends of the cube (Remark 3), smoothing does not reduce the displacement between the first and the last frame.

8.5Height map

The vertical field DU′D'_U is coloured with a diverging red–white–blue palette, red for subsidence and blue for uplift, through a lookup table of 256 entries interpolated between nine colour stops. For a symmetric range ±R\pm R, the table index is

ι=clamp⁡ ⁣(⌊127.5 (1+D′/R)⌋, 0, 255).\iota = \clamp\!\Bigl(\bigl\lfloor 127.5\,(1 + D'/R) \bigr\rfloor,\ 0,\ 255\Bigr).
(48)

Unless the user sets RR manually, it is the 98th percentile of the absolute displacement sampled at sixteen evenly spaced times of the selected period [t0,t1][t_0, t_1],

R=max⁡(0.5 mm, Q0.98{ ∣DU,c′(t(q);t0)∣:c=1,…,M; q=1,…,16 }),t(q)=t0+q16 (t1−t0),\begin{gathered} R = \max\Bigl(0.5\ \mathrm{mm},\ Q_{0.98}\bigl\{\,|D'_{U,c}(t^{(q)}; t_0)| : c = 1,\dots,M;\ q = 1,\dots,16 \,\bigr\}\Bigr), \\ t^{(q)} = t_0 + \tfrac{q}{16}\,(t_1 - t_0), \end{gathered}
(49)

where QpQ_p denotes the empirical quantile taken as the element of rank round⁡(p(N−1))\round(p(N-1)) of the sorted sample of size NN. The range is recomputed when the period, the regional option or the denoised data change, so colours are comparable within a session and period, but not across them.

Optional relief shading treats z=(3.5/R) D′z = (3.5/R)\,D' as a surface in pixel units, so that a displacement change of RR corresponds to a height of 3.5 pixels. With central differences gx=(zE−zW)/2g_x = (z_{\mathrm E} - z_{\mathrm W})/2 towards the east and gy=(zS−zN)/2g_y = (z_{\mathrm S} - z_{\mathrm N})/2 towards the south, where a missing neighbour is replaced by the central value, Lambert's cosine law with a light direction L=(−12,−12,12)\mathbf L = (-\tfrac12, -\tfrac12, \tfrac{1}{\sqrt2}) in (east, south, up), that is, from the north-west at 45° elevation, gives the brightness factor

χ=clamp⁡ ⁣(1+(gx+gy)/21+gx2+gy2, 0.62, 1.18),\chi = \clamp\!\left(\frac{1 + (g_x + g_y)/\sqrt2}{\sqrt{1 + g_x^2 + g_y^2}},\ 0.62,\ 1.18\right),
(50)

which is the cosine of the angle between the surface normal and L\mathbf L divided by its value for a flat surface, so that flat areas keep their exact palette colour. The red, green and blue values are multiplied by χ\chi and clipped to 255. Optional iso-lines are traced by marching squares over the pixel centres with linear interpolation along the edges, at multiples of an interval that is either chosen by the user or set to the smallest value in {0.25,0.5,1,2,2.5,5,10,20,25,50,100}\{0.25, 0.5, 1, 2, 2.5, 5, 10, 20, 25, 50, 100\} mm that is at least R/4R/4; squares that touch an empty pixel are skipped. An optional NaN-aware 3×33\times3 median filter, off by default, removes single-cell speckle. The raster, with one pixel per cell, is finally drawn at screen resolution, by default with the bilinear smoothing of the browser canvas, and clipped to Π\Pi.

8.6Measured east–west arrows

The east–west field DE′D'_E is drawn as arrows. To keep a constant density on screen, the cells are grouped into square blocks of w=42w = 42 screen pixels, expressed in map units at the current resolution and aligned with the origin of the projection,

b(c)=(⌊Xc/w⌋, ⌊Yc/w⌋),b(c) = \Bigl(\bigl\lfloor X_c/w \bigr\rfloor,\ \bigl\lfloor Y_c/w \bigr\rfloor\Bigr),
(51)

and each block is represented by the mean position of its cells and the mean Eˉb\bar E_b of their values. The arrow length in pixels is

Lb=κ Eˉb,κ=0.9×42 pxmax⁡(0.05 mm, P95)  su,L_b = \kappa\,\bar E_b, \qquad \kappa = \frac{0.9 \times 42\ \mathrm{px}}{\max\bigl(0.05\ \mathrm{mm},\ P_{95}\bigr)}\;s_u,
(52)

where P95P_{95} is the 95th percentile of ∣DE′∣|D'_E| over the sixteen times of (49), with a floor of 0.2 mm, and su∈[1/4,4]s_u \in [1/4, 4] is a user factor. Lengths are limited to 0.9×42×1.6≈600.9 \times 42 \times 1.6 \approx 60 px, arrows shorter than 2.5 px are drawn as dots, and each arrow is centred on its block anchor. With this normalisation, 95 % of the cells over the period have displacements that would be drawn shorter than 0.9 of the block spacing. The scale is thus relative to the period; the legend shows a reference arrow whose length is the value from {0.2,0.5,1,2,5,10,20,50,100}\{0.2, 0.5, 1, 2, 5, 10, 20, 50, 100\} mm closest, in logarithmic ratio, to 30 px/κ30\ \mathrm{px}/\kappa.

8.7Estimated two-dimensional arrows: the gradient model

EGMS measures only the east–west part of the horizontal motion (Section 3.3). For subsidence bowls, however, classical subsidence theory links the horizontal displacement to the slope of the vertical displacement, which is measured at every cell. This subsection states that model, its calibration against the measured east–west component and the conditions under which the application uses it.

For the settlement trough above a tunnel, Peck (1969) described the vertical displacement by a Gaussian profile. In our sign convention,

U(x)=−Smax⁡exp⁡ ⁣(−x22i2),U(x) = -S_{\max}\exp\!\left(-\frac{x^2}{2i^2}\right),
(53)

with maximum settlement Smax⁡S_{\max} and trough width parameter ii, the distance from the centre to the inflection point. Under the hypothesis that ground particles move towards the tunnel axis at depth z0z_0, the horizontal displacement is h(x)=(x/z0) U(x)h(x) = (x/z_0)\,U(x) (O'Reilly and New, 1982). Differentiating (53) gives dU/dx=−(x/i2) U(x)\mathrm dU/\mathrm dx = -(x/i^2)\,U(x), and therefore

h(x)=−B dUdx,B=i2z0.h(x) = -B\,\frac{\mathrm dU}{\mathrm dx}, \qquad B = \frac{i^2}{z_0}.
(54)

The same proportionality between horizontal displacement and ground tilt is a standard element of subsidence prediction for underground mining, where BB is related to the radius of influence of the extraction (Knothe, 1953; Whittaker and Reddish, 1989). By (53) and (54), the horizontal displacement points towards the centre of the trough, vanishes at the centre and reaches its maximum B Smax⁡ e−1/2/iB\,S_{\max}\,e^{-1/2}/i at the inflection points x=±ix = \pm i (Figure 8). The application uses the isotropic two-dimensional generalisation

h=(hE,hN)⊤=−B ∇U.\vh = (h_E, h_N)\T = -B\,\nabla U.
(55)
Gaussian subsidence trough with horizontal displacement proportional to the slope of the vertical displacement(a) Deformed surface (vertical exaggeration)initial surfaceSmax−i+i(b) Profiles−20−100−450−300−1500150300450U(x)h(x) = −B dU/dxx (m)mmSmax = 20 mm, i = 150 m, B = 0.4i
Figure 8. Gaussian subsidence trough (53) with Smax⁡=20S_{\max} = 20 mm and i=150i = 150 m, and the horizontal displacement (54) for B=0.4 iB = 0.4\,i. (a) Deformed surface with horizontal displacement arrows, which point into the trough. (b) Profiles of U(x)U(x) and h(x)h(x); the horizontal displacement is largest, 4.94.9 mm, at the inflection points x=±ix = \pm i.

Assumption 4 (Gradient model). Within the polygon, horizontal motion is the isotropic response (55) to the vertical field with a single constant B>0B \gt 0.

The assumption is plausible for bowl-shaped subsidence or uplift caused by mining, tunnelling or the withdrawal or injection of fluids, and it fails for landslides, thermal motion of structures, regional or tectonic translation and building-specific motion. The north component obtained from (55) is a model estimate, not a measurement. The application calibrates and gates the model as follows.

First, the vertical displacement over the selected period, DU′(t1;t0)D'_U(t_1; t_0), is rasterised as in Section 8.1 and smoothed by a NaN-aware 3×33\times3 box mean,

U~p=1∣Np∣∑q∈NpUq,\tilde U_p = \frac{1}{|\mathcal N_p|}\sum_{q\in\mathcal N_p} U_q,
(56)

where Np\mathcal N_p is the set of non-empty pixels among the nine pixels centred on pp; empty pixels remain empty. Second, the gradient is evaluated at the pixel of every east–west cell by central differences, with one-sided differences where a neighbour is missing,

∂U~∂x≈U~c+1−U~c−12δorU~c+1−U~cδorU~c−U~c−1δ,\frac{\partial\tilde U}{\partial x} \approx \frac{\tilde U_{c+1} - \tilde U_{c-1}}{2\delta} \quad\text{or}\quad \frac{\tilde U_{c+1} - \tilde U_{c}}{\delta} \quad\text{or}\quad \frac{\tilde U_{c} - \tilde U_{c-1}}{\delta},
(57)

and analogously for ∂U~/∂y\partial\tilde U/\partial y, positive northward. Here δ=δMcos⁡φc\delta = \delta_M\cos\varphi_c is the ground size of a pixel, with δM\delta_M its size in Web Mercator metres and φc\varphi_c the central latitude of the raster; because the projection is conformal, the same factor applies in both directions. Gradients are therefore expressed per ground metre, and BB is a physical length in ground metres. Third, with ξc=−∂U~/∂x\xi_c = -\partial\tilde U/\partial x and the measured Ec=DE′(t1;t0)E_c = D'_E(t_1; t_0), the model is calibrated by simple linear regression with an intercept,

Ec=a+B ξc+εc,E_c = a + B\,\xi_c + \varepsilon_c,
(58)

whose least-squares estimates and the matching Pearson correlation coefficient are

B^=∑c(ξc−ξˉ)(Ec−Eˉ)∑c(ξc−ξˉ)2,a^=Eˉ−B^ ξˉ,r=∑c(ξc−ξˉ)(Ec−Eˉ)∑c(ξc−ξˉ)2 ∑c(Ec−Eˉ)2,\begin{gathered} \hat B = \frac{\sum_c (\xi_c - \bar\xi)(E_c - \bar E)}{\sum_c (\xi_c - \bar\xi)^2}, \qquad \hat a = \bar E - \hat B\,\bar\xi, \\ r = \frac{\sum_c (\xi_c - \bar\xi)(E_c - \bar E)}{\sqrt{\sum_c (\xi_c - \bar\xi)^2\,\sum_c (E_c - \bar E)^2}}, \end{gathered}
(59)

so that B^=r sE/sξ\hat B = r\,s_E/s_\xi with sEs_E and sξs_\xi the sample standard deviations. The intercept is a nuisance parameter: it absorbs a uniform east–west translation of the area, for example regional motion that is present when the regional removal (47) is disabled or that the median does not remove completely, which (55) cannot represent and which would otherwise bias B^\hat B. Because B^\hat B and rr are built from the same centred moments, the fit and its quality measure are consistent, and the significance test of rr below is equivalent to that of B^\hat B. Finally, with nξn_\xi the number of cells at which both ξc\xi_c and EcE_c are defined, the model is used only if

B={B^,B^>0 ∧ r≥0.3 ∧ t≥t0.975, ν,0,otherwise,B = \begin{cases} \hat B, & \hat B \gt 0 \ \wedge\ r \ge 0.3 \ \wedge\ t \ge t_{0.975,\,\nu}, \\ 0, & \text{otherwise,} \end{cases}
(60)

with the test statistic and degrees of freedom

t=rν1−r2,ν=neff−2,neff=⌊nξ/9⌋.t = \frac{r\sqrt{\nu}}{\sqrt{1 - r^2}}, \qquad \nu = n_{\mathrm{eff}} - 2, \qquad n_{\mathrm{eff}} = \bigl\lfloor n_\xi/9 \bigr\rfloor.
(61)

The three conditions have distinct roles. The first requires motion into the bowl, as in (54). The second requires at least a medium effect in the sense of Cohen (1988), that is, at least 9 % of the variance of the measured east–west field explained by the model; it prevents a statistically significant but negligible association, which a large polygon produces easily, from being used. The third is a two-sided tt-test of rr at the 5 % level, which guards against chance correlations in small areas. Neighbouring gradients are not independent: after the 3×33\times3 smoothing each depends on a 5×35\times3 block of the original field, and InSAR fields are themselves spatially correlated. We therefore use the conservative effective sample size ⌊nξ/9⌋\lfloor n_\xi/9 \rfloor, one independent value per 3×33\times3 block. The critical values t0.975,νt_{0.975,\nu} are tabulated for ν≤30\nu \le 30 and obtained from the Cornish–Fisher expansion of Abramowitz and Stegun (1964) (26.7.5) beyond. With 450 cells (neff=50n_{\mathrm{eff}} = 50) the tt-test alone would accept r≥0.28r \ge 0.28, so the effect-size condition governs; with 90 cells (neff=10n_{\mathrm{eff}} = 10) the tt-test requires r≥0.63r \ge 0.63.

If B>0B \gt 0, the north component at every playhead time is estimated from the vertical field of that time with the same smoothing and differencing, N^c(t)=−B ∂U~/∂y\hat N_c(t) = -B\,\partial\tilde U/\partial y, and the arrows show the block means of the vector (DE′,N^)(D'_E, \hat N): measured east–west and estimated north–south. Such arrows are drawn with hollow heads so that they cannot be mistaken for measurements. If B=0B = 0, the arrows remain purely east–west, and the panel reports which condition of (60) failed. The model's own east component a^−B ∂U~/∂x\hat a - B\,\partial\tilde U/\partial x is not displayed. The estimated mode is the default setting; the user can restrict the arrows to the measured east–west component. The panel reports BB in ground metres together with rr; fits with r≥0.6r \ge 0.6 are labelled good and the others fair.

In tests over central Brussels and over the former coal-mining area of Genk and Houthalen, the correlation was 0.03, and for a polygon of 35 cells in central Brussels it was 0.13; in all cases the model was rejected and no north component was estimated. The 3×33\times3 smoothing acts over 300 m, or more when the grid is subsampled, so narrower bowls are not resolved.

8.8Playback

During playback, the playhead advances at every animation frame of the browser by

t←t+min⁡(δw, 100 ms) (t1−t0) sp8000 ms,sp∈{0.5,1,2,4},t \leftarrow t + \min(\delta_{\mathrm w},\ 100\ \mathrm{ms})\,\frac{(t_1 - t_0)\,s_p}{8000\ \mathrm{ms}}, \qquad s_p \in \{0.5, 1, 2, 4\},
(62)

where δw\delta_{\mathrm w} is the wall-clock time since the previous frame, so that the selected period plays in eight seconds at unit speed. When the playhead passes t1t_1 it wraps to t0+((t−t1) mod (t1−t0))t_0 + \bigl((t - t_1) \bmod (t_1 - t_0)\bigr) if looping is enabled and stops otherwise. Every frame evaluates (45)–(47) at the new time and renders the height map and the arrows; since (45) is linear between grid frames, the animation is piecewise linear in time and contains no information beyond the 6-day frames.

9Comparison with EGMS Level 3

To check the implementation of Section 4 and Section 5, we compared decomposed velocities from Level 2B with the Level 3 velocities at twelve sites in Flanders and Brussels. At each site, the application's averaging and decomposition routines were applied to the ascending and the descending track with the most Level 2B points within 100 m; at most 15 points per orbit, the first in tile order, were averaged by (26) and decomposed by (13) and (20). The result was compared with the mean velocity of the nearest Level 3 cell, searched within 200 m. With Δj=vjGM−vjL3\Delta_j = v_j^{\mathrm{GM}} - v_j^{\mathrm{L3}} at site j=1,…,Jj = 1, \dots, J, we report

Δˉ=1J∑j=1JΔj,RMS=1J∑j=1JΔj2,\bar\Delta = \frac{1}{J}\sum_{j=1}^{J}\Delta_j, \qquad \mathrm{RMS} = \sqrt{\frac{1}{J}\sum_{j=1}^{J}\Delta_j^2},
(63)

and the Pearson correlation between the two sets of velocities. Table 4 lists the results. For the vertical component, Δˉ=+0.10\bar\Delta = +0.10 mm/yr, RMS=0.25\mathrm{RMS} = 0.25 mm/yr and r=0.99r = 0.99; for the east–west component, Δˉ=−0.10\bar\Delta = -0.10 mm/yr, RMS=0.19\mathrm{RMS} = 0.19 mm/yr and r=0.88r = 0.88 (J=12J = 12). The largest difference occurs at Houthalen, where mine-water rebound causes uplift of about 3 mm/yr (3.44 versus 2.70 mm/yr); without this site the vertical RMS difference is 0.14 mm/yr. The lower east–west correlation reflects the smaller spread of the east–west velocities (−1.40 to −0.27 mm/yr, against −2.75 to +3.44 mm/yr vertically) rather than a larger error. Both products show a westward velocity at every site; its origin is not analysed here, and it cancels in the differences.

Table 4. Velocities (mm/yr) from the GeoMotion decomposition of averaged Level 2B points (GM) and from the nearest EGMS Level 3 cell (L3), and their differences Δ\Delta = GM − L3. Tracks are the ascending and descending tracks with most points within 100 m; mm is the number of points per orbit.

SiteTracksmm a/dvUv_U GMvUv_U L3ΔU\Delta_UvEv_E GMvEv_E L3ΔE\Delta_E
Brussels centreA20-161 / D19-03715/15−1.39−1.20−0.19−0.71−0.50−0.21
Brussels MolenbeekA20-161 / D18-11015/15−1.12−1.30+0.18−0.27−0.50+0.23
Brussels MidiA20-161 / D19-03715/15−1.12−1.10−0.02−0.65−0.70+0.05
Brussels SchaerbeekA20-161 / D19-03715/15−1.84−1.70−0.14−0.75−0.60−0.15
Antwerp centreA20-161 / D19-03715/15−0.65−0.90+0.25−1.15−0.90−0.25
Antwerp port (Kallo)A20-161 / D19-0377/9−2.75−2.70−0.05−0.48−0.10−0.38
Ghent centreA20-161 / D18-11015/15−0.75−0.80+0.05−0.44−0.30−0.14
LeuvenA20-161 / D19-03715/15−0.19−0.10−0.09−0.50−0.500.00
GenkA20-161 / D19-03715/15+0.35+0.20+0.15−1.40−1.400.00
HouthalenA20-161 / D19-03715/15+3.44+2.70+0.74−1.06−0.80−0.26
MechelenA20-161 / D19-03715/15−0.39−0.50+0.11−0.45−0.30−0.15
BrugesA20-161 / D18-11015/15−0.54−0.70+0.16−0.40−0.400.00
Mean difference Δˉ\bar\Delta+0.10−0.10
RMS difference0.250.19
Correlation rr between GM and L30.990.88

These figures must be interpreted with care. EGMS derives Level 3 from the same calibrated Level 2B data, resampled to 100 m and combined over all available geometries with the north component neglected (Copernicus Land Monitoring Service, n.d.-a). The comparison is therefore a consistency check of the implementation, covering sign conventions, the handling of the LOS vectors, the time alignment and the averaging, and not an independent validation of accuracy, which would require GNSS or levelling. Within that scope, an RMS difference of 0.25 mm/yr is comparable to the published velocity uncertainties of individual points, and the remaining differences are explained by the different spatial support (a selection of up to 15 points per orbit against a 100 m cell combining all tracks), by the subset of tracks and by the rounding of the Level 3 tile velocities to 0.1 mm/yr. The figures were recomputed with the methods as described in this note (robust reference levels, unnormalised mean LOS vectors) and agree with those of the earlier implementation to four decimals, as expected: velocities do not depend on a constant reference, and the LOS vectors of points of one track are nearly parallel.

10Limitations

10.1Unobservable north–south motion

As shown in Section 3.3, Sentinel-1 cannot measure motion within about 11° of the north–south direction over Belgium, and no combination of the available tracks changes this. All measured horizontal quantities are east–west components; the north component of the estimated arrows rests entirely on Assumption 4, and an unmodelled north motion leaks into the vertical estimate by (6).

10.2Point density and the nature of scatterers

Persistent scatterers are predominantly buildings, infrastructure and bare rock. Vegetated and agricultural land yields few or no points, and the corresponding Level 3 cells are absent, which leaves gaps in the displacement map. The motion of a scatterer is the motion of the structure that reflects the signal, which may differ from that of the surrounding soil because of foundation depth, structural deformation or thermal dilation. Level 3 values are averages over 100 m cells and over all tracks and do not resolve individual buildings.

10.3Relative nature of the measurements

InSAR measures phase differences with respect to a reference in space and time. The Level 2B calibration with a GNSS-based model ties the measurements to a common reference, but residual errors of that calibration are common to large areas and are not contained in the published uncertainties. GeoMotion adds two further references: the robust level at the start of each analysis ((10), (46)) and, optionally, the median of the polygon ((47)). Every displayed displacement is therefore a displacement relative to the start of the period and, for the map with regional removal, relative to the area.

10.4Phase unwrapping

The interferometric phase is known modulo 2π2\pi, which corresponds to half the radar wavelength in LOS; for the C-band wavelength of Sentinel-1 the ambiguity listed in the EGMS catalogue is 27.75 mm. Without additional information, the displacement between two consecutive acquisitions can be recovered unambiguously only if it is smaller than a quarter of the wavelength, about 14 mm in LOS within 6 or 12 days (Hanssen, 2001). Fast, strongly non-linear or spatially abrupt motion may therefore be underestimated or missing from the products, and the application cannot detect such errors.

10.5Temporal coverage

The current release covers January 2020 to December 2024. Motion before or after that period is not represented, and velocities are averages over approximately five years. New releases appear approximately yearly with a delay of about one year; the application adopts the newest release automatically (Section 2.2).

10.6Simplifications of the implementation

Several modelling choices described above affect the numbers that the application reports: the assumption that the selected ascending and descending points move together (Assumption 2); uncertainties that include the scatter and serial correlation of each series ((22)) but not errors common to a region; the larger variance of smoothed values and of the reference level near the ends of a series, where the local-linear kernel is one-sided (Remark 3); the spatial-dependence approximation neff=⌊n/9⌋n_{\mathrm{eff}} = \lfloor n/9 \rfloor in the gate of the gradient model ((60)); and colour and arrow scales that are relative to the selected period ((49), (52)).

10.7A screening tool

GeoMotion is intended for screening: for identifying areas and structures whose motion deserves attention and for communicating the order of magnitude and the spatial pattern of that motion. It does not replace levelling, GNSS, in-situ instrumentation or structural inspection, and it should not be used as the sole basis for decisions about the safety of individual structures.

11Conclusion

We have documented the mathematical model behind every computation of GeoMotion. The single-point and multi-point tools decompose EGMS Level 2B LOS series into east–west and vertical components by an exact per-epoch solution of a well-conditioned 2×22\times2 system (∣det⁡A∣≈0.95|\det\vA| \approx 0.95 at Brussels), with first-order error propagation that yields σU≈0.9 σ\sigma_U \approx 0.9\,\sigma and σE≈1.2 σ\sigma_E \approx 1.2\,\sigma for a LOS noise σ\sigma. The north component is unobservable because the blind directions of all tracks lie within 11.4° of north, and we have quantified both the futility of estimating it from four tracks (σN≈56 σ\sigma_N \approx 56\,\sigma) and the leakage of neglected north motion into the vertical (−0.14 mm per millimetre). Selections are averaged with an uncertainty rule that we proved to be an upper bound for arbitrarily correlated errors. Displacements are referred to a robust local-linear level, whose noise at the first epoch is 0.41 times that of a single acquisition. The denoiser is a Gaussian-weighted local-linear smoother with a cut-off period of 7.55 σt7.55\,\sigma_t in the interior; it reproduces linear trends exactly at the series ends, where a kernel mean would understate a 2020–2024 displacement by up to 7.7 %, at the cost of a 2.4 times larger noise there. The displacement map interpolates the Level 3 time cube linearly in time, removes the regional median per frame and can complement the measured east–west arrows with a gradient model, calibrated in ground metres by regression with an intercept and gated by an effect-size and a significance criterion, whose north component is clearly marked as an estimate. At twelve sites, the decomposition reproduces EGMS Level 3 velocities to 0.25 mm/yr RMS vertically and 0.19 mm/yr east–west. Within the limitations stated in Section 10, these methods are suitable for screening relative ground motion at the scale of buildings and neighbourhoods.

References

  1. Abramowitz, M., and Stegun, I. A. (1964). Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. National Bureau of Standards, Washington.
  2. Cohen, J. (1988). Statistical Power Analysis for the Behavioral Sciences, 2nd ed. Lawrence Erlbaum Associates, Hillsdale, NJ.
  3. Copernicus Land Monitoring Service (n.d.-a). European Ground Motion Service: Algorithm Theoretical Basis Document. European Environment Agency, Copenhagen.
  4. Copernicus Land Monitoring Service (n.d.-b). European Ground Motion Service: Product Description and Format Specification. European Environment Agency, Copenhagen.
  5. Costantini, M., Minati, F., Trillo, F., Ferretti, A., Novali, F., Passera, E., et al. (2021). European Ground Motion Service (EGMS). In Proceedings of the IEEE International Geoscience and Remote Sensing Symposium (IGARSS 2021).
  6. Crosetto, M., Solari, L., Mróz, M., Balasis-Levinsen, J., Casagli, N., Frei, M., et al. (2020). The evolution of wide-area DInSAR: from regional and national services to the European Ground Motion Service. Remote Sensing, 12(12), 2043.
  7. Fan, J., and Gijbels, I. (1996). Local Polynomial Modelling and Its Applications. Chapman & Hall, London.
  8. Ferretti, A., Prati, C., and Rocca, F. (2001). Permanent scatterers in SAR interferometry. IEEE Transactions on Geoscience and Remote Sensing, 39(1), 8–20.
  9. Fuhrmann, T., and Garthwaite, M. C. (2019). Resolving three-dimensional surface motion with InSAR: constraints from multi-geometry data fusion. Remote Sensing, 11(3), 241.
  10. Hanssen, R. F. (2001). Radar Interferometry: Data Interpretation and Error Analysis. Kluwer Academic Publishers, Dordrecht.
  11. Knothe, S. (1953). Równanie profilu ostatecznie wykształconej niecki osiadania [Equation of the profile of the final subsidence trough]. Archiwum Górnictwa i Hutnictwa, 1.
  12. Nadaraya, E. A. (1964). On estimating regression. Theory of Probability and Its Applications, 9(1), 141–142.
  13. O'Reilly, M. P., and New, B. M. (1982). Settlements above tunnels in the United Kingdom: their magnitude and prediction. In Tunnelling '82, Institution of Mining and Metallurgy, London.
  14. Peck, R. B. (1969). Deep excavations and tunnelling in soft ground. In Proceedings of the 7th International Conference on Soil Mechanics and Foundation Engineering, Mexico City, State-of-the-Art Volume.
  15. Santer, B. D., Wigley, T. M. L., Boyle, J. S., Gaffen, D. J., Hnilo, J. J., Nychka, D., Parker, D. E., and Taylor, K. E. (2000). Statistical significance of trends and trend differences in layer-average atmospheric temperature time series. Journal of Geophysical Research: Atmospheres, 105(D6), 7337–7356.
  16. Torres, R., Snoeij, P., Geudtner, D., Bibby, D., Davidson, M., Attema, E., et al. (2012). GMES Sentinel-1 mission. Remote Sensing of Environment, 120, 9–24.
  17. Watson, G. S. (1964). Smooth regression analysis. Sankhyā: The Indian Journal of Statistics, Series A, 26(4), 359–372.
  18. Whittaker, B. N., and Reddish, D. J. (1989). Subsidence: Occurrence, Prediction and Control. Developments in Geotechnical Engineering 56. Elsevier, Amsterdam.
  19. Wright, T. J., Parsons, B. E., and Lu, Z. (2004). Toward mapping surface deformation in three dimensions using InSAR. Geophysical Research Letters, 31(1), L01607.

AParameters

Table 5 lists the constants that enter the equations of this note, with their values in the current implementation.

Table 5. Parameters of the implementation.

QuantityValueEquation or section
Probe search radii100, 250, 500 m(7)
Multi-select click radii; box cap30, 100 m; 100 points per orbitSection 5.1
Grid step Δt\Delta t; length of a year6 d; 365.25 d(8), (43), (20)
Reference level scale σref\sigma_{\mathrm{ref}}60 d (support ±180\pm 180 d)(10), (46)
Minimum angle between projected LOS vectors30° (condition number ≤ 3.73)(16)
Velocity uncertainty: lag-one autocorrelation limits[0, 0.99](21)
Significance threshold2σ2\sigma(24)
Probe arrow: minimum ∣vE∣|v_E|; scale; limits0.05 mm/yr and significant; 30 px per mm/yr; 20–160 px(25)
Coherence classes0.6, 0.8Section 4.6
Running-mean window±15 d(31)
Smoothing scale σt\sigma_t; truncation; default30, 60, 90 d; 3σt3\sigma_t; 60 d(32)
Local-linear fallback: minimum samples; minimum spread3; 0.2 σt0.2\,\sigma_t(33)
Seasonal period; minimum samples; pivot tolerance365.25 d; 8; 10−1210^{-12}(37), (38)
Maximum polygon size; maximum cells; maximum stride25 × 25 km; 4000; 64Section 8.1
Raster search tolerances0.75, 1.5, 2.2 pxSection 8.1
Series batch size150 cellsSection 8.2
Colour range: percentile, floor, sample times98 %, 0.5 mm, 16(49)
Relief: exaggeration; light; factor limits3.5 px per RR; north-west, 45°; 0.62–1.18(50)
Arrow block; reference percentile and floor; length limits42 px; 95 %, 0.2 mm; 2.5–60 px(51), (52)
Gradient model: minimum correlation; test level; cells per independent value0.3; two-sided 5 %; 9(60)
Playback: period duration; frame-step cap; speeds8 s; 100 ms; 0.5, 1, 2, 4(62)
Defaults: regional removal; arrow mode; denoising; point colour rangeon; estimated 2D; Medium; ±5 mm/yrSection 8.3, Section 8.7, Section 7.1

BImplementation map

For reproducibility, Table 6 maps the equations to the modules of the GeoMotion source code in which they are implemented.

Table 6. Correspondence between equations and source modules (paths relative to web/src).

EquationsModuleFunctions
(1)egms/ng3d.tssphereToLonLat
(2)egms/tiles.tsloadPoints
(7)egms/spatial.ts, tools/probe/probeActions.tsnearest, nearestOfOrbit
(8)–(10), (11)–(13), (16), (18), (20)–(22)lib/decompose.tscommonGrid, resample, resampleReferenced, decompose, propagateDecompositionSigma, linearVelocity, trendSigma
(23)–(25)tools/probe/format.ts, tools/probe/mapStyles.tsinterpretationLines, componentNotSignificant, showEastWestArrow, arrowStyleFn
(26), (27), (28)lib/decompose.tsaverageSeries, combineSigmas
(31)lib/decompose.ts, tools/probe/TimeSeriesChart.tsxrunningMeanTime
(32), (33), (37)–(40)lib/denoise.tsgaussianSmooth, localLevel, referenceLevel, fitSeasonal, denoiseSeries, residualSigma, denoiseCube
(41), (42)tools/heatmap/controller.ts, tools/heatmap/raster.tssetPolygon, gridIndices, subsampleGrid, buildRasterIndex
(43)–(47), (49)tools/heatmap/cube.ts, tools/heatmap/controller.ts, lib/denoise.tscoverGrid, resampleInto, frameAt, referenceLevels, cubeReferenceLevel, displacementAt, medianOf, autoRange
(48), (50)tools/heatmap/raster.tspaintPixels, isoSegments, median3
(51), (52)tools/heatmap/arrows.ts, tools/heatmap/renderer.tsbuildBlocks, blockMeans, drawArrows
(56)–(61)tools/heatmap/model2d.tssmooth3, groundPixel, gradientAt, fitGradientModel, tCritical975
(62)tools/heatmap/controller.tstick

This note describes GeoMotion as of 8 October 2026. Equations are typeset with KaTeX at build time, and the quantitative figures are computed from the formulas they illustrate. Data: Copernicus Land Monitoring Service, European Ground Motion Service, release 2020–2024.