Introduction

Global navigation satellite system (GNSS) observations have been used in the field of geodesy and geophysics to investigate a range of geophysical effects (Bock and Melgar 2016; White et al. 2022). However, errors with spatial correlations, also referred to as "common-mode errors (CMEs)," usually affect the GNSS coordinate time series derived from GNSS observations (Wdowinski et al. 1997). CMEs are thought to be generated by an incompletely estimated mass loading (isostatic water and atmosphere), an imprecise atmospheric model, GNSS satellite orbit inaccuracy, and other causes (Dong et al. 2006). Several alternative regional GNSS network filtering approaches have been deployed over the last 20 years to mitigate the influence of CME and increase the signal-to-noise ratio of GNSS coordinate time series. Examples include stacking (Wdowinski et al. 1997), weighted-stacking (Nikolaidis 2002), PCA (principal component analysis) and Karhunen–Loeve expansion (KLE) (Dong et al. 2006), and ICA (independent component analysis) (Ming et al. 2016).

Nowadays, many specialized and practical software tools are available for processing and analyzing GNSS coordinate time series data, which have been widely applied in various fields. For instance, iGPS (Tian 2011) and TSanalyzer (Wu et al. 2017) are visualization and preprocessing toolboxes developed based on IDL and Python, respectively. GMIS (Liu et al. 2017b) adopts spatio-temporal Kalman interpolation to handle continuous missing values, whereas JUST (Ghaderpour 2021) are used for discontinuity detection. Hector and CATS, on the other hand, are utilized for noise characteristic analysis and trend estimation (Bos et al. 2012; Williams 2008). GNSS2TWS (Jiang et al. 2022) is a dedicated toolbox for land water storage inversion. Moreover, He et al. (2020) developed GNSS-TS-NRS, employing the EMD decomposition algorithm for GNSS coordinate time series denoising. It can also utilize stacking and PCA for spatiotemporal filtering in GNSS datasets. However, it lacks a specific focus on CMEs analysis and lacks post-processing features such as noise characteristic analysis, which are important for describing the stochastic properties of GNSS coordinate time series (He et al. 2019, 2021). We developed a new software named GTS_CME, which is dedicated to extracting, analyzing, and interpreting CMEs in the GNSS coordinate time series. The software incorporates the widely adopted ICA spatiotemporal filtering method and integrates various pre- and post-processing functions to help users comprehensively analyze GNSS coordinate time series.

Software platform and installation

GTS_CME is an open-source software developed using MATLAB and available for download at https://figshare.com/projects/GTS_CME/165658. The downloadable package includes installation files, code files, sample data, a user's manual, and an example video. Following the download, there are two ways to install GTS_CME: (1) Open Matlab, locate and double-click the “GTS_CME.mlappinstall” file in the directory for program installation. Select GTS_CME from the MATLAB app drop-down menu to execute it. (2) Add the source code folder into the Matlab search path, enter "GTS_CME" in the command line window, and await the appearance of GTS_CME software's primary interface.

Features of GTS_CME

GTS_CME offers functionalities grouped into three main modules: the time series preprocessing module, the spatiotemporal filtering and common mode error analysis module, and the auxiliary function module. Details about the auxiliary module will be covered in the user’s manual.

Time series preprocessing

The GNSS time series preprocessing includes commonly used preprocessing features such as outlier removal, offset detection and removal, and missing value interpolation. Here, we use the time series of 46 GNSS stations in the Sichuan Yunnan region of China as the experimental object. Next, we will take the SCYX station as an example to introduce the preprocessing functions of GTS_CME in detail.

Outliers removal

The existence of outliers can significantly impact the findings of spatiotemporal filtering analyses in regional GNSS networks, leading to anomalous temporal and spatial responses in the filtering process and impairing the separation of common mode components at other sites (Dong et al. 2006). GTS_CME introduces five outlier removal methods: 3sigma, interquartile range (IQR), median absolute deviation (MAD), moving window-3sigma (Win-3sigma), and moving window median absolute deviation (Win-MAD). In Fig. 1, taking the vertical time series of SCYX is used as an example, we employed the Win-3sigma detection method with a moving window size of 60 days to detect the outliers.

Fig.1
figure 1

Outliers removal results. The light yellow line depicts the coordinate time series after removing outliers

Offset removal

Offset in GNSS coordinate time series mainly results from antenna changes and geophysical phenomena such as earthquakes. In GTS_CME, we employ the JUST offset detection algorithm in conjunction with an artificial visual inspection (Ghaderpour 2021). GTS_CME allows users to change the additional offset data in the artificial visual inspection based on the site record files given by the specific data center. GTS_CME provides batch-adding offsets, allowing users to make empirical and repeated decisions. Using the vertical GNSS time series of the site SCYX as an example, we remove both linear and offset terms in the deterministic model, as shown in Fig. 2.

Fig.2
figure 2

The black line represents the fitting curve, and the blue line represents the residual series with period term remaining

Users are allowed to remove the linear, offset, annual period and semi-annual period terms selectively from the GNSS coordinate time series within GTS_CME, followed by an analysis of the residual series. We applied a deterministic model commonly used for fitting GNSS coordinate time series (Nikolaidis 2002):

$$y\left({t}_{i}\right)=a+b{t}_{i}+c\text{sin}\left(2\pi {t}_{i}\right)+d\text{cos}\left(2\pi {t}_{i}\right)+e\text{sin}\left(4\pi {t}_{i}\right)+f\text{cos}\left(4\pi {t}_{i}\right)+\sum_{j=1}^{{n}_{g}}{g}_{i}H\left({t}_{i}-{T}_{gi}\right)+{\varepsilon }_{i}$$
(1)

where \({t}_{i} \left(i=\text{1,2},\cdots , N\right)\) is the daily solution epoch in units of years, \(a\) and \(b\) are the intercept and linear rate, \(c\) and \(d\) are annual term coefficients, \(e\) and \(f\) are semi-annual coefficients, \(H\left({t}_{i}-{T}_{gi}\right)\) is a Heaviside step function (when \({t}_{i}\ge {T}_{gi}\), its value is 1, otherwise it is 0), \({g}_{i}\) is the change of rate from \({t}_{i}={T}_{gi}\), and \({\varepsilon }_{i}\) is the model residual.

Missing values interpolation

Missing data in the GNSS coordinate time series is unavoidable due to instrument signal interruption, outlier removal, or other unidentified causes. Simultaneously, it constitutes an essential step in data preprocessing prior to applying PCA and ICA spatiotemporal filtering. GTS_CME's data interpolation module employs three methods to interpolate missing data in GNSS coordinate time series: PCA iteration (Liu et al. 2018), DINEOF (Alvera-Azcárate et al. 2005), and RegEM (Schneider 2001). Using the vertical data from the site SCYX as an example, the time series was interpolated using the top 10 principal components with a cumulative contribution rate over 79% through the PCA iterative method, as shown in Fig. 3.

Fig.3
figure 3

The data results are interpolated using PCA iteration

Spatiotemporal filtering and common mode error analysis

The spatiotemporal filtering and common mode error analysis module combines the M_map tool (Wessel et al. 2019) for automatic plotting, PCA and ICA spatiotemporal filtering, power spectrum analysis, and Comparative analysis of CME and mass loading effects to effectively extract and analyze common mode errors.

Principal component analysis

PCA converts a set of various and possibly related vectors into a small number of unrelated main components, each of which reflects the feature information in the original sequence to varying degrees. PCA is then employed in the regional GNSS coordinate time series analysis (Dong et al. 2006). Taking the vertical data from 46 GNSS stations in the Sichuan Yunnan as a running example, we applied the PCA method to perform spatiotemporal filtering and extract the common mode components from the data, and the results are shown in Fig. 4. Here, we show the results of the first three principal components, whose variance were 54.7%, 4.9% and 3.2%, respectively. It can be seen from Fig. 4 that PC1 exhibit obvious spatial consistency, PC2 presents a local spatial response, and PC3 shows opposite responses in different regions.

Fig.4
figure 4

The first three scaled principal components and their normalized spatial responses. The up arrows represent positive spatial responses, and the down arrows represent negative responses. The legend represents a spatial response with 100%

Independent component analysis

ICA is designed to extract statistically independent unknown source signals from mixed observed variables even without prior information (Hyvärinen and Oja 2000). ICA has been used in some studies to extract the potential geophysical signals embedded in the GNSS coordinate time series, and their corresponding spatial response can be used to quantitatively characterize the contribution of geophysical sources in various spatial locations. For example, Liu et al. (2018), Yan et al. (2019), and others employ ICA to extract common mode components from GNSS coordinate time series, comparing them with mass loading displacements for analysis. We applied the ICA method to perform spatiotemporal filtering using the same vertical data as the running example. We used the top six principal components to perform ICA, and their cumulative contribution percentage exceeded 71%. The independent components are sorted based on the Ratio values (Liu et al. 2017a). The first three ICs and their responses are shown in Fig. 5. It is evident that IC1 and IC2 have obvious periodic properties, and their normalized spatial responses exhibit obvious spatial consistency. Compared to PCA, ICA has separated two mutually maximally independent components.

Fig.5
figure 5

The first three scaled independent components and their normalized spatial responses. The up arrows represent positive spatial responses, and the down arrows represent negative responses. The legend represents a spatial response with 100%

Power spectral analysis

Power spectral analysis is a valuable technique in GNSS coordinate time series analysis for examining periodic variations and identifying associated cycles. These variations may arise from a variety of factors. In GTS_CME, the "fastlomb" function is employed to compute the Lomb-Scargle power spectrum (Press 1992), an efficient method suitable for uniformly and non-uniformly sampled time series. As an illustrative example, the extracted vertical common mode component IC1 from 46 GNSS stations in the Sichuan Yunnan region is analyzed, and the result is presented in Fig. 6.

Fig.6
figure 6

The power spectrum analysis result of IC1

Comparative analysis of CME and mass loading effects

In the spatiotemporal analysis of GNSS coordinate residual series with periodic terms remaining, the CME is usually contains an obvious periodic term. For example, Yan et al. (2019) separated GNSS coordinate time series using the ICA to investigate the source of seasonal uplift in mainland China and demonstrated that surface mass loadings could address independent components extracted from GNSS data.

As an illustrative example, we employed PCA and ICA to extract vertical common mode components PC1, IC1, and IC2 from 46 GNSS stations in the Sichuan-Yunnan region in China and compare them with non-tidal atmospheric and hydrological loading displacements obtained from ESMGFZ (Fig. 7). The findings revealed a significant correlation between common mode displacements and loading displacements. As shown in Fig. 7, the PC1-derived displacement is highly correlated with the cumulative impact of two primary mass loading effects in the Sichuan-Yunnan region. In comparison, the two common mode independent displacements exhibit high consistency with hydrological and atmospheric loading displacements, respectively. In contrast to PCA, ICA is characterized by its capability to further segregate independent signals based on PCA, which usually represent the potential geophysical signals hidden in GNSS datasets (Liu et al. 2018).

Fig. 7
figure 7

The black line represents the PCs/ICs derived average displacement across the 46 GNSS stations, and the yellow/pink/red line denotes the average displacement resulting from loading data

Auxiliary functions module

The auxiliary module of GTS_CME encompasses a format conversion tool, a surface mass loading effect data acquisition tool, and a Hector calling tool. The format conversion tool can convert time series data from different institutions to the *.gta format. The surface mass loading effect data acquisition tool can download mass loading displacement data from EMSGFZ (Earth-System-Modelling group GFZ, http://rz-vm115.gfz-potsdam.de:8080/) for subsequent analysis. The Hector calling tool offers a convenient means to invoke Hector's application program, enabling further analysis of the GNSS coordinate time series. Additional details about the auxiliary functions of GTS_CME can be found in the manual.

Conclusions

The GTS_CME software, developed within an open-source framework, is designed to help users in spatiotemporal filtering and common mode error analysis of GNSS coordinate time series.

We provide an intuitive CME analysis software that integrates the ICA method for the first time, offering valuable functions for ICA application in CME analysis, such as independent component contribution analysis and component sorting.

Compared to existing GNSS analysis software, our software provides some auxiliary functions to enhance its comprehensive analysis capability, including format conversion, the easy download of mass load displacements, and the invocation of Hector software. These features enhance the software's capacity to support users in achieving a thorough analysis of GNSS data in their relevant studies.