1 Introduction

Velocity is the vector equivalent of speed and measures both the rate and the direction of movement. Velocity field modelling of the Earth’s surface has multiple engineering and scientific applications, such as integration in the International Terrestrial Reference Frame (ITRF), maintenance of a static reference frame, realization of a semi-kinematic or kinematic reference frame, and providing precise positioning and navigation services, and is widely used in the study of geophysical phenomena. The latter includes interpretation of local-scale or inter-regional land uplift, tectonic plate motions, intraplate deformations, and strain rate analyses which are further used for seismic and volcano hazard assessment studies, research in glacial isostatic adjustment, rock mechanics and structural geology, etc. (e.g. Grenerczy et al. 2000; Caporali et al. 2003; Kenyeres and Bruyninx 2004; Lidberg et al. 2007; Avallone et al. 2010; Weber et al. 2010; Kierulf et al. 2013, 2019, 2021; Chatzinikos et al. 2015; Blick and Donnelly 2016; Snay et al. 2016; Bruyninx et al. 2017; Ronen and Even-Tzur 2017; Kreemer et al. 2018; Poutanen and Häkli 2018; Kenyeres et al. 2019; Li et al. 2019; Azhari et al. 2020; Kall et al. 2021; Pagani et al. 2021; Serpelloni et al. 2022). Datasets of various global and regional (national or continental) networks of sites with estimated positions and velocities (position/velocity dataset) are available nowadays, which are based either on passive (campaign-based) sites or active (continuously operating) stations with the coordinate time series obtained via space geodetic techniques, such as Global Navigation Satellite System (GNSS), Satellite Laser Ranging (SLR), Doppler Orbitography and Radiopositioning Integrated by Satellite (DORIS), and Very-Long-Baseline Interferometry (VLBI). In order to obtain reliable reference positions and velocities, a consistent terrestrial reference frame should be used in a multi-year cumulative network solution. Coordinates and velocities are estimated at intervals defined for each individual site in the position/velocity dataset. The endpoint of such an interval represents a station coordinate discontinuity (jump in the coordinate time series) and/or station velocity discontinuity (change in the velocity magnitude and/or direction). Discontinuities usually coincide with measurement equipment or settings changes, firmware upgrades, processing changes, earthquakes, volcano eruptions, etc. (e.g. Lahtinen et al. 2022).

The velocity field modelling which is based on discrete points with known positions and velocities (data points) requires an interpolation or approximation of the velocity of any point in the domain (interpolation point). Pure interpolation provides interpolated velocities which fully agree with the known/estimated velocities at all data points. The dilemma of approximation versus interpolation may arise when balancing the quality of the velocities and the density of the data points. The approximation approach provides smoother results by filtering out the noise (Steffen et al. 2022). This is crucial in case of dense but noisy data. On the other hand, the interpolation approach seems to be an appropriate solution for a dataset which is checked and verified.

Periodic signals which are not driven by tectonic processes should be eliminated from the velocity determination. This includes annual and semi-annual signals in a GNSS time series and periodic patterns that resemble the repeat time of a GNSS constellation, which could overestimate the rate uncertainty (Amiri-Simkooei et al. 2007). A careful visual inspection of coordinate time series is needed to detect discontinuities and improve the quality of the GNSS velocity estimates. Many semi-automatic positional offset detection methods have also been developed (e.g. Amiri-Simkooei et al. 2019; Khazraei and Amiri-Simkooei 2021; Lahtinen et al. 2022). Different approaches to remove outlier velocities from the position/velocity datasets have been investigated recently, for example, based on strain rate patterns (Araszkiewicz et al. 2016) or robust Mahalanobis distance (Magyar et al. 2022). The above-mentioned temporal discontinuities require a time-interval-based position/velocity lookup table; an individual data point may require more than one row in the table. This makes it difficult to appropriately incorporate all information from the input dataset when trying to create an adequate velocity field model which is based on a point lattice—a regularly spaced array of (virtual) points. To be able to access complete information on the discontinuities, the interpolation should be based directly on the locations where the observations are collected.

Each velocity consists of three components which are usually divided into horizontal and vertical parts. If treated separately, the modelling of each individual component will be considered an interpolation on the reference surface in the 3D space, with the domain in a projected or geodetic coordinate system (e.g. Snay et al. 2016). This task is similar to terrain modelling, for example. There are at least a dozen of spatial interpolation and approximation methods available, such as inverse distance to a power interpolation, Kriging method, minimum curvature method, modified Shepard’s method, natural neighbour interpolation, nearest neighbour interpolation, polynomial regression, radial basis function interpolation, triangle-based piecewise linear interpolation, piecewise polynomial or spline interpolation, moving average method, data metrics method, and least-squares collocation (e.g. Yang et al. 2004; Steffen et al. 2022). Most of these methods can be either approximate or exact (interpolation); the latter can be achieved by assigning zero smoothing parameters.

Some inconsistencies that may appear in the geodetic velocity field modelling can be summarized as follows. The original velocity components resulting from the cumulative network solution are obtained in the geocentric system (\(\dot{X},\dot{Y},\dot{Z}\)) and are correlated. The corresponding variance–covariance matrix is fully populated. Some stochastic information is lost (i.e. ignored for simplicity) when converting the velocities to the topocentric system (\(\dot{N},\dot{E},\dot{U}\)) and dividing them into the horizontal and vertical parts. Furthermore, the heights of points are completely ignored in the velocity field modelling when using a geodetic (\(\varphi ,\lambda \)) or projected (\(e,n\)) coordinate system as the domain for the velocity interpolation. Moreover, the horizontal velocity components (\(\dot{N},\dot{E}\)) may be inconsistent with the projected coordinate system due to ignoring the meridian convergence, and the interpolation of all three velocity components may be affected by map projection distortions. No matter which map projection is used, a global or continental velocity field model should not be based on projected coordinates due to large distortions in the scale and direction. Also, there are singularities at the poles where the horizontal velocity components are not uniquely defined.

The aim of this work is to present a global triangulation-based approach for 3D velocity field modelling with the domain in the geocentric Cartesian coordinate system (\(X,Y,Z\)). The interpolation domain contains not only the reference ellipsoid surface but also the Earth’s surface with seabeds, cryosphere, waterbodies, atmosphere, and outer space. Irregularly spaced and carefully validated input position/velocity datasets are expected which are based on a long-term solution with verified discontinuities and eliminated outliers. The core idea is to use a tetrahedralization of data points so that one of the corners of each irregular tetrahedron (triangular pyramid) touches the Earth’s centre with the assigned zero velocity components. To enable extrapolation, such tetrahedron can be extended to create an unbounded triangular pyramid with its apex in the Earth’s centre. Piecewise linear 3D interpolation is used, also called the n-simplex method (e.g. Hemingway 2002). It is a generalization of the triangle-based piecewise linear 2D interpolation, which uses barycentric coordinates—the normalized areas of the corresponding sub-triangles (e.g. Carfora 2007). The resulting velocity components as well as the corresponding uncertainties are continuous across the entire 3D space.

The idea is further developed with regard to the nature of the geodetic velocity field at the Earth’s surface. The Earth’s reference sphere is replaced by the Gaussian osculating sphere which is adapted to each individual interpolation point. Next, the triangular faces of irregular tetrahedra representing the Earth’s surface are replaced by the spherical triangles. This modification provides the effect of radial interpolation (e.g. Bevilacqua et al. 2020) which is achieved through an interpolation in the 2D domain and spreading the velocity field over the 3D space. An advantage of this approach is the ability to appropriately distinguish between the vertical/up and horizontal velocity components. Only the interpolated horizontal velocity components depend on the height of the velocity vector initial point (since the Earth is round), while the vertical/up component is assumed to be height independent. Also, the vertical velocity component cannot be simply modelled as a function of the horizontal components. Recent research on the deformation mechanisms in Europe confirmed that for regions with significant vertical velocities, the latter cannot be explained by edge-driven horizontal tectonic forces and therefore do not result in crustal thinning/thickening processes (Piña-Valdés et al. 2022).

The above-given rough idea is explained in detail in the following sections. Problems encountered in its implementation are discussed and solutions are proposed. Various global and regional position/velocity and elevation datasets are used to test the performance of the proposed geodetic velocity field modelling approach.

2 Delaunay triangulation of the Earth’s surface

A triangulated irregular network (TIN) is a special case of a digital elevation model (DEM). The former is based on irregularly spaced terrain data. The terrain can be mathematically modelled by a piecewise interpolating function based on a subdivision of the 2D domain into triangles. A linear interpolating function adapted to each triangle (and elevations of its vertices) can generate a continuous surface (De Floriani and Magillo 2009). The relationship between the number of points/vertices (\(p\)), edges (\(e\)), and triangles/faces (\(t\)) in a triangle mesh is given by Euler’s formula:

$$t-e+p=2 .$$
(1)

Equation (1) is valid for the sphere; for the plane the infinite region which surrounds the convex hull of a set of points is counted as a face (e.g. Green and Sibson 1978).

The most widely used subdivision into triangles is the Delaunay triangulation (Delaunay 1934). This triangulation approach provides triangles which are as much as possible equiangular. This improves the quality of the terrain approximation and enhances the numerical stability (e.g. De Floriani and Magillo 2009). A triplet of points in a plane will define a Delaunay triangle if its circumcircle contains no point from the set in its interior, which is called the Delaunay condition. However, the Delaunay approach can also be implemented literally as the Delaunay triangulation in three dimensions, where the Delaunay condition is met with the minimum circumsphere of a triplet of data points \({P}_{a}\left({X}_{a},{Y}_{a},{Z}_{a}\right)\), \({P}_{b}\left({X}_{b},{Y}_{b},{Z}_{b}\right)\), and \({P}_{c}\left({X}_{c},{Y}_{c},{Z}_{c}\right)\) which contains no point from the set in its interior (Fig. 1). This triplet of points is coplanar with the corresponding centre of the minimum circumsphere \({P}_{m}\left({X}_{m},{Y}_{m},{Z}_{m}\right)\). Its coordinates can be derived from the system of three equations: \(\Vert \overrightarrow{{P}_{a}{P}_{m}}\Vert =\Vert \overrightarrow{{P}_{b}{P}_{m}}\Vert \), \(\Vert \overrightarrow{{P}_{a}{P}_{m}}\Vert =\Vert \overrightarrow{{P}_{c}{P}_{m}}\Vert \), and \(\overrightarrow{{P}_{a}{P}_{m}}\cdot \left(\overrightarrow{{P}_{a}{P}_{b}}\times \overrightarrow{{P}_{a}{P}_{c}}\right)=0\) (Fig. 1). The solution can be written as follows:

$$\left[\begin{array}{c}{X}_{m}\\ {Y}_{m}\\ {Z}_{m}\end{array}\right]=\frac{1}{{P}_{XYZ}}\left[\begin{array}{ccc}{P}_{YZ}& {Y}_{bc}{P}_{XY}-{Z}_{bc}{P}_{ZX}& {Z}_{ab}{P}_{ZX}-{Y}_{ab}{P}_{XY}\\ {P}_{ZX}& {Z}_{bc}{P}_{YZ}-{X}_{bc}{P}_{XY}& {X}_{ab}{P}_{XY}-{Z}_{ab}{P}_{YZ}\\ {P}_{XY}& {X}_{bc}{P}_{ZX}-{Y}_{bc}{P}_{YZ}& {Y}_{ab}{P}_{YZ}-{X}_{ab}{P}_{ZX}\end{array}\right]\times\left[\begin{array}{c}{P}_{YZ}{X}_{a} +{P}_{ZX}{Y}_{a}+{P}_{XY}{Z}_{a}\\ ({P}_{aa}-{P}_{bb})/2\\ ({P}_{bb}-{P}_{cc})/2\end{array}\right] ,$$
(2)

with the auxiliary parameters expressed as:

Fig. 1
figure 1

Delaunay triangulation in three dimensions—the Delaunay condition for a triplet of data points (\({P}_{a}\), \({P}_{b}\), and \({P}_{c}\)) is met when the minimum circumsphere (centred in \({P}_{m}\) and with radius \({r}_{m}\)) contains no point from the set in its interior; the result is a triangle mesh in 3D space (in red)

\({X}_{ij}={X}_{i}-{X}_{j}\), \({Y}_{ij}={Y}_{i}-{Y}_{j}\), \({Z}_{ij}={Z}_{i}-{Z}_{j}\),

\({P}_{XY}={X}_{ab}{Y}_{bc}-{Y}_{ab}{X}_{bc}\), \({P}_{YZ}={Y}_{ab}{Z}_{bc}-{Z}_{ab}{Y}_{bc}\), \({P}_{ZX}={Z}_{ab}{X}_{bc}-{X}_{ab}{Z}_{bc}\),

\({P}_{XYZ}={P}_{YZ}^{2}+{P}_{ZX}^{2}+{P}_{XY}^{2}\), and \({P}_{ii}={X}_{i}^{2}+{Y}_{i}^{2}+{Z}_{i}^{2}\).

The minimum circumsphere of the triplet of data points \({P}_{a}\), \({P}_{b}\), and \({P}_{c}\) will be defined only if \({P}_{XYZ}>0\); otherwise, the points are collinear. The squared radius of the minimum circumsphere can be obtained as:

$${r}_{m}^{2}={\left({X}_{m}-{X}_{a}\right)}^{2}+{\left({Y}_{m}-{Y}_{a}\right)}^{2}+{\left({Z}_{m}-{Z}_{a}\right)}^{2} .$$
(3)

A potential subset of more than three cospherical data points causes non-uniqueness of the Delaunay triangulation. Overlapping or intersecting Delaunay triangles can be avoided by a modification of the Delaunay condition for the triangle \({P}_{a}{P}_{b}{P}_{c}\) by using strict inequality (less than):

$$\begin{array}{rl}{r}_{m}^{2}<&{\left({X}_{m}-{X}_{n}\right)}^{2}+{\left({Y}_{m}-{Y}_{n}\right)}^{2}\\ &\qquad+{\left({Z}_{m}-{Z}_{n}\right)}^{2} \dots n\in \left\{1..p\right\}\setminus \left\{a,b,c\right\}\end{array} .$$
(4)

Anomalies in the surface mesh, which is created by using the proposed Delaunay triangulation of a set of 3D points on the Earth’s surface, can be divided to:

  • superfluous triangles which should be removed to provide a unique surface mesh, and

  • missing triangles (gaps) which should be fulfilled by non-Delaunay triangles to provide a continuous surface mesh.

Superfluous triangles usually appear as dangling Delaunay triangles (see Fig. 2) which have:

  • at least one side which is a boundary edge of the triangle mesh (i.e. with no adjacent triangles), and

  • at least one side which is shared by more than one triangle (i.e. with more than one adjacent triangle).

Fig. 2
figure 2

Dangling Delaunay triangle (\({P}_{a}{P}_{b}{P}_{c}\)) is a triangle which fulfils the Delaunay condition—its minimum circumsphere (centred in \({P}_{m}\)) contains no point from the set in its interior—but should be removed when creating a surface mesh (in red)

Therefore, dealing with dangling Delaunay triangles is a matter of topological operations; they can be detected by checking the number of adjacent triangles for each triangle side. A very simple solution to avoid other anomalies is moving the Delaunay triangulation process from the terrain to the Earth’s reference ellipsoid. Instead of the original Cartesian coordinates of data points (\(X,Y,Z\)), one can use the corresponding foot-point coordinates (\({X}^{\prime},{Y}^{\prime},Z^{\prime}\)) which are calculated from the geodetic coordinates (\(\varphi ,\lambda ,h\)) of original points by ignoring ellipsoidal heights (\(h\) = 0).

As shown in the numerical examples (Sect. 4.1.3), the resulting triangle mesh is almost always topologically identical to the one created by the original point positions. The advantage of the foot-point-based approach is that a unique and continuous surface mesh is usually obtained (already cleaned up). The absence of all anomalies in the final triangle mesh should be confirmed by Eq. (1). Finally, the original Cartesian coordinates of points can be used together with the topology of the triangle mesh derived by the Delaunay triangulation of their foot points.

Once providing an irregular triangle mesh for a given position/velocity dataset, a tetrahedralization of the figure of the Earth can be realized by irregular tetrahedra created from the triangles in the mesh and the centre of the Earth as their incident fourth vertex. The resulting tetrahedral volume mesh provides the domain for the velocity field interpolation. For the extrapolation, these irregular tetrahedra can be extended to the unbounded triangular pyramids. A global mesh of such pyramids fills up the entire 3D space (Fig. 3).

Fig. 3
figure 3

Tetrahedralization of the Earth—a volume mesh of triangular pyramids (irregular tetrahedra) with the incident vertex in the centre of the Earth and their bases forming a triangle mesh on the Earth’s surface (in red); these tetrahedra can be extended to the unbounded triangular pyramids which may (in case of a global dataset) span the whole 3D space

Some details on the Delaunay triangulation, its algorithms, uniqueness, generalizations and alternatives, on the pros and cons of using different approaches, and on the reference frame and epoch selection can be found in the Online Resource, Supplement S1, also pointing to some relevant literature (Green and Sibson 1978; Lee and Schachter 1980; Watson 1981; Edelsbrunner et al. 1983; Dwyer 1987; Fortune 1987; Chew 1989; Edelsbrunner and Mücke 1994; Borouchaki and Lo 1995; Anglada 1997; Renka 1997; Su and Drysdale 1997; Mücke 1998; Gudmundsson et al. 2002; Sahr et al. 2003; Domiter and Žalik 2008; Črepinšek and Mernik 2009; Petit and Luzum 2010; Centin and Signoroni 2015; Altamimi 2018).

3 3D velocity field interpolation based on the Delaunay triangulation

The Earth’s surface velocities in the position/velocity datasets are usually given in the geocentric system. For the visualization of the velocities on the map and for the interpolation purposes, their conversion from the geocentric system (\(\dot{X},\dot{Y},\dot{Z}\)) to the local geodetic/topocentric system (\(\dot{E},\dot{N},\dot{U}\)) is needed. The conversion of the velocity vector with its initial point \({P}_{i}\left({X}_{i},{Y}_{i},{Z}_{i}\right)\) can be determined in the same manner as for the local accuracy estimates for coordinates (e.g. Soler and Smith 2010) as follows:

$$\left[\begin{array}{c}{\dot{E}}_{i}\\ {\dot{N}}_{i}\\ {\dot{U}}_{i}\end{array}\right]={{\varvec{R}}}_{i}\left[\begin{array}{c}{\dot{X}}_{i}\\ {\dot{Y}}_{i}\\ {\dot{Z}}_{i}\end{array}\right] ,$$
(5)

with \({{\varvec{R}}}_{i}=\left[\begin{array}{ccc}-{\text{sin}}{\lambda }_{i}& {\text{cos}}{\lambda }_{i}& 0\\ -{\text{sin}}{\varphi }_{i}{\text{cos}}{\lambda }_{i}& -{\text{sin}}{\varphi }_{i}{\text{sin}}{\lambda }_{i}& {\text{cos}}{\varphi }_{i}\\ {\text{cos}}{\varphi }_{i}{\text{cos}}{\lambda }_{i}& {\text{cos}}{\varphi }_{i}{\text{sin}}{\lambda }_{i}& {\text{sin}}{\varphi }_{i}\end{array}\right]\) being the corresponding rotation matrix.

The required curvilinear geographic/geodetic coordinates of the velocity vector initial point (\({\varphi }_{i},{\lambda }_{i}\)) can be obtained from the Cartesian coordinates. In the spherical Earth model, a solution avoiding indeterminacy and sensitivity to round-off error around the antipodal meridian of Greenwich (\(\lambda =\pm \pi \)) can be obtained by following Vermeille (2004):

$$\left[\begin{array}{l}\varphi =2{\text{arctan}}\frac{Z}{\sqrt{{X}^{2}+{Y}^{2}}+\sqrt{{X}^{2}+{Y}^{2}+{Z}^{2}}} \\ \lambda =\left\{\begin{array}{cc}\frac{\pi }{2}-2{\text{arctan}}\frac{X}{\sqrt{{X}^{2}+{Y}^{2}}+Y}& \dots Y\ge 0\\ 2{\text{arctan}}\frac{X}{\sqrt{{X}^{2}+{Y}^{2}}-Y}-\frac{\pi }{2}& \dots Y<0\end{array}\right.\end{array}\right.$$
(6)

Since the conversion of points on the \(Z\)-axis (e.g. poles) leads to infinitely many solutions: \(\lambda \in \left(\left.-\pi ,\pi \right]\right.\), the directions of the corresponding horizontal velocity components (\({\dot{E}}_{i},{\dot{N}}_{i}\)) cannot be uniquely defined either. In the ellipsoidal Earth model, one of the available exact/closed-form, iterative, or approximate solutions (e.g. Borkowski 1989; Fukushima 2006; Sjöberg 2008; Vermeille 2002, 2004, 2011; Guo and Shen 2023) can be used instead of Eq. (6).

The law of variance–covariance propagation (e.g. Vaníček and Krakiwsky 1986, pp. 196–197) should be applied in the conversion of the corresponding velocity uncertainties from the geocentric to the topocentric system. By neglecting the impact of the uncertainties of the velocity vector initial point coordinates, the variance–covariance matrix of the topocentric velocity with its initial point \({P}_{i}\) can be determined as follows:

$$\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}}\\ \ddots \end{array}\right]={{\varvec{R}}}_{i}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{i}}\\ \ddots \end{array}\right]{{\varvec{R}}}_{i}^{T} ,$$
(7)

with \(\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{i}}\\ \ddots \end{array}\right]=\left[\begin{array}{ccc}{\upsigma }_{{\dot{X}}_{i}{\dot{X}}_{i}}& {\upsigma }_{{\dot{X}}_{i}{\dot{Y}}_{i}}& {\upsigma }_{{\dot{X}}_{i}{\dot{Z}}_{i}}\\ {\upsigma }_{{\dot{Y}}_{i}{\dot{X}}_{i}}& {\upsigma }_{{\dot{Y}}_{i}{\dot{Y}}_{i}}& {\upsigma }_{{\dot{Y}}_{i}{\dot{Z}}_{i}}\\ {\upsigma }_{{\dot{Z}}_{i}{\dot{X}}_{i}}& {\upsigma }_{{\dot{Z}}_{i}{\dot{Y}}_{i}}& {\upsigma }_{{\dot{Z}}_{i}{\dot{Z}}_{i}}\end{array}\right]\), \(\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}}\\ \ddots \end{array}\right]=\left[\begin{array}{ccc}{\upsigma }_{{\dot{E}}_{i}{\dot{E}}_{i}}& {\upsigma }_{{\dot{E}}_{i}{\dot{N}}_{i}}& {\upsigma }_{{\dot{E}}_{i}{\dot{U}}_{i}}\\ {\upsigma }_{{\dot{N}}_{i}{\dot{E}}_{i}}& {\upsigma }_{{\dot{N}}_{i}{\dot{N}}_{i}}& {\upsigma }_{{\dot{N}}_{i}{\dot{U}}_{i}}\\ {\upsigma }_{{\dot{U}}_{i}{\dot{E}}_{i}}& {\upsigma }_{{\dot{U}}_{i}{\dot{N}}_{i}}& {\upsigma }_{{\dot{U}}_{i}{\dot{U}}_{i}}\end{array}\right]\), and \({\sigma }_{ii}\) being the variance of the \(i\)-th and \({\sigma }_{ij}\) the covariance between the \(i\)-th and \(j\)-th velocity components.

Like the horizontal velocities themselves (see above), their uncertainties cannot be uniquely defined on the \(Z\)-axis.

Since the rotation matrix is orthogonal, the conversions of the velocities and the corresponding variance–covariance matrices from the topocentric to the geocentric system can simply be obtained as:

$$\left[\begin{array}{c}{\dot{X}}_{i}\\ {\dot{Y}}_{i}\\ {\dot{Z}}_{i}\end{array}\right]={{\varvec{R}}}_{i}^{T}\left[\begin{array}{c}{\dot{E}}_{i}\\ {\dot{N}}_{i}\\ {\dot{U}}_{i}\end{array}\right] ,$$
(8)

and

$$\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{i}}\\ \ddots \end{array}\right]={{\varvec{R}}}_{i}^{T}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}}\\ \ddots \end{array}\right]{{\varvec{R}}}_{i} ,$$
(9)

with the rotation matrix \({{\varvec{R}}}_{i}\) as in Eq. (5).

Furthermore, each topocentric velocity in a triplet of data points (triangle vertices) should for the interpolation purposes be rotated around the Earth’s centre from the corresponding data point to the interpolation point (i.e. along the great circle or geodesics). It means that only the horizontal velocity is rotated (Fig. 4); the vertical/up velocity remains unchanged. This rotation may be small and negligible in a dense position/velocity dataset, especially for regions close to the equator. However, it is crucial for an adequate global velocity field modelling with inevitable large (e.g. overseas) triangles and particularly in polar regions. An appropriately modified topocentric velocity from the first triangle vertex—with its initial point in \({P}_{a}\)—can be obtained by assigning the coordinates of the interpolation point \({P}_{i}\) and rotating around the normal to the reference surface as follows:

$$\left[\begin{array}{c}{\dot{E}}_{ai}\\ {\dot{N}}_{ai}\\ {\dot{U}}_{ai}\end{array}\right]=\left[\begin{array}{ccc}{\text{cos}}{\vartheta }_{ai}& {\text{sin}}{\vartheta }_{ai}& 0\\ -{\text{sin}}{\vartheta }_{ai}& {\text{cos}}{\vartheta }_{ai}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}{\dot{E}}_{a}\\ {\dot{N}}_{a}\\ {\dot{U}}_{a}\end{array}\right] ,$$
(10)

with the clockwise horizontal rotation \({\vartheta }_{ai}\), which is determined by the forward and reverse azimuths between the interpolation and data points as follows:

Fig. 4
figure 4

Rotation of the horizontal velocity (in red) around the Earth’s centre \({P}_{o}\) from the data point \({P}_{a}\) to the interpolation point \({P}_{i}\); for clarity reasons, the selected velocity points towards the interpolation point; its rotation in the topocentric system \({\vartheta }_{ai}\) is, however, direction independent and can be determined from the forward and reverse azimuths between both points—\({\alpha }_{ia}\) and \({\alpha }_{ai}\)

$${\vartheta }_{ai}={\alpha }_{ia}-{\alpha }_{ai}+\pi .$$
(11)

In the spherical Earth model, the azimuth (\({\alpha }_{ij}\)) can be determined as (e.g. Sjöberg 2006):

$${\alpha }_{ij}={\text{arctan}}2\left({\text{sin}}\left({\lambda }_{j}-{\lambda }_{i}\right),{\text{cos}}{\varphi }_{i}{\text{tan}}{\varphi }_{j}-{\text{sin}}{\varphi }_{i}{\text{cos}}\left({\lambda }_{j}-{\lambda }_{i}\right)\right) ,$$
(12)

with \({\text{arctan}}2\left(x,y\right)\) being the two-argument arctangent function with the codomain \(\left(\left.-\pi ,\pi \right]\right.\). The azimuth is not defined for points on the \(Z\)-axis. In the ellipsoidal Earth model, the geodetic/ellipsoidal azimuth is required; Vincenty (1975) formula or one of its alternatives (e.g. Thomas and Featherstone 2005; Sjöberg and Shirazian 2012; Karney 2013; Wang et al. 2022) can be used instead of Eq. (12).

The law of variance–covariance propagation should be applied to determine the variance–covariance matrix of the appropriately rotated topocentric velocity as follows:

$$\begin{aligned}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ai}}\\ \ddots \end{array}\right]=&\,\left[\begin{array}{ccc}{\text{cos}}{\vartheta }_{ai}& {\text{sin}}{\vartheta }_{ai}& 0\\ -{\text{sin}}{\vartheta }_{ai}& {\text{cos}}{\vartheta }_{ai}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{a}}\\ \ddots \end{array}\right]\\ &\left[\begin{array}{ccc}{\text{cos}}{\vartheta }_{ai}& -{\text{sin}}{\vartheta }_{ai}& 0\\ {\text{sin}}{\vartheta }_{ai}& {\text{cos}}{\vartheta }_{ai}& 0\\ 0& 0& 1\end{array}\right] ,\end{aligned}$$
(13)

with the rotation angle \({\vartheta }_{ai}\) from Eq. (11).

Both required conversions of the velocities (rotations from the geocentric to the topocentric system and around the normal to the reference surface) fail for points lying on the \(Z\)-axis. Nevertheless, these points can still be used as data or interpolation points. It can be checked that for a data point \({P}_{a}\) on the \(Z\)-axis, the appropriately rotated topocentric velocity can be obtained directly from the geocentric velocity by rotating it around the \(Z\)-axis as follows:

$$\left[\begin{array}{c}{\dot{E}}_{ai}\\ {\dot{N}}_{ai}\\ {\dot{U}}_{ai}\end{array}\right]=\left[\begin{array}{ccc}{\text{cos}}{\psi }_{ai}& {\text{sin}}{\psi }_{ai}& 0\\ -{\text{sin}}{\psi }_{ai}& {\text{cos}}{\psi }_{ai}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}{\dot{X}}_{a}\\ {\dot{Y}}_{a}\\ {\dot{Z}}_{a}\end{array}\right] ,$$
(14)

with the clockwise horizontal rotation \({\psi }_{ai}\) equal to \({\lambda }_{i}+\pi /2\) for the data points on the \(Z\)-axis above the equatorial plane and equal to \({-\lambda }_{i}\) for the data points beneath the equatorial plane, which can be written as:

$${\psi }_{ai}=\frac{\pi }{4}+{\text{sgn}}{Z}_{a}\left({\lambda }_{i}+\frac{\pi }{4}\right) .$$
(15)

The variance–covariance matrix of the appropriately rotated topocentric velocity can be obtained as follows:

$$\begin{aligned}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ai}}\\ \ddots \end{array}\right]=&\,\left[\begin{array}{ccc}{\text{cos}}{\psi }_{ai}& {\text{sin}}{\psi }_{ai}& 0\\ -{\text{sin}}{\psi }_{ai}& {\text{cos}}{\psi }_{ai}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{a}}\\ \ddots \end{array}\right]\\ &\left[\begin{array}{ccc}{\text{cos}}{\psi }_{ai}& -{\text{sin}}{\psi }_{ai}& 0\\ {\text{sin}}{\psi }_{ai}& {\text{cos}}{\psi }_{ai}& 0\\ 0& 0& 1\end{array}\right] ,\end{aligned}$$
(16)

with the rotation angle \({\psi }_{ai}\) from Eq. (15).

If an interpolation point lies on the \(Z\)-axis, its interpolation shall—contrary to the regular case—be done directly in the geocentric system. The velocities of the corresponding triplet of data points (triangle vertices) should—together with their variance–covariance matrices—regularly be converted from the geocentric to the topocentric system using Eqs. (5) and (7). For interpolation purposes, each topocentric velocity should, however, further be converted directly to the geocentric system. It should be rotated around the Earth’s centre from the corresponding data point to the interpolation point (i.e. along the meridian). It can be checked that the appropriately rotated geocentric velocity with its initial point in \({P}_{a}\) can be obtained directly from the topocentric system by the appropriate reflections (for the interpolation points beneath the equatorial plane) and rotation around the normal to the reference surface as follows:

$$\left[\begin{array}{c}{\dot{X}}_{ai}\\ {\dot{Y}}_{ai}\\ {\dot{Z}}_{ai}\end{array}\right]=\left[\begin{array}{ccc}1& 0& 0\\ 0& {\text{sgn}}{Z}_{i}& 0\\ 0& 0& {\text{sgn}}{Z}_{i}\end{array}\right]\left[\begin{array}{ccc}{\text{cos}}{\chi }_{ai}& {\text{sin}}{\chi }_{ai}& 0\\ -{\text{sin}}{\chi }_{ai}& {\text{cos}}{\chi }_{ai}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}{\dot{E}}_{a}\\ {\dot{N}}_{a}\\ {\dot{U}}_{a}\end{array}\right] ,$$
(17)

with the clockwise horizontal rotation \({\chi }_{ai}\) equal to \({-\lambda }_{a}-\pi /2\) for the interpolation point \({P}_{i}\) on the \(Z\)-axis above the equatorial plane and equal to \({\lambda }_{a}+\pi /2\) for the interpolation point beneath the equatorial plane, which can be written as:

$${\chi }_{ai}=-{\text{sgn}}{Z}_{i}\left({\lambda }_{a}+\frac{\pi }{2}\right) .$$
(18)

After the multiplication of the reflection and rotation matrices in Eq. (17), the variance–covariance matrix of the appropriately rotated geocentric velocity can be obtained as follows:

$$\begin{aligned}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{ai}}\\ \ddots \end{array}\right]=&\,\left[\begin{array}{ccc}{\text{cos}}{\chi }_{ai}& {\text{sin}}{\chi }_{ai}& 0\\ -{\text{sgn}}{Z}_{i}{\text{sin}}{\chi }_{ai}& {\text{sgn}}{Z}_{i}{\text{cos}}{\chi }_{ai}& 0\\ 0& 0& {\text{sgn}}{Z}_{i}\end{array}\right]\\ &\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{a}}\\ \ddots \end{array}\right]\times\left[\begin{array}{ccc}{\text{cos}}{\chi }_{ai}& -{\text{sgn}}{Z}_{i}{\text{sin}}{\chi }_{ai}& 0\\ {\text{sin}}{\chi }_{ai}& {\text{sgn}}{Z}_{i}{\text{cos}}{\chi }_{ai}& 0\\ 0& 0& {\text{sgn}}{Z}_{i}\end{array}\right] ,\end{aligned}$$
(19)

with the rotation angle \({\chi }_{ai}\) from Eq. (18).

3.1 Method I: Continuous piecewise linear 3D velocity field interpolation

The following approach is based on the spherical Earth model and provides velocity field modelling for the entire 3D space. A continuous velocity field modelling can be achieved by the piecewise linear 3D interpolation/extrapolation which is based on the n-simplex interpolation (Hemingway 2002). The latter is entirely local; every interpolation point is only influenced by the vertices of the corresponding Delaunay triangle. The coordinate origin \({P}_{o}\left(\mathrm{0,0},0\right)\) as the centre of curvature of the Earth’s surface, with the assigned zero velocities, is chosen as the incident fourth vertex of all irregular tetrahedra. The (signed) volume of the parallelepiped, created by the three vectors between the vertices of the irregular tetrahedron \({P}_{a}{P}_{b}{P}_{c}{P}_{o}\), is determined by the scalar triple/mixed product of the corresponding vectors, i.e. \(\overrightarrow{{P}_{a}{P}_{b}}\cdot \left(\overrightarrow{{P}_{a}{P}_{c}}\times \overrightarrow{{P}_{a}{P}_{o}}\right)\). The volume of this tetrahedron is one sixth of the volume of the parallelepiped and can be obtained as:

$${V}_{abco}=\frac{1}{6}\left|{P}_{YZ}{X}_{c}+{P}_{ZX}{Y}_{c}+{P}_{XY}{Z}_{c}\right| ,$$
(20)

with the auxiliary parameters \({P}_{YZ}\), \({P}_{ZX}\), and \({P}_{XY}\) as in Eq. (2).

The interpolated/extrapolated components \({\dot{E}}_{i}\),\({\dot{N}}_{i}\), and \({\dot{U}}_{i}\) of the velocity of the interpolation point \({P}_{i}\) inside the unbounded triangular pyramid determined by the triangle \({P}_{a}{P}_{b}{P}_{c}\) and the apex in the coordinate origin \({P}_{o}\) (with the assigned zero velocities) can be obtained by using the normalized volumes of the corresponding sub-tetrahedra as follows:

$$\left[\begin{array}{c}{\dot{E}}_{i}\\ {\dot{N}}_{i}\\ {\dot{U}}_{i}\end{array}\right]=\frac{1}{{V}_{abco}}\left({V}_{ibco}\left[\begin{array}{c}{\dot{E}}_{ai}\\ {\dot{N}}_{ai}\\ {\dot{U}}_{ai}\end{array}\right]+{V}_{aico}\left[\begin{array}{c}{\dot{E}}_{bi}\\ {\dot{N}}_{bi}\\ {\dot{U}}_{bi}\end{array}\right]+{V}_{abio}\left[\begin{array}{c}{\dot{E}}_{ci}\\ {\dot{N}}_{ci}\\ {\dot{U}}_{ci}\end{array}\right]\right) ,$$
(21)

with the appropriately rotated topocentric velocities at the triplet of data points from Eqs. (10) or (14) and \({V}_{abio}\), \({V}_{aico}\), and \({V}_{ibco}\) being the volumes of the irregular tetrahedra created by the interpolation point \({P}_{i}\), the coordinate origin \({P}_{o}\), and the triangle sides \({P}_{a}{P}_{b}\), \({P}_{a}{P}_{c}\), and \({P}_{b}{P}_{c}\), respectively (Fig. 5). Equation (20) should be applied in their calculation, mutatis mutandis.

Fig. 5
figure 5

Continuous piecewise linear 3D velocity field interpolation (Method I) is based on the volumes of the irregular tetrahedra (in red) which are created by the interpolation point \({P}_{i}\), the corresponding triplet of data points \({P}_{a}\), \({P}_{b}\), and \({P}_{c}\), and the coordinate origin \({P}_{o}\)

In case of an interpolation point on the \(Z\)-axis, the interpolated velocity should be obtained directly in the geocentric system as follows:

$$\left[\begin{array}{c}{\dot{X}}_{i}\\ {\dot{Y}}_{i}\\ {\dot{Z}}_{i}\end{array}\right]=\frac{1}{{V}_{abco}}\left({V}_{ibco}\left[\begin{array}{c}{\dot{X}}_{ai}\\ {\dot{Y}}_{ai}\\ {\dot{Z}}_{ai}\end{array}\right]+{V}_{aico}\left[\begin{array}{c}{\dot{X}}_{bi}\\ {\dot{Y}}_{bi}\\ {\dot{Z}}_{bi}\end{array}\right]+{V}_{abio}\left[\begin{array}{c}{\dot{X}}_{ci}\\ {\dot{Y}}_{ci}\\ {\dot{Z}}_{ci}\end{array}\right]\right) ,$$
(22)

with the appropriately rotated geocentric velocities at the triplet of data points from Eq. (17).

If an interpolation point lies on the face of the unbounded triangular pyramid determined by the triangle in the mesh, one of the three tetrahedra involved in the calculation by Eq. (22) will be degenerated (i.e. its volume will be zero) and the corresponding data point (opposite to this edge) will have no impact on the interpolated value. Since the volume of each triangular pyramid can also be calculated as the product of one third of the area of the selected triangular base and the height of the pyramid (measured perpendicularly from this base to the fourth vertex), the interpolation in this case depends only on the areas of both triangles on the face of the unbounded triangular pyramid (Fig. 12). Similarly, the interpolation on the line segments inside, on the faces, or on the edges of the unbounded triangular pyramid depends only on the distances of both data points (i.e. endpoints) from the interpolation point (Hemingway 2002). Starting from these facts, one can prove the piecewise velocity interpolation/extrapolation based on Eq. (21) is continuous across the entire 3D space.

The law of variance–covariance propagation should be applied to determine the uncertainties of the interpolated velocities in the topocentric system. A practical approach would be:

  • to ignore the correlations between the velocities of the triplet of data points used for the interpolation (which are typically not contained in the position/velocity dataset) and

  • to neglect the impact of the uncertainties of the data point coordinates on the uncertainties of the volumes of the corresponding irregular tetrahedra.

The variance–covariance matrix of the velocity of the interpolation point \({P}_{i}\) can thus be obtained as follows:

$$\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}}\\ \ddots \end{array}\right]=\frac{1}{{V}_{abco}^{2}}\left({V}_{ibco}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ai}}\\ \ddots \end{array}\right]+{V}_{aico}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{bi}}\\ \ddots \end{array}\right]+{V}_{abio}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ci}}\\ \ddots \end{array}\right]\right) ,$$
(23)

with the corresponding variance–covariance matrices of the velocities at the triplet of data points from Eqs. (13) or (16). For the interpolation points on the \(Z\)-axis with the velocities obtained directly in the geocentric system using Eq. (22), the variance–covariance matrix can be obtained as follows:

$$\begin{aligned}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{i}}\\ \ddots \end{array}\right]=&\frac{1}{{V}_{abco}^{2}}\left({V}_{ibco}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{ai}}\\ \ddots \end{array}\right]+{V}_{aico}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{bi}}\\ \ddots \end{array}\right]\right.\\ &\left.+{V}_{abio}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{X}\dot{Y}\dot{Z}}_{ci}}\\ \ddots \end{array}\right]\right) ,\end{aligned}$$
(24)

with the corresponding variance–covariance matrices of the velocities at the triplet of data points from Eq. (19). The resulting topocentric velocity from Eq. (21) and its variance–covariance matrix from Eq. (23) should finally be converted to the geocentric system by applying Eqs. (8) and (9).

It can be checked that Eqs. (23) and (24) guarantee continuity for the uncertainties of the velocity components on the faces of the adjacent unbounded triangular pyramids. There will be no abrupt changes in the dimensions and orientations of the standard confidence ellipsoids of the velocities if their initial points are located close enough.

The interpolation steps in the continuous piecewise linear 3D velocity field interpolation (Method I) are as follows:

  • conversion of the geocentric velocity components and their uncertainties at the data points to the topocentric system (excluding data points on the \(Z\)-axis) using Eqs. (5) and (7),

  • rotation of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the data points around the Earth’s centre to the corresponding interpolation point using Eqs. (10) or (14) and (13) or (16),

  • determination of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the interpolation point using Eqs. (21) or (22) and (23) or (24), and

  • conversion of the topocentric velocity components and their uncertainties at the interpolation point to the geocentric system using Eqs. (8) and (9).

3.2 Method II: Piecewise quasi-linear 3D velocity field interpolation

When replacing the spherical Earth model with the ellipsoidal one, the coordinate origin does not coincide with the centre of curvature of the Earth’s surface, anymore. The radii of curvature at the selected geodetic latitude \({\varphi }_{i}\) differ in the north and east directions (e.g. Torge 2001, pp. 95–96) as follows:

$${\rho }_{i}=\frac{a\left(1-{e}^{2}\right)}{\sqrt{{\left(1-{e}^{2}{{\text{sin}}}^{2}{\varphi }_{i}\right)}^{3}}} ,$$
(25)
$${\upsilon }_{i}=\frac{a}{\sqrt{1-{e}^{2}{{\text{sin}}}^{2}{\varphi }_{i}}} ,$$
(26)

where \({\rho }_{i}\) is the radius of curvature in the meridian (meridian radius of curvature) and \({\upsilon }_{i}\) is the radius of curvature in the prime vertical (prime vertical radius of curvature), with \({\varphi }_{i}\) being the geodetic latitude, \(a\) the semi-major axis, and \(e\) the first numerical eccentricity of the reference ellipsoid. The ellipsoidal Earth model can be introduced in the velocity field modelling by employing the Gaussian osculating sphere adapted to each individual interpolation point \({P}_{i}\). Its radius is determined as the Gaussian radius of curvature of the reference ellipsoid which can be obtained as the geometric mean of both principal radii of curvature from Eqs. (25) and (26) as follows (e.g. Torge 2001, p. 98):

$${R}_{i}=\sqrt{{\rho }_{i}{\upsilon }_{i}}=\frac{a\sqrt{1-{e}^{2}}}{1-{e}^{2}{{\text{sin}}}^{2}{\varphi }_{i}} .$$
(27)

The centre of the Gaussian osculating sphere lies on the normal through the selected interpolation point \({P}_{i}\) where the height of the latter should be lowered by \({R}_{i}+{h}_{i}\) (Fig. 6). It is located within the area defined by the evolute of the meridional ellipse; an upper bound of its offset from the Earth’s centre is \(a{e}^{2}/\sqrt{1-{e}^{2}}\) which equals ~42.84 km. Also, there is a singular disc in the equatorial plane with the radius of \(a{e}^{2}\) which equals ~42.70 km and centred at the Earth’s centre (Vermeille 2011).

Fig. 6
figure 6

Geometric derivation of the centre of the Gaussian osculating sphere \({P}_{s}\) (with the Cartesian coordinates \({X}_{s}\), \({Y}_{s}\), and \({Z}_{s}\), in red) which is adapted to the interpolation point \({P}_{i}\) (with the Cartesian coordinates \({X}_{i}\), \({Y}_{i}\), and \({Z}_{i}\), and the geodetic coordinates \({\varphi }_{i}\), \({\lambda }_{i}\), and \({h}_{i}\)); the normal through it to the reference ellipsoid is expanded downwards from its foot point \({P}_{i}^{\prime}\) by the corresponding Gaussian radius of curvature \({R}_{i}\) and is drawn in the meridional plane (above) and projected to the equatorial plane (below) with the reference ellipsoid centred in the coordinate origin \({P}_{o}\)

The coordinates of the centre of the Gaussian osculating sphere \({P}_{s}\) adapted to the interpolation point \({P}_{i}\) can be derived geometrically (Fig. 6) as follows:

$$\left[\begin{array}{c}{X}_{s}\\ {Y}_{s}\\ {Z}_{s}\end{array}\right]=\left[\begin{array}{c}{X}_{i}\\ {Y}_{i}\\ {Z}_{i}\end{array}\right]-\left\{\begin{array}{cc}\left[\begin{array}{c}\left({R}_{i}+{h}_{i}\right){\text{cos}}{\varphi }_{i}{\text{cos}}{\lambda }_{i}\\ \left({R}_{i}+{h}_{i}\right){\text{cos}}{\varphi }_{i}{\text{sin}}{\lambda }_{i}\\ \left({R}_{i}+{h}_{i}\right){\text{sin}}{\varphi }_{i}\end{array}\right]& {\dots X}_{i}^{2}+{Y}_{i}^{2}>0\\ \left[\begin{array}{c}0\\ 0\\ \left({a}^{2}/b+{h}_{i}\right){\text{sgn}}{Z}_{i}\end{array}\right] & {\dots X}_{i}^{2}+{Y}_{i}^{2}=0\end{array}\right.$$
(28)

Equation (28) is based on geodetic coordinates which may cause problems for the interpolation points closer than ~43 km from the Earth’s centre (see above). Apart from potential singularity, the accuracy of the coordinate conversion methods may be low since they usually focus on points in the proximity of the reference ellipsoid surface (e.g. Claessens 2019).

The velocity field can now be modelled by the quasi-linear 3D interpolation/extrapolation which is very similar to the n-simplex interpolation but uses the irregular tetrahedron determined by the triangle \({P}_{a}{P}_{b}{P}_{c}\) and the centre of the interpolation-point-adapted Gaussian osculating sphere (\({P}_{s}\)) instead of the coordinate origin (\({P}_{o}\)) with zero coordinates (Fig. 7). The volume of this tetrahedron can be obtained as:

$${V}_{abcs}=\frac{1}{6}\left|{P}_{YZ}\left({X}_{c}-{X}_{s}\right)+{P}_{ZX}\left({Y}_{c}-{Y}_{s}\right)+{P}_{XY}\left({Z}_{c}-{Z}_{s}\right)\right| ,$$
(29)

with the auxiliary parameters \({P}_{YZ}\), \({P}_{ZX}\), and \({P}_{XY}\) as in Eq. (2).

Fig. 7
figure 7

Piecewise quasi-linear 3D velocity field interpolation (Method II) is based on the volumes of the irregular tetrahedra (in red) which are created by the interpolation point \({P}_{i}\), the corresponding triplet of data points \({P}_{a}\), \({P}_{b}\), and \({P}_{c}\), and the centre of the Gaussian osculating sphere \({P}_{s}\); \({P}_{i}^{\prime}\) is the foot point of the interpolation point on the reference ellipsoid surface;\({R}_{i}\) is the corresponding Gaussian radius of curvature and \({P}_{o}\) is the coordinate origin

Except of replacing Eqs. (20) with (29) for the volume calculation, the same Eqs. (21) and (23) or Eqs. (22) and (24) can be used to determine the interpolated/extrapolated velocity and the corresponding variance–covariance matrix at the interpolation point \({P}_{i}\).

Contrary to the spherical Earth model approach (Method I), the interpolation on the faces of the adjacent unbounded triangular pyramids depends here also on the algorithm for looking up appropriate pyramids (see Sect. 3.5) and continuity may not be achieved. The problem is a small angle appearing between two normal sections formed by the normal to the reference ellipsoid through a standpoint (an interpolation point) and either an elevated target point (a data point) or its foot point on the reference ellipsoid—the so-called skew-normal reduction in a classical terrestrial geodetic network (e.g. Torge 2001, pp. 243–244).

The interpolation steps in the piecewise quasi-linear 3D velocity field interpolation (Method II) are as follows:

  • conversion of the geocentric velocity components and their uncertainties at the data points to the topocentric system (excluding data points on the \(Z\)-axis) using Eqs. (5) and (7),

  • rotation of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the data points around the Earth’s centre to the corresponding interpolation point using Eqs. (10) or (14) and (13) or (16),

  • determination of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the interpolation point using Eqs. (21) or (22) and (23) or (24), but with the centre of the interpolation-point-adapted Gaussian osculating sphere (\({P}_{s}\)) instead of the coordinate origin (\({P}_{o}\)) in the volume calculation, and

  • conversion of the topocentric velocity components and their uncertainties at the interpolation point to the geocentric system using Eqs. (8) and (9).

3.3 Method III: Piecewise radial 3D velocity field interpolation

The piecewise linear and quasi-linear 3D interpolations (Methods I and II) which are based on the n-simplex method will be appropriate solutions if the density of data points is high enough (see Sect. 4.3.2). Small flat triangular faces in the triangle mesh approximating the Earth’s reference surface do not differ much from the corresponding spherical/ellipsoidal triangular faces. However, in some areas (e.g. oceans, polar zones, deserts, etc.) the density of data points is much lower than in the rest of the globe. Therefore, the accuracy of the proposed interpolation approach will further be improved if the triangle mesh is blown into a spherical shape. This approach is also referred to as the radial interpolation which preserves radial symmetry (e.g. Bevilacqua et al. 2020), here with the centre of symmetry in the centre of the Earth or in the centre of the interpolation-point-adapted Gaussian osculating sphere (Fig. 8). Instead of the volumes of the irregular tetrahedra (triangular pyramids) from Eq. (29), the volumes of the triangular spherical/spheroidal pyramids should be applied. Calculating the volume of such a pyramid is not a trivial task, even if its base represents a cell of a regular longitude-latitude grid on the reference ellipsoid surface. Further complications arise from the fact that parallel surfaces to the reference ellipsoid surface are non-ellipsoidal surfaces (e.g. Kelly and Šavrič 2021), and things become even more complicated when dealing with non-parallel surfaces.

Fig. 8
figure 8

Linear (left) and radial (right) interpolation/extrapolation approaches—a 2D presentation in the meridional plane with isolines (in red), showing values of the selected velocity component—\(x\), \(x/2\), and \(3x/2\)—at the ellipsoid surface and at the distance equal to the Gaussian semi-radius of curvature (\({R}_{i}/2\)) beneath and above it, respectively; for illustrative purposes, the interpolation point \({P}_{i}\) and the corresponding data points \({P}_{a}\), \({P}_{b}\) are placed at the same height and the selected velocity component is equal at these data points; \({P}_{s}\) is the centre of the Gaussian osculating sphere and \({P}_{o}\) is the coordinate origin

Let us focus first on the velocity field interpolation across the 2D domain. Instead of the original coordinates of data points and interpolation points, the corresponding foot-point coordinates should be used as input data for the interpolation. Data points \({P}_{a}\), \({P}_{b}\), \({P}_{c}\) and interpolation point \({P}_{i}\) which are projected to the reference ellipsoid surface (\(h\) = 0) shall be denoted as \({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), \({P}_{c}^{\prime}\), and \({P}_{i}^{\prime}\), respectively. Since the ratio of the volume of a spherical pyramid to its spherical base area is a constant (\(R/3\)), the volumes of the triangular spherical pyramids can in the interpolation formula be replaced by the areas of the corresponding spherical triangles on the interpolation-point-adapted Gaussian osculating sphere which is introduced in the previous subsection. This is an alternative way for the velocity field interpolation across the 2D domain—directly on the reference surface (instead of using planar/projected or curvilinear geodetic coordinates).

The area of the corresponding spherical triangle on the interpolation-point-adapted Gaussian osculating sphere can be obtained from its spherical excess (e.g. Sjöberg 2006) as:

$${A}_{abc}={\varepsilon }_{abc}{R}_{i}^{2} ,$$
(30)

with the interpolation-point-adapted Gaussian radius of curvature of the reference ellipsoid \({R}_{i}\) from Eq. (27).

The triangle side angular lengths (measured in radians) of the spherical triangle defined by the foot points of the corresponding data points (\({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), \({P}_{c}^{\prime}\))—angles \(\angle {P}_{b}^{\prime}{P}_{s}{P}_{c}^{\prime}\) (\({a}_{abc}\)), \(\angle {P}_{a}^{\prime}{P}_{s}{P}_{c}^{\prime}\) (\({b}_{abc}\)), and \(\angle {P}_{a}^{\prime}{P}_{s}{P}_{b}^{\prime}\) (\({c}_{abc}\)), see Fig. 9—should be determined first. They can be determined by the dot products of the corresponding vectors and the cosines of the triangle side angular lengths (\({c}_{ab}\), \({c}_{bc}\), and \({c}_{ca}\)) can be expressed as:

$$\left[\begin{array}{c}{c}_{bc}={\text{cos}}{a}_{abc}=\frac{{X}_{bs}^{\prime}{X}_{cs}^{\prime}+{Y}_{bs}^{\prime}{Y}_{cs}^{\prime}+{Z}_{bs}^{\prime}{Z}_{cs}^{\prime}}{{d}_{bs}{d}_{cs}}\\ {c}_{ca}={\text{cos}}{b}_{abc}=\frac{{X}_{as}^{\prime}{X}_{cs}^{\prime}+{Y}_{as}^{\prime}{Y}_{cs}^{\prime}+{Z}_{as}^{\prime}{Z}_{cs}^{\prime}}{{d}_{as}{d}_{cs}}\\ {c}_{\mathit{ab}}={\text{cos}}{c}_{abc}=\frac{{X}_{as}^{\prime}{X}_{bs}^{\prime}+{Y}_{as}^{\prime}{Y}_{bs}^{\prime}+{Z}_{as}^{\prime}{Z}_{bs}^{\prime}}{{d}_{as}{d}_{bs}}\end{array}\right.$$
(31)

with the coordinate differences \({X}_{ij}^{\prime}={X}_{i}^{\prime}-{X}_{j}^{\prime}\), \({Y}_{ij}^{\prime}={Y}_{i}^{\prime}-{Y}_{j}^{\prime}\), and \({Z}_{ij}^{\prime}={Z}_{i}^{\prime}-{Z}_{j}^{\prime}\), and the distances between the data points and the centre of the interpolation-point-adapted Gaussian osculating sphere (\({P}_{s}\))—all close to \({R}_{i}\)—which can be expressed as \({d}_{is}=\sqrt{{X}_{is}^{{\prime}2}+{Y}_{is}^{{\prime}2}+{Z}_{is}^{{\prime}2}}\). By applying the cosine rules for sides, one can now derive the angles of the spherical triangle \({\alpha }_{abc}\), \({\beta }_{abc}\), and \({\gamma }_{abc}\) (e.g. Todhunter 1886, p. 20). The spherical excess (measured in steradians) is the solid angle determined as \({\varepsilon }_{abc}={\alpha }_{abc}+{\beta }_{abc}+{\gamma }_{abc}-\pi \) (Todhunter 1886, p. 74). However, this simple straightforward formula is numerically poor for small spherical triangles (as compared to the radius of the sphere). For example, it is useless for calculating the parcel areas in the cadastre (Berk and Ferlan 2018). An alternative formula based on l’Huilier’s theorem is preferable (e.g. Carfora 2007), which derives the spherical excess directly from the triangle side angular lengths from Eq. (31) as follows (Todhunter 1886, pp. 74–75):

$${\varepsilon }_{abc}=4{\text{arctan}}\sqrt{{\text{tan}}\frac{{s}_{abc}}{2}{\text{tan}}\frac{{s}_{abc}-{a}_{abc}}{2}{\text{tan}}\frac{{s}_{abc}-{b}_{abc}}{2}{\text{tan}}\frac{{s}_{abc}-{c}_{abc}}{2}} ,$$
(32)

with the semi-perimeter of the spherical triangle calculated as \({s}_{abc}=\left({a}_{abc}+{b}_{abc}+{c}_{abc}\right)/2\). This spherical excess considerably improves the performance of the spherical triangle area formula—Eq. (30). However, in case of a sliver spherical triangle (nearly degenerate), the area based on Eq. (32) becomes ill-determined, too. From the solution of the spherical triangle area for the unit sphere with expansion (Lestringant et al. 2020, Appx. A), one can derive this approximate formula for the triangle area on the interpolation-point-adapted Gaussian osculating sphere:

$$\begin{aligned}{A}_{abc}\cong& \frac{6{V}_{abcs}^{\prime}}{{R}_{i}\left(1+{c}_{ab}\right)}\\ &\left(1+\frac{{c}_{ab}-{c}_{ca}}{2\left(1+{c}_{ab}\right)}+\frac{{\left({c}_{ab}-{c}_{ca}\right)}^{2}-\frac{\left(1+{c}_{ab}\right)\left(2+{c}_{ab}\right)\left({c}_{bc}-1\right)}{1+{c}_{bc}}}{3{\left(1+{c}_{ab}\right)}^{2}}\right) ,\end{aligned}$$
(33)

with the interpolation-point-adapted Gaussian radius of curvature of the reference ellipsoid \({R}_{i}\) from Eq. (27), the cosines of the triangle side angular lengths (\({c}_{ab}\), \({c}_{bc}\), and \({c}_{ca}\)) from Eq. (31), and the volume (\({V}_{abcs}^{\prime}\)) of the corresponding irregular tetrahedron (triangular pyramid) \({P}_{a}^{\prime}{P}_{b}^{\prime}{P}_{c}^{\prime}{P}_{s}\) calculated by applying Eq. (29).

Fig. 9
figure 9

Angles (\({\alpha }_{abc}\), \({\beta }_{abc}\), and \({\gamma }_{abc}\)) and side angular lengths (\({a}_{abc}\), \({b}_{abc}\), and \({c}_{abc}\)) of a spherical triangle (in red) with its vertices at the foot points \({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), and \({P}_{c}^{\prime}\) of the corresponding triplet of data points (\({P}_{a}\), \({P}_{b}\), and \({P}_{c}\)), which are further projected from the reference ellipsoid surface to the surface of the interpolation-point-adapted Gaussian osculating sphere—\({P}_{a}^{^{\prime\prime} }\), \({P}_{b}^{^{\prime\prime} }\), and \({P}_{c}^{^{\prime\prime} }\); \({P}_{i}^{\prime}\) is the foot point of the interpolation point (\({P}_{i}\)), \({R}_{i}\) is the corresponding Gaussian radius of curvature and \({P}_{o}\) is the coordinate origin

Equation (33) is an optimal solution when \({c}_{bc}\ge {c}_{ab}\wedge {c}_{bc}\ge {c}_{ca}\); to achieve the highest accuracy for a particular spherical triangle, an optimal order of its vertices should be determined by circular permutation (Lestringant et al. 2020, Appx. A). This can be implemented by a recursive function as follows:

$${A}_{abc}=\left\{\begin{array}{cc}\text{Eq. (}{33}\text{)}& \dots {c}_{bc}\ge {c}_{ab}\wedge {c}_{bc}\ge {c}_{ca}\\ {A}_{bca}& \dots {c}_{bc}<{c}_{ab}\vee {c}_{bc}<{c}_{ca}\end{array}\right.$$
(34)

which requires up to two levels of recursion.

To achieve full consistency of Eqs. (33) with (30), the coordinates of the spherical triangle vertices should be modified before calculating the volume of the tetrahedron. Instead of the foot points of the triplet of data points lying on the reference ellipsoid surface (\({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), and \({P}_{c}^{\prime}\)), the corresponding points lying on the surface of the interpolation-point-adapted Gaussian osculating sphere (\({P}_{a}^{^{\prime\prime} }\), \({P}_{b}^{^{\prime\prime} }\), and \({P}_{c}^{^{\prime\prime} }\)) should be used (Fig. 9). The modified coordinates of the triangle vertex (e.g. \({P}_{a}^{^{\prime\prime} }\)) can be calculated as follows:

$$\left[\begin{array}{c}{X}_{a}^{^{\prime\prime} }\\ {Y}_{a}^{^{\prime\prime} }\\ {Z}_{a}^{^{\prime\prime} }\end{array}\right]=\left[\begin{array}{c}{X}_{s}\\ {Y}_{s}\\ {Z}_{s}\end{array}\right]+\frac{{R}_{i}}{\sqrt{{X}_{as}^{{\prime}2}+{X}_{bs}^{{\prime}2}+{X}_{cs}^{{\prime}2}}}\left[\begin{array}{c}{X}_{as}^{\prime}\\ {X}_{bs}^{\prime}\\ {X}_{cs}^{\prime}\end{array}\right] ,$$
(35)

with the interpolation-point-adapted Gaussian radius of curvature of the reference ellipsoid \({R}_{i}\) from Eq. (27) and the coordinate differences \({X}_{as}^{\prime}\), \({X}_{bs}^{\prime}\), and \({X}_{cs}^{\prime}\) as in Eq. (31). When observed from \({P}_{s}\), \({P}_{a}^{^{\prime\prime} }\) points in the same direction as \({P}_{a}^{\prime}\) but lies at a distance equal to \({R}_{i}\).

The decision whether using the exact or recursive approximate solution for the spherical triangle area should be based on the minimum difference between the semi-perimeter of the spherical triangle used in Eq. (32) and the triangle side angular lengths; the condition can be written as follows:

$${\text{min}}\left({s}_{abc}-{a}_{abc},{ s}_{abc}-{b}_{abc},{ s}_{abc}-{c}_{abc}\right)\ge \Theta ,$$
(36)

with the threshold value (\(\Theta \)) given in angular measure (e.g. 0.000005 rad; see Sect. 4.2). The exact solution with Eq. (32) shall be used if the condition in Ineq. (36) is met, and the approximate solution with Eq. (34) otherwise. This criterion can filter out sliver triangles (no matter of their size) but also small triangles (no matter of their shape); a spherical triangle with at least one side measuring less than \(2\Theta \) cannot meet the condition in Ineq. (36).

To extend the proposed radial velocity field interpolation from the ellipsoidal surface to the 3D domain, additional conversions of the velocities and the corresponding variance–covariance matrices are needed, i.e.:

  • their reduction to the reference ellipsoid surface before the interpolation (for the data points) and

  • their restoration to the original position after the interpolation (for the interpolation point).

These conversions introduce scaling of the horizontal velocity which depends:

  • on the ellipsoidal height of the velocity vector initial point and

  • on the principal radii of curvature of the reference ellipsoid surface at the foot point of the velocity vector initial point.

This is an enhancement of the radial approach with a more rigorous ellipsoidal earth model; instead of approximating the curvature of the reference ellipsoid surface with the Gaussian radius of curvature (Fig. 8), both principal radii of curvature are introduced. However, Eq. (34) for the spherical triangle area should be replaced by an algorithm for calculating the geodetic/ellipsoidal triangle area (e.g. Sjöberg 2006; Karney 2013; Nowak and Nowak Da Costa 2022) to implement a fully rigorous approach.

The reduction of the velocities and their uncertainties at the data points should be carried out before their rotations around the Earth’s centre from the corresponding data point to the interpolation point. The conversion/reduction of the velocity from the original data point (e.g. \({P}_{a}\)) to the corresponding foot-point position (\({P}_{a}^{\prime}\)) can be accomplished as follows:

$$\left[\begin{array}{c}{\dot{E}}_{a}^{\prime}\\ {\dot{N}}_{a}^{\prime}\\ {\dot{U}}_{a}^{\prime}\end{array}\right]=\left[\begin{array}{ccc}{\upsilon }_{a}/\left({\upsilon }_{a}+{h}_{a}\right)& 0& 0\\ 0& {\rho }_{a}/\left({\rho }_{a}+{h}_{a}\right)& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}{\dot{E}}_{a}\\ {\dot{N}}_{a}\\ {\dot{U}}_{a}\end{array}\right] ,$$
(37)

with the velocity from Eq. (5), the ellipsoidal height \({h}_{a}\) of the original data point (\({P}_{a}\)), and the corresponding radii of curvature in the meridian \({\rho }_{a}\) and in the prime vertical \({\upsilon }_{a}\) from Eqs. (25) and (26). Both horizontal velocity components are reduced with respect to the principal radii of the curvature of the reference ellipsoid surface, while the vertical/up velocity component remains unchanged (see argumentation in Introduction section). The scaling is based on the proportionality of the lengths of the legs in the pairs of the right-angled triangles lying in the plane of the meridian or the prime vertical and with their right angles at the interpolation point and at its foot point on the reference ellipsoid, respectively. The same Eq. (37) for the reduction to the reference ellipsoid surface can be used for potential data points on the \(Z\)-axis, but with original/geocentric velocities instead of the topocentric ones. Obviously, Eq. (37) does not allow points on the evolute of the meridional ellipse (i.e. \({h}_{a}=-{\rho }_{a}\)) or points on the \(Z\)-axis inside this evolute (i.e. \({h}_{a}=-{\upsilon }_{a}\)) to be used as data points. But a ban on data points closer than ~43 km from the Earth’s centre (see Sect. 3.2) is irrelevant for the geodetic velocity field modelling.

Again, the law of variance–covariance propagation should be applied in the conversion/reduction of the velocity uncertainties. The corresponding variance–covariance matrix of the velocity which refers to the foot-point position of the data point (\({P}_{a}^{\prime}\)) can be obtained as follows:

$$\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{a}^{\prime}}\\ \ddots \end{array}\right]=\left[\begin{array}{ccc}{\upsilon }_{a}/\left({\upsilon }_{a}+{h}_{a}\right)& 0& 0\\ 0& {\rho }_{a}/\left({\rho }_{a}+{h}_{a}\right)& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{a}}\\ \ddots \end{array}\right]\times\left[\begin{array}{ccc}{\upsilon }_{a}/\left({\upsilon }_{a}+{h}_{a}\right)& 0& 0\\ 0& {\rho }_{a}/\left({\rho }_{a}+{h}_{a}\right)& 0\\ 0& 0& 1\end{array}\right] ,$$
(38)

with the corresponding variance–covariance matrix from Eq. (7) or the original/geocentric variance–covariance matrix instead (for potential data points on the \(Z\)-axis, see above).

The interpolated topocentric velocity components \({\dot{E}}_{i}^{\prime}\),\({\dot{N}}_{i}^{\prime}\), and \({\dot{U}}_{i}^{\prime}\) of the interpolation point projected to the reference ellipsoid surface \({P}_{i}^{\prime}\) can be obtained as follows:

$$\left[\begin{array}{c}{\dot{E}}_{i}^{\prime}\\ {\dot{N}}_{i}^{\prime}\\ {\dot{U}}_{i}^{\prime}\end{array}\right]=\frac{1}{{A}_{abc}}\left({A}_{ibc}\left[\begin{array}{c}{\dot{E}}_{ai}^{\prime}\\ {\dot{N}}_{ai}^{\prime}\\ {\dot{U}}_{ai}^{\prime}\end{array}\right]+{A}_{aic}\left[\begin{array}{c}{\dot{E}}_{bi}^{\prime}\\ {\dot{N}}_{bi}^{\prime}\\ {\dot{U}}_{bi}^{\prime}\end{array}\right]+{A}_{abi}\left[\begin{array}{c}{\dot{E}}_{ci}^{\prime}\\ {\dot{N}}_{ci}^{\prime}\\ {\dot{U}}_{ci}^{\prime}\end{array}\right]\right) ,$$
(39)

with the appropriately rotated topocentric velocities at the triplet of data points from Eqs. (10) or (14), which are beforehand reduced to the reference ellipsoid surface using Eq. (37), and \({A}_{abc}\), \({A}_{abi}\), \({A}_{aic}\), and \({A}_{ibc}\) being the areas of the spherical triangle and the corresponding sub-triangles created by the interpolation point \({P}_{i}^{\prime}\) and the corresponding triangle sides \({P}_{a}^{\prime}{P}_{b}^{\prime}\), \({P}_{a}^{\prime}{P}_{c}^{\prime}\), and \({P}_{b}^{\prime}{P}_{c}^{\prime}\) (Fig. 10). Equations (30) and (32) or Eq. (34) should be used as alternatives for determining the areas of small and/or sliver spherical triangles. Again, the same Eq. (39) can be used for potential interpolation points on the \(Z\)-axis, but with appropriately rotated geocentric velocities (instead of the topocentric ones) from Eq. (17). The interpolation on the side of two adjacent spherical triangles depends only on the velocities of both data points on this side (i.e. endpoints). The interpolated values, however, do not agree when calculated from the left and right triangles unless they are symmetrical about their common side. In general, the continuity is not achieved.

Fig. 10
figure 10

Piecewise radial 3D velocity field interpolation (Method III) is based on the areas of the spherical triangles (in red) with their vertices at the foot point \({P}_{i}^{\prime}\) of the interpolation point (\({P}_{i}\)) and the foot points \({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), and \({P}_{c}^{\prime}\) of the corresponding triplet of data points (\({P}_{a}\), \({P}_{b}\), and \({P}_{c}\)), which are further projected from the reference ellipsoid surface to the surface of the interpolation-point-adapted Gaussian osculating sphere—\({P}_{a}^{^{\prime\prime} }\), \({P}_{b}^{^{\prime\prime} }\), and \({P}_{c}^{^{\prime\prime} }\);\({R}_{i}\) is the corresponding Gaussian radius of curvature and \({P}_{o}\) is the coordinate origin

By analogy to Eq. (23), the variance–covariance matrix of the velocity of the interpolation point projected to the reference ellipsoid surface \({P}_{i}^{\prime}\) can be obtained as follows:

$$\begin{aligned}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}^{\prime}}\\ \ddots \end{array}\right] &=\frac{1}{{A}_{abc}^{2}}\left({A}_{ibc}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ai}^{\prime}}\\ \ddots \end{array}\right]+{A}_{aic}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{bi}^{\prime}}\\ \ddots \end{array}\right]\right. \\ &\quad \left.+{A}_{abi}^{2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ci}^{\prime}}\\ \ddots \end{array}\right]\right), \end{aligned}$$
(40)

with the corresponding variance–covariance matrices of the appropriately rotated topocentric velocities at the triplet of data points from Eqs. (13) or (16), which are beforehand reduced to the reference ellipsoid surface using Eq. (38), or the variance–covariance matrix of the corresponding geocentric velocity (for potential interpolation points on the \(Z\)-axis, see above) from Eq. (19). Like the interpolated velocity in one of the data points used for the interpolation, the obtained variance–covariance matrix is equal to the variance–covariance matrix of this data point velocity. The interpolated variance–covariance matrix components may, however, not agree at the sides of adjacent spherical triangles.

As an inverse to Eq. (37), the conversion/restoration of the interpolated velocity from the foot point of the interpolation point (\({P}_{i}^{\prime}\)) to its original position (\({P}_{i}\)) can be accomplished as follows:

$$\left[\begin{array}{c}{\dot{E}}_{i}\\ {\dot{N}}_{i}\\ {\dot{U}}_{i}\end{array}\right]=\left[\begin{array}{ccc}\left({\upsilon }_{i}+{h}_{i}\right)/{\upsilon }_{i}& 0& 0\\ 0& \left({\rho }_{i}+{h}_{i}\right)/{\rho }_{i}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}{\dot{E}}_{i}^{\prime}\\ {\dot{N}}_{i}^{\prime}\\ {\dot{U}}_{i}^{\prime}\end{array}\right] ,$$
(41)

with the velocity from Eq. (39), the ellipsoidal height \({h}_{i}\) of the interpolation point (\({P}_{i}\)), and the corresponding radii of curvature in the meridian \({\rho }_{i}\) and in the prime vertical \({\upsilon }_{i}\) from Eqs. (25) and (26). Again, the same Eq. (41) can be used for potential interpolation points on the \(Z\)-axis, but with appropriately interpolated geocentric velocity (instead of the topocentric one). The corresponding variance–covariance matrix of the interpolated velocity which refers to the original position of the interpolation point (\({P}_{i}\)) can be obtained as follows:

$$\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}}\\ \ddots \end{array}\right]=\left[\begin{array}{ccc}\left({\upsilon }_{i}+{h}_{i}\right)/{\upsilon }_{i}& 0& 0\\ 0& \left({\rho }_{i}+{h}_{i}\right)/{\rho }_{i}& 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}^{\prime}}\\ \ddots \end{array}\right]\times\left[\begin{array}{ccc}\left({\upsilon }_{i}+{h}_{i}\right)/{\upsilon }_{i}& 0& 0\\ 0& \left({\rho }_{i}+{h}_{i}\right)/{\rho }_{i}& 0\\ 0& 0& 1\end{array}\right] ,$$
(42)

with the corresponding variance–covariance matrix of the interpolated velocity from Eq. (40) or the variance–covariance matrix of the corresponding geocentric velocity (for potential interpolation point on the \(Z\)-axis, see above). Finally, the conversion of the interpolated topocentric velocity and its variance–covariance matrix to the geocentric system should be done by applying Eqs. (8) and (9).

Contrary to the piecewise linear and quasi-linear 3D interpolations (Methods I and II), the radial interpolation approach provides radial symmetry (Fig. 8). For example, if the vertical velocity component is equal for all three triangle vertices (a homogeneous land uplift or subsidence over the region), the obtained vertical components for all interpolated vectors within this triangle will be equal to this velocity component, too.

The interpolation steps in the piecewise radial 3D velocity field interpolation (Method III) are as follows:

  • projection of the interpolation and data points to the reference ellipsoid surface (i.e. determination of their foot points),

  • conversion of the geocentric velocity components and their uncertainties at the data points to the topocentric system (excluding data points on the \(Z\)-axis) using Eqs. (5) and (7),

  • conversion/reduction of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the data points to the reference ellipsoid surface using Eqs. (37) and (38),

  • rotation of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the data points around the Earth’s centre to the corresponding interpolation point using Eqs. (10) or (14) and (13) or (16),

  • determination of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the foot point of the interpolation point using Eqs. (39) and (40),

  • conversion/restoration of the interpolated topocentric (exceptionally geocentric) velocity components and their uncertainties to the original position of the interpolation point using Eqs. (41) and (42), and

  • conversion of the topocentric velocity components and their uncertainties at the interpolation point to the geocentric system using Eqs. (8) and (9).

3.4 Method IV: Continuous piecewise quasi-radial 3D velocity field interpolation

A disadvantage of the piecewise radial 3D velocity field interpolation as proposed in the previous subsection (Method III) is its discontinuity on the triangle sides in the mesh. A way to solve this problem is combining linear and radial interpolation approaches. The fact is that interpolated values will be almost equivalent if one replaces spherical triangle areas with the corresponding planar triangle areas within a dense position/velocity dataset (e.g. Carfora 2007). By analogy, the volume of a pyramid with a spherical/spheroidal triangular base can be approximated by the volume of the corresponding pyramid with a flat triangular base tied at its vertices on the reference ellipsoid surface.

The interpolation process is very similar to the one used in the piecewise radial 3D velocity field interpolation (Method III). An important change is, however, introduced in the interpolation formula. Instead of using Eq. (39) like in Method III, the interpolated velocity components \({\dot{E}}_{i}^{\prime}\), \({\dot{N}}_{i}^{\prime}\), and \({\dot{U}}_{i}^{\prime}\) of the interpolation point projected to the reference ellipsoid surface \({P}_{i}^{\prime}\) should be obtained as follows:

$$\begin{aligned}\left[\begin{array}{c}{\dot{E}}_{i}^{\prime}\\ {\dot{N}}_{i}^{\prime}\\ {\dot{U}}_{i}^{\prime}\end{array}\right]&=\frac{1}{{V}_{ibcs}^{\prime}+{V}_{aics}^{\prime}+{V}_{abis}^{\prime}}\\ &\quad \times \left({V}_{ibcs}^{\prime}\left[\begin{array}{c}{\dot{E}}_{ai}^{\prime}\\ {\dot{N}}_{ai}^{\prime}\\ {\dot{U}}_{ai}^{\prime}\end{array}\right]+{V}_{aics}^{\prime}\left[\begin{array}{c}{\dot{E}}_{bi}^{\prime}\\ {\dot{N}}_{bi}^{\prime}\\ {\dot{U}}_{bi}^{\prime}\end{array}\right]+{V}_{abis}^{\prime}\left[\begin{array}{c}{\dot{E}}_{ci}^{\prime}\\ {\dot{N}}_{ci}^{\prime}\\ {\dot{U}}_{ci}^{\prime}\end{array}\right]\right),\end{aligned}$$
(43)

with the appropriately rotated reduced topocentric (exceptionally geocentric) velocities at the triplet of data points and \({V}_{abis}^{\prime}\), \({V}_{aics}^{\prime}\), and \({V}_{ibcs}^{\prime}\) being the volumes of the triangular pyramids which are created by the centre of the interpolation-point-adapted Gaussian osculating sphere \({P}_{s}\) and the foot points of the interpolation point \({P}_{i}^{\prime}\) and the corresponding triplet of data points \({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), and \({P}_{c}^{\prime}\) (Fig. 11). Equation (29) should be applied in the volume calculation, mutatis mutandis. Except of using the foot points of the interpolation and data points, the difference as compared to Eq. (21) is that the total volume of the pyramid \({V}_{abcs}^{\prime}\) is replaced by the sum of the volumes of the three sub-pyramids with the incident vertex at the foot point of the interpolation point. This interpolation is continuous everywhere and smooth almost everywhere; more information is available in the Online Resource, Supplement S2, also referring to Sambridge et al. (1995).

Fig. 11
figure 11

Continuous piecewise quasi-radial 3D velocity field interpolation (Method IV) is based on the volumes of the irregular tetrahedra (in red) which are created by the foot point \({P}_{i}^{\prime}\) of the interpolation point (\({P}_{i}\)), the foot points \({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), and \({P}_{c}^{\prime}\) of the corresponding triplet of data points (\({P}_{a}\), \({P}_{b}\), and \({P}_{c}\)), and the centre of the interpolation-point-adapted Gaussian osculating sphere \({P}_{s}\); \({R}_{i}\) is the corresponding Gaussian radius of curvature and \({P}_{o}\) is the coordinate origin

The variance–covariance matrix of the velocity of the interpolation point projected to the reference ellipsoid surface \({P}_{i}^{\prime}\) should be obtained as follows:

$$\begin{aligned}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{i}^{\prime}}\\ \ddots \end{array}\right]&=\frac{1}{{\left({V}_{ibcs}^{\prime}+{V}_{aics}^{\prime}+{V}_{abis}^{\prime}\right)}^{2}}\left({V}_{ibcs}^{^{\prime}2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ai}^{\prime}}\\ \ddots \end{array}\right]\right. \\ &\quad +\left.{V}_{aics}^{^{\prime}2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{bi}^{\prime}}\\ \ddots \end{array}\right]+{V}_{abis}^{^{\prime}2}\left[\begin{array}{c}\ddots \\ {\Sigma }_{{\dot{E}\dot{N}\dot{U}}_{ci}^{\prime}}\\ \ddots \end{array}\right]\right),\end{aligned}$$
(44)

with the corresponding variance–covariance matrices of the appropriately rotated reduced topocentric (exceptionally geocentric) velocities at the triplet of data points. It can be checked that Eq. (44) guarantees continuity for the uncertainties of the velocity components.

The interpolation steps in the continuous piecewise quasi-radial 3D velocity field interpolation (Method IV) are as follows:

  • projection of the interpolation and data points to the reference ellipsoid surface (i.e. determination of their foot points),

  • conversion of the geocentric velocity components and their uncertainties at the data points to the topocentric system (excluding data points on the \(Z\)-axis) using Eqs. (5) and (7),

  • conversion/reduction of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the data points to the reference ellipsoid surface using Eqs. (37) and (38),

  • rotation of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the data points around the Earth’s centre to the corresponding interpolation point using Eqs. (10) or (14) and (13) or (16),

  • determination of the topocentric (exceptionally geocentric) velocity components and their uncertainties at the foot point of the interpolation point using Eqs. (43) and (44),

  • conversion/restoration of the interpolated topocentric (exceptionally geocentric) velocity components and their uncertainties to the original position of the interpolation point using Eqs. (41) and (42), and

  • conversion of the topocentric velocity components and their uncertainties at the interpolation point to the geocentric system using Eqs. (8) and (9).

3.5 Point-in-pyramid algorithm and continuity issues

Finding out whether the interpolation point \({P}_{i}\) within the unbounded triangular pyramid determined by the triangle \({P}_{a}{P}_{b}{P}_{c}\) lies inside or outside the irregular tetrahedron \({P}_{a}{P}_{b}{P}_{c}{P}_{s}\) can be based on the volumes of the corresponding sub-pyramids:

