Hector v3.1
Hector estimates trends, periodic signals, and offsets in geodetic time series with correlated noise. It uses Restricted Maximum Likelihood Estimation (RMLE) and supports several noise models (GGM/flicker, power-law, AR(1), Matérn, white noise and combinations thereof).
Quick start
pip install hector-ts
hector-examples # creates ./hector-examples/ with examples + manual PDF
hector-examples copies eight worked examples and the PDF user manual into a
directory of your choice. Open hector_manual_v3.1.pdf first — it explains
the workflow, all control-file parameters, and walks through every example
step by step. The examples are self-contained: each has its own data and
control files ready to run.
Installation
Windows
Pre-built wheels are available for Python 3.10–3.14. FFTW3 is bundled inside the wheel, so no separate installation is needed:
pip install hector-ts
macOS (Apple Silicon — M1 and later)
Pre-built wheels are available for Python 3.10–3.14. Install FFTW3 via Homebrew first (it is not bundled in the macOS wheel):
brew install fftw
pip install hector-ts
macOS (Intel)
Hector is compiled from source during pip install, so Xcode Command Line
Tools must be present (xcode-select --install):
brew install fftw
pip install hector-ts
If the build fails, conda provides a self-contained alternative:
conda install -c conda-forge fftw
pip install hector-ts
Linux
Pre-built manylinux wheels are available for Python 3.10–3.14 on x86_64 — no FFTW3 headers needed for those platforms. For other architectures (ARM64 etc.) Hector builds from source; install the FFTW3 development package first:
# Ubuntu / Debian
sudo apt install libfftw3-dev
# CentOS / RHEL / Fedora
sudo yum install fftw-devel # or: sudo dnf install fftw-devel
pip install hector-ts
Programs
| Name | Description |
|---|---|
estimatetrend |
Estimate trend, seasonal signals, and offsets using RMLE |
estimatespectrum |
Welch periodogram of the residuals |
removeoutliers |
Flag and remove outliers before trend estimation |
findoffsets |
Automated forward search for offset epochs |
find_all_offsets |
Multivariate (E+N+U) offset search on NCF files |
simulatenoise |
Generate synthetic coloured-noise time series |
estimate_all_trends |
Batch trend estimation on all files in obs_files/ |
ncfgen |
Create a multi-channel NCF (NetCDF4) time-series file |
ncfdump |
Inspect or export an NCF file |
plot_ts |
Quick time-series plot from a mom file |
date2mjd |
Convert calendar date to Modified Julian Date |
mjd2date |
Inverse of date2mjd |
convert_rlrdata2mom |
Convert PSMSL RLR data to mom format |
predict_error |
Predict trend uncertainty as a function of series length |
Reference
If you use Hector in your research, please cite:
Bos, M.S. (2026). Fast noise analysis and offset detection for continuous GNSS time series. Journal of Geodesy (submitted).
Performance
Hector v3.1 is a Python/Cython rewrite of Hector C++ v2.2. The core Toeplitz factorisation uses the Generalised Schur Algorithm (O(n log²n)) instead of Durbin-Levinson (O(n²)), and data gaps are handled exactly with an FFT-based conjugate-gradient solver. The speedup over C++ v2.2 grows with series length — up to ~27× at 40 years without gaps, and ~10× with 10% gaps:
| Series | Gaps | Hector v3.1 (s) | Hector C++ v2.2 (s) | Speedup |
|---|---|---|---|---|
| 10 yr | 0% | 1.11 | 2.9 | 2.6× |
| 20 yr | 0% | 1.60 | 6.6 | 4.1× |
| 30 yr | 0% | 2.32 | 21.8 | 9.4× |
| 40 yr | 0% | 2.58 | 68.7 | 26.6× |
| 10 yr | 10% | 2.36 | 4.5 | 1.9× |
| 20 yr | 10% | 4.36 | 16.5 | 3.8× |
| 30 yr | 10% | 9.16 | 51.7 | 5.6× |
| 40 yr | 10% | 14.44 | 150.1 | 10.4× |
Benchmarked on Apple M4 Pro, GGM+White noise model, including offset estimation.
License
Free for academic, research, and educational use. Commercial use requires a separate license from TeroMovigo – Earth Innovation Lda. See LICENSE for full terms.
Metadata
Release files for hector-ts 3.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hector_ts-3.1.3.tar.gz | 12.8 MB | Details |
Built distributions (wheels)
Total release size: 239.3 MB
Release files / hector_ts-3.1.3.tar.gz
| Download URL | hector_ts-3.1.3.tar.gz |
|---|---|
| Size | 12.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f74d4a0011f5604447d4d633430f6088c7379473b694b38f1f9a1c0662036447
|
|
BLAKE2b-256 checksum How to use checksums |
92dcf0e18bd3e43366159f43ccb9c667365a3b0c405b7ebcd028750bf77ea350
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | hector_ts-3.1.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4c7039c467141e0d8794eb2738a54b6973bfc937796bfaed3bc33936a604f2a3
|
|
BLAKE2b-256 checksum How to use checksums |
5116c82838057a7665a0fa1e0c1107c149c99f0ff4374135eafe17f030c16a9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp314-cp314-win_amd64.whl
| Download URL | hector_ts-3.1.3-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 13.1 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
895c44d3a4450825166aefde9e54d841c9e81b213b33fd1b59ed0d36a97455f9
|
|
BLAKE2b-256 checksum How to use checksums |
818e4df81bbf84ff514329dacd7825d226524128ada9616222f6af77f7f520f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | hector_ts-3.1.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 16.4 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
eca3831ba31f44ea8d710f9b25ebf73e94f91340447cbb4f18690c6351605f27
|
|
BLAKE2b-256 checksum How to use checksums |
78e5c7a80e4d4bb0c05af2e048059db579defc0917665e8e2024da3533e5ef6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp314-cp314-macosx_14_0_arm64.whl
| Download URL | hector_ts-3.1.3-cp314-cp314-macosx_14_0_arm64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.14 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
da5594e845754baa946bb2e59374567513a559dc34d85f4e311c3da70cb5182e
|
|
BLAKE2b-256 checksum How to use checksums |
35fe278d44fedc8bec65e54daa747b3d3de1695f772dc5c8cb6d6585e0ef0855
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp313-cp313-win_amd64.whl
| Download URL | hector_ts-3.1.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ecbc76a568ee621f5a6ebad1ebcdbc74ee9151f6d09fd84230238f2c8e2c62a1
|
|
BLAKE2b-256 checksum How to use checksums |
51117a623a78810354b9a13d41a7ef5305b6e8f0d301af08f8daa64cc81b0a28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | hector_ts-3.1.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f122e2b589d66cfbc40de974bb9c4d54a6b562194745543f738588babdf2456c
|
|
BLAKE2b-256 checksum How to use checksums |
514f9fae333a353eaaa0902163647835f84f911b3ab3271f4181c6ad2f315fe5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp313-cp313-macosx_14_0_arm64.whl
| Download URL | hector_ts-3.1.3-cp313-cp313-macosx_14_0_arm64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.13 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2dd323054bd232c504fb1e25a30e8beeb3b1509faf0624c7f66af69e6d38b503
|
|
BLAKE2b-256 checksum How to use checksums |
7d5d1dd37c752b527b7589f8abc150359c3f357413a81bf124eb289d72197382
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp312-cp312-win_amd64.whl
| Download URL | hector_ts-3.1.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c3d03f0c43f992d4d69c4ee233af3a2a1e9d4530fef1cab53d44ae18dcb71464
|
|
BLAKE2b-256 checksum How to use checksums |
22883672c17064a8a34a7eb7be913277b00e4971de10cd1d7374ef404e2cfe31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | hector_ts-3.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
17d94c4b606c5fffa3e9e23e7336267c66839546f3701558865526d2cb13abc4
|
|
BLAKE2b-256 checksum How to use checksums |
44c9fe1c149aeeaa6c4e9f672662f2d2d8346c90bd71fd9dc9cebdc37610ae33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp312-cp312-macosx_14_0_arm64.whl
| Download URL | hector_ts-3.1.3-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3bbb2c33a7103f7dca39071d448f5f8de32c190b4e506a654da633fb6217bd4f
|
|
BLAKE2b-256 checksum How to use checksums |
c82fb3e05d991b9ea078bc4997fcbbb6f3e95bc412ec50adaf3a633cd99fa215
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp311-cp311-win_amd64.whl
| Download URL | hector_ts-3.1.3-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f33fd2578bf0c1abc35a9a5d5924cd621a49ff18ee5811671ad10f3b1254946a
|
|
BLAKE2b-256 checksum How to use checksums |
56fb30d9870322d1a47c5e81bd4255ad11a44006de3d78d0b2f819e18d92b5f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | hector_ts-3.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3f1c5614014803755c80f6074b4f1801f7dff1c0d800a52bd5cd8ff0d5622f4a
|
|
BLAKE2b-256 checksum How to use checksums |
a35a9c8052e1e3db5aae0d065a7a118750e74437d96afc441eb6633484dc9bf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp311-cp311-macosx_14_0_arm64.whl
| Download URL | hector_ts-3.1.3-cp311-cp311-macosx_14_0_arm64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.11 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cc900f0249c8fbb221ab4af038548dcf73d83cdccc178d6f1119fd90cc9f2dae
|
|
BLAKE2b-256 checksum How to use checksums |
963ff28f3a49614e355035d16005b81bbebf4bd9f957163757e6cb610381b615
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp310-cp310-win_amd64.whl
| Download URL | hector_ts-3.1.3-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
32ed850ac8b200ef1e7aafe0530d1d805a685411bbed38895448aa55d5eb0c23
|
|
BLAKE2b-256 checksum How to use checksums |
ac53727e25381375d2ab2992ddc754b6e77f2d2d4fda3b77a9b844cd3e9d685d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | hector_ts-3.1.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 16.4 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
aea2655b0dc09e1ebd886a35d0dba4a311692be23b2ab94faadb10cfbd1b6514
|
|
BLAKE2b-256 checksum How to use checksums |
a9aeb043fc064da9d91ad32e657b432fe6a4f8283cbac78ad9fc8989cc319576
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / hector_ts-3.1.3-cp310-cp310-macosx_14_0_arm64.whl
| Download URL | hector_ts-3.1.3-cp310-cp310-macosx_14_0_arm64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.10 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f93972d08939586808f1daca68e86c9e22f5951b904a481d84039eb374db20b0
|
|
BLAKE2b-256 checksum How to use checksums |
f1b9e0edc8334ce25718f43102a4dc40e81bc8faba8f787aea5b19b9f452097d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency log