1.软件介绍
Hector 是一款开源软件,专用于 GNSS 时间序列数据的处理与分析,广泛应用于地球科学研究。它帮助研究人员从 GNSS 数据中提取长期趋势、周期性成分,并建模噪声特性,用于地壳形变、地震影响和气候变化等方面的研究。Hector 提供了高效的工具来识别和去除异常值,提升数据分析的精度,是研究地表运动和环境变化的有力工具。
2. 源码下载
在Hector官网:Hector - TeroMovigo下载源码,其他linux和win也可以直接下载对应的安装包,由于我是苹果系统,我下载的是最新的hector-2.1_source的源码,如下图所示
解压以后的hector 2.1版本 的内容,如下图所示,src是源码的内容。
3. 编译与安装
根据官网的说明书的安装手册,我们将安装包放入 /usr/local/bin里面
但是我们是mac苹果系统,很多安装包是homebrew安装,所以需要将src里面的Makefile重新写一下,标注在homebrew里面的位置,下面是更改后的Makefile
# Makefile for the hector-2.1 programs
#
# This script is part of Hector 2.1
#
# Hector is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# Hector is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Hector. If not, see <http://www.gnu.org/licenses/>
#
#===============================================================================
VERSION=2.1
CPP = g++
CPPFLAGS = -O2 -Xpreprocessor -fopenmp -std=c++1z -I/opt/homebrew/opt/openblas/include/ -I/opt/homebrew/opt/libomp/include/ -I/opt/homebrew/opt/fftw/include/ -I/opt/homebrew/opt/boost/include/
PREFIX = /usr/local
OPENBLAS = -L/opt/homebrew/opt/openblas/lib/ -lopenblas
FFTW = -L/opt/homebrew/opt/fftw/lib/ -lfftw3
LIB_DIR = -L/opt/homebrew/opt/libomp/lib/ -lomp -L/opt/homebrew/opt/boost/lib/
#--- Directory where programs will be installed
BIN_DIR=$(PREFIX)/bin
#--- convenient group names
programs = estimatetrend modelspectrum estimatespectrum simulatenoise \
removeoutliers date2mjd mjd2date findoffset
all : $(programs)
clean:
rm -f *.o $(programs)
rm -rf *.dSYM
install:
mkdir -p $(BIN_DIR)
install $(programs) $(BIN_DIR)
uninstall :
@rm -f $(addprefix $(BIN_DIR)/,$(programs))
include Makefile_common
test_Matern : test_Matern.cpp Control.o Observations.o NoiseModelBaseClass.h \
Calendar.o Matern.o
$(CPP) $(CPPFLAGS) test_Matern.cpp Control.o Observations.o \
Calendar.o Matern.o \
$(OPENBLAS) $(FFTW) $(LIB_DIR) \
-o test_Matern
test_2F1 : test_2F1.cpp
$(CPP) $(CPPFLAGS) test_2F1.cpp \
$(OPENBLAS) $(LIB_DIR) \
-o test_2F1
在/usr/local/bin/hector_2.1/src里面进行编译
sudo make
配置文件里面.zshrc加入hector2.1的路径位置
4.测试与安装画图软件
官方有example,进入到ex1软件,出现如下结果,即安装成功
(base) wangxin@wangxindeMac-mini ex1 % removeoutliers removeoutliers.ctl
**************************************
removeoutliers, version 2.1
**************************************
Data format: MJD, Observations, Model
Filename : ./obs_files/TEST.mom
Number of observations+gaps: 1000
Percentage of gaps : 10
after removal gaps, m=900
No Polynomial degree set, using offset + linear trend
No extra periodic signal is included.
Found 6 bad points.
after removal gaps, m=894
No Polynomial degree set, using offset + linear trend
No extra periodic signal is included.
Found 0 bad points.
--> ./pre_files/TEST.mom
(base) wangxin@wangxindeMac-mini ex1 %
同时需要安装一下gnuplot,方便后面画图
brew install gnuplot
5.参考文献
Bos, M.S., Fernandes, R.M.S., Williams, S.D.P., and Bastos, L. (2013). Fast Error Analysis of Continuous GNSS Observations with Missing Data. J. Geod., Vol 87(4), 351-360, doi:10.1007/s00190-012-0605-0 .