$$\begin{aligned}{V}_{abcs}&=\left\{\begin{array}{l}{V}_{abis}+{V}_{aics}+{V}_{ibcs}+{V}_{abci}\\ \quad \dots {P}_{i} \text{ beneath the triangulated surface}\\ {V}_{abis}+{V}_{aics}+{V}_{ibcs}-{V}_{abci}\\ \quad \dots {P}_{i} \text{ on or above the triangulated surface}\end{array}\right.\end{aligned}$$
(45)

where \({V}_{abci}\) is the volume of the irregular tetrahedron created by the interpolation point \({P}_{i}\) and the triangle vertices \({P}_{a}\), \({P}_{b}\), and \({P}_{c}\). The condition is met by adding this volume for an interpolation point beneath the triangulated surface of the Earth (interpolation) or subtracting this volume for a point above the surface (extrapolation). This dilemma disappears when using the foot points of the corresponding interpolation and data points; the projected interpolation point \({P}_{i}^{\prime}\) never lies beneath the planar triangular face with the vertices at the corresponding data points \({P}_{a}^{\prime}\), \({P}_{b}^{\prime}\), and \({P}_{c}^{\prime}\) which are projected to the reference ellipsoid. This fact leads to an unambiguous criterion to be used in a point-in-pyramid algorithm:

$${V}_{abcs}^{\prime}-{V}_{abis}^{\prime}-{V}_{aics}^{\prime}-{V}_{ibcs}^{\prime}+{V}_{abci}^{\prime}=0 .$$
(46)

A fuzzy approach should be used, having in mind that the interpolation point can be placed also at the face or edge of the adjacent pyramids as well as that one cannot count on achieving full equality in Eq. (46) when using standard floating-point arithmetic. The sought unbounded pyramid defining triplet of data points \({T}_{i}=\left\{{P}_{a},{P}_{b},{P}_{c}\right\}\) to be used to determine the velocity of the interpolation point \({P}_{i}\) can be obtained as:

$$\begin{aligned}T_{i} = \mathop {{\text{argmin}}}\limits_{{\left\{ {P_{j} ,P_{k} ,P_{l} } \right\}}} \left| {V_{{jkls}}^{\prime} - V_{{jkis}}^{\prime} - V_{{jils}}^{\prime} - V_{{ikls}}^{\prime} + V_{{jkli}}^{\prime} } \right| \\ \ldots \left\{ {P_{j} ,P_{k} ,P_{l} } \right\} \in \left\{ {{\text{`triangles' }}\,{\text{in}}\,{\text{ the}}\,{\text{ mesh}}} \right\},\end{aligned} $$
(47)

where \({V}_{jkls}^{\prime}\), \({V}_{jkis}^{\prime}\), \({V}_{jils}^{\prime}\), \({V}_{ikls}^{\prime}\), and \({V}_{jkli}^{\prime}\) are the volumes of the triangular pyramids which are created by the centre of the interpolation-point-adapted Gaussian osculating sphere \({P}_{s}\), the foot point of the interpolation point \({P}_{i}^{\prime}\), and the foot points of the corresponding triplet of data points \({P}_{j}^{\prime}\), \({P}_{k}^{\prime}\), and \({P}_{l}^{\prime}\). Equation (29) should be applied in the volume calculations, mutatis mutandis. Equation (47) works well for local and global position/velocity datasets, except for the interpolation points closer than ~43 km from the Earth’s centre (see also Sect. 3.2).

The above introduced algorithm for looking up an appropriate pyramid can be used in Methods II–IV (see Sects. 3.2–3.4). In Method IV, the proof of strict continuity of the velocity field interpolation on the reference ellipsoid surface may be derived from the fact that the interpolation on the side of the ellipsoidal triangle, which is implicitly defined by Eq. (47), depends only on the velocities of both triangle vertices and the areas of the corresponding adjacent planar triangles (Fig. 12). Namely, the ratio between the volumes of two pyramids with the common apex is equal to the ratio between the areas of their (coplanar) bases. This implies that the interpolated values at the (curved) common side of two adjacent ellipsoidal triangles in the mesh are equal no matter which of both triangles (at each individual point on this side) is used for the interpolation (see also Sect. 3.1). Finally, this continuous velocity field on the reference ellipsoid surface can be spread over the 3D space by applying Eq. (41) and the resulting velocity field is uniquely defined and continuous everywhere except within the area close to the Earth’s centre (see above).

Fig. 12
figure 12

Continuous piecewise quasi-radial 3D velocity field interpolation (Method IV) on the side of the triangle in the mesh is based on the areas of the adjacent triangles (in red) which are created by the foot point \({P}_{i}^{\prime}\) of the interpolation point (\({P}_{i}\)), the foot points \({P}_{a}^{\prime}\) and \({P}_{b}^{\prime}\) of the corresponding pair of data points (\({P}_{a}\) and \({P}_{b}\)), and the centre of the interpolation-point-adapted Gaussian osculating sphere \({P}_{s}\)—i.e. with no impact of the third data point (\({P}_{c}\)); \({R}_{i}\) is the corresponding Gaussian radius of curvature and \({P}_{o}\) is the coordinate origin

An appropriately adapted algorithm can be used also in Method I (see Sect. 3.1) where:

  • the original interpolation and data points are projected to the surface of a geocentric sphere and

  • Eq. (20) is used instead of Eq. (29) for the volume calculation.

Since using a volume-based interpolation approach, the volume of the reference sphere may be tied to the volume of the reference ellipsoid which requires the so-called Earth’s volumetric radius (e.g. Moritz 2000):

$${R}_{o}=\sqrt[3]{{a}^{2}b}=a\sqrt[6]{1-{e}^{2}} ,$$
(48)

where \(a\) and \(b\) are semi-major and semi-minor axes and \(e\) is the first numerical eccentricity of the reference ellipsoid. Before using Eq. (47), the interpolation and data points (e.g. \({P}_{a}\)) should be projected to the reference sphere surface; the corresponding foot-point coordinates can be obtained as follows:

$$\left[\begin{array}{c}{X}_{a}^{\prime}\\ {Y}_{a}^{\prime}\\ {Z}_{a}^{\prime}\end{array}\right]=\frac{{R}_{o}}{\sqrt{{X}_{a}^{2}+{Y}_{a}^{2}+{Z}_{a}^{2}}}\left[\begin{array}{c}{X}_{a}\\ {Y}_{a}\\ {Z}_{a}\end{array}\right] ,$$
(49)

with the Earth’s centred reference sphere with the radius \({R}_{o}\) from Eq. (48). When observed from the Earth’s centre \({P}_{o}\), \({P}_{a}^{\prime}\) points in the same direction as \({P}_{a}\) but lies at a distance equal to \({R}_{o}\).

4 Numerical tests

All test computations are carried out using a prototype software developed in C++. Double-precision floating-point arithmetic is used. All results of the numerical tests are generated with no rounding at any computation step. Geometric constants defining the Earth’s geocentric equipotential ellipsoid are taken from the Geodetic Reference System 1980 (Moritz 2000). The Sjöberg (2008) strict solution for the Cartesian to geodetic coordinate conversion is combined by the Vermeille (2004) solution which avoids numerical problems around the antipodal meridian of Greenwich. Vincenty (1975) formula is used for the geodetic/ellipsoidal azimuth calculation. All graphics in this section are provided in KML format and displayed in Google Earth (2022). Eight global and regional position/velocity datasets are used to test the performance of the proposed velocity field modelling approach, which are given in Table 1.

Table 1 An overview of input position/velocity datasets used in the numerical tests (as data points)

The ITRF2014 Network datasets are all global, and the ITRF14-GNSS dataset (Fig. 13) is the densest global dataset (Tables 3 and 4). The ITRF14-SLR dataset (Fig. 14) creates the largest Delaunay triangle containing entire Antarctica (Fig. 19a). The ITRF14-DORIS dataset (Fig. 15) is the sparsest dataset (Tables 3 and 4). The ITRF14-VLBI dataset (Fig. 16) is the least problematic in terms of clustering of data points (Table 2). The four regional position/velocity datasets are all based on the EPN with a rather homogeneous density of GNSS stations—at least in the contiguous Europe (Fig. 17a). The EPND dataset is complemented by different national CORS networks (Fig. 17b). The CEGRN dataset is densified by both, active (CORS) and passive (campaign-based) networks of GNSS sites, especially in some southern and eastern European countries (Fig. 18a). It is consistent with the ETRF2000 and fulfils the criteria in the Guidelines for EUREF densifications, see Legrand et al. (2021) for the latter. The EDV dataset is the densest regional dataset (Tables 3 and 4). It is based on the active and passive network contributions of the national mapping agencies and other data analysis centres (Fig. 18b). This dataset creates the smallest Delaunay triangle resulting from the test datasets (Fig. 19b).

Fig. 13
figure 13

The Delaunay triangulation of the ITRF14-GNSS (2016) dataset—a global surface mesh of 2006 triangles with areas between 1.4 m2 and 13.9 mil. km2; the average triangle side length is 622 km, and the average triangle area is 245,165 km2

Fig. 14
figure 14

The Delaunay triangulation of the ITRF14-SLR (2016) dataset (laser telescopes)—a global surface mesh of 266 triangles with areas between 91.6 m2 and 33.7 mil. km2; the average triangle side length is 1547 km, and the average triangle area is 1536,628 km2

Fig. 15
figure 15

The Delaunay triangulation of the ITRF14-DORIS (2016) dataset (radio beacons)—a global surface mesh of 218 triangles with areas between 37.2 m2 and 10.5 mil. km2; the average triangle side length is 2546 km, and the average triangle area is 2187,107 km2

Fig. 16
figure 16

The Delaunay triangulation of the ITRF14-VLBI (2016) dataset (radio telescopes)—a global surface mesh of 304 triangles with areas between 0.5 ha and 27.4 mil. km2; the average triangle side length is 1450 km, and the average triangle area is 1399,682 km2

Table 2 Number of data points left after filtering out those under the selected distance threshold
Fig. 17
figure 17

a The Delaunay triangulation of the EPN dataset (EPN 2022)—a pan-European surface mesh of 698 triangles with areas between 0.4 ha and 2.4 mil. km2; the average triangle side length is 267 km and the average triangle area is 37,738 km2. b The Delaunay triangulation of the EPN Densification dataset (EPND 2021)—a surface mesh of 5143 triangles with areas between 18.9 m2 and 2.2 mil. km2; the average triangle side length is 82 km and the average triangle area is 5042 km2

Fig. 18
figure 18

a The Delaunay triangulation of GNSS sites in the CEGRN dataset (CEGRN 2019)—a pan-European surface mesh of 2343 triangles with areas between 0.4 km2 and 2.4 mil. km2; the average triangle side length is 107 km and the average triangle area is 11,248 km2. b The Delaunay triangulation of GNSS sites in the EDV dataset (EDV 2022)—a surface mesh of 13,785 triangles with areas between 0.8 m2 and 0.5 mil. km2; the average triangle side length is 41 km and the average triangle area is 1037 km2

Table 3 Number of triangles in the surface mesh obtained after filtering out data points under the selected distance threshold
Table 4 Average data point spacing (km) in the surface mesh obtained after filtering out data points under the selected distance threshold
Fig. 19
figure 19

The largest Delaunay triangle with an area of 33.7 mil. km2 is resulting from the ITRF14-SLR dataset and connects the SLR stations 7405 in Concepción, Chile, 7502 in Sutherland, South Africa, and 7843 in Tidbinbilla, Australia (left); the smallest Delaunay triangle with an area of 0.8 m2 is resulting from the EDV dataset and connects three GNSS stations GOP6, GOP7, and GOPE at the Pecný Geodetic Observatory, Czechia (right)

The surface meshes resulting from the test datasets are presented in Figs. 13, 14, 15, 16, 17 and 18. All distances are calculated as spatial straight-line distances between the corresponding pairs of foot points lying on the reference ellipsoid surface. Also, the triangle areas are calculated as the planar areas in the 3D space.

All eight datasets are triangulated by applying four different filters removing points which are too close together; the distance thresholds of 1 m, 10 m, 100 m, and 1000 m are used. Reasons for close-lying points in the position/velocity datasets can be new/renamed station after its rebuilding, collocated stations at the global geodetic observatories (Boucher et al. 2015) with twin radio telescopes, multiple GNSS stations, etc. However, the reason for filtering out the points is also rounding their horizontal geodetic coordinates to two decimals (0.01° \(\cong \) 1.1 km) in the CEGRN dataset and to five decimals (0.00001° \(\cong \) 1.1 m) in the EDV dataset.

An insight into the characteristics of the test datasets is provided by the basic statistics which describe the resulting surface meshes when using different filters for close-lying points. Numbers of original and remaining points are given in Table 2. Although the ITRF14-DORIS dataset seems to be the most homogeneously spaced global dataset (Fig. 15), even 30.6% of the points are removed when using 1-m threshold. The reason is that each DORIS station (radio beacon) is considered a new station (with a new ID) when the transmitting antenna is changed—regardless of being mounted above the same ground mark. The second largest proportion (7.2%) of removed points can be observed for the CEGRN dataset, which is due to the aforementioned rough rounding of the data-point coordinates which causes fusion of close-lying GNSS stations.

Numbers of triangles in the final surface mesh (i.e. resulting from the Delaunay triangulation but appropriately modified to represent a unique and continuous surface—by removing dangling triangles and filling up the gaps) are given in Table 3. One can observe that the ratio of the number of triangles to the number of data points is close to 2, especially for large datasets (compare Tables 1 and 2).

The average and median side lengths of these triangles (i.e. the average and median data point distances) are given in Tables 3 and 4. The average data point spacing (Table 4) is related to the density of points in a dataset. The EDV and the ITRF14-DORIS datasets are the densest and the sparsest datasets, respectively. However, the density of the “target areas” can be better described by the median data point spacing (Table 5), which significantly reduces the impact of atypical triangles along the convex hull boundary (for regional datasets), large triangles bridging the seas, and sliver triangles with vertices in multiple stations installed at space geodetic observatories. The largest differences between these two statistics can be observed for the ITRF14-SLR and CEGRN datasets with the average spacing being more than twice as large as the corresponding median data point spacing.

Table 5 Median data point spacing (km) in the surface mesh obtained after filtering out data points under the selected distance threshold

4.1 Original versus foot-point Delaunay triangulation

The test position/velocity datasets are triangulated in two ways:

  • using data points with the original coordinates and

  • using data points projected to the reference ellipsoid surface (\(h\) = 0).

The results of the Delaunay triangulations when using the original data points or the corresponding foot points can be compared for all test datasets, except for the CEGRN and EDV datasets (due to the lack of the height information). Three types of anomalies in the resulting surface meshes are analysed for the test datasets as follows:

  • dangling Delaunay triangles,

  • missing triangles, and

  • topological differences.

4.1.1 Dangling Delaunay triangles

Dangling Delaunay triangles are triangles which should be removed to achieve a unique surface mesh—see Fig. 2. The numbers of such triangles resulting from the triangulation of the test position/velocity datasets are given in Table 6. Focusing first on the triangle meshes resulting from the triangulation of the original data points (containing the height information as well) with the lowest distance threshold of 1 m, dangling Delaunay triangles are the most frequent for the ITRF14-DORIS dataset; seven such triangles correspond to 3.21% of 218 triangles in the final surface mesh (Table 3). Even though the largest number of 19 dangling Delaunay triangles is detected in the EPND dataset, they correspond to only 0.37% of 5143 triangles. The appearance of dangling Delaunay triangles is conditioned to a specific spacing of data points (Online Resource, Supplement S3, Fig. S3-1a). As can be observed, they will be more frequent if close-lying stations are present in the dataset; their number decreases while the distance threshold increases. When using the distance threshold of 1000 m, their percentage reaches up to 0.16% (3 out of 1850) for the ITRF14-GNSS dataset. When using the corresponding foot points instead of the original data points as an input for the Delaunay triangulation, the problem of dangling Delaunay triangles almost disappears. The most persistent dangling Delaunay triangles are created by the triple of points almost coplanar with the Earth’s centre and are projected to the surface of the globe as an orthodrome (Online Resource, Supplement S3, Fig. S3-1b).

Table 6 The number of dangling Delaunay triangles resulting from the data points obtained by filtering out those under the selected distance threshold—a comparison of using data points with original coordinates and data points projected to the reference ellipsoid surface (number in brackets, if different from the former)

4.1.2 Missing triangles (gaps)

Gaps may appear in the triangle mesh which is created by using the Delaunay triangulation in three dimensions. The missing triangles are considered non-Delaunay triangles which should be added to achieve a continuous surface mesh. The numbers of such triangles resulting from the triangulation of the test position/velocity datasets are given in Table 7. Focusing first on the triangle meshes resulting from the triangulation of the original data points (containing the height information as well), gaps are detected only for the ITRF14-GNSS and EPND datasets—the densest global and regional datasets when excluding the CEGRN and EDV datasets (with no height information). Like dangling Delaunay triangles, they will be more frequent if close-lying stations are present in the dataset (Online Resource, Supplement S4, Fig. S4-1). When using the corresponding foot points instead of the original data points as an input for the Delaunay triangulation, no gap is detected in the resulting surface meshes.

Table 7 The number of missing triangles (gaps) in the Delaunay triangulation of the data points obtained by filtering out those under the selected distance threshold—a comparison of using data points with original coordinates and data points projected to the reference ellipsoid surface (number in brackets, if different from the former)

4.1.3 Topological differences

Even though the number of Delaunay triangles may vary considerably for a given number of data points, no differences in the total number of triangles are detected in the pairs of final surface meshes resulting from the test position/velocity datasets when using original or corresponding foot points. All detected topological differences refer to the quadrilaterals which are triangulated by taking the opposite diagonal (Online Resource, Supplement S5, Fig. S5-1). The numbers of such topological differences in the resulting test position/velocity datasets are given in Table 8. Like the other anomalies observed in the resulting surface meshes, topological changes will be more frequent if close-lying stations are present in the dataset.

Table 8 The number of topological differences in the Delaunay triangulations of the data points obtained by filtering out those under the selected distance threshold—a comparison of using data points with original coordinates and data points projected to the reference ellipsoid surface

4.2 Rigorous versus approximate spherical triangle area calculation

The areas of the spherical triangles in the final triangle meshes generating from the test position/velocity datasets are calculated by applying:

  • the exact solution based on l’Huilier’s theorem—Eq. (32) and

  • the recursive approximate solution with expansion—Eq. (34).

A comparison of the calculated spherical triangle areas is made by using data points with the lowest distance threshold of 1 m (i.e. the most adverse conditions). Seeking the balance between the rigorous and approximate but numerically stable calculation of the area is done empirically. The threshold referring to the minimum difference between the semi-perimeter of the spherical triangle and the triangle side angular lengths is investigated, see Ineq. (36). After testing various candidates, the threshold value of 0.000005 rad is proposed. This threshold value corresponds to ~1 arcsecond or ~32 m on the GRS80 ellipsoid; a spherical triangle with at least one side measuring less than double threshold value (~64 m) cannot meet the condition in Ineq. (36), regardless of its shape.

Some indicators of performance of the spherical triangle area calculation by using the proposed threshold value are given in Table 9. The proportion of small and/or sliver spherical triangles (below the proposed threshold) in the test datasets vary between 0.3% in the CEGRN dataset and 25.2% in the ITRF14-DORIS dataset. But one should have in mind that the interpolation of the velocities requires determination of the areas of spherical sub-triangles as well. The largest relative error of the areas calculated by using the exact solution with Eq. (32) is detected in the ITRF14-GNSS dataset. In the spherical triangle WTZR-WTZZ-WTZS at the Wettzell geodetic observatory (Online Resource, Supplement S4, Fig. S4-1b), the error reaches 122.6% of the area; the calculated area would be more than twice as large as it should be. Relative errors of the areas calculated by using the approximate solution with Eq. (34) are considerably smaller. The largest relative error of the approximate areas is detected in the ITRF14-SLR dataset. In the third largest triangle in this dataset, the error reaches 3.1% of the area; the calculated area would be too large. When combining the exact and approximate solutions for the spherical triangle area calculation, the largest relative errors of the calculated areas can be expected for the largest triangles which are below the selected threshold (i.e. sliver triangles). For the largest sliver spherical triangles in each test dataset, relative differences between the exact and approximate solutions reach up to ~15 ppm of the area in the EPN and CEGRN datasets. In both cases, the worst triangle with the largest triangle side of almost 2000 km and the area of ~7000 km2 appears at the boundary of the convex hull of the points in the dataset. For the smallest spherical triangles in each test dataset which are above the selected threshold (i.e. unproblematic triangles), the largest relative difference between the exact and approximate solutions reaches 0.5 ppm of the area.

Table 9 Indicators of the performance of combining the exact and approximate solutions for the spherical triangle area calculation using the proposed threshold value of 0.000005

4.3 Analysis of the presented velocity field interpolation methods

The analysis of the geodetic velocity field modelling approach considered in the paper (Methods I–IV) is focussing on:

  • the impact of the heights of points on the velocity field interpolation and

  • the comparison of the performance of the proposed velocity field interpolation methods.

Velocities from the latest interval in the position/velocity lookup table with the corresponding coordinates of the data points in the ITRF2014, epoch 2010.0, are used for testing. The extreme velocities detected in each individual test position/velocity dataset are given in Table 10.

Table 10 Maximum absolute ITRF2014 velocity components and velocity magnitudes (mm/year)

For most of the test datasets, the obtained extreme velocity components significantly exceed the expectations when having in mind the most accurate velocities with the formal error less than 0.2 mm/year (see Altamimi et al. 2016). Possible reasons are that:

  • the velocity for the latest interval in the position/velocity lookup table is vague due to a short period of time since a significant event (e.g. earthquake) causing discontinuity in the coordinate time series,

  • the velocity reflects not only tectonic- but also inflation-driven components of deformation (addressed to volcanic activity),

  • the station lies at the plate boundary zone where the effects of the interactions are unclear, and/or

  • the station is locally unstable (e.g. mass wasting).

For the reasons stated above, only two test position/velocity datasets which seem to be the most reliable are chosen for testing the velocity field modelling methods—the ITRF14-GNSS and EPN datasets. The determination of the ITRF14-GNSS position/velocity dataset involved not only the linear motions but also discontinuities, periodic signals, and post-seismic deformation models to accurately describe their actual trajectories and to adequately infer the linear part of their motion (Altamimi et al. 2016). The largest absolute vertical/up velocity component of 31.74 mm/year is detected at the GNSS station BOGO in Bogotá, Colombia; all other maximum velocity components (north/east, 2D, and 3D vectors) are detected at the GNSS station TONG in Nukuʻalofa, Tonga (in the boundary zone between the Australian and Pacific Plates, see Fig. 20). The EPN dataset with the median data point spacing of ~180 km (Table 5) is another example of carefully validated and continuously improving dataset (Bruyninx et al. 2012, 2019; Legrand 2022). The largest absolute vertical velocity component of 10.92 mm/year is detected at the GNSS station HOFN in Höfn, Iceland (volcanic area near the boundary between the North American and Eurasian Plates); all other maximum velocity components are detected at the GNSS station NSSP in Yerevan, Armenia (near the boundary between the Eurasian and Arabian Plates).

Fig. 20
figure 20

The extreme velocity component correction for the height is detected at the Horizon Deep (red star)—the very bottom of the Tonga Trench in the Pacific Ocean, which is ~240 km south of the GNSS station TONG in Nukuʻalofa on Tongatapu Island; the Earth2014 elevation grid is shown reduced to a cell size of 100 km × 100 km (approximately) for clarity and the horizontal velocities are enlarged by the scale factor of 1250,000, i.e. 100 km ⁓80 mm/year

The topography‐bedrock‐ice (TBI) layer (i.e. without waterbodies) of the Curtin University’s global 1-arcminute resolution Earth2014 elevation dataset (Hirt and Rexer 2015) is used as interpolation points. The layer consists of 233,280,000 points at heights between −10,847 m and +8212 m. Data on about a hundred highest mountain peaks from all continents, deepest places of the world’s oceans, and geostationary satellites orbiting above the Earth’s continents (Wikipedia 2023; Stewart and Jamieson 2019) are collected and used as additional interpolation points.

4.3.1 Impact of the heights of points on the velocity field modelling

The following analysis deals with:

  • the impact of respecting heights of the velocity vector initial points on the interpolated velocities and

  • the restoration of the interpolated velocities from the reference ellipsoid surface to their original positions (see Sect. 3.3).

The ITRF14-GNSS position/velocity dataset with the data points selected by considering the distance threshold of 1 m is used in the tests presented in this subsection. Method IV is used for the interpolation for its favourable properties, such as avoiding the impact of discontinuity (appearing in Method III) and minimizing unjustified scaling effect (appearing in Methods I and II)—see also Sect. 5.2. Original heights/depths of interpolation points above/below the sea level (in the local height/chart datums) are used instead of the ellipsoidal heights (which should have no significant impact on the results).

At first, the selected mountain peaks and ocean deeps are used as the interpolation points. Interpolated topocentric velocities with the initial points referred to the original heights/depths of the interpolation points above/below the reference ellipsoid surface and their errors when ignoring the heights are given in Table 11. When ignoring the heights of points, the errors of the horizontal velocity components vary between −0.124 mm/year (i.e. 0.17% of the velocity component) for the Horizon Deep (\(\varphi \) = 23°15′30″S, \(\lambda \) = 174°43′36″W), the deepest spot of the Tonga Trench in the Pacific Ocean. The errors of the vertical/up velocity components may be nonzero but are insignificant.

Table 11 Interpolated ITRF2014 velocity components of the selected mountain peaks and ocean deeps obtained by considering heights and the corresponding errors obtained when using zero heights for both interpolation and data points (\(h\) = 0)

Interpolated topocentric velocities of the foot points of the interpolation points on the reference ellipsoid surface and their corrections for the heights of the interpolation points are given in Table 12. The correction of the velocity due to the height/depth of its initial point is only needed for its horizontal components; no correction is needed for the vertical/up component (see Sect. 3.3). The corrections of the velocities of points in high-altitude areas or deep under the oceans (Table 12) are very similar to the errors obtained when using zero heights of the interpolation and data points (Table 11), because the impact of the heights of these interpolation points prevails the impact of the heights of the data points used for the velocity interpolation. However, the impact of the heights themselves may not always be the key factor when looking for the extreme velocity component corrections. This conclusion can be drawn from the relatively small velocity component corrections for the Challenger Deep in the Mariana Trench, which is the most distant point from the reference ellipsoid surface.

Table 12 Interpolated ITRF2014 velocity components of the foot points of the selected mountain peaks and ocean deeps on the reference ellipsoid surface and the corresponding corrections for their heights/depths applying Eq. (41)

To be able to detect the real extremes of the horizontal velocity component corrections for the height of the interpolation point, the topography‐bedrock‐ice (TBI) layer of the Earth2014 elevation dataset is used. Interpolated topocentric velocities of the foot points of the interpolation points on the reference ellipsoid surface and their corrections for the heights of the interpolation points are given for the locations with the identified extreme velocity component corrections in Table 13. In spite of checking 233,280,000 interpolation points of the Earth2014 elevation grid, the obtained (absolute) velocity component correction for the height of the interpolation point does not exceed 0.124 mm/year which is detected at the very bottom of the Tonga Trench (Fig. 20).

Table 13 Interpolated ITRF2014 velocity components of the foot points of the selected Earth2014 TBI layer points on the reference ellipsoid surface and the corresponding corrections for their heights/depths applying Eq. (41)

However, the velocity corrections for the heights of the interpolation points can also be determined for an object in outer space, for example as the correction of the orbital velocity of a geostationary satellite where the correction equals ~560% of the velocity component. Details can be found in the Online Resource, Supplement S6.

4.3.2 Comparison of the proposed methods of the velocity field modelling

The proposed interpolation methods of the geodetic velocity field modelling were compared by focusing on:

  • the differences in the interpolated velocities resulting from the proposed interpolation methods and

  • the impact of the density of the data points on these differences (above).

The ITRF14-GNSS and EPN position/velocity datasets with the data points selected by considering the distance threshold of 1000 m are used in the tests presented in this subsection.

4.3.2.1 Global velocity field interpolation

The ITRF14-GNSS position/velocity dataset is used to analyse the differences in the interpolated velocities when using global position/velocity datasets, which include large gaps between the continents. The preferable method when considering the pros and cons from a theoretical point of view (Method IV)—see also Table 25—is used as a reference to the other three interpolation methods (Methods I–III). The topography‐bedrock‐ice (TBI) layer of the Earth2014 elevation dataset is used as the interpolation points.

A comparison of the interpolated velocities in the ITRF2014 which are determined by Methods III and IV with the identified largest velocity difference for each velocity component is given in Table 14. The largest absolute difference of 2.287 mm/year (6.21% of the velocity component) is detected for the east velocity component at the location southeast of the Pitcairn Islands in the South Pacific Ocean (\(\varphi \) = 34°41.5′S, \(\lambda \) = 122°49.5′W). The largest difference between Methods III and IV appears on a side of the largest Delaunay triangle resulting from the ITRF14-GNSS dataset (EISL-CHAT-ROTH) with an area of 13.9 mil. km2 (Fig. 21). As expected, this location is situated on a line of discontinuity of Method III (a triangle side).

Table 14 Interpolated ITRF2014 velocity components using Method IV and the corresponding velocity differences detected when using Method III (Method IV minus Method III)
Fig. 21
figure 21

The largest difference in the horizontal velocity components determined by Methods III and IV is detected southeast of the Pitcairn Islands in the South Pacific Ocean (red star)—at the Delaunay triangle side connecting the GNSS stations CHAT on the Chatham Islands, New Zealand, and EISL on Easter Island, Chile; the Earth2014 elevation grid is shown reduced to a cell size of 200 km × 200 km (approximately) and the horizontal velocities are enlarged by the scale factor of 5000,000, i.e. 200 km ⁓ 40 mm/year

A comparison of the interpolated velocities in the ITRF2014 determined by Methods II and IV with the identified largest velocity difference for each velocity component is given in Table 15. The largest difference of 7.627 mm/year (11.31% of the velocity component) is detected for the east velocity component at the location near the Clipperton Fracture Zone in the Pacific Ocean (\(\varphi \) = 2°33.5′N, \(\lambda \) = 133°00.5′W), north of the Marquesas Islands in French Polynesia. The largest difference between Methods II and IV appears in the region with large horizontal velocities and within one of the largest Delaunay triangles resulting from the ITRF14-GNSS dataset (GAMB-GUAX-HILO) with an area of 9.5 mil. km2 (Fig. 22).

Table 15 Interpolated ITRF2014 velocity components using Method IV and the corresponding velocity differences detected when using Method II (Method IV minus Method II)
Fig. 22
figure 22

The largest difference in the horizontal velocity components determined by Methods II and IV is detected near the Clipperton Fracture Zone in the Pacific Ocean (red star)—within the Delaunay triangle created by the GNSS stations GAMB on the Gambier Islands, French Polynesia, GUAX on Guadalupe Island, Mexico, and HILO on Hawaiʻi Island; the Earth2014 elevation grid is shown reduced to a cell size of 200 km × 200 km (approximately) and the horizontal velocities are enlarged by the scale factor of 5000,000, i.e. 200 km ⁓ 40 mm/year

A comparison of the interpolated velocities in the ITRF2014 determined by Methods I and IV with the identified largest velocity difference for each velocity component is given in Table 16. The largest differences of the horizontal velocity components are similar to those obtained by Method II; a bit larger differences are obtained for the vertical/up velocity component with the largest absolute difference of 0.429 mm/year (12.78% of the velocity component) detected in the Marie Byrd Seamount in the Southern Ocean (\(\varphi \) = 68°52.5′S, \(\lambda \) = 117°50.5′W). The largest difference between Methods I and IV appears within the largest Delaunay triangle resulting from the ITRF14-GNSS dataset (EISL-CHAT-ROTH) with an area of 13.9 mil. km2 (Fig. 23).

Table 16 Interpolated ITRF2014 velocity components using Method IV and the corresponding velocity differences detected when using Method I (Method IV minus Method I)
Fig. 23
figure 23

The largest difference in the vertical/up velocity component determined by Methods I and IV is detected in the Marie Byrd Seamount in the Southern Ocean (red star)—within the largest Delaunay triangle created by the GNSS stations CHAT on the Chatham Islands, New Zealand, and EISL on Easter Island, Chile, and ROTH on Adelaide Island in the Antarctica; the Earth2014 elevation grid is shown reduced to a cell size of 200 km × 200 km (approximately) and the horizontal velocities are enlarged by the scale factor of 100,000,000, i.e. 200 km ⁓ 2 mm/year; yellow and red arrows show uplift and subsidence, respectively

4.3.2.2 Regional velocity field interpolation

The EPN position/velocity dataset reduced by the distance threshold of 1000 m is used to analyse the differences in the interpolated velocities when using denser regional/continental position/velocity datasets with more homogeneous spacing between the data points. The median data point spacing in this dataset is 185 km (see Table 5). Method IV is compared to the other three interpolation methods (Methods I–III). The interpolation is performed in the ITRF2014 (Online Resource, Supplement S7, Figs. S7-1 and S7-2). A subset of the topography‐bedrock‐ice (TBI) layer of the Earth2014 elevation dataset covering the selected test area in Central Europe (45°N \(<\varphi <\) 52°N, 4°E \(<\lambda <\) 18°E) is used as the interpolation points. The subset consists of 352,800 points at heights between −133 m and +4182 m. As compared to the examples of global modelling, the obtained differences are much smaller and are given here in micrometres per year (Tables 17, 18 and 19).

Table 17 Interpolated ITRF2014 velocity components using Method IV and the corresponding velocity differences detected when using Method III (Method IV minus Method III)
Table 18 Interpolated ITRF2014 velocity components using Method IV and the corresponding velocity differences detected when using Method II (Method IV minus Method II)
Table 19 Interpolated ITRF2014 velocity components using Method IV and the corresponding velocity differences detected when using Method I (Method IV minus Method I)

A comparison of the interpolated velocities in the ITRF2014 determined by Methods III and IV with the identified largest velocity difference for each velocity component within the selected test area in Central Europe is given in Table 17.

A comparison of the interpolated velocities in the ITRF2014 determined by Methods II and IV with the identified largest velocity difference for each velocity component within the selected test area in Central Europe is given in Table 18. The largest absolute difference of 6.418 μm/year (0.03% of the velocity component) is detected for the east velocity component at the location in Voillecomte (Online Resource, Supplement S7, Fig. S7-1), north of Chaumont, France (\(\varphi \) = 48°29.5′N, \(\lambda \) = 4°49.5′E).

A comparison of the interpolated velocities in the ITRF2014 determined by Methods I and IV with the identified largest velocity difference for each velocity component within the selected test area in Central Europe is given in Table 19. The largest difference of 61.562 μm/year (4.06% of the velocity component) is detected for the vertical/up velocity component at the location in Fratta Polesine (Online Resource, Supplement S7, Fig. S7-2), west of Rovigo, Italy (\(\varphi \) = 45°00.5′N, \(\lambda \) = 11°38.5′E), which is at the edge of the selected test area.

Maps of the velocity differences between the proposed methods were created, too. Two typical maps representing their character can be found in the Online Resource, Supplement S8, Figs. S8-1 and S8-2.

Similar comparisons of the interpolated velocities by using the proposed interpolation methods are made in the ETRF2000. A plot of horizontal velocities can be found in the Online Resource, Supplement S7, Fig. S7-3. Tables with the identified maximum velocity differences are available in the Online Resource, Supplement S9.

4.3.3 Comparisons of results of the proposed velocity field modelling with recently published models

Two recently published GNSS-based velocity field models are used for comparisons of different velocity interpolation approaches which are given in Table 20.

Table 20 An overview of the velocity field models used for comparisons

The combined velocity field (CVF2022) solution covers entire Europe and includes ten complementary velocity fields. Preferred filtered and smoothed combined velocity field solution, rotated into the stable Eurasian plate (Piña-Valdés et al. 2022, Supporting Information, Data Set S4) is used as the input position/velocity dataset. The corresponding combined horizontal and vertical output table referred to as CVF2022hv (Piña-Valdés et al. 2022, Supporting Information, Data Sets S5 and S6) is used for comparison of the interpolated velocities.

The European velocity model (EuVeM2022) is based on the EPND dataset (Kenyeres et al. 2019). The input position/velocity dataset in the ITRF2014 and the corresponding grids generated by the extended least-squares collocation—referred to as EuVeM2022ex—and by its improvement applying moving variance technique—referred to as EuVeM2022ex2—(Steffen et al. 2022; Lantmäteriet 2023) are used for comparisons of the interpolated velocities.

Some statistics on both input position/velocity datasets are given in Table 21.

Table 21 Statistics on the input position/velocity datasets used for comparisons

The distance threshold of 1 m is used for the Delaunay triangulation, which excludes three collocated stations in the EuVeM2022 dataset (KUI2, RIS2, and ZTB3). Also, 32 duplicated stations in this dataset are reduced to one station for each station name by taking variants with more accurate velocities.

Resolution of the velocity grids is 0.1° × 0.1°. The same test area in Central Europe is used as for testing regional velocity field interpolation in Sect. 4.3.2 (45°N \(<\varphi <\) 52°N, 4°E \(<\lambda <\) 18°E), see also Online Resource, Supplement S7, Figs. S7-1 to S7-3. The heights are not available (i.e. zero heights are used). The test grid consists of 10,011 interpolation points. Only Method IV interpolation results are compared with the selected three velocity field models since the differences between the four proposed models are very small (see Sect. 4.3.2).

A comparison of the CVF2022hv grid model with the results of Method IV with the identified largest difference for each velocity component is given in Table 22. The largest absolute difference of 1.035 mm/year for the horizontal velocity components is detected for the north component at the location near Velika Kladuša, Bosnia and Herzegovina (\(\varphi \) = 45°12′N, \(\lambda \) = 15°54′E), see Online Resource, Supplement 10, Fig. S10-1. The median absolute velocity component differences are 0.050 mm/year, 0.045 mm/year, and 0.106 mm/year for the north, east, and up components, respectively.

Table 22 Interpolated velocity components in the CVF2022hv grid model (rotated into the stable Eurasian plate) and the corresponding velocity differences detected when using Method IV (CVF2022hv minus Method IV)

A map of horizontal velocities in the part of the selected test area in Central Europe with the largest absolute velocity differences between the CVF2022hv grid model and the interpolation results of Method IV can be found in the Online Resource, Supplement S10, Fig. S10-1.

A comparison of the EuVeM2022ex grid model with the results of Method IV with the identified largest difference for each velocity component is given in Table 23. The median absolute velocity component differences are 0.035 mm/year, 0.036 mm/year, and 0.097 mm/year for the north, east, and up components, respectively.

Table 23 Interpolated ITRF2014 velocity components in the EuVeM2022ex grid model and the corresponding velocity differences detected when using Method IV (EuVeM2022ex minus Method IV)

A comparison of the EuVeM2022ex2 grid model with the results of Method IV with the identified largest difference for each velocity component is given in Table 24. The largest differences in both horizontal and vertical components refer to the same grid points than those detected for the EuVeM2022ex model (Table 23). The median absolute velocity component differences are 0.039 mm/year, 0.042 mm/year, and 0.122 mm/year for the north, east, and up components, respectively.

Table 24 Interpolated ITRF2014 velocity components in the EuVeM2022ex2 grid model and the corresponding velocity differences detected when using Method IV (EuVeM2022ex2 minus Method IV)

4.4 Computation speed

A personal computer with 3 GHz Intel Core i5-9500 CPU, 8 GB RAM, 500 MB/s SSD, and Windows 10 Enterprise OS was used to perform computation speed tests. The proposed new methods (Sects. 3.1–3.4) were tested on eight position/velocity datasets (Table 1). The latter were used with the distance threshold of 1000 m, see Table 2. Input position/velocity datasets were accessed from RAM.

The tests were divided into two parts, focusing on:

  • the speed of the surface mesh creation, and

  • the speed of the velocity interpolation.

The speed of creating a unique surface mesh, which includes the Delaunay triangulation and the triangle mesh cleaning/fixing (i.e. removing potential dangling Delaunay triangles) is limited by checking all possible candidates for Delaunay triangles (i.e. brute-force search) with the time complexity of \(O\left({n}^{3}\right)\) with \(n\) being the number of data points. Computation time as a function of the number of data points is given in Fig. 24.

Fig. 24
figure 24

Computation time (\(T\)) of creating a unique surface mesh (in seconds) as a function of the number of data points (\(n\)); the time needed to perform the Delaunay triangulation and the triangle mesh cleaning/fixing is estimated by a 3rd degree polynomial regression function; blue dots represent the position/velocity datasets listed in Table 1

Surface meshing took less than 0.01 s when using ITRF14-DORIS dataset (\(n\) = 75) but increased to 1 h 20 m 36 s (4836 s) when using EDV dataset (\(n\) = 6051); the processing of the CEGRN dataset (\(n\) = 1165) took 10 s.

The speed of the velocity interpolation is analysed by comparing computation time needed for processing 1000,000 interpolation points of the topography‐bedrock‐ice (TBI) layer of the Earth2014 elevation dataset (Hirt and Rexer 2015) which were read from the original binary file stored on the SSD. The interpolation speed is limited by the algorithm for looking up appropriate pyramids—Eq. (47)—which has the time complexity of \(O\left(n\right)\) with \(n\) being the number of data points. Computation time as a function of the number of data points (triangle vertices) is given in Fig. 25.

Fig. 25
figure 25

Computation time (\(T\)) of processing 1000,000 interpolation points (in seconds) as a function of the number of data points (\(n\)); the time needed to perform the interpolation is estimated by a linear regression function; blue dots represent the position/velocity datasets listed in Table 1

Interpolation of 1000,000 interpolation points took between 15 and 21 s when using ITRF14-DORIS dataset (\(n\) = 75) and between 4 m 33 s (273 s) and 4 m 46 s (286 s) when using EDV dataset (\(n\) = 6051), which means 0.02 ms and 0.3 ms per single interpolation point, respectively. The proposed methods arranged from the fastest to the slowest are Method I > Method II > Method IV > Method III. The speed difference between the fastest (I) and the slowest (III) methods is decreasing with the growing number of data points (i.e. with the complexity of the model), reaching 44% when using ITRF14-DORIS dataset and only 5% when using EDV dataset.

5 Discussion and conclusions

The presented triangulation-based approach for 3D velocity field modelling avoids separation to horizontal and vertical components. This means that a full 3D domain is used; the heights of the velocity vector initial points are appropriately considered, which spreads the applicability of the model also beneath and above the reference ellipsoid surface. The use of a combination of all three components can more easily be converted to geophysically meaningful quantities (Vaníček and Krakiwsky 1986, p. 655) and can provide an adequate quality estimation. In the proposed solution, the corresponding fully populated variance–covariance matrices of the velocities at the data points can be used to estimate the variance–covariance matrices of the interpolated velocities. Unfortunately, only standard deviations of the velocity components are included in the standard position/velocity dataset format (SSC); SINEX files should be used to access the missing data. Velocity modelling, which is based on an original, irregularly spaced dataset, enables access to complete information on the discontinuities in the coordinates and/or velocities of points and ensures the uniqueness of the Delaunay triangulation.

The proposed approach can be used in a global velocity field modelling and—contrary to the projected (map-based) or geodetic coordinate domain approach—does not suffer from map projection distortions or singularities at the poles. Very large gaps in input position/velocity datasets (e.g. oceans, deserts, polar zones, etc.) can be handled. However, the uncertainties of the velocity components at the data points are not involved in the velocity interpolation. A disadvantage of a(ny) pure interpolation approach is non-resistance to noisy data. So, carefully validated input position/velocity datasets are expected when using the proposed velocity field modelling approach. Further discussion and conclusions are divided into two parts (below) addressing triangulation and interpolation issues.

5.1 Discussion on the triangulation of the Earth’s surface

A 3D Delaunay triangulation using the minimum circumsphere condition is proposed to create a triangle mesh approximating the Earth’s surface. The advantages of this basic idea—as compared to other possible solutions, such as higher-order Delaunay triangulations in a plane with elevations or alpha shapes—are no need for mapping into the plane and no input parameters affecting the resulting surface mesh. Further straightforward tetrahedralization is based on this surface mesh and the Earth’s centre as the common apex of the resulting tetrahedra. Numerical tests show that using foot points on the reference ellipsoid surface instead of the original data points leads to a topologically identical or almost identical surface mesh (Table 8) which is without gaps (Table 7) and may contain only a few dangles (Table 6). A simple triangulation algorithm based on elementary arithmetic operations—Eqs. (2) to (4)—and mesh cleaning/fixing based on topological checking is applied (no geometric criteria involved). Both enhance the numerical stability—also for non-uniform datasets with clusters of high density. However, a triangle-based interpolation works best with evenly distributed data points (e.g. Yang et al. 2004) and uniform spacing is desirable. Twin or multiple stations at a space geodetic observatory are suggested to be pre-processed and reduced to one, main reference point only. Following Egli et al. (2007) or Steffen et al. (2022), the triangle-based interpolation approach could also be customized along an active tectonic margin by introducing arbitrary chosen constraining edges. However, a constrained Delaunay triangulation is limited by the availability of data points.

A drawback of the proposed Delaunay triangulation approach is its speed. Since a position/velocity dataset usually contains a few hundred points only (Table 2), the triangle mesh is generated by exhaustive search algorithm with the time complexity of \(O\left({n}^{3}\right)\) with \(n\) being the number of data points. It took 10 s for \(n\) ≈ 1000 but exceeded 1 h for \(n\) ≈ 6000—see Sect. 4.4. Of course, the process of triangulation on the surface of the rotational ellipsoid could be sped up significantly. One possibility is adaptation of the spherical approach (Renka 1997) which has the time complexity of \(O\left(n{\text{log}}n\right)\). However, a velocity interpolation method which is implemented in a positioning application, for example, skips the Delaunay triangulation procedure by providing the topology information contained in the pregenerated triangle mesh lookup table, which should be regenerated only in case of changes in the input position/velocity dataset.

5.2 Discussion on the interpolation of the Earth’s surface velocities

Pros and cons of using the proposed four methods of the velocity field modelling can be identified from a theoretical point of view. Different properties of the interpolation methods are presented in Table 25.

Table 25 Red/yellow/green rating of basic properties of the proposed four velocity field interpolation methods

The continuous piecewise linear 3D velocity field interpolation (Method I) provides velocity field modelling across the whole 3D domain. The resulting velocity field model is based on the n-simplex interpolation which is continuous but does not preserve radial symmetry; the absolute values of the interpolated velocity components in the central parts of the triangles are overestimated (see Fig. 8a) which introduces a spurious land uplift or subsidence, for example.

The piecewise quasi-linear 3D velocity field interpolation (Method II) is an improvement of Method I. Contrary to the latter which considers the figure of the Earth as a sphere, more accurate ellipsoidal Earth model is applied by introducing the interpolation-point-adapted Gaussian osculating sphere. The ellipsoidal Earth model does not allow interpolation and data points closer than ~43 km from the Earth’s centre.

The piecewise radial 3D velocity field interpolation (Method III) keeps the improvements obtained through the ellipsoidal Earth model, which can here be implemented in a fully rigorous way. It provides radial symmetry which prevents the unjustified scaling of the interpolated velocity components. The latter appears in the linear interpolation approach (Methods I and II) and is usually noticeable in the areas around the circumcentres of large Delaunay triangles (Fig. 22). The interpolated velocities and their uncertainties generated by Method III do not agree at the faces of the adjacent unbounded triangular pyramids—the continuity is not achieved.

The continuous piecewise quasi-radial 3D velocity field interpolation (Method IV) combines both linear and radial interpolation approaches. It improves the properties of Method III by providing continuity while still trying to preserve radial symmetry as much as possible in order to minimize unjustified scaling effect. Method IV is not only continuous but also smooth everywhere except along the normals to the reference ellipsoid through the data points (see Online Resource, Supplement S2). Methods III and IV follow the key principle of the modern plate tectonic theory; the interpolated horizontal velocity components depend on the height since the Earth is round, while the vertical velocity component is height independent. The proposed approach can be used for tectonic-driven deformations; inflation-driven components caused by volcanic activity (e.g. Garibaldi et al. 2020) may require a different approach.

Some further insights into various aspects of the geodetic velocity field modelling can be drawn from the results of the numerical tests. Applying the radial interpolation approach (Method III) is quite a challenge due to numerical instability of the spherical triangle area calculation. Based on the results of testing of the exact and approximate solutions, one can conclude that only combining both solutions can ensure the required calculation accuracy. The maximum relative errors of the spherical triangle area expressed in percentages can—by applying the proposed threshold value of 1 arcsecond—be reduced to those expressed in parts per million (Table 9).

The impact of considering the height of the velocity vector initial points is usually negligible. At the Earth’s surface, the horizontal velocity component corrections for the height of the interpolation point reach up to ~0.12 mm/year (Tables 11 and 12). However, these corrections exceed 13.6 cm/year at the geostationary satellites (Online Resource, Supplement S6).

Differences between Methods III and IV are below 2.3 mm/year in the horizontal velocity components and reach up to ~0.14 mm/year in the vertical/up component when using the selected global position/velocity dataset (ITRF14-GNSS, see Table 14). They are—no matter of modelling ITRF2014 or ETRF2000 velocities—below 1 μm/year in all three velocity components in the area of Central Europe when using the selected regional dataset (EPN, see Tables 17 and 20).

Differences between Methods I and II when compared to Method IV reach up to ~7.6 mm/year in the horizontal velocity components and ~0.4 mm/year in the vertical/up component when using the selected global position/velocity dataset (ITRF14-GNSS, see Tables 15 and 16). Again—no matter of modelling ITRF2014 or ETRF2000 velocities—these differences are below 0.01 mm/year to Method II (Tables 18 and 21) and below 0.1 mm/year to Method I in all three velocity components in the area of Central Europe when using the selected regional dataset (EPN, see Tables 19 and 22).

One can conclude that the accuracy of all four interpolation methods is sufficient when applied to regional velocity field modelling (with a relatively dense input dataset); the obtained velocity component differences between them are below 0.1 mm/year which is negligible when having in mind the quality of the position/velocity datasets being achieved from GNSS time series (e.g. Masson et al. 2019). In global modelling, however, the interpolated velocity component differences reach up to a few mm/year and the use of Method IV is preferred for its favourable properties (see Table 25) and for practical reasons, such as simplicity and numerical stability. Even though the interpolation itself also depends on the number of data points (\(n\))—with the time complexity of \(O\left(n\right)\)—the computation time per single interpolation point did not exceed 0.3 ms for \(n\) ≈ 6000.

Comparisons of Method IV with some recently published GNSS-based velocity field models show differences in the obtained velocities which are larger in the areas of diverse velocities. Statistical methods are more resistant to possible outliers and provide smoothed velocity fields. The proposed approach is, however, entirely local and exactly fits the data points. This requires input datasets which are checked and verified.

Further work may focus on dealing with noisy input data. Velocity approximation may replace the proposed pure interpolation methods by involving velocity uncertainties at the data points. Also, the smoothness (continuity of the first derivatives) of the interpolation function is—having in mind the most sophisticated Method IV—not achieved along the normals to the reference ellipsoid through the data points. Hermite- or Lagrange-type interpolations, which both use barycentric coordinates (e.g. Carfora 2007), may be adapted to meet the specific requirements of the geodetic velocity field modelling